@hardkas/query-store 0.9.0-alpha → 0.9.1-alpha

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
@@ -1,33 +1,38 @@
1
- # `@hardkas/query-store`
2
-
3
- The Query Store is a rebuildable, heavily indexed SQLite projection of the `.hardkas/` workspace. It provides fast reads for CLI and Dashboard interactions without scanning thousands of JSON files.
4
-
5
- ## 1. Indexing Architecture
6
-
7
- The query store relies *entirely* on the filesystem (`artifacts/` and `events.jsonl`). The SQLite database itself is treated as ephemeral and rebuildable.
8
-
9
- ### Flow: Incremental Sync (`hardkas query store sync`)
10
- 1. The engine queries the current `MAX(eventId)` in the SQLite `events` table.
11
- 2. It opens `events.jsonl` and streams only lines where `id > MAX`.
12
- 3. It batch-inserts the new events in a single SQLite transaction to prevent corruption on crash.
13
- 4. It scans `artifacts/` for files newer than the last sync timestamp and updates the `artifacts` table.
14
-
15
- ### Variant: Full Rebuild (`hardkas rebuild --from-artifacts`)
16
- If the SQLite file is deleted, corrupted, or schema migrations fail:
17
- 1. The SQLite file is purged.
18
- 2. `events.jsonl` is streamed from line 1.
19
- 3. `artifacts/` is traversed deeply.
20
- 4. The database is rebuilt from scratch, proving the mathematical determinism of the runtime.
21
-
22
- ## 2. Diagnostic Flows
23
-
24
- Because the SQLite file is an ephemeral projection, it can diverge from the artifacts layer if a process is violently killed.
25
-
26
- ### Flow: Store Doctor (`hardkas query store doctor`)
27
- 1. Verifies the SQLite schema version against the current SDK version.
28
- 2. Runs `PRAGMA integrity_check`.
29
- 3. Counts rows in SQLite and compares them against the line count in `events.jsonl`.
30
- 4. If discrepancies are found, it prompts the user to run `sync` or `rebuild`.
31
-
32
- ### Variant: Silent Migration (`--migrate`)
33
- If the schema is outdated (e.g., v3 to v4 after updating the HardKAS package), the `--migrate` flag triggers deterministic SQL `ALTER TABLE` statements. If a migration fails mid-way, the transaction rolls back, and the `Store Doctor` automatically triggers a Full Rebuild to ensure consistency.
1
+ # `@hardkas/query-store`
2
+
3
+ The Query Store is a rebuildable, heavily indexed SQLite projection of the `.hardkas/` workspace. It provides fast reads for CLI and Dashboard interactions without scanning thousands of JSON files.
4
+
5
+ ## 1. Indexing Architecture
6
+
7
+ The query store relies _entirely_ on the filesystem (`artifacts/` and `events.jsonl`). The SQLite database itself is treated as ephemeral and rebuildable.
8
+
9
+ ### Flow: Incremental Sync (`hardkas query store sync`)
10
+
11
+ 1. The engine queries the current `MAX(eventId)` in the SQLite `events` table.
12
+ 2. It opens `events.jsonl` and streams only lines where `id > MAX`.
13
+ 3. It batch-inserts the new events in a single SQLite transaction to prevent corruption on crash.
14
+ 4. It scans `artifacts/` for files newer than the last sync timestamp and updates the `artifacts` table.
15
+
16
+ ### Variant: Full Rebuild (`hardkas rebuild --from-artifacts`)
17
+
18
+ If the SQLite file is deleted, corrupted, or schema migrations fail:
19
+
20
+ 1. The SQLite file is purged.
21
+ 2. `events.jsonl` is streamed from line 1.
22
+ 3. `artifacts/` is traversed deeply.
23
+ 4. The database is rebuilt from scratch, proving the mathematical determinism of the runtime.
24
+
25
+ ## 2. Diagnostic Flows
26
+
27
+ Because the SQLite file is an ephemeral projection, it can diverge from the artifacts layer if a process is violently killed.
28
+
29
+ ### Flow: Store Doctor (`hardkas query store doctor`)
30
+
31
+ 1. Verifies the SQLite schema version against the current SDK version.
32
+ 2. Runs `PRAGMA integrity_check`.
33
+ 3. Counts rows in SQLite and compares them against the line count in `events.jsonl`.
34
+ 4. If discrepancies are found, it prompts the user to run `sync` or `rebuild`.
35
+
36
+ ### Variant: Silent Migration (`--migrate`)
37
+
38
+ If the schema is outdated (e.g., v3 to v4 after updating the HardKAS package), the `--migrate` flag triggers deterministic SQL `ALTER TABLE` statements. If a migration fails mid-way, the transaction rolls back, and the `Store Doctor` automatically triggers a Full Rebuild to ensure consistency.
package/dist/backend.d.ts CHANGED
@@ -114,7 +114,10 @@ export interface QueryBackend {
114
114
  * que puede retornar `any[]` de forma intencional (SQLite devuelve filas genéricas).
115
115
  * Todos los llamadores DEBEN validar el output estrictamente en runtime mediante guards.
116
116
  */
117
- executeRawSql(sql: string): Promise<any[]>;
117
+ executeRawSql(sql: string, options?: {
118
+ unsafeWrite?: boolean;
119
+ yes?: boolean;
120
+ }): Promise<any[]>;
118
121
  findReceipts(filters?: {
119
122
  status?: string;
120
123
  networkId?: string;
@@ -166,6 +169,13 @@ export declare class SqliteQueryBackend implements QueryBackend {
166
169
  strict?: boolean;
167
170
  cwd?: string;
168
171
  }): Promise<any>;
169
- executeRawSql(sql: string): Promise<any[]>;
172
+ executeRawSql(sql: string, options?: {
173
+ unsafeWrite?: boolean;
174
+ yes?: boolean;
175
+ }): Promise<any[]>;
170
176
  }
177
+ export declare function classifySqlSafety(sql: string): {
178
+ kind: "read" | "write" | "unknown";
179
+ reason?: string;
180
+ };
171
181
  //# sourceMappingURL=backend.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.d.ts","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
package/dist/backend.js CHANGED
@@ -1,3 +1,4 @@
1
+ import { HardkasSchemas } from "@hardkas/artifacts";
1
2
  export class SqliteQueryBackend {
2
3
  store;
3
4
  constructor(store) {
@@ -120,12 +121,12 @@ export class SqliteQueryBackend {
120
121
  }));
121
122
  }
122
123
  async findReceipts(filters) {
123
- return this.findArtifacts({ schema: "hardkas.txReceipt", ...filters });
124
+ return this.findArtifacts({ schema: HardkasSchemas.TxReceipt, ...filters });
124
125
  }
125
126
  async findTraces(filters) {
126
127
  const db = this.store.getDatabase();
127
- let query = "SELECT * FROM artifacts WHERE schema = 'hardkas.txTrace'";
128
- const params = [];
128
+ let query = "SELECT * FROM artifacts WHERE schema = ?";
129
+ const params = [HardkasSchemas.TxTrace];
129
130
  if (filters?.txId) {
130
131
  query += " AND tx_id = ?";
131
132
  params.push(filters.txId);
@@ -185,9 +186,86 @@ export class SqliteQueryBackend {
185
186
  const indexer = new HardkasIndexer(this.store.getDatabase(), options);
186
187
  return indexer.syncPaths(paths);
187
188
  }
188
- async executeRawSql(sql) {
189
+ executeRawSql(sql, options) {
190
+ const classification = classifySqlSafety(sql);
191
+ if (classification.kind === "write" || classification.kind === "unknown") {
192
+ if (!options?.unsafeWrite && !options?.yes) {
193
+ throw new Error("QUERY_STORE_READ_ONLY_VIOLATION: Query store is a derived projection. Artifacts are the source of truth. Mutation may corrupt projections. Use --unsafe-write and --yes to intentionally proceed.");
194
+ }
195
+ if (options?.unsafeWrite && !options?.yes) {
196
+ throw new Error("QUERY_STORE_WRITE_REQUIRES_YES: Query store is a derived projection. Artifacts are the source of truth. Mutation may corrupt projections. Use --yes to intentionally proceed.");
197
+ }
198
+ if (!options?.unsafeWrite && options?.yes) {
199
+ throw new Error("QUERY_STORE_WRITE_REQUIRES_UNSAFE_WRITE: Query store is a derived projection. Artifacts are the source of truth. Mutation may corrupt projections. Use --unsafe-write to intentionally proceed.");
200
+ }
201
+ }
189
202
  const db = this.store.getDatabase();
190
- return db.prepare(sql).all();
203
+ // SQLite has a readonly setting when opening the connection, but better-sqlite3
204
+ // opens a single connection for the whole app. We enforce lexical guards.
205
+ // To support multiple statements or writes, if unsafe is permitted, we use db.exec or db.prepare appropriately.
206
+ try {
207
+ if (classification.kind === "write" || classification.kind === "unknown") {
208
+ if (sql.includes(';')) {
209
+ db.exec(sql);
210
+ return Promise.resolve([]);
211
+ }
212
+ else {
213
+ const stmt = db.prepare(sql);
214
+ return Promise.resolve(stmt.all());
215
+ }
216
+ }
217
+ else {
218
+ const stmt = db.prepare(sql);
219
+ return Promise.resolve(stmt.all());
220
+ }
221
+ }
222
+ catch (e) {
223
+ if (e.message.includes('cannot execute multiple statements')) {
224
+ throw new Error("QUERY_STORE_READ_ONLY_VIOLATION: Multiple statements detected and blocked by default.");
225
+ }
226
+ throw e;
227
+ }
228
+ }
229
+ }
230
+ export function classifySqlSafety(sql) {
231
+ // 1. Remove multi-line comments /* ... */
232
+ let cleanSql = sql.replace(new RegExp("/\\*[\\s\\S]*?\\*/", "g"), "");
233
+ // 2. Remove single-line comments -- ...
234
+ cleanSql = cleanSql.replace(/--.*$/gm, "");
235
+ // 3. Trim
236
+ cleanSql = cleanSql.trim().toUpperCase();
237
+ if (!cleanSql) {
238
+ return { kind: "unknown", reason: "Empty query" };
239
+ }
240
+ // 4. Multiple statements check
241
+ // Just a simple check for semicolons that aren't at the very end
242
+ const statements = cleanSql.split(';').map(s => s.trim()).filter(s => s.length > 0);
243
+ if (statements.length > 1) {
244
+ return { kind: "unknown", reason: "Multiple statements detected" };
245
+ }
246
+ const firstTokenMatch = cleanSql.match(/^([A-Z]+)/);
247
+ if (!firstTokenMatch) {
248
+ return { kind: "unknown", reason: "Could not identify first token" };
249
+ }
250
+ const firstToken = firstTokenMatch[1];
251
+ // Common safe read starts
252
+ if (firstToken === "SELECT" || firstToken === "EXPLAIN" || firstToken === "PRAGMA") {
253
+ // PRAGMA can be mutating (e.g. PRAGMA user_version = 1), but let's do a deeper check
254
+ if (cleanSql.includes("INSERT ") || cleanSql.includes("UPDATE ") || cleanSql.includes("DELETE ") ||
255
+ cleanSql.includes("DROP ") || cleanSql.includes("ALTER ") || cleanSql.includes("CREATE ") ||
256
+ cleanSql.includes("REPLACE ") || cleanSql.includes("TRUNCATE ") || cleanSql.includes("VACUUM ") ||
257
+ cleanSql.includes("ATTACH ") || cleanSql.includes("DETACH ") || cleanSql.includes("INTO ")) {
258
+ return { kind: "write", reason: "Found mutating keyword" };
259
+ }
260
+ return { kind: "read" };
261
+ }
262
+ if (firstToken === "WITH") {
263
+ // WITH ... SELECT ...
264
+ if (cleanSql.includes("INSERT ") || cleanSql.includes("UPDATE ") || cleanSql.includes("DELETE ")) {
265
+ return { kind: "write", reason: "Mutating CTE" };
266
+ }
267
+ return { kind: "read" };
191
268
  }
269
+ return { kind: "write", reason: "Unrecognized or explicitly mutating first token" };
192
270
  }
193
271
  //# sourceMappingURL=backend.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"backend.js","sourceRoot":"","sources":["../src/backend.ts"],"names":[],"mappings":"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"}
package/dist/indexer.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { HardkasSchemas } from "@hardkas/artifacts";
1
2
  import { type CorruptionIssue } from "@hardkas/core";
2
3
  export interface IndexerOptions {
3
4
  cwd?: string;
@@ -10,7 +11,7 @@ export interface SyncStats {
10
11
  corrupted: number;
11
12
  }
12
13
  export interface SyncResult {
13
- schema: "hardkas.queryRebuild.v1";
14
+ schema: typeof HardkasSchemas.QueryRebuildV1;
14
15
  ok: boolean;
15
16
  artifacts: SyncStats;
16
17
  events: SyncStats;
@@ -1 +1 @@
1
- {"version":3,"file":"indexer.d.ts","sourceRoot":"","sources":["../src/indexer.ts"],"names":[],"mappings":"AAMA,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,yBAAyB,CAAC;IAClC,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;IAsC3C,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACI,MAAM,IAAI,YAAY;IAoH7B;;;OAGG;IACH,OAAO,CAAC,YAAY;YAaN,aAAa;IA2K3B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAmE3B,OAAO,CAAC,UAAU;IA+FlB,OAAO,CAAC,UAAU;IAmClB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,IAAI;CAsFb"}
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;IAsC3C,OAAO,CAAC,aAAa;IAcrB;;OAEG;IACI,MAAM,IAAI,YAAY;IAoH7B;;;OAGG;IACH,OAAO,CAAC,YAAY;YAaN,aAAa;IA4K3B;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAmE3B,OAAO,CAAC,UAAU;IA+FlB,OAAO,CAAC,UAAU;IAmClB,OAAO,CAAC,cAAc;IAyBtB,OAAO,CAAC,IAAI;CAsFb"}
package/dist/indexer.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import fs from "node:fs";
2
2
  import path from "node:path";
3
+ import { HardkasSchemas } from "@hardkas/artifacts";
3
4
  import { createRequire } from "node:module";
4
5
  const require = createRequire(import.meta.url);
5
6
  const { DatabaseSync } = require("node:sqlite");
@@ -20,7 +21,7 @@ export class HardkasIndexer {
20
21
  */
21
22
  async sync() {
22
23
  const result = {
23
- schema: "hardkas.queryRebuild.v1",
24
+ schema: HardkasSchemas.QueryRebuildV1,
24
25
  ok: true,
25
26
  artifacts: { scanned: 0, indexed: 0, duplicates: 0, corrupted: 0 },
26
27
  events: { scanned: 0, indexed: 0, duplicates: 0, corrupted: 0 },
@@ -82,7 +83,7 @@ export class HardkasIndexer {
82
83
  */
83
84
  async syncPaths(paths) {
84
85
  const result = {
85
- schema: "hardkas.queryRebuild.v1",
86
+ schema: HardkasSchemas.QueryRebuildV1,
86
87
  ok: true,
87
88
  artifacts: { scanned: 0, indexed: 0, duplicates: 0, corrupted: 0 },
88
89
  events: { scanned: 0, indexed: 0, duplicates: 0, corrupted: 0 },
@@ -116,7 +117,7 @@ export class HardkasIndexer {
116
117
  */
117
118
  async rebuild() {
118
119
  const result = {
119
- schema: "hardkas.queryRebuild.v1",
120
+ schema: HardkasSchemas.QueryRebuildV1,
120
121
  ok: true,
121
122
  artifacts: { scanned: 0, indexed: 0, duplicates: 0, corrupted: 0 },
122
123
  events: { scanned: 0, indexed: 0, duplicates: 0, corrupted: 0 },
@@ -197,31 +198,31 @@ export class HardkasIndexer {
197
198
  }
198
199
  // 3. Check for orphan edges
199
200
  const orphans = this.db
200
- .prepare(`
201
- SELECT COUNT(*) as count FROM lineage_edges
202
- WHERE parent_artifact_id NOT IN (SELECT artifact_id FROM artifacts)
203
- OR child_artifact_id NOT IN (SELECT artifact_id FROM artifacts)
201
+ .prepare(`
202
+ SELECT COUNT(*) as count FROM lineage_edges
203
+ WHERE parent_artifact_id NOT IN (SELECT artifact_id FROM artifacts)
204
+ OR child_artifact_id NOT IN (SELECT artifact_id FROM artifacts)
204
205
  `)
205
206
  .get();
206
207
  report.orphanEdges = orphans.count;
207
208
  // 4. Duplicate projections (tx_id should be unique for specific schemas like receipts)
208
209
  const duplicateProjections = this.db
209
- .prepare(`
210
- SELECT COUNT(*) as count FROM (
211
- SELECT tx_id FROM artifacts WHERE tx_id IS NOT NULL AND schema LIKE '%txReceipt%' GROUP BY tx_id HAVING COUNT(*) > 1
212
- )
210
+ .prepare(`
211
+ SELECT COUNT(*) as count FROM (
212
+ SELECT tx_id FROM artifacts WHERE tx_id IS NOT NULL AND schema LIKE '%txReceipt%' GROUP BY tx_id HAVING COUNT(*) > 1
213
+ )
213
214
  `)
214
215
  .get();
215
216
  report.duplicateProjections = duplicateProjections.count;
216
217
  // 5. Broken replay dependencies
217
218
  const brokenReplayDeps = this.db
218
- .prepare(`
219
- SELECT COUNT(*) as count FROM artifacts a
220
- LEFT JOIN artifacts target ON target.tx_id = json_extract(a.raw_json, '$.payload.txId')
221
- WHERE a.schema = 'hardkas.replayReport.v1'
222
- AND target.artifact_id IS NULL
219
+ .prepare(`
220
+ SELECT COUNT(*) as count FROM artifacts a
221
+ LEFT JOIN artifacts target ON target.tx_id = json_extract(a.raw_json, '$.payload.txId')
222
+ WHERE a.schema = ?
223
+ AND target.artifact_id IS NULL
223
224
  `)
224
- .get();
225
+ .get(HardkasSchemas.ReplayReportV1);
225
226
  report.brokenReplayDependencies = brokenReplayDeps.count;
226
227
  // Also check for corrupted artifacts in the database
227
228
  const corruptedRows = this.db
@@ -230,19 +231,19 @@ export class HardkasIndexer {
230
231
  report.corruptedFiles = corruptedRows.map((r) => r.file_path);
231
232
  // 6. Duplicate Event Sequences (should be prevented by DB constraints, but good to verify)
232
233
  const duplicateSequences = this.db
233
- .prepare(`
234
- SELECT COUNT(*) as count FROM (
235
- SELECT correlation_id, sequence_number, kind FROM events
236
- GROUP BY correlation_id, sequence_number, kind HAVING COUNT(*) > 1
237
- )
234
+ .prepare(`
235
+ SELECT COUNT(*) as count FROM (
236
+ SELECT correlation_id, sequence_number, kind FROM events
237
+ GROUP BY correlation_id, sequence_number, kind HAVING COUNT(*) > 1
238
+ )
238
239
  `)
239
240
  .get();
240
241
  report.duplicateEventSequences = duplicateSequences.count;
241
242
  // 7. Orphan Events (events causing actions but missing root causation/workflow if required)
242
243
  const orphanEvents = this.db
243
- .prepare(`
244
- SELECT COUNT(*) as count FROM events e
245
- WHERE e.causation_id IS NOT NULL AND e.causation_id NOT IN (SELECT event_id FROM events)
244
+ .prepare(`
245
+ SELECT COUNT(*) as count FROM events e
246
+ WHERE e.causation_id IS NOT NULL AND e.causation_id NOT IN (SELECT event_id FROM events)
246
247
  `)
247
248
  .get();
248
249
  report.orphanEvents = orphanEvents.count;
@@ -283,27 +284,27 @@ export class HardkasIndexer {
283
284
  .sort()
284
285
  : this.walk(this.hardkasDir).sort();
285
286
  const indexedAt = new Date().toISOString(); // hardkas-determinism-allow: index time metadata
286
- const upsertArtifact = this.db.prepare(`
287
- INSERT INTO artifacts
288
- (artifact_id, content_hash, schema, version, kind, mode, network_id, tx_id, created_at, raw_json, file_path, file_mtime_ms, indexed_at)
289
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
290
- ON CONFLICT(artifact_id) DO UPDATE SET
291
- content_hash = excluded.content_hash,
292
- schema = excluded.schema,
293
- version = excluded.version,
294
- kind = excluded.kind,
295
- mode = excluded.mode,
296
- network_id = excluded.network_id,
297
- tx_id = excluded.tx_id,
298
- created_at = excluded.created_at,
299
- raw_json = excluded.raw_json,
300
- file_path = excluded.file_path,
301
- file_mtime_ms = excluded.file_mtime_ms,
302
- indexed_at = excluded.indexed_at
287
+ const upsertArtifact = this.db.prepare(`
288
+ INSERT INTO artifacts
289
+ (artifact_id, content_hash, schema, version, kind, mode, network_id, tx_id, created_at, raw_json, file_path, file_mtime_ms, indexed_at)
290
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
291
+ ON CONFLICT(artifact_id) DO UPDATE SET
292
+ content_hash = excluded.content_hash,
293
+ schema = excluded.schema,
294
+ version = excluded.version,
295
+ kind = excluded.kind,
296
+ mode = excluded.mode,
297
+ network_id = excluded.network_id,
298
+ tx_id = excluded.tx_id,
299
+ created_at = excluded.created_at,
300
+ raw_json = excluded.raw_json,
301
+ file_path = excluded.file_path,
302
+ file_mtime_ms = excluded.file_mtime_ms,
303
+ indexed_at = excluded.indexed_at
303
304
  `);
304
- const insertEdge = this.db.prepare(`
305
- INSERT OR REPLACE INTO lineage_edges (lineage_id, parent_artifact_id, child_artifact_id, edge_kind, created_at)
306
- VALUES (?, ?, ?, ?, ?)
305
+ const insertEdge = this.db.prepare(`
306
+ INSERT OR REPLACE INTO lineage_edges (lineage_id, parent_artifact_id, child_artifact_id, edge_kind, created_at)
307
+ VALUES (?, ?, ?, ?, ?)
307
308
  `);
308
309
  const artifactsToLink = [];
309
310
  let skipped = 0;
@@ -399,10 +400,10 @@ export class HardkasIndexer {
399
400
  // Wipe and rebuild closure from edges (idempotent)
400
401
  this.db.exec("DELETE FROM lineage_closure;");
401
402
  // Direct edges: depth 1
402
- this.db.exec(`
403
- INSERT OR IGNORE INTO lineage_closure (ancestor_id, descendant_id, depth, created_at)
404
- SELECT parent_artifact_id, child_artifact_id, 1, created_at
405
- FROM lineage_edges;
403
+ this.db.exec(`
404
+ INSERT OR IGNORE INTO lineage_closure (ancestor_id, descendant_id, depth, created_at)
405
+ SELECT parent_artifact_id, child_artifact_id, 1, created_at
406
+ FROM lineage_edges;
406
407
  `);
407
408
  // Transitive closure: iterate until no new rows are added
408
409
  let added = 1;
@@ -411,16 +412,16 @@ export class HardkasIndexer {
411
412
  while (added > 0 && currentDepth < maxDepth) {
412
413
  currentDepth++;
413
414
  const insertResult = this.db
414
- .prepare(`
415
- INSERT OR IGNORE INTO lineage_closure (ancestor_id, descendant_id, depth, created_at)
416
- SELECT c1.ancestor_id, c2.descendant_id, ? , c2.created_at
417
- FROM lineage_closure c1
418
- JOIN lineage_closure c2 ON c1.descendant_id = c2.ancestor_id
419
- WHERE c1.depth = ? - 1
420
- AND NOT EXISTS (
421
- SELECT 1 FROM lineage_closure existing
422
- WHERE existing.ancestor_id = c1.ancestor_id AND existing.descendant_id = c2.descendant_id
423
- )
415
+ .prepare(`
416
+ INSERT OR IGNORE INTO lineage_closure (ancestor_id, descendant_id, depth, created_at)
417
+ SELECT c1.ancestor_id, c2.descendant_id, ? , c2.created_at
418
+ FROM lineage_closure c1
419
+ JOIN lineage_closure c2 ON c1.descendant_id = c2.ancestor_id
420
+ WHERE c1.depth = ? - 1
421
+ AND NOT EXISTS (
422
+ SELECT 1 FROM lineage_closure existing
423
+ WHERE existing.ancestor_id = c1.ancestor_id AND existing.descendant_id = c2.descendant_id
424
+ )
424
425
  `)
425
426
  .run(currentDepth, currentDepth);
426
427
  added = insertResult.changes;
@@ -450,26 +451,26 @@ export class HardkasIndexer {
450
451
  const indexedAt = new Date().toISOString(); // hardkas-determinism-allow: index time metadata
451
452
  const content = fs.readFileSync(eventsPath, "utf-8");
452
453
  const lines = content.split("\n");
453
- const upsertEvent = this.db.prepare(`
454
- INSERT INTO events
455
- (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)
456
- VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
457
- ON CONFLICT(correlation_id, sequence_number, kind) DO UPDATE SET
458
- event_id = excluded.event_id,
459
- domain = excluded.domain,
460
- timestamp = excluded.timestamp,
461
- emitted_at = excluded.emitted_at,
462
- workflow_id = excluded.workflow_id,
463
- causation_id = excluded.causation_id,
464
- tx_id = excluded.tx_id,
465
- artifact_id = excluded.artifact_id,
466
- network_id = excluded.network_id,
467
- global_offset = excluded.global_offset,
468
- source_subsystem = excluded.source_subsystem,
469
- raw_json = excluded.raw_json,
470
- file_path = excluded.file_path,
471
- file_mtime_ms = excluded.file_mtime_ms,
472
- indexed_at = excluded.indexed_at
454
+ const upsertEvent = this.db.prepare(`
455
+ INSERT INTO events
456
+ (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)
457
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)
458
+ ON CONFLICT(correlation_id, sequence_number, kind) DO UPDATE SET
459
+ event_id = excluded.event_id,
460
+ domain = excluded.domain,
461
+ timestamp = excluded.timestamp,
462
+ emitted_at = excluded.emitted_at,
463
+ workflow_id = excluded.workflow_id,
464
+ causation_id = excluded.causation_id,
465
+ tx_id = excluded.tx_id,
466
+ artifact_id = excluded.artifact_id,
467
+ network_id = excluded.network_id,
468
+ global_offset = excluded.global_offset,
469
+ source_subsystem = excluded.source_subsystem,
470
+ raw_json = excluded.raw_json,
471
+ file_path = excluded.file_path,
472
+ file_mtime_ms = excluded.file_mtime_ms,
473
+ indexed_at = excluded.indexed_at
473
474
  `);
474
475
  for (let i = 0; i < lines.length; i++) {
475
476
  const line = lines[i].trim();
@@ -515,35 +516,35 @@ export class HardkasIndexer {
515
516
  }
516
517
  }
517
518
  syncTraces() {
518
- const upsertTrace = this.db.prepare(`
519
- INSERT INTO traces (trace_id, workflow_id, root_event_id, status, started_at, ended_at)
520
- SELECT
521
- 'trace-' || workflow_id as trace_id,
522
- workflow_id,
523
- event_id as root_event_id,
524
- CASE
525
- WHEN kind = 'workflow.completed' THEN 'completed'
526
- WHEN kind = 'workflow.failed' THEN 'failed'
527
- ELSE 'running'
528
- END as status,
529
- timestamp as started_at,
530
- CASE
531
- WHEN kind IN ('workflow.completed', 'workflow.failed') THEN timestamp
532
- ELSE NULL
533
- END as ended_at
534
- FROM events
535
- WHERE kind LIKE 'workflow.%'
536
- ON CONFLICT(workflow_id) DO UPDATE SET
537
- status = CASE
538
- WHEN excluded.status IN ('completed', 'failed') THEN excluded.status
539
- ELSE traces.status
540
- END,
541
- ended_at = CASE
542
- WHEN excluded.status IN ('completed', 'failed') THEN excluded.ended_at
543
- ELSE traces.ended_at
544
- END,
545
- root_event_id = COALESCE(traces.root_event_id, excluded.root_event_id),
546
- started_at = COALESCE(traces.started_at, excluded.started_at)
519
+ const upsertTrace = this.db.prepare(`
520
+ INSERT INTO traces (trace_id, workflow_id, root_event_id, status, started_at, ended_at)
521
+ SELECT
522
+ 'trace-' || workflow_id as trace_id,
523
+ workflow_id,
524
+ event_id as root_event_id,
525
+ CASE
526
+ WHEN kind = 'workflow.completed' THEN 'completed'
527
+ WHEN kind = 'workflow.failed' THEN 'failed'
528
+ ELSE 'running'
529
+ END as status,
530
+ timestamp as started_at,
531
+ CASE
532
+ WHEN kind IN ('workflow.completed', 'workflow.failed') THEN timestamp
533
+ ELSE NULL
534
+ END as ended_at
535
+ FROM events
536
+ WHERE kind LIKE 'workflow.%'
537
+ ON CONFLICT(workflow_id) DO UPDATE SET
538
+ status = CASE
539
+ WHEN excluded.status IN ('completed', 'failed') THEN excluded.status
540
+ ELSE traces.status
541
+ END,
542
+ ended_at = CASE
543
+ WHEN excluded.status IN ('completed', 'failed') THEN excluded.ended_at
544
+ ELSE traces.ended_at
545
+ END,
546
+ root_event_id = COALESCE(traces.root_event_id, excluded.root_event_id),
547
+ started_at = COALESCE(traces.started_at, excluded.started_at)
547
548
  `);
548
549
  upsertTrace.run();
549
550
  }
@@ -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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"}
@@ -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.9.0-alpha).
39
+ * Version 1: Initial schema (Baseline 0.9.1-alpha).
40
40
  */
41
41
  export declare const MIGRATIONS: Migration[];
42
42
  //# sourceMappingURL=migrations.d.ts.map
@@ -11,13 +11,13 @@ export class MigrationRunner {
11
11
  * Ensures the migration history table exists.
12
12
  */
13
13
  ensureHistoryTable() {
14
- this.db.exec(`
15
- CREATE TABLE IF NOT EXISTS hardkas_migrations (
16
- version INTEGER PRIMARY KEY,
17
- name TEXT NOT NULL,
18
- checksum TEXT NOT NULL,
19
- applied_at TEXT NOT NULL
20
- );
14
+ this.db.exec(`
15
+ CREATE TABLE IF NOT EXISTS hardkas_migrations (
16
+ version INTEGER PRIMARY KEY,
17
+ name TEXT NOT NULL,
18
+ checksum TEXT NOT NULL,
19
+ applied_at TEXT NOT NULL
20
+ );
21
21
  `);
22
22
  }
23
23
  /**
@@ -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.9.0-alpha).
99
+ * Version 1: Initial schema (Baseline 0.9.1-alpha).
100
100
  */
101
101
  export const MIGRATIONS = [
102
102
  {
@@ -104,92 +104,92 @@ export const MIGRATIONS = [
104
104
  name: "initial_schema",
105
105
  checksum: "hardkas_v1_baseline",
106
106
  up: (db) => {
107
- db.exec(`
108
- CREATE TABLE IF NOT EXISTS metadata (
109
- key TEXT PRIMARY KEY,
110
- value TEXT NOT NULL
111
- );
112
-
113
- CREATE TABLE IF NOT EXISTS artifacts (
114
- artifact_id TEXT PRIMARY KEY,
115
- content_hash TEXT NOT NULL,
116
- schema TEXT NOT NULL,
117
- version TEXT NOT NULL,
118
- kind TEXT NOT NULL,
119
- mode TEXT NOT NULL DEFAULT 'unknown',
120
- network_id TEXT NOT NULL,
121
- tx_id TEXT,
122
- created_at TEXT,
123
- raw_json TEXT NOT NULL,
124
- file_path TEXT,
125
- file_mtime_ms INTEGER,
126
- indexed_at TEXT
127
- );
128
-
129
- CREATE INDEX IF NOT EXISTS idx_artifacts_content_hash ON artifacts(content_hash);
130
- CREATE INDEX IF NOT EXISTS idx_artifacts_schema ON artifacts(schema);
131
- CREATE INDEX IF NOT EXISTS idx_artifacts_kind ON artifacts(kind);
132
- CREATE INDEX IF NOT EXISTS idx_artifacts_mode ON artifacts(mode);
133
- CREATE INDEX IF NOT EXISTS idx_artifacts_network_id ON artifacts(network_id);
134
- CREATE INDEX IF NOT EXISTS idx_artifacts_tx_id ON artifacts(tx_id);
135
- CREATE INDEX IF NOT EXISTS idx_artifacts_created_at ON artifacts(created_at);
136
- CREATE INDEX IF NOT EXISTS idx_artifacts_file_path ON artifacts(file_path);
137
-
138
- CREATE TABLE IF NOT EXISTS lineage_edges (
139
- lineage_id TEXT NOT NULL,
140
- parent_artifact_id TEXT NOT NULL,
141
- child_artifact_id TEXT NOT NULL,
142
- edge_kind TEXT NOT NULL,
143
- created_at TEXT,
144
- PRIMARY KEY (parent_artifact_id, child_artifact_id),
145
- FOREIGN KEY (parent_artifact_id) REFERENCES artifacts(artifact_id) ON DELETE CASCADE,
146
- FOREIGN KEY (child_artifact_id) REFERENCES artifacts(artifact_id) ON DELETE CASCADE
147
- );
148
-
149
- CREATE INDEX IF NOT EXISTS idx_lineage_parent ON lineage_edges(parent_artifact_id);
150
- CREATE INDEX IF NOT EXISTS idx_lineage_child ON lineage_edges(child_artifact_id);
151
- CREATE INDEX IF NOT EXISTS idx_lineage_id ON lineage_edges(lineage_id);
152
-
153
- CREATE TABLE IF NOT EXISTS events (
154
- event_id TEXT PRIMARY KEY,
155
- kind TEXT NOT NULL,
156
- domain TEXT NOT NULL,
157
- timestamp TEXT,
158
- workflow_id TEXT NOT NULL,
159
- correlation_id TEXT NOT NULL,
160
- causation_id TEXT,
161
- tx_id TEXT,
162
- artifact_id TEXT,
163
- network_id TEXT NOT NULL,
164
- raw_json TEXT NOT NULL,
165
- file_path TEXT,
166
- file_mtime_ms INTEGER,
167
- indexed_at TEXT
168
- );
169
-
170
- CREATE INDEX IF NOT EXISTS idx_events_kind ON events(kind);
171
- CREATE INDEX IF NOT EXISTS idx_events_domain ON events(domain);
172
- CREATE INDEX IF NOT EXISTS idx_events_workflow_id ON events(workflow_id);
173
- CREATE INDEX IF NOT EXISTS idx_events_correlation_id ON events(correlation_id);
174
- CREATE INDEX IF NOT EXISTS idx_events_causation_id ON events(causation_id);
175
- CREATE INDEX IF NOT EXISTS idx_events_tx_id ON events(tx_id);
176
- CREATE INDEX IF NOT EXISTS idx_events_artifact_id ON events(artifact_id);
177
- CREATE INDEX IF NOT EXISTS idx_events_network_id ON events(network_id);
178
- CREATE INDEX IF NOT EXISTS idx_events_timestamp ON events(timestamp);
179
- CREATE INDEX IF NOT EXISTS idx_events_file_path ON events(file_path);
180
-
181
- CREATE TABLE IF NOT EXISTS traces (
182
- trace_id TEXT PRIMARY KEY,
183
- workflow_id TEXT UNIQUE NOT NULL,
184
- root_event_id TEXT,
185
- status TEXT NOT NULL,
186
- started_at TEXT,
187
- ended_at TEXT,
188
- FOREIGN KEY (root_event_id) REFERENCES events(event_id) ON DELETE SET NULL
189
- );
190
-
191
- CREATE INDEX IF NOT EXISTS idx_traces_workflow_id ON traces(workflow_id);
192
- CREATE INDEX IF NOT EXISTS idx_traces_status ON traces(status);
107
+ db.exec(`
108
+ CREATE TABLE IF NOT EXISTS metadata (
109
+ key TEXT PRIMARY KEY,
110
+ value TEXT NOT NULL
111
+ );
112
+
113
+ CREATE TABLE IF NOT EXISTS artifacts (
114
+ artifact_id TEXT PRIMARY KEY,
115
+ content_hash TEXT NOT NULL,
116
+ schema TEXT NOT NULL,
117
+ version TEXT NOT NULL,
118
+ kind TEXT NOT NULL,
119
+ mode TEXT NOT NULL DEFAULT 'unknown',
120
+ network_id TEXT NOT NULL,
121
+ tx_id TEXT,
122
+ created_at TEXT,
123
+ raw_json TEXT NOT NULL,
124
+ file_path TEXT,
125
+ file_mtime_ms INTEGER,
126
+ indexed_at TEXT
127
+ );
128
+
129
+ CREATE INDEX IF NOT EXISTS idx_artifacts_content_hash ON artifacts(content_hash);
130
+ CREATE INDEX IF NOT EXISTS idx_artifacts_schema ON artifacts(schema);
131
+ CREATE INDEX IF NOT EXISTS idx_artifacts_kind ON artifacts(kind);
132
+ CREATE INDEX IF NOT EXISTS idx_artifacts_mode ON artifacts(mode);
133
+ CREATE INDEX IF NOT EXISTS idx_artifacts_network_id ON artifacts(network_id);
134
+ CREATE INDEX IF NOT EXISTS idx_artifacts_tx_id ON artifacts(tx_id);
135
+ CREATE INDEX IF NOT EXISTS idx_artifacts_created_at ON artifacts(created_at);
136
+ CREATE INDEX IF NOT EXISTS idx_artifacts_file_path ON artifacts(file_path);
137
+
138
+ CREATE TABLE IF NOT EXISTS lineage_edges (
139
+ lineage_id TEXT NOT NULL,
140
+ parent_artifact_id TEXT NOT NULL,
141
+ child_artifact_id TEXT NOT NULL,
142
+ edge_kind TEXT NOT NULL,
143
+ created_at TEXT,
144
+ PRIMARY KEY (parent_artifact_id, child_artifact_id),
145
+ FOREIGN KEY (parent_artifact_id) REFERENCES artifacts(artifact_id) ON DELETE CASCADE,
146
+ FOREIGN KEY (child_artifact_id) REFERENCES artifacts(artifact_id) ON DELETE CASCADE
147
+ );
148
+
149
+ CREATE INDEX IF NOT EXISTS idx_lineage_parent ON lineage_edges(parent_artifact_id);
150
+ CREATE INDEX IF NOT EXISTS idx_lineage_child ON lineage_edges(child_artifact_id);
151
+ CREATE INDEX IF NOT EXISTS idx_lineage_id ON lineage_edges(lineage_id);
152
+
153
+ CREATE TABLE IF NOT EXISTS events (
154
+ event_id TEXT PRIMARY KEY,
155
+ kind TEXT NOT NULL,
156
+ domain TEXT NOT NULL,
157
+ timestamp TEXT,
158
+ workflow_id TEXT NOT NULL,
159
+ correlation_id TEXT NOT NULL,
160
+ causation_id TEXT,
161
+ tx_id TEXT,
162
+ artifact_id TEXT,
163
+ network_id TEXT NOT NULL,
164
+ raw_json TEXT NOT NULL,
165
+ file_path TEXT,
166
+ file_mtime_ms INTEGER,
167
+ indexed_at TEXT
168
+ );
169
+
170
+ CREATE INDEX IF NOT EXISTS idx_events_kind ON events(kind);
171
+ CREATE INDEX IF NOT EXISTS idx_events_domain ON events(domain);
172
+ CREATE INDEX IF NOT EXISTS idx_events_workflow_id ON events(workflow_id);
173
+ CREATE INDEX IF NOT EXISTS idx_events_correlation_id ON events(correlation_id);
174
+ CREATE INDEX IF NOT EXISTS idx_events_causation_id ON events(causation_id);
175
+ CREATE INDEX IF NOT EXISTS idx_events_tx_id ON events(tx_id);
176
+ CREATE INDEX IF NOT EXISTS idx_events_artifact_id ON events(artifact_id);
177
+ CREATE INDEX IF NOT EXISTS idx_events_network_id ON events(network_id);
178
+ CREATE INDEX IF NOT EXISTS idx_events_timestamp ON events(timestamp);
179
+ CREATE INDEX IF NOT EXISTS idx_events_file_path ON events(file_path);
180
+
181
+ CREATE TABLE IF NOT EXISTS traces (
182
+ trace_id TEXT PRIMARY KEY,
183
+ workflow_id TEXT UNIQUE NOT NULL,
184
+ root_event_id TEXT,
185
+ status TEXT NOT NULL,
186
+ started_at TEXT,
187
+ ended_at TEXT,
188
+ FOREIGN KEY (root_event_id) REFERENCES events(event_id) ON DELETE SET NULL
189
+ );
190
+
191
+ CREATE INDEX IF NOT EXISTS idx_traces_workflow_id ON traces(workflow_id);
192
+ CREATE INDEX IF NOT EXISTS idx_traces_status ON traces(status);
193
193
  `);
194
194
  }
195
195
  },
@@ -198,52 +198,52 @@ export const MIGRATIONS = [
198
198
  name: "event_persistence_guarantees",
199
199
  checksum: "hardkas_v2_events",
200
200
  up: (db) => {
201
- db.exec(`
202
- CREATE TABLE IF NOT EXISTS events_v2 (
203
- event_id TEXT PRIMARY KEY,
204
- kind TEXT NOT NULL,
205
- domain TEXT NOT NULL,
206
- timestamp TEXT,
207
- emitted_at TEXT,
208
- workflow_id TEXT NOT NULL,
209
- correlation_id TEXT NOT NULL,
210
- causation_id TEXT,
211
- tx_id TEXT,
212
- artifact_id TEXT,
213
- network_id TEXT NOT NULL,
214
- sequence_number INTEGER NOT NULL DEFAULT 0,
215
- global_offset INTEGER,
216
- source_subsystem TEXT NOT NULL DEFAULT 'unknown',
217
- raw_json TEXT NOT NULL,
218
- file_path TEXT,
219
- file_mtime_ms INTEGER,
220
- indexed_at TEXT,
221
- UNIQUE(correlation_id, sequence_number, kind)
222
- );
223
-
224
- INSERT INTO events_v2 (
225
- event_id, kind, domain, timestamp, emitted_at, workflow_id, correlation_id, causation_id,
226
- tx_id, artifact_id, network_id, sequence_number, source_subsystem, raw_json, file_path, file_mtime_ms, indexed_at
227
- )
228
- SELECT
229
- event_id, kind, domain, timestamp, timestamp, workflow_id, correlation_id, causation_id,
230
- tx_id, artifact_id, network_id, 0, 'legacy', raw_json, file_path, file_mtime_ms, indexed_at
231
- FROM events;
232
-
233
- DROP TABLE events;
234
- ALTER TABLE events_v2 RENAME TO events;
235
-
236
- CREATE INDEX IF NOT EXISTS idx_events_kind ON events(kind);
237
- CREATE INDEX IF NOT EXISTS idx_events_domain ON events(domain);
238
- CREATE INDEX IF NOT EXISTS idx_events_workflow_id ON events(workflow_id);
239
- CREATE INDEX IF NOT EXISTS idx_events_correlation_id ON events(correlation_id);
240
- CREATE INDEX IF NOT EXISTS idx_events_causation_id ON events(causation_id);
241
- CREATE INDEX IF NOT EXISTS idx_events_tx_id ON events(tx_id);
242
- CREATE INDEX IF NOT EXISTS idx_events_artifact_id ON events(artifact_id);
243
- CREATE INDEX IF NOT EXISTS idx_events_network_id ON events(network_id);
244
- CREATE INDEX IF NOT EXISTS idx_events_timestamp ON events(timestamp);
245
- CREATE INDEX IF NOT EXISTS idx_events_file_path ON events(file_path);
246
- CREATE INDEX IF NOT EXISTS idx_events_global_offset ON events(global_offset);
201
+ db.exec(`
202
+ CREATE TABLE IF NOT EXISTS events_v2 (
203
+ event_id TEXT PRIMARY KEY,
204
+ kind TEXT NOT NULL,
205
+ domain TEXT NOT NULL,
206
+ timestamp TEXT,
207
+ emitted_at TEXT,
208
+ workflow_id TEXT NOT NULL,
209
+ correlation_id TEXT NOT NULL,
210
+ causation_id TEXT,
211
+ tx_id TEXT,
212
+ artifact_id TEXT,
213
+ network_id TEXT NOT NULL,
214
+ sequence_number INTEGER NOT NULL DEFAULT 0,
215
+ global_offset INTEGER,
216
+ source_subsystem TEXT NOT NULL DEFAULT 'unknown',
217
+ raw_json TEXT NOT NULL,
218
+ file_path TEXT,
219
+ file_mtime_ms INTEGER,
220
+ indexed_at TEXT,
221
+ UNIQUE(correlation_id, sequence_number, kind)
222
+ );
223
+
224
+ INSERT INTO events_v2 (
225
+ event_id, kind, domain, timestamp, emitted_at, workflow_id, correlation_id, causation_id,
226
+ tx_id, artifact_id, network_id, sequence_number, source_subsystem, raw_json, file_path, file_mtime_ms, indexed_at
227
+ )
228
+ SELECT
229
+ event_id, kind, domain, timestamp, timestamp, workflow_id, correlation_id, causation_id,
230
+ tx_id, artifact_id, network_id, 0, 'legacy', raw_json, file_path, file_mtime_ms, indexed_at
231
+ FROM events;
232
+
233
+ DROP TABLE events;
234
+ ALTER TABLE events_v2 RENAME TO events;
235
+
236
+ CREATE INDEX IF NOT EXISTS idx_events_kind ON events(kind);
237
+ CREATE INDEX IF NOT EXISTS idx_events_domain ON events(domain);
238
+ CREATE INDEX IF NOT EXISTS idx_events_workflow_id ON events(workflow_id);
239
+ CREATE INDEX IF NOT EXISTS idx_events_correlation_id ON events(correlation_id);
240
+ CREATE INDEX IF NOT EXISTS idx_events_causation_id ON events(causation_id);
241
+ CREATE INDEX IF NOT EXISTS idx_events_tx_id ON events(tx_id);
242
+ CREATE INDEX IF NOT EXISTS idx_events_artifact_id ON events(artifact_id);
243
+ CREATE INDEX IF NOT EXISTS idx_events_network_id ON events(network_id);
244
+ CREATE INDEX IF NOT EXISTS idx_events_timestamp ON events(timestamp);
245
+ CREATE INDEX IF NOT EXISTS idx_events_file_path ON events(file_path);
246
+ CREATE INDEX IF NOT EXISTS idx_events_global_offset ON events(global_offset);
247
247
  `);
248
248
  }
249
249
  },
@@ -252,47 +252,47 @@ export const MIGRATIONS = [
252
252
  name: "lineage_closure_and_scale_indices",
253
253
  checksum: "hardkas_v3_lineage_scale",
254
254
  up: (db) => {
255
- db.exec(`
256
- -- Lineage closure table: transitive ancestor/descendant relationships
257
- -- Enables O(1) "is X an ancestor of Y?" queries without recursive CTEs
258
- CREATE TABLE IF NOT EXISTS lineage_closure (
259
- ancestor_id TEXT NOT NULL,
260
- descendant_id TEXT NOT NULL,
261
- depth INTEGER NOT NULL DEFAULT 1,
262
- path_hash TEXT,
263
- created_at TEXT,
264
- PRIMARY KEY (ancestor_id, descendant_id),
265
- FOREIGN KEY (ancestor_id) REFERENCES artifacts(artifact_id) ON DELETE CASCADE,
266
- FOREIGN KEY (descendant_id) REFERENCES artifacts(artifact_id) ON DELETE CASCADE
267
- );
268
-
269
- CREATE INDEX IF NOT EXISTS idx_closure_ancestor ON lineage_closure(ancestor_id);
270
- CREATE INDEX IF NOT EXISTS idx_closure_descendant ON lineage_closure(descendant_id);
271
- CREATE INDEX IF NOT EXISTS idx_closure_depth ON lineage_closure(depth);
272
-
273
- -- Add depth column to lineage_edges for direct edge depth tracking
274
- ALTER TABLE lineage_edges ADD COLUMN depth INTEGER NOT NULL DEFAULT 1;
275
-
276
- -- File mtime index for incremental sync: skip unchanged files
277
- CREATE INDEX IF NOT EXISTS idx_artifacts_file_mtime_ms ON artifacts(file_mtime_ms);
278
-
279
- -- Lineage statistics metadata view for scale monitoring
280
- CREATE TABLE IF NOT EXISTS lineage_stats (
281
- stat_key TEXT PRIMARY KEY,
282
- stat_value TEXT NOT NULL,
283
- updated_at TEXT NOT NULL
284
- );
285
-
286
- -- Pruning history: track what was pruned and when
287
- CREATE TABLE IF NOT EXISTS prune_history (
288
- prune_id TEXT PRIMARY KEY,
289
- pruned_at TEXT NOT NULL,
290
- artifacts_pruned INTEGER NOT NULL DEFAULT 0,
291
- traces_pruned INTEGER NOT NULL DEFAULT 0,
292
- events_pruned INTEGER NOT NULL DEFAULT 0,
293
- lineage_roots_preserved INTEGER NOT NULL DEFAULT 0,
294
- total_bytes_freed INTEGER NOT NULL DEFAULT 0
295
- );
255
+ db.exec(`
256
+ -- Lineage closure table: transitive ancestor/descendant relationships
257
+ -- Enables O(1) "is X an ancestor of Y?" queries without recursive CTEs
258
+ CREATE TABLE IF NOT EXISTS lineage_closure (
259
+ ancestor_id TEXT NOT NULL,
260
+ descendant_id TEXT NOT NULL,
261
+ depth INTEGER NOT NULL DEFAULT 1,
262
+ path_hash TEXT,
263
+ created_at TEXT,
264
+ PRIMARY KEY (ancestor_id, descendant_id),
265
+ FOREIGN KEY (ancestor_id) REFERENCES artifacts(artifact_id) ON DELETE CASCADE,
266
+ FOREIGN KEY (descendant_id) REFERENCES artifacts(artifact_id) ON DELETE CASCADE
267
+ );
268
+
269
+ CREATE INDEX IF NOT EXISTS idx_closure_ancestor ON lineage_closure(ancestor_id);
270
+ CREATE INDEX IF NOT EXISTS idx_closure_descendant ON lineage_closure(descendant_id);
271
+ CREATE INDEX IF NOT EXISTS idx_closure_depth ON lineage_closure(depth);
272
+
273
+ -- Add depth column to lineage_edges for direct edge depth tracking
274
+ ALTER TABLE lineage_edges ADD COLUMN depth INTEGER NOT NULL DEFAULT 1;
275
+
276
+ -- File mtime index for incremental sync: skip unchanged files
277
+ CREATE INDEX IF NOT EXISTS idx_artifacts_file_mtime_ms ON artifacts(file_mtime_ms);
278
+
279
+ -- Lineage statistics metadata view for scale monitoring
280
+ CREATE TABLE IF NOT EXISTS lineage_stats (
281
+ stat_key TEXT PRIMARY KEY,
282
+ stat_value TEXT NOT NULL,
283
+ updated_at TEXT NOT NULL
284
+ );
285
+
286
+ -- Pruning history: track what was pruned and when
287
+ CREATE TABLE IF NOT EXISTS prune_history (
288
+ prune_id TEXT PRIMARY KEY,
289
+ pruned_at TEXT NOT NULL,
290
+ artifacts_pruned INTEGER NOT NULL DEFAULT 0,
291
+ traces_pruned INTEGER NOT NULL DEFAULT 0,
292
+ events_pruned INTEGER NOT NULL DEFAULT 0,
293
+ lineage_roots_preserved INTEGER NOT NULL DEFAULT 0,
294
+ total_bytes_freed INTEGER NOT NULL DEFAULT 0
295
+ );
296
296
  `);
297
297
  }
298
298
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hardkas/query-store",
3
- "version": "0.9.0-alpha",
3
+ "version": "0.9.1-alpha",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -12,8 +12,8 @@
12
12
  }
13
13
  },
14
14
  "dependencies": {
15
- "@hardkas/artifacts": "0.9.0-alpha",
16
- "@hardkas/core": "0.9.0-alpha"
15
+ "@hardkas/artifacts": "0.9.1-alpha",
16
+ "@hardkas/core": "0.9.1-alpha"
17
17
  },
18
18
  "devDependencies": {
19
19
  "@types/node": "^22.10.0",