@hardkas/query-store 0.12.0-rc.25 → 0.12.0-rc.27

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/dist/db.d.ts CHANGED
@@ -6,11 +6,21 @@ export declare class HardkasStore {
6
6
  dbPath?: string;
7
7
  memory?: boolean;
8
8
  });
9
+ /**
10
+ * WORKSPACE-AUTHORITY-1 (WA-I3) · opens a projection that already exists, for reading, with no side effect: it never
11
+ * creates the file or its directory, never migrates, never switches the journal mode. A plain connection is used on
12
+ * purpose: node:sqlite's read-only connection leaves `-wal`/`-shm` files behind, while this one has SQLite remove them
13
+ * when it closes (on `disconnect()`, or when the process exits). Absent → null.
14
+ */
15
+ static openExisting(dbPath: string): HardkasStore | null;
16
+ private closeOnExit;
9
17
  connect(options?: {
10
18
  autoMigrate?: boolean;
11
19
  readOnly?: boolean;
12
20
  }): void;
13
21
  disconnect(): void;
22
+ /** The projection file this store reads or writes. */
23
+ get path(): string;
14
24
  getDatabase(): any;
15
25
  /**
16
26
  * Safe migration entry point.
package/dist/db.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgB,eAAe,EAAE,MAAM,eAAe,CAAC;AAI9D,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO;IAQxD,OAAO,CACZ,OAAO,GAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAA2B;IAgC1E,UAAU;IAOV,WAAW,IAAI,GAAG;IAOzB;;;OAGG;IACI,OAAO,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAYrD,OAAO,CAAC,UAAU;IAgBlB;;OAEG;IACI,WAAW,IAAI;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,eAAe,EAAE,CAAA;KAAE;CA4EjE"}
1
+ {"version":3,"file":"db.d.ts","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"AAKA,OAAO,EAAgB,eAAe,EAAE,MAAM,eAAe,CAAC;AAI9D,qBAAa,YAAY;IACvB,OAAO,CAAC,EAAE,CAAoB;IAC9B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;gBAEpB,OAAO,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,OAAO,CAAA;KAAO;IAQ/D;;;;;OAKG;WACW,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,YAAY,GAAG,IAAI;IAkB/D,OAAO,CAAC,WAAW,CAA6B;IAEzC,OAAO,CACZ,OAAO,GAAE;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;KAA2B;IAgC1E,UAAU;IAWjB,sDAAsD;IACtD,IAAW,IAAI,IAAI,MAAM,CAExB;IAEM,WAAW,IAAI,GAAG;IAOzB;;;OAGG;IACI,OAAO,IAAI;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;IAYrD,OAAO,CAAC,UAAU;IAgBlB;;OAEG;IACI,WAAW,IAAI;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,eAAe,EAAE,CAAA;KAAE;CA4EjE"}
package/dist/db.js CHANGED
@@ -16,6 +16,29 @@ export class HardkasStore {
16
16
  this.dbPath = options.dbPath || path.join(process.cwd(), ".hardkas", "store.db");
17
17
  }
18
18
  }
19
+ /**
20
+ * WORKSPACE-AUTHORITY-1 (WA-I3) · opens a projection that already exists, for reading, with no side effect: it never
21
+ * creates the file or its directory, never migrates, never switches the journal mode. A plain connection is used on
22
+ * purpose: node:sqlite's read-only connection leaves `-wal`/`-shm` files behind, while this one has SQLite remove them
23
+ * when it closes (on `disconnect()`, or when the process exits). Absent → null.
24
+ */
25
+ static openExisting(dbPath) {
26
+ if (!fs.existsSync(dbPath))
27
+ return null;
28
+ const store = new HardkasStore({ dbPath });
29
+ try {
30
+ store.db = new DatabaseSync(dbPath);
31
+ store.db.exec("PRAGMA busy_timeout = 15000;");
32
+ }
33
+ catch (err) {
34
+ store.db = null;
35
+ throw new HardkasError("PROJECTION_UNREADABLE", `Failed to open query projection ${dbPath}: ${err instanceof Error ? err.message : String(err)}`);
36
+ }
37
+ store.closeOnExit = () => store.disconnect();
38
+ process.once("exit", store.closeOnExit);
39
+ return store;
40
+ }
41
+ closeOnExit = null;
19
42
  connect(options = { autoMigrate: false }) {
20
43
  if (this.db)
21
44
  return;
@@ -42,11 +65,19 @@ export class HardkasStore {
42
65
  }
43
66
  }
44
67
  disconnect() {
68
+ if (this.closeOnExit) {
69
+ process.removeListener("exit", this.closeOnExit);
70
+ this.closeOnExit = null;
71
+ }
45
72
  if (this.db) {
46
73
  this.db.close();
47
74
  this.db = null;
48
75
  }
49
76
  }
77
+ /** The projection file this store reads or writes. */
78
+ get path() {
79
+ return this.dbPath;
80
+ }
50
81
  getDatabase() {
51
82
  if (!this.db) {
52
83
  throw new Error("Store not connected. Call connect() first.");
package/dist/db.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"db.js","sourceRoot":"","sources":["../src/db.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -4,5 +4,6 @@ export * from "./indexer.js";
4
4
  export * from "./backend.js";
5
5
  export * from "./ledger-appender.js";
6
6
  export * from "./projection-store.js";
7
+ export * from "./projection-status.js";
7
8
  export * from "./domain-store.js";
8
9
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -4,5 +4,6 @@ export * from "./indexer.js";
4
4
  export * from "./backend.js";
5
5
  export * from "./ledger-appender.js";
6
6
  export * from "./projection-store.js";
7
+ export * from "./projection-status.js";
7
8
  export * from "./domain-store.js";
8
9
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,SAAS,CAAC;AACxB,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC;AACvC,cAAc,mBAAmB,CAAC"}
package/dist/indexer.d.ts CHANGED
@@ -34,6 +34,7 @@ export interface DoctorReport {
34
34
  }
35
35
  export declare class HardkasIndexer {
36
36
  private db;
37
+ private workspaceRoot;
37
38
  private hardkasDir;
38
39
  private strict;
39
40
  constructor(db: any, options?: IndexerOptions);
@@ -65,10 +66,13 @@ export declare class HardkasIndexer {
65
66
  */
66
67
  doctor(): DoctorReport;
67
68
  /**
68
- * Checks if a file needs re-indexing based on mtime comparison.
69
- * Returns true if the file has changed since last indexing.
69
+ * Whether the indexed row of a file already holds exactly its current content. WORKSPACE-AUTHORITY-1 (WA-I2): an equal
70
+ * mtime alone is not proof (a rewrite within the clock's resolution keeps it), and a projection that claims freshness
71
+ * must hold what the files hold.
70
72
  */
71
- private needsReindex;
73
+ private isIndexedAsIs;
74
+ /** The given paths that belong to the canonical store set (compared by real path), sorted. */
75
+ private inCanonicalSet;
72
76
  private syncArtifacts;
73
77
  /**
74
78
  * Builds the transitive closure of the lineage graph.
@@ -78,7 +82,10 @@ export declare class HardkasIndexer {
78
82
  private buildLineageClosure;
79
83
  private syncEvents;
80
84
  private syncTraces;
85
+ /**
86
+ * Drops the rows of files that are gone and, after a full sync, of files outside the canonical store set (the
87
+ * projection holds that set and nothing else). With no ledger, there are no events.
88
+ */
81
89
  private cleanupZombies;
82
- private walk;
83
90
  }
84
91
  //# sourceMappingURL=indexer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKpD,OAAO,EAGL,KAAK,eAAe,EAIrB,MAAM,eAAe,CAAC;AAEvB,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,cAAc,CAAC,cAAc,CAAC;IAC7C,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAQD,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAU;gBAEZ,EAAE,EAAE,GAAG,EAAE,OAAO,GAAE,cAAmB;IAMjD;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IA+BxC;;OAEG;YACW,aAAa;IAiC3B;;;OAGG;IACU,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IA6B5D;;OAEG;IACH;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;IAkD3C,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACI,MAAM,IAAI,YAAY;IAoH7B;;;OAGG;IACH,OAAO,CAAC,YAAY;YAaN,aAAa;IAgN3B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAmE3B,OAAO,CAAC,UAAU;IA+FlB,OAAO,CAAC,UAAU;IAmClB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,IAAI;CA+Fb"}
1
+ {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAKpD,OAAO,EAGL,KAAK,eAAe,EAMrB,MAAM,eAAe,CAAC;AAGvB,MAAM,WAAW,cAAc;IAC7B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,cAAc,CAAC,cAAc,CAAC;IAC7C,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,SAAS,CAAC;IACrB,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;IACpB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,wBAAwB,EAAE,MAAM,CAAC;IACjC,uBAAuB,EAAE,MAAM,CAAC;IAChC,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAQD,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAM;IAChB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,MAAM,CAAU;gBAEZ,EAAE,EAAE,GAAG,EAAE,OAAO,GAAE,cAAmB;IAOjD;;;OAGG;IACU,IAAI,IAAI,OAAO,CAAC,UAAU,CAAC;IAoCxC;;OAEG;YACW,aAAa;IAqC3B;;;OAGG;IACU,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;IA6B5D;;OAEG;IACH;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,UAAU,CAAC;IAqD3C,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACI,MAAM,IAAI,YAAY;IAqH7B;;;;OAIG;IACH,OAAO,CAAC,aAAa;IAWrB,8FAA8F;IAC9F,OAAO,CAAC,cAAc;YAYR,aAAa;IAiN3B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAmE3B,OAAO,CAAC,UAAU;IAiHlB,OAAO,CAAC,UAAU;IAmClB;;;OAGG;IACH,OAAO,CAAC,cAAc;CA0BvB"}
package/dist/indexer.js CHANGED
@@ -4,15 +4,18 @@ import { HardkasSchemas } from "@hardkas/artifacts";
4
4
  import { createRequire } from "node:module";
5
5
  const require = createRequire(import.meta.url);
6
6
  const { DatabaseSync } = require("node:sqlite");
7
- import { verifyArtifactIntegrity } from "@hardkas/artifacts";
8
- import { validateEventEnvelope, formatCorruptionIssue, EnvironmentTelemetry } from "@hardkas/core";
7
+ import { verifyArtifactIntegrity, listWorkspaceStoreFilesSync, compareStoreCopies } from "@hardkas/artifacts";
8
+ import { validateEventEnvelope, formatCorruptionIssue, EnvironmentTelemetry, eventLedgerPath, legacyEventLedgerPath } from "@hardkas/core";
9
+ import { computeAuthorityFingerprint, recordProjectionAuthority } from "./projection-status.js";
9
10
  export class HardkasIndexer {
10
11
  db;
12
+ workspaceRoot;
11
13
  hardkasDir;
12
14
  strict;
13
15
  constructor(db, options = {}) {
14
16
  this.db = db;
15
- this.hardkasDir = path.join(options.cwd || process.cwd(), ".hardkas");
17
+ this.workspaceRoot = path.resolve(options.cwd || process.cwd());
18
+ this.hardkasDir = path.join(this.workspaceRoot, ".hardkas");
16
19
  this.strict = options.strict || false;
17
20
  }
18
21
  /**
@@ -32,11 +35,15 @@ export class HardkasIndexer {
32
35
  if (!fs.existsSync(this.hardkasDir)) {
33
36
  return result;
34
37
  }
38
+ // WORKSPACE-AUTHORITY-1 (WA-I2): the authority this sync derives from, taken BEFORE anything is read, so a change
39
+ // that lands while it runs can only make the projection look stale, never fresh.
40
+ const fingerprint = computeAuthorityFingerprint(this.workspaceRoot);
35
41
  // HardKAS Policy: Do not nest transactions.
36
42
  // Sync handles its own transaction.
37
43
  this.db.exec("BEGIN TRANSACTION;");
38
44
  try {
39
45
  await this._syncInternal(result);
46
+ recordProjectionAuthority(this.db, fingerprint);
40
47
  this.db.exec("COMMIT;");
41
48
  }
42
49
  catch (e) {
@@ -52,10 +59,14 @@ export class HardkasIndexer {
52
59
  * Internal indexing logic without transaction management.
53
60
  */
54
61
  async _syncInternal(result, specificPaths) {
55
- await this.syncArtifacts(result, specificPaths);
62
+ // WORKSPACE-AUTHORITY-1 (C1): the projection indexes exactly the artifact store the resolver reads (its root and its
63
+ // canonical subdirectories), never every JSON file under .hardkas/. A targeted sync only takes paths of that set.
64
+ const canonical = listWorkspaceStoreFilesSync(this.workspaceRoot).map((f) => f.path);
65
+ const files = specificPaths ? this.inCanonicalSet(specificPaths, canonical) : canonical;
66
+ await this.syncArtifacts(result, files, !specificPaths);
56
67
  this.syncEvents(result);
57
68
  this.syncTraces();
58
- this.cleanupZombies();
69
+ this.cleanupZombies(specificPaths ? undefined : new Set(canonical));
59
70
  // Mark last sync
60
71
  this.db
61
72
  .prepare("INSERT OR REPLACE INTO metadata (key, value) VALUES (?, ?)")
@@ -147,6 +158,8 @@ export class HardkasIndexer {
147
158
  throw e;
148
159
  }
149
160
  try {
161
+ // WORKSPACE-AUTHORITY-1 (WA-I2): taken before the store is read (see sync)
162
+ const fingerprint = computeAuthorityFingerprint(this.workspaceRoot);
150
163
  this.db.exec("BEGIN TRANSACTION;");
151
164
  try {
152
165
  this._wipeInternal();
@@ -154,6 +167,7 @@ export class HardkasIndexer {
154
167
  if (fs.existsSync(this.hardkasDir)) {
155
168
  await this._syncInternal(result);
156
169
  }
170
+ recordProjectionAuthority(this.db, fingerprint);
157
171
  this.db.exec("COMMIT;");
158
172
  }
159
173
  catch (e) {
@@ -181,7 +195,7 @@ export class HardkasIndexer {
181
195
  catch { } // v3+ table
182
196
  this.db.exec("DELETE FROM lineage_edges;");
183
197
  this.db.exec("DELETE FROM artifacts;");
184
- this.db.exec("DELETE FROM metadata WHERE key = 'last_indexed_at';");
198
+ this.db.exec("DELETE FROM metadata WHERE key IN ('last_indexed_at', 'authority_fingerprint', 'projection_contract');");
185
199
  try {
186
200
  this.db.exec("DELETE FROM lineage_stats;");
187
201
  }
@@ -256,7 +270,9 @@ export class HardkasIndexer {
256
270
  .prepare("SELECT file_path FROM artifacts WHERE kind = 'CORRUPTED'")
257
271
  .all();
258
272
  report.corruptedFiles = corruptedRows.map((r) => r.file_path);
259
- // 6. Duplicate Event Sequences (should be prevented by DB constraints, but good to verify)
273
+ // 6. Event sequence positions shared by DISTINCT events. WORKSPACE-AUTHORITY-1 (A): the index keeps one row per event
274
+ // identity, so these are the ledger's own data (e.g. every standalone SDK `artifact.written` is wf_unknown_standalone/1),
275
+ // reported for producers, never a projection defect: they do not make the projection unhealthy.
260
276
  const duplicateSequences = this.db
261
277
  .prepare(`
262
278
  SELECT COUNT(*) as count FROM (
@@ -281,41 +297,43 @@ export class HardkasIndexer {
281
297
  report.orphanEdges === 0 &&
282
298
  report.duplicateProjections === 0 &&
283
299
  report.brokenReplayDependencies === 0 &&
284
- report.duplicateEventSequences === 0 &&
285
300
  report.orphanEvents === 0 &&
286
301
  report.corruptedFiles.length === 0;
287
302
  return report;
288
303
  }
289
304
  /**
290
- * Checks if a file needs re-indexing based on mtime comparison.
291
- * Returns true if the file has changed since last indexing.
305
+ * Whether the indexed row of a file already holds exactly its current content. WORKSPACE-AUTHORITY-1 (WA-I2): an equal
306
+ * mtime alone is not proof (a rewrite within the clock's resolution keeps it), and a projection that claims freshness
307
+ * must hold what the files hold.
292
308
  */
293
- needsReindex(filePath, currentMtimeMs) {
309
+ isIndexedAsIs(filePath, currentMtimeMs, content) {
294
310
  try {
295
311
  const row = this.db
296
- .prepare("SELECT file_mtime_ms FROM artifacts WHERE file_path = ?")
312
+ .prepare("SELECT file_mtime_ms, raw_json FROM artifacts WHERE file_path = ?")
297
313
  .get(filePath);
298
- if (!row || row.file_mtime_ms === null)
299
- return true;
300
- return row.file_mtime_ms !== currentMtimeMs;
314
+ return !!row && row.file_mtime_ms === currentMtimeMs && row.raw_json === content;
301
315
  }
302
316
  catch {
303
- return true;
317
+ return false;
304
318
  }
305
319
  }
306
- async syncArtifacts(result, specificPaths) {
307
- // Sort files to ensure deterministic indexing order
308
- const files = specificPaths
309
- ? specificPaths
310
- .filter((p) => fs.existsSync(p) &&
311
- p.endsWith(".json") &&
312
- !p.endsWith("events.jsonl") &&
313
- !p.includes("dev-accounts") &&
314
- !p.includes("keystore") &&
315
- !p.includes("accounts.real.json") &&
316
- !p.includes("sessions.json"))
317
- .sort()
318
- : this.walk(this.hardkasDir).sort();
320
+ /** The given paths that belong to the canonical store set (compared by real path), sorted. */
321
+ inCanonicalSet(paths, canonical) {
322
+ const set = new Set(canonical);
323
+ const real = (p) => {
324
+ try {
325
+ return path.resolve(fs.realpathSync(p));
326
+ }
327
+ catch {
328
+ return path.resolve(p);
329
+ }
330
+ };
331
+ return [...new Set(paths.map(real).filter((p) => set.has(p)))].sort();
332
+ }
333
+ async syncArtifacts(result, canonicalFiles, incremental) {
334
+ // Sort files to ensure deterministic indexing order. WORKSPACE-AUTHORITY-1 (C1): an identity's canonical copy comes
335
+ // first, so it is the one its row keeps (the filesystem backend shows the same copy).
336
+ const files = [...canonicalFiles].sort(compareStoreCopies);
319
337
  const indexedAt = new Date().toISOString(); // hardkas-determinism-allow: index time metadata
320
338
  const upsertArtifact = this.db.prepare(`
321
339
  INSERT INTO artifacts
@@ -343,9 +361,17 @@ export class HardkasIndexer {
343
361
  let skipped = 0;
344
362
  for (const file of files) {
345
363
  result.artifacts.scanned++;
346
- const stat = fs.statSync(file);
347
- // Incremental sync optimization: skip unchanged files
348
- if (!specificPaths && !this.needsReindex(file, stat.mtimeMs)) {
364
+ let stat;
365
+ let currentContent;
366
+ try {
367
+ stat = fs.statSync(file);
368
+ currentContent = fs.readFileSync(file, "utf-8");
369
+ }
370
+ catch {
371
+ continue; // gone since it was listed; the zombie cleanup drops its row
372
+ }
373
+ // Incremental sync optimization: skip files whose row already holds exactly their content
374
+ if (incremental && this.isIndexedAsIs(file, stat.mtimeMs, currentContent)) {
349
375
  skipped++;
350
376
  continue;
351
377
  }
@@ -374,7 +400,7 @@ export class HardkasIndexer {
374
400
  throw new Error(`Strict mode: corrupted artifact in ${file}`);
375
401
  }
376
402
  }
377
- const content = fs.readFileSync(file, "utf-8");
403
+ const content = currentContent;
378
404
  // Wave 1.2 · N2 / IC-5′.9: the index key is the RECOMPUTED artifactId (the
379
405
  // verifier's actualHash under the declared version). A file that does not
380
406
  // verify is stored as CORRUPTED under a path-derived key, never under the
@@ -401,7 +427,13 @@ export class HardkasIndexer {
401
427
  .get(artifactId);
402
428
  if (existing && existing.file_path !== file) {
403
429
  if (existing.content_hash === hash && existing.file_path && fs.existsSync(existing.file_path)) {
404
- // An identical copy of an artifact already indexed from another file.
430
+ // An identical copy of an artifact already indexed from another file. The row keeps the canonical copy
431
+ // (compareStoreCopies), whichever of the two was indexed first.
432
+ if (compareStoreCopies(file, existing.file_path) < 0) {
433
+ this.db
434
+ .prepare("UPDATE artifacts SET file_path = ?, file_mtime_ms = ?, raw_json = ? WHERE artifact_id = ?")
435
+ .run(file, stat.mtimeMs, content, artifactId);
436
+ }
405
437
  result.artifacts.duplicates++;
406
438
  continue;
407
439
  }
@@ -507,19 +539,30 @@ export class HardkasIndexer {
507
539
  }
508
540
  }
509
541
  syncEvents(result) {
510
- const eventsPath = path.join(this.hardkasDir, "events.jsonl");
542
+ // WORKSPACE-AUTHORITY-1 (A): the workspace's one event ledger (`eventLedgerPath`), never a file under .hardkas/. A
543
+ // legacy `.hardkas/events.jsonl` is never merged into it: it is only reported.
544
+ const eventsPath = eventLedgerPath(this.workspaceRoot);
545
+ const legacyPath = legacyEventLedgerPath(this.workspaceRoot);
546
+ if (fs.existsSync(legacyPath)) {
547
+ result.warnings.push(`A legacy event ledger exists at ${legacyPath}; it is not this workspace's ledger (${eventsPath}) and was not indexed or merged.`);
548
+ }
511
549
  if (!fs.existsSync(eventsPath))
512
550
  return;
513
551
  const stat = fs.statSync(eventsPath);
514
552
  const indexedAt = new Date().toISOString(); // hardkas-determinism-allow: index time metadata
515
553
  const content = fs.readFileSync(eventsPath, "utf-8");
516
554
  const lines = content.split("\n");
555
+ // The index mirrors the ledger: one row per event identity (eventId), every event of the ledger and nothing else.
556
+ this.db.exec("CREATE TEMP TABLE IF NOT EXISTS ledger_event_ids (event_id TEXT PRIMARY KEY); DELETE FROM ledger_event_ids;");
557
+ const markSeen = this.db.prepare("INSERT OR IGNORE INTO ledger_event_ids (event_id) VALUES (?)");
517
558
  const upsertEvent = this.db.prepare(`
518
- INSERT INTO events
559
+ INSERT INTO events
519
560
  (event_id, kind, domain, timestamp, emitted_at, workflow_id, correlation_id, causation_id, tx_id, artifact_id, network_id, sequence_number, global_offset, source_subsystem, raw_json, file_path, file_mtime_ms, indexed_at)
520
561
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
521
- ON CONFLICT(correlation_id, sequence_number, kind) DO UPDATE SET
522
- event_id = excluded.event_id,
562
+ ON CONFLICT(event_id) DO UPDATE SET
563
+ kind = excluded.kind,
564
+ correlation_id = excluded.correlation_id,
565
+ sequence_number = excluded.sequence_number,
523
566
  domain = excluded.domain,
524
567
  timestamp = excluded.timestamp,
525
568
  emitted_at = excluded.emitted_at,
@@ -559,7 +602,11 @@ export class HardkasIndexer {
559
602
  continue;
560
603
  }
561
604
  upsertEvent.run(parsed.eventId, parsed.kind, parsed.domain, parsed.timestamp || null, parsed.emittedAt || parsed.timestamp || null, parsed.workflowId, parsed.correlationId, parsed.causationId || null, parsed.txId || null, parsed.artifactId || null, parsed.networkId, parsed.sequenceNumber ?? 0, parsed.globalOffset ?? lineNum, parsed.sourceSubsystem || "unknown", line, eventsPath, stat.mtimeMs, indexedAt);
562
- result.events.indexed++;
605
+ // the same event appended twice is one event
606
+ if (markSeen.run(parsed.eventId).changes === 0)
607
+ result.events.duplicates++;
608
+ else
609
+ result.events.indexed++;
563
610
  }
564
611
  catch (e) {
565
612
  result.events.corrupted++;
@@ -577,6 +624,8 @@ export class HardkasIndexer {
577
624
  result.warnings.push(formatCorruptionIssue(issue));
578
625
  }
579
626
  }
627
+ // an event that is no longer in the ledger (a truncated tail) is no longer in the index
628
+ this.db.exec("DELETE FROM events WHERE event_id NOT IN (SELECT event_id FROM ledger_event_ids);");
580
629
  }
581
630
  syncTraces() {
582
631
  const upsertTrace = this.db.prepare(`
@@ -611,113 +660,28 @@ export class HardkasIndexer {
611
660
  `);
612
661
  upsertTrace.run();
613
662
  }
614
- cleanupZombies() {
663
+ /**
664
+ * Drops the rows of files that are gone and, after a full sync, of files outside the canonical store set (the
665
+ * projection holds that set and nothing else). With no ledger, there are no events.
666
+ */
667
+ cleanupZombies(canonical) {
615
668
  const rows = this.db
616
669
  .prepare("SELECT artifact_id, file_path FROM artifacts")
617
670
  .all();
618
671
  const deleteArtifact = this.db.prepare("DELETE FROM artifacts WHERE artifact_id = ?");
619
672
  for (const row of rows) {
620
- if (!row.file_path || !fs.existsSync(row.file_path)) {
621
- EnvironmentTelemetry.logAnomaly("EXTERNAL_MUTATION", "high", "query-store", `Zombie artifact cleaned up: ${row.artifact_id}`);
673
+ const gone = !row.file_path || !fs.existsSync(row.file_path);
674
+ if (gone || (canonical && !canonical.has(row.file_path))) {
675
+ if (gone) {
676
+ EnvironmentTelemetry.logAnomaly("EXTERNAL_MUTATION", "high", "query-store", `Zombie artifact cleaned up: ${row.artifact_id}`);
677
+ }
622
678
  deleteArtifact.run(row.artifact_id);
623
679
  }
624
680
  }
625
- // Events cleanup (if file gone, all events gone)
626
- const eventsPath = path.join(this.hardkasDir, "events.jsonl");
627
- if (!fs.existsSync(eventsPath)) {
681
+ // Events cleanup (if the workspace's ledger is gone, all events are gone)
682
+ if (!fs.existsSync(eventLedgerPath(this.workspaceRoot))) {
628
683
  this.db.exec("DELETE FROM events;");
629
684
  }
630
685
  }
631
- walk(dir, visited = new Set()) {
632
- let results = [];
633
- let realDir;
634
- try {
635
- realDir = fs.realpathSync(dir);
636
- }
637
- catch {
638
- return results;
639
- }
640
- if (visited.has(realDir))
641
- return results;
642
- visited.add(realDir);
643
- let realHardkasDir;
644
- try {
645
- realHardkasDir = fs.realpathSync(this.hardkasDir);
646
- }
647
- catch {
648
- return results;
649
- }
650
- const isInside = (child, parent) => {
651
- // Handle windows casing
652
- const c = child.toLowerCase();
653
- const p = parent.toLowerCase();
654
- if (c === p)
655
- return true;
656
- const parentWithSep = p.endsWith(path.sep) ? p : p + path.sep;
657
- const result = c.startsWith(parentWithSep);
658
- return result;
659
- };
660
- if (!isInside(realDir, realHardkasDir)) {
661
- return results;
662
- }
663
- let list;
664
- try {
665
- list = fs.readdirSync(dir);
666
- }
667
- catch {
668
- return results;
669
- }
670
- for (const file of list) {
671
- const filePath = path.join(dir, file);
672
- let stat;
673
- try {
674
- stat = fs.lstatSync(filePath);
675
- }
676
- catch {
677
- continue;
678
- }
679
- let isDir = stat.isDirectory();
680
- if (stat.isSymbolicLink()) {
681
- try {
682
- const real = fs.realpathSync(filePath);
683
- if (!isInside(real, realHardkasDir)) {
684
- continue;
685
- }
686
- isDir = fs.statSync(real).isDirectory();
687
- }
688
- catch {
689
- continue;
690
- }
691
- }
692
- if (isDir) {
693
- if (file === "node_modules" ||
694
- file === ".git" ||
695
- file === "keystore" ||
696
- file === "dev-accounts" ||
697
- file === "snapshots" ||
698
- // First contact · E07: operational output, never canonical artifacts —
699
- // test-run bookkeeping, torture/chaos reports, deployment tracking records
700
- // and the managed node's data directory.
701
- file === "runs" ||
702
- file === "reports" ||
703
- file === "deployments" ||
704
- file === "kaspad")
705
- continue;
706
- results = results.concat(this.walk(filePath, visited));
707
- }
708
- else if (file.endsWith(".json") &&
709
- !file.endsWith("events.jsonl") &&
710
- file !== "state.json" &&
711
- file !== "keystore.json" &&
712
- !file.endsWith("localnet.json") &&
713
- !file.endsWith("localnet-state.json") &&
714
- !file.endsWith("localnet-indexer.json") &&
715
- !file.endsWith("accounts.real.json") &&
716
- !file.endsWith("sessions.json")) {
717
- results.push(filePath);
718
- }
719
- }
720
- return results;
721
- }
722
686
  }
723
687
  //# sourceMappingURL=indexer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"indexer.js","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"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"}
@@ -2,8 +2,9 @@ export interface LedgerAppenderOptions {
2
2
  cwd?: string;
3
3
  }
4
4
  /**
5
- * Attaches a listener to the core in-memory event bus to persist
6
- * all emitted events to the deterministic event ledger (.hardkas/events.jsonl).
5
+ * @deprecated WORKSPACE-AUTHORITY-1 (A2): a workspace has ONE event ledger, `<root>/events.jsonl`, and one writer for it,
6
+ * `@hardkas/core`'s `attachLedgerAppender`. This entry point (never used by HardKAS itself) used to write a second ledger
7
+ * under `.hardkas/events.jsonl`; it is kept only so its importers keep working, and it attaches that same writer.
7
8
  */
8
9
  export declare function attachLedgerAppender(options?: LedgerAppenderOptions): () => void;
9
10
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-appender.d.ts","sourceRoot":"","sources":["../src/ledger-appender.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAID;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,MAAM,IAAI,CA8BpF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,SAKnC"}
1
+ {"version":3,"file":"ledger-appender.d.ts","sourceRoot":"","sources":["../src/ledger-appender.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,qBAAqB;IACpC,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAID;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,qBAA0B,GAAG,MAAM,IAAI,CAOpF;AAED;;GAEG;AACH,wBAAgB,oBAAoB,SAKnC"}
@@ -1,37 +1,17 @@
1
- import fs from "node:fs";
2
1
  import path from "node:path";
3
- import { coreEvents, AppendCoordinator } from "@hardkas/core";
2
+ import { attachLedgerAppender as attachWorkspaceLedgerAppender } from "@hardkas/core";
4
3
  let appenderUnsubscribe = null;
5
4
  /**
6
- * Attaches a listener to the core in-memory event bus to persist
7
- * all emitted events to the deterministic event ledger (.hardkas/events.jsonl).
5
+ * @deprecated WORKSPACE-AUTHORITY-1 (A2): a workspace has ONE event ledger, `<root>/events.jsonl`, and one writer for it,
6
+ * `@hardkas/core`'s `attachLedgerAppender`. This entry point (never used by HardKAS itself) used to write a second ledger
7
+ * under `.hardkas/events.jsonl`; it is kept only so its importers keep working, and it attaches that same writer.
8
8
  */
9
9
  export function attachLedgerAppender(options = {}) {
10
10
  // Prevent duplicate attachments in the same process
11
11
  if (appenderUnsubscribe) {
12
12
  return appenderUnsubscribe;
13
13
  }
14
- const cwd = options.cwd || process.cwd();
15
- const hardkasDir = path.join(cwd, ".hardkas");
16
- const ledgerPath = path.join(hardkasDir, "events.jsonl");
17
- // Ensure directory exists
18
- if (!fs.existsSync(hardkasDir)) {
19
- fs.mkdirSync(hardkasDir, { recursive: true });
20
- }
21
- const listener = (event) => {
22
- try {
23
- const line = JSON.stringify(event);
24
- AppendCoordinator.appendAtomic(ledgerPath, line, cwd);
25
- }
26
- catch (e) {
27
- // Intentionally swallow errors so the appender doesn't crash the main process.
28
- // But in dev mode, we might want to log it.
29
- if (process.env.DEBUG) {
30
- console.error("Failed to append event to ledger:", e);
31
- }
32
- }
33
- };
34
- appenderUnsubscribe = coreEvents.on(listener);
14
+ appenderUnsubscribe = attachWorkspaceLedgerAppender(path.resolve(options.cwd || process.cwd()));
35
15
  return appenderUnsubscribe;
36
16
  }
37
17
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"ledger-appender.js","sourceRoot":"","sources":["../src/ledger-appender.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAsB,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAMlF,IAAI,mBAAmB,GAAwB,IAAI,CAAC;AAEpD;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAiC,EAAE;IACtE,oDAAoD;IACpD,IAAI,mBAAmB,EAAE,CAAC;QACxB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;IAC9C,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;IAEzD,0BAA0B;IAC1B,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC/B,EAAE,CAAC,SAAS,CAAC,UAAU,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAChD,CAAC;IAED,MAAM,QAAQ,GAAG,CAAC,KAAoB,EAAE,EAAE;QACxC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;YACnC,iBAAiB,CAAC,YAAY,CAAC,UAAU,EAAE,IAAI,EAAE,GAAG,CAAC,CAAC;QACxD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,+EAA+E;YAC/E,4CAA4C;YAC5C,IAAI,OAAO,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;gBACtB,OAAO,CAAC,KAAK,CAAC,mCAAmC,EAAE,CAAC,CAAC,CAAC;YACxD,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IAEF,mBAAmB,GAAG,UAAU,CAAC,EAAE,CAAC,QAAQ,CAAC,CAAC;IAC9C,OAAO,mBAAoB,CAAC;AAC9B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,mBAAmB,EAAE,CAAC;QACxB,mBAAmB,EAAE,CAAC;QACtB,mBAAmB,GAAG,IAAI,CAAC;IAC7B,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"ledger-appender.js","sourceRoot":"","sources":["../src/ledger-appender.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,EAAE,oBAAoB,IAAI,6BAA6B,EAAE,MAAM,eAAe,CAAC;AAMtF,IAAI,mBAAmB,GAAwB,IAAI,CAAC;AAEpD;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAiC,EAAE;IACtE,oDAAoD;IACpD,IAAI,mBAAmB,EAAE,CAAC;QACxB,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IACD,mBAAmB,GAAG,6BAA6B,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;IAChG,OAAO,mBAAmB,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,oBAAoB;IAClC,IAAI,mBAAmB,EAAE,CAAC;QACxB,mBAAmB,EAAE,CAAC;QACtB,mBAAmB,GAAG,IAAI,CAAC;IAC7B,CAAC;AACH,CAAC"}
@@ -36,7 +36,7 @@ export declare class MigrationRunner {
36
36
  }
37
37
  /**
38
38
  * Registry of all query-store migrations.
39
- * Version 1: Initial schema (Baseline 0.12.0-rc.25).
39
+ * Version 1: Initial schema (Baseline 0.12.0-rc.27).
40
40
  */
41
41
  export declare const MIGRATIONS: Migration[];
42
42
  //# sourceMappingURL=migrations.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,GAAG;IAE3B;;OAEG;IACI,kBAAkB,IAAI,IAAI;IAWjC;;OAEG;IACI,oBAAoB,IAAI,qBAAqB,EAAE;IAWtD;;OAEG;IACI,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG;QACvC,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,IAAI,GAAG,cAAc,GAAG,QAAQ,CAAC;KAC1C;IAoDD;;;OAGG;IACI,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO;CAsB/E;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,EAsMjC,CAAC"}
1
+ {"version":3,"file":"migrations.d.ts","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,SAAS;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,EAAE,GAAG,GAAG,IAAI,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,qBAAa,eAAe;IACd,OAAO,CAAC,EAAE;gBAAF,EAAE,EAAE,GAAG;IAE3B;;OAEG;IACI,kBAAkB,IAAI,IAAI;IAWjC;;OAEG;IACI,oBAAoB,IAAI,qBAAqB,EAAE;IAWtD;;OAEG;IACI,OAAO,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG;QACvC,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,IAAI,GAAG,cAAc,GAAG,QAAQ,CAAC;KAC1C;IAoDD;;;OAGG;IACI,eAAe,CAAC,YAAY,EAAE,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,OAAO;CAsB/E;AAED;;;GAGG;AACH,eAAO,MAAM,UAAU,EAAE,SAAS,EA8PjC,CAAC"}
@@ -96,7 +96,7 @@ export class MigrationRunner {
96
96
  }
97
97
  /**
98
98
  * Registry of all query-store migrations.
99
- * Version 1: Initial schema (Baseline 0.12.0-rc.25).
99
+ * Version 1: Initial schema (Baseline 0.12.0-rc.27).
100
100
  */
101
101
  export const MIGRATIONS = [
102
102
  {
@@ -295,6 +295,62 @@ export const MIGRATIONS = [
295
295
  );
296
296
  `);
297
297
  }
298
+ },
299
+ {
300
+ // WORKSPACE-AUTHORITY-1 (A): an event row is keyed by the event's identity (event_id) alone. The v2 key
301
+ // UNIQUE(correlation_id, sequence_number, kind) merged distinct events that share those three values into one row.
302
+ version: 4,
303
+ name: "event_identity_key",
304
+ checksum: "hardkas_v4_event_identity",
305
+ up: (db) => {
306
+ db.exec(`
307
+ CREATE TABLE IF NOT EXISTS events_v4 (
308
+ event_id TEXT PRIMARY KEY,
309
+ kind TEXT NOT NULL,
310
+ domain TEXT NOT NULL,
311
+ timestamp TEXT,
312
+ emitted_at TEXT,
313
+ workflow_id TEXT NOT NULL,
314
+ correlation_id TEXT NOT NULL,
315
+ causation_id TEXT,
316
+ tx_id TEXT,
317
+ artifact_id TEXT,
318
+ network_id TEXT NOT NULL,
319
+ sequence_number INTEGER NOT NULL DEFAULT 0,
320
+ global_offset INTEGER,
321
+ source_subsystem TEXT NOT NULL DEFAULT 'unknown',
322
+ raw_json TEXT NOT NULL,
323
+ file_path TEXT,
324
+ file_mtime_ms INTEGER,
325
+ indexed_at TEXT
326
+ );
327
+
328
+ INSERT INTO events_v4 (
329
+ event_id, kind, domain, timestamp, emitted_at, workflow_id, correlation_id, causation_id, tx_id, artifact_id,
330
+ network_id, sequence_number, global_offset, source_subsystem, raw_json, file_path, file_mtime_ms, indexed_at
331
+ )
332
+ SELECT
333
+ event_id, kind, domain, timestamp, emitted_at, workflow_id, correlation_id, causation_id, tx_id, artifact_id,
334
+ network_id, sequence_number, global_offset, source_subsystem, raw_json, file_path, file_mtime_ms, indexed_at
335
+ FROM events;
336
+
337
+ DROP TABLE events;
338
+ ALTER TABLE events_v4 RENAME TO events;
339
+
340
+ CREATE INDEX IF NOT EXISTS idx_events_kind ON events(kind);
341
+ CREATE INDEX IF NOT EXISTS idx_events_domain ON events(domain);
342
+ CREATE INDEX IF NOT EXISTS idx_events_workflow_id ON events(workflow_id);
343
+ CREATE INDEX IF NOT EXISTS idx_events_correlation_id ON events(correlation_id);
344
+ CREATE INDEX IF NOT EXISTS idx_events_causation_id ON events(causation_id);
345
+ CREATE INDEX IF NOT EXISTS idx_events_tx_id ON events(tx_id);
346
+ CREATE INDEX IF NOT EXISTS idx_events_artifact_id ON events(artifact_id);
347
+ CREATE INDEX IF NOT EXISTS idx_events_network_id ON events(network_id);
348
+ CREATE INDEX IF NOT EXISTS idx_events_timestamp ON events(timestamp);
349
+ CREATE INDEX IF NOT EXISTS idx_events_file_path ON events(file_path);
350
+ CREATE INDEX IF NOT EXISTS idx_events_global_offset ON events(global_offset);
351
+ CREATE INDEX IF NOT EXISTS idx_events_sequence ON events(correlation_id, sequence_number, kind);
352
+ `);
353
+ }
298
354
  }
299
355
  ];
300
356
  //# sourceMappingURL=migrations.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrations.js","sourceRoot":"","sources":["../src/migrations.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ import { HardkasStore } from "./db.js";
2
+ /**
3
+ * What a projection holds and how it is keyed. Any change to that meaning (the indexed set, the event key) bumps it, and a
4
+ * projection built under another contract is stale until it is rebuilt.
5
+ */
6
+ export declare const PROJECTION_CONTRACT = "wa1-v1";
7
+ export type ProjectionState = "fresh" | "stale" | "absent" | "unreadable";
8
+ export interface ProjectionStatus {
9
+ /** fresh: built from exactly the current authority · stale: the authority changed since, or freshness cannot be shown ·
10
+ * absent: no projection (no file, or a file that holds none) · unreadable: a file that cannot be read as one. */
11
+ state: ProjectionState;
12
+ dbPath: string;
13
+ reason: string;
14
+ /** When the projection was last indexed, as it records it. */
15
+ indexedAt?: string | null;
16
+ }
17
+ export declare function projectionDbPath(workspaceRoot: string): string;
18
+ /**
19
+ * The authority a projection derives from, as one deterministic digest: every file of the artifact store the resolver
20
+ * reads (its store path and the sha-256 of its bytes, in the resolver's sorted order) and the event ledger (its size and
21
+ * the sha-256 of its bytes). Two states share it only when they hold byte-identical files at the same store paths and a
22
+ * byte-identical ledger, so no count or timestamp coincidence can pass for freshness.
23
+ */
24
+ export declare function computeAuthorityFingerprint(workspaceRoot: string): string;
25
+ /** Records, inside the caller's transaction, which authority a full rebuild or sync derived the projection from. */
26
+ export declare function recordProjectionAuthority(db: any, fingerprint: string): void;
27
+ /** The state of an open projection against the workspace it belongs to (reads only). */
28
+ export declare function projectionStatusOf(store: HardkasStore, workspaceRoot: string): ProjectionStatus;
29
+ /** The projection's state without creating, migrating or keeping anything open. */
30
+ export declare function readProjectionStatus(workspaceRoot: string, dbPath?: string): ProjectionStatus;
31
+ //# sourceMappingURL=projection-status.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection-status.d.ts","sourceRoot":"","sources":["../src/projection-status.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAMvC;;;GAGG;AACH,eAAO,MAAM,mBAAmB,WAAW,CAAC;AAE5C,MAAM,MAAM,eAAe,GAAG,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,YAAY,CAAC;AAE1E,MAAM,WAAW,gBAAgB;IAC/B;qHACiH;IACjH,KAAK,EAAE,eAAe,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,8DAA8D;IAC9D,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,wBAAgB,gBAAgB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAE9D;AAID;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAoBzE;AAED,oHAAoH;AACpH,wBAAgB,yBAAyB,CAAC,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,MAAM,GAAG,IAAI,CAI5E;AAED,wFAAwF;AACxF,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,GAAG,gBAAgB,CA+B/F;AAED,mFAAmF;AACnF,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,EAAE,MAAM,GAAE,MAAwC,GAAG,gBAAgB,CAa9H"}
@@ -0,0 +1,106 @@
1
+ import fs from "node:fs";
2
+ import path from "node:path";
3
+ import crypto from "node:crypto";
4
+ import { listWorkspaceStoreFilesSync } from "@hardkas/artifacts";
5
+ import { eventLedgerPath } from "@hardkas/core";
6
+ import { HardkasStore } from "./db.js";
7
+ // WORKSPACE-AUTHORITY-1 · WA-I2: a projection (.hardkas/store.db) is derived state. It never becomes the truth merely
8
+ // because the file exists: it answers only when it is proven current with the authority it was built from — the
9
+ // workspace's canonical artifact entries (as the verified resolver enumerates them) and its event ledger.
10
+ /**
11
+ * What a projection holds and how it is keyed. Any change to that meaning (the indexed set, the event key) bumps it, and a
12
+ * projection built under another contract is stale until it is rebuilt.
13
+ */
14
+ export const PROJECTION_CONTRACT = "wa1-v1";
15
+ export function projectionDbPath(workspaceRoot) {
16
+ return path.join(workspaceRoot, ".hardkas", "store.db");
17
+ }
18
+ const sha256 = (bytes) => crypto.createHash("sha256").update(bytes).digest("hex");
19
+ /**
20
+ * The authority a projection derives from, as one deterministic digest: every file of the artifact store the resolver
21
+ * reads (its store path and the sha-256 of its bytes, in the resolver's sorted order) and the event ledger (its size and
22
+ * the sha-256 of its bytes). Two states share it only when they hold byte-identical files at the same store paths and a
23
+ * byte-identical ledger, so no count or timestamp coincidence can pass for freshness.
24
+ */
25
+ export function computeAuthorityFingerprint(workspaceRoot) {
26
+ const digest = crypto.createHash("sha256");
27
+ digest.update(`${PROJECTION_CONTRACT}\n`);
28
+ for (const entry of listWorkspaceStoreFilesSync(workspaceRoot)) {
29
+ let bytes;
30
+ try {
31
+ bytes = fs.readFileSync(entry.path);
32
+ }
33
+ catch {
34
+ continue; // gone since it was listed: not part of the authority any more
35
+ }
36
+ digest.update(`artifact\0${entry.relativeSubpath}\0${sha256(bytes)}\n`);
37
+ }
38
+ let ledger;
39
+ try {
40
+ ledger = fs.readFileSync(eventLedgerPath(workspaceRoot));
41
+ }
42
+ catch {
43
+ ledger = undefined;
44
+ }
45
+ digest.update(ledger ? `ledger\0${ledger.length}\0${sha256(ledger)}\n` : "ledger\0absent\n");
46
+ return digest.digest("hex");
47
+ }
48
+ /** Records, inside the caller's transaction, which authority a full rebuild or sync derived the projection from. */
49
+ export function recordProjectionAuthority(db, fingerprint) {
50
+ const put = db.prepare("INSERT OR REPLACE INTO metadata (key, value) VALUES (?, ?)");
51
+ put.run("projection_contract", PROJECTION_CONTRACT);
52
+ put.run("authority_fingerprint", fingerprint);
53
+ }
54
+ /** The state of an open projection against the workspace it belongs to (reads only). */
55
+ export function projectionStatusOf(store, workspaceRoot) {
56
+ const dbPath = store.path;
57
+ let meta;
58
+ try {
59
+ const rows = store
60
+ .getDatabase()
61
+ .prepare("SELECT key, value FROM metadata WHERE key IN ('projection_contract', 'authority_fingerprint', 'last_indexed_at')")
62
+ .all();
63
+ meta = Object.fromEntries(rows.map((r) => [r.key, r.value]));
64
+ }
65
+ catch (err) {
66
+ const message = err instanceof Error ? err.message : String(err);
67
+ if (/no such table/i.test(message)) {
68
+ return { state: "absent", dbPath, reason: "the file holds no projection (it was never built)" };
69
+ }
70
+ return { state: "unreadable", dbPath, reason: message };
71
+ }
72
+ const indexedAt = meta.last_indexed_at ?? null;
73
+ if (!meta.authority_fingerprint) {
74
+ return { state: "stale", dbPath, indexedAt, reason: "it records no authority it was built from; rebuild it to establish freshness" };
75
+ }
76
+ if (meta.projection_contract !== PROJECTION_CONTRACT) {
77
+ return {
78
+ state: "stale",
79
+ dbPath,
80
+ indexedAt,
81
+ reason: `it was built under projection contract ${meta.projection_contract ?? "(none)"}, this HardKAS reads ${PROJECTION_CONTRACT}; rebuild it`
82
+ };
83
+ }
84
+ return meta.authority_fingerprint === computeAuthorityFingerprint(workspaceRoot)
85
+ ? { state: "fresh", dbPath, indexedAt, reason: "built from exactly the workspace's current artifacts and event ledger" }
86
+ : { state: "stale", dbPath, indexedAt, reason: "the workspace's artifacts or event ledger changed after it was built" };
87
+ }
88
+ /** The projection's state without creating, migrating or keeping anything open. */
89
+ export function readProjectionStatus(workspaceRoot, dbPath = projectionDbPath(workspaceRoot)) {
90
+ let store;
91
+ try {
92
+ store = HardkasStore.openExisting(dbPath);
93
+ }
94
+ catch (err) {
95
+ return { state: "unreadable", dbPath, reason: err instanceof Error ? err.message : String(err) };
96
+ }
97
+ if (!store)
98
+ return { state: "absent", dbPath, reason: "there is no projection file; queries read the workspace" };
99
+ try {
100
+ return projectionStatusOf(store, workspaceRoot);
101
+ }
102
+ finally {
103
+ store.disconnect();
104
+ }
105
+ }
106
+ //# sourceMappingURL=projection-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection-status.js","sourceRoot":"","sources":["../src/projection-status.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hardkas/query-store",
3
- "version": "0.12.0-rc.25",
3
+ "version": "0.12.0-rc.27",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -12,12 +12,11 @@
12
12
  }
13
13
  },
14
14
  "dependencies": {
15
- "@hardkas/artifacts": "0.12.0-rc.25",
16
- "@hardkas/core": "0.12.0-rc.25"
15
+ "@hardkas/artifacts": "0.12.0-rc.27",
16
+ "@hardkas/core": "0.12.0-rc.27"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@types/node": "^22.10.0",
20
- "tsup": "^8.3.5",
21
20
  "tsx": "^4.19.2",
22
21
  "typescript": "^5.7.2",
23
22
  "vitest": "^2.1.8"