@opendatalabs/personal-server-ts-server 1.7.0 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/dist/api-auth.d.ts.map +1 -1
  2. package/dist/api-auth.js +1 -0
  3. package/dist/api-auth.js.map +1 -1
  4. package/dist/app.d.ts +12 -1
  5. package/dist/app.d.ts.map +1 -1
  6. package/dist/app.js +31 -3
  7. package/dist/app.js.map +1 -1
  8. package/dist/bootstrap.d.ts +15 -0
  9. package/dist/bootstrap.d.ts.map +1 -1
  10. package/dist/bootstrap.js +85 -2
  11. package/dist/bootstrap.js.map +1 -1
  12. package/dist/logging/access-log.d.ts +1 -1
  13. package/dist/logging/access-log.d.ts.map +1 -1
  14. package/dist/pending-blob-deletions.d.ts +10 -0
  15. package/dist/pending-blob-deletions.d.ts.map +1 -0
  16. package/dist/pending-blob-deletions.js +38 -0
  17. package/dist/pending-blob-deletions.js.map +1 -0
  18. package/dist/routes/data.d.ts +9 -1
  19. package/dist/routes/data.d.ts.map +1 -1
  20. package/dist/routes/data.js +2 -0
  21. package/dist/routes/data.js.map +1 -1
  22. package/dist/routes/derivatives.d.ts +33 -0
  23. package/dist/routes/derivatives.d.ts.map +1 -0
  24. package/dist/routes/derivatives.js +33 -0
  25. package/dist/routes/derivatives.js.map +1 -0
  26. package/dist/storage/index-manager.d.ts.map +1 -1
  27. package/dist/storage/index-manager.js +4 -2
  28. package/dist/storage/index-manager.js.map +1 -1
  29. package/dist/storage/index-schema.d.ts +1 -1
  30. package/dist/storage/index-schema.d.ts.map +1 -1
  31. package/dist/storage/index-schema.js +9 -2
  32. package/dist/storage/index-schema.js.map +1 -1
  33. package/dist/storage/node-data-storage.d.ts.map +1 -1
  34. package/dist/storage/node-data-storage.js +10 -0
  35. package/dist/storage/node-data-storage.js.map +1 -1
  36. package/dist/storage/question-store.d.ts +9 -0
  37. package/dist/storage/question-store.d.ts.map +1 -0
  38. package/dist/storage/question-store.js +114 -0
  39. package/dist/storage/question-store.js.map +1 -0
  40. package/dist/ui/ps-lite-debug.js +2810 -210
  41. package/package.json +3 -3
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Derivative compute routes: /v1/derivatives/questions. Thin Hono wrapper
3
+ * over the runtime-agnostic core handler; builder auth is the Write API's
4
+ * (write-session token + signed proof), owner auth is the usual owner gate.
5
+ */
6
+ import { Hono } from "hono";
7
+ import type { Logger } from "pino";
8
+ import type { GatewayClient } from "@opendatalabs/vana-sdk/node";
9
+ import { type PersonalServerDerivativesApiDeps } from "@opendatalabs/personal-server-ts-core/derivatives";
10
+ import type { PersonalServerApiDispatchOptions } from "@opendatalabs/personal-server-ts-core/api";
11
+ import type { DataStoragePort, RuntimeAvailabilityPort } from "@opendatalabs/personal-server-ts-core/ports";
12
+ import type { WriteProofReplayStore, WriteSessionStore } from "@opendatalabs/personal-server-ts-core/write";
13
+ import type { TokenStore } from "../token-store.js";
14
+ export interface DerivativesRouteDeps {
15
+ logger: Logger;
16
+ serverOrigin: string | (() => string);
17
+ serverOwner?: `0x${string}`;
18
+ gateway: GatewayClient;
19
+ devToken?: string;
20
+ accessToken?: string;
21
+ tokenStore?: TokenStore;
22
+ dataStorage?: DataStoragePort;
23
+ runtimeAvailability?: RuntimeAvailabilityPort;
24
+ /** Shared with the data routes so builder tokens work on both. */
25
+ writeSessionStore?: WriteSessionStore;
26
+ writeProofReplayStore?: WriteProofReplayStore;
27
+ /** The compute layer (store + scheduler). Absent = every route answers 503. */
28
+ compute?: PersonalServerDerivativesApiDeps["compute"];
29
+ now?: () => Date;
30
+ mountPath?: PersonalServerApiDispatchOptions["basePath"];
31
+ }
32
+ export declare function derivativesRoutes(deps: DerivativesRouteDeps): Hono;
33
+ //# sourceMappingURL=derivatives.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derivatives.d.ts","sourceRoot":"","sources":["../../src/routes/derivatives.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,MAAM,CAAC;AACnC,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAGL,KAAK,gCAAgC,EACtC,MAAM,mDAAmD,CAAC;AAC3D,OAAO,KAAK,EAAE,gCAAgC,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,KAAK,EACV,eAAe,EACf,uBAAuB,EACxB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EACV,qBAAqB,EACrB,iBAAiB,EAClB,MAAM,6CAA6C,CAAC;AACrD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACtC,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,WAAW,CAAC,EAAE,eAAe,CAAC;IAC9B,mBAAmB,CAAC,EAAE,uBAAuB,CAAC;IAC9C,kEAAkE;IAClE,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;IACtC,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,+EAA+E;IAC/E,OAAO,CAAC,EAAE,gCAAgC,CAAC,SAAS,CAAC,CAAC;IACtD,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,SAAS,CAAC,EAAE,gCAAgC,CAAC,UAAU,CAAC,CAAC;CAC1D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI,CA6BlE"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Derivative compute routes: /v1/derivatives/questions. Thin Hono wrapper
3
+ * over the runtime-agnostic core handler; builder auth is the Write API's
4
+ * (write-session token + signed proof), owner auth is the usual owner gate.
5
+ */
6
+ import { Hono } from "hono";
7
+ import { handlePersonalServerDerivativesRequest, MAX_QUESTION_BODY_BYTES, } from "@opendatalabs/personal-server-ts-core/derivatives";
8
+ import { createBodyLimit } from "../middleware/body-limit.js";
9
+ import { createServerApiAuth } from "../api-auth.js";
10
+ export function derivativesRoutes(deps) {
11
+ const app = new Hono();
12
+ const auth = createServerApiAuth({
13
+ serverOrigin: deps.serverOrigin,
14
+ serverOwner: deps.serverOwner,
15
+ gateway: deps.gateway,
16
+ devToken: deps.devToken,
17
+ accessToken: deps.accessToken,
18
+ tokenStore: deps.tokenStore,
19
+ dataStorage: deps.dataStorage,
20
+ runtimeAvailability: deps.runtimeAvailability,
21
+ writeSessionStore: deps.writeSessionStore,
22
+ writeProofReplayStore: deps.writeProofReplayStore,
23
+ });
24
+ app.use("*", createBodyLimit(MAX_QUESTION_BODY_BYTES));
25
+ app.all("*", (c) => handlePersonalServerDerivativesRequest(c.req.raw, {
26
+ auth,
27
+ compute: deps.compute ?? null,
28
+ now: deps.now,
29
+ logger: deps.logger,
30
+ }, { basePath: deps.mountPath }));
31
+ return app;
32
+ }
33
+ //# sourceMappingURL=derivatives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"derivatives.js","sourceRoot":"","sources":["../../src/routes/derivatives.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B,OAAO,EACL,sCAAsC,EACtC,uBAAuB,GAExB,MAAM,mDAAmD,CAAC;AAW3D,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAqBrD,MAAM,UAAU,iBAAiB,CAAC,IAA0B;IAC1D,MAAM,GAAG,GAAG,IAAI,IAAI,EAAE,CAAC;IACvB,MAAM,IAAI,GAAG,mBAAmB,CAAC;QAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;QAC/B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,QAAQ,EAAE,IAAI,CAAC,QAAQ;QACvB,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;QAC7B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;QAC7C,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;QACzC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;KAClD,CAAC,CAAC;IAEH,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,eAAe,CAAC,uBAAuB,CAAC,CAAC,CAAC;IACvD,GAAG,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE,CACjB,sCAAsC,CACpC,CAAC,CAAC,GAAG,CAAC,GAAG,EACT;QACE,IAAI;QACJ,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,IAAI;QAC7B,GAAG,EAAE,IAAI,CAAC,GAAG;QACb,MAAM,EAAE,IAAI,CAAC,MAAM;KACpB,EACD,EAAE,QAAQ,EAAE,IAAI,CAAC,SAAS,EAAE,CAC7B,CACF,CAAC;IACF,OAAO,GAAG,CAAC;AACb,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index-manager.d.ts","sourceRoot":"","sources":["../../src/storage/index-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,YAAY,EACb,MAAM,qDAAqD,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,UAAU,CAAC;IACzC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACjD,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,UAAU,EAAE,CAAC;IACrD,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACzD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC;;;;;OAKG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5C,kBAAkB,CAAC,OAAO,CAAC,EAAE;QAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG;QAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACtE,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACrD,sEAAsE;IACtE,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC/D;;;;OAIG;IACH,YAAY,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU,EAAE,CAAC;IACzD;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACpD,uDAAuD;IACvD,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAChD;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9D;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACtD,4EAA4E;IAC5E,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,KAAK,IAAI,IAAI,CAAC;CACf;AA8BD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,YAAY,CAkQtE"}
1
+ {"version":3,"file":"index-manager.d.ts","sourceRoot":"","sources":["../../src/storage/index-manager.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,KAAK,EACV,UAAU,EACV,gBAAgB,EAChB,aAAa,EACb,YAAY,EACb,MAAM,qDAAqD,CAAC;AAE7D,MAAM,WAAW,YAAY;IAC3B,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,UAAU,CAAC;IACzC,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACjD,WAAW,CAAC,OAAO,EAAE,gBAAgB,GAAG,UAAU,EAAE,CAAC;IACrD,iBAAiB,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACzD,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACpC,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IACpC;;;;;OAKG;IACH,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC;IAC5C,kBAAkB,CAAC,OAAO,CAAC,EAAE;QAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG;QAAE,MAAM,EAAE,YAAY,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC;IAC9C,kBAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACtE,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IACrD,sEAAsE;IACtE,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAC;IAC/D;;;;OAIG;IACH,YAAY,CAAC,OAAO,CAAC,EAAE;QAAE,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,UAAU,EAAE,CAAC;IACzD;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC;IACpD,uDAAuD;IACvD,wBAAwB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAChD;;;OAGG;IACH,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC;IAC9D;;;;OAIG;IACH,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IACtD,4EAA4E;IAC5E,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACrC,KAAK,IAAI,IAAI,CAAC;CACf;AAgCD,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GAAG,YAAY,CAoQtE"}
@@ -10,11 +10,12 @@ function rowToEntry(row) {
10
10
  sizeBytes: row.size_bytes,
11
11
  version: row.version,
12
12
  dataPointId: row.data_point_id,
13
+ afterTombstoneVersion: row.after_tombstone_version ?? null,
13
14
  };
14
15
  }
15
16
  export function createIndexManager(db) {
16
- const insertStmt = db.prepare(`INSERT INTO data_files (file_id, schema_id, path, scope, collected_at, size_bytes, version, data_point_id)
17
- VALUES (@file_id, @schema_id, @path, @scope, @collected_at, @size_bytes, @version, @data_point_id)`);
17
+ const insertStmt = db.prepare(`INSERT INTO data_files (file_id, schema_id, path, scope, collected_at, size_bytes, version, data_point_id, after_tombstone_version)
18
+ VALUES (@file_id, @schema_id, @path, @scope, @collected_at, @size_bytes, @version, @data_point_id, @after_tombstone_version)`);
18
19
  const maxVersionByScopeStmt = db.prepare("SELECT COALESCE(MAX(version), 0) AS max_version FROM data_files WHERE scope = @scope");
19
20
  const findByPathStmt = db.prepare("SELECT * FROM data_files WHERE path = @path");
20
21
  const findLatestByScopeStmt = db.prepare("SELECT * FROM data_files WHERE scope = @scope ORDER BY collected_at DESC LIMIT 1");
@@ -45,6 +46,7 @@ export function createIndexManager(db) {
45
46
  size_bytes: entry.sizeBytes,
46
47
  version,
47
48
  data_point_id: entry.dataPointId ?? null,
49
+ after_tombstone_version: entry.afterTombstoneVersion ?? null,
48
50
  });
49
51
  const row = db
50
52
  .prepare("SELECT * FROM data_files WHERE id = ?")
@@ -1 +1 @@
1
- {"version":3,"file":"index-manager.js","sourceRoot":"","sources":["../../src/storage/index-manager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index-manager.js","sourceRoot":"","sources":["../../src/storage/index-manager.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import Database from "better-sqlite3";
2
- export declare const INDEX_SCHEMA_VERSION = 3;
2
+ export declare const INDEX_SCHEMA_VERSION = 4;
3
3
  /** Open/create SQLite database, run CREATE TABLE IF NOT EXISTS, set WAL mode */
4
4
  export declare function initializeDatabase(dbPath: string): Database.Database;
5
5
  //# sourceMappingURL=index-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index-schema.d.ts","sourceRoot":"","sources":["../../src/storage/index-schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAwBtC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAyCtC,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAYpE"}
1
+ {"version":3,"file":"index-schema.d.ts","sourceRoot":"","sources":["../../src/storage/index-schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAyBtC,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAmDtC,gFAAgF;AAChF,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAYpE"}
@@ -10,7 +10,8 @@ CREATE TABLE IF NOT EXISTS data_files (
10
10
  created_at TEXT NOT NULL DEFAULT (strftime('%Y-%m-%dT%H:%M:%SZ', 'now')),
11
11
  size_bytes INTEGER NOT NULL DEFAULT 0,
12
12
  version INTEGER NOT NULL DEFAULT 1,
13
- data_point_id TEXT
13
+ data_point_id TEXT,
14
+ after_tombstone_version INTEGER
14
15
  )`;
15
16
  const CREATE_INDEXES_SQL = [
16
17
  "CREATE INDEX IF NOT EXISTS idx_data_files_scope ON data_files (scope)",
@@ -19,7 +20,7 @@ const CREATE_INDEXES_SQL = [
19
20
  "CREATE INDEX IF NOT EXISTS idx_data_files_schema_id ON data_files (schema_id)",
20
21
  "CREATE INDEX IF NOT EXISTS idx_data_files_data_point_id ON data_files (data_point_id)",
21
22
  ];
22
- export const INDEX_SCHEMA_VERSION = 3;
23
+ export const INDEX_SCHEMA_VERSION = 4;
23
24
  function hasColumn(db, table, column) {
24
25
  const rows = db.pragma(`table_info(${table})`);
25
26
  return rows.some((row) => row.name === column);
@@ -39,6 +40,12 @@ function migrateSchema(db, currentVersion) {
39
40
  db.exec("ALTER TABLE data_files ADD COLUMN data_point_id TEXT");
40
41
  }
41
42
  }
43
+ if (currentVersion < 4 &&
44
+ !hasColumn(db, "data_files", "after_tombstone_version")) {
45
+ // Null for every existing row: nothing ingested before this column
46
+ // existed can claim to post-date a tombstone.
47
+ db.exec("ALTER TABLE data_files ADD COLUMN after_tombstone_version INTEGER");
48
+ }
42
49
  }
43
50
  function ensureSchemaVersion(db) {
44
51
  const currentVersion = db.pragma("user_version", { simple: true });
@@ -1 +1 @@
1
- {"version":3,"file":"index-schema.js","sourceRoot":"","sources":["../../src/storage/index-schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;EAYvB,CAAC;AAEH,MAAM,kBAAkB,GAAG;IACzB,uEAAuE;IACvE,qFAAqF;IACrF,2EAA2E;IAC3E,+EAA+E;IAC/E,uFAAuF;CACxF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,SAAS,SAAS,CAChB,EAAqB,EACrB,KAAa,EACb,MAAc;IAEd,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,KAAK,GAAG,CAA4B,CAAC;IAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,aAAa,CAAC,EAAqB,EAAE,cAAsB;IAClE,IAAI,cAAc,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;QACpE,EAAE,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;YAC5C,oEAAoE;YACpE,sEAAsE;YACtE,oDAAoD;YACpD,EAAE,CAAC,IAAI,CACL,sEAAsE,CACvE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,CAAC;YAClD,EAAE,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAqB;IAChD,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAW,CAAC;IAC7E,IAAI,cAAc,GAAG,oBAAoB,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,uCAAuC,cAAc,sBAAsB,oBAAoB,EAAE,CAClG,CAAC;IACJ,CAAC;IACD,aAAa,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IAClC,EAAE,CAAC,MAAM,CAAC,kBAAkB,oBAAoB,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEhC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEhC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC1B,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACrC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
1
+ {"version":3,"file":"index-schema.js","sourceRoot":"","sources":["../../src/storage/index-schema.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,gBAAgB,CAAC;AAEtC,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;EAavB,CAAC;AAEH,MAAM,kBAAkB,GAAG;IACzB,uEAAuE;IACvE,qFAAqF;IACrF,2EAA2E;IAC3E,+EAA+E;IAC/E,uFAAuF;CACxF,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC;AAEtC,SAAS,SAAS,CAChB,EAAqB,EACrB,KAAa,EACb,MAAc;IAEd,MAAM,IAAI,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,KAAK,GAAG,CAA4B,CAAC;IAC1E,OAAO,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,aAAa,CAAC,EAAqB,EAAE,cAAsB;IAClE,IAAI,cAAc,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,WAAW,CAAC,EAAE,CAAC;QACpE,EAAE,CAAC,IAAI,CAAC,kDAAkD,CAAC,CAAC;IAC9D,CAAC;IACD,IAAI,cAAc,GAAG,CAAC,EAAE,CAAC;QACvB,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,SAAS,CAAC,EAAE,CAAC;YAC5C,oEAAoE;YACpE,sEAAsE;YACtE,oDAAoD;YACpD,EAAE,CAAC,IAAI,CACL,sEAAsE,CACvE,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,eAAe,CAAC,EAAE,CAAC;YAClD,EAAE,CAAC,IAAI,CAAC,sDAAsD,CAAC,CAAC;QAClE,CAAC;IACH,CAAC;IACD,IACE,cAAc,GAAG,CAAC;QAClB,CAAC,SAAS,CAAC,EAAE,EAAE,YAAY,EAAE,yBAAyB,CAAC,EACvD,CAAC;QACD,mEAAmE;QACnE,8CAA8C;QAC9C,EAAE,CAAC,IAAI,CACL,mEAAmE,CACpE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,mBAAmB,CAAC,EAAqB;IAChD,MAAM,cAAc,GAAG,EAAE,CAAC,MAAM,CAAC,cAAc,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAW,CAAC;IAC7E,IAAI,cAAc,GAAG,oBAAoB,EAAE,CAAC;QAC1C,MAAM,IAAI,KAAK,CACb,uCAAuC,cAAc,sBAAsB,oBAAoB,EAAE,CAClG,CAAC;IACJ,CAAC;IACD,aAAa,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;IAClC,EAAE,CAAC,MAAM,CAAC,kBAAkB,oBAAoB,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,kBAAkB,CAAC,MAAc;IAC/C,MAAM,EAAE,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAEhC,EAAE,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAEhC,EAAE,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;IAC1B,mBAAmB,CAAC,EAAE,CAAC,CAAC;IACxB,KAAK,MAAM,GAAG,IAAI,kBAAkB,EAAE,CAAC;QACrC,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACf,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"node-data-storage.d.ts","sourceRoot":"","sources":["../../src/storage/node-data-storage.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AACvG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACxF,OAAO,KAAK,EAGV,eAAe,EAEhB,MAAM,6CAA6C,CAAC;AAGrD,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,uBAAuB,CAAC;CAC3C;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,mBAAmB,GACxB,eAAe,CA+GjB"}
1
+ {"version":3,"file":"node-data-storage.d.ts","sourceRoot":"","sources":["../../src/storage/node-data-storage.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,yDAAyD,CAAC;AACvG,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qDAAqD,CAAC;AACxF,OAAO,KAAK,EAGV,eAAe,EAEhB,MAAM,6CAA6C,CAAC;AAGrD,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,YAAY,CAAC;IAC3B,gBAAgB,EAAE,uBAAuB,CAAC;CAC3C;AAED,wBAAgB,qBAAqB,CACnC,IAAI,EAAE,mBAAmB,GACxB,eAAe,CAwHjB"}
@@ -82,6 +82,16 @@ export function createNodeDataStorage(deps) {
82
82
  deps.indexManager.deleteByPath(entry.path);
83
83
  return true;
84
84
  },
85
+ async deleteVersion(scope, collectedAt) {
86
+ const entry = deps.indexManager.findClosestByScope(scope, collectedAt);
87
+ if (!entry || entry.collectedAt !== collectedAt)
88
+ return false;
89
+ // Same ordering as deleteByFileId: blob first (ENOENT-tolerant), then
90
+ // the index row, so a real blob failure keeps the row for a retry.
91
+ await deleteDataFile(deps.hierarchyOptions, scope, collectedAt);
92
+ deps.indexManager.deleteByPath(entry.path);
93
+ return true;
94
+ },
85
95
  dropUnsyncedEntry(path) {
86
96
  // Index row only — the payload file is already gone (that is why the
87
97
  // caller is dropping it). No blob delete. Guarded to unsynced rows: if
@@ -1 +1 @@
1
- {"version":3,"file":"node-data-storage.js","sourceRoot":"","sources":["../../src/storage/node-data-storage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"node-data-storage.js","sourceRoot":"","sources":["../../src/storage/node-data-storage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * SQLite-backed store for derivative question registrations. Lives in the
3
+ * same index.db as the data index; its own table, created on first use
4
+ * (CREATE TABLE IF NOT EXISTS), so no index schema version bump.
5
+ */
6
+ import type Database from "better-sqlite3";
7
+ import { type QuestionStore } from "@opendatalabs/personal-server-ts-core/derivatives";
8
+ export declare function createSqliteQuestionStore(db: Database.Database): QuestionStore;
9
+ //# sourceMappingURL=question-store.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"question-store.d.ts","sourceRoot":"","sources":["../../src/storage/question-store.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAIL,KAAK,aAAa,EACnB,MAAM,mDAAmD,CAAC;AAwD3D,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,QAAQ,CAAC,QAAQ,GACpB,aAAa,CA+Ef"}
@@ -0,0 +1,114 @@
1
+ /**
2
+ * SQLite-backed store for derivative question registrations. Lives in the
3
+ * same index.db as the data index; its own table, created on first use
4
+ * (CREATE TABLE IF NOT EXISTS), so no index schema version bump.
5
+ */
6
+ import { matchesQuestionFilter, } from "@opendatalabs/personal-server-ts-core/derivatives";
7
+ const CREATE_TABLE_SQL = `
8
+ CREATE TABLE IF NOT EXISTS derivative_questions (
9
+ question_id TEXT PRIMARY KEY,
10
+ derived_scope TEXT NOT NULL,
11
+ source_scopes TEXT NOT NULL,
12
+ question TEXT NOT NULL,
13
+ model TEXT,
14
+ registered_by TEXT NOT NULL,
15
+ status TEXT NOT NULL,
16
+ error TEXT,
17
+ created_at TEXT NOT NULL,
18
+ updated_at TEXT NOT NULL,
19
+ last_computed_at TEXT,
20
+ derived_version INTEGER,
21
+ derived_collected_at TEXT
22
+ )`;
23
+ const CREATE_INDEX_SQL = "CREATE INDEX IF NOT EXISTS idx_derivative_questions_derived_scope ON derivative_questions (derived_scope)";
24
+ function toRegistration(row) {
25
+ return {
26
+ questionId: row.question_id,
27
+ derivedScope: row.derived_scope,
28
+ sourceScopes: JSON.parse(row.source_scopes),
29
+ question: row.question,
30
+ model: row.model,
31
+ registeredBy: JSON.parse(row.registered_by),
32
+ status: row.status,
33
+ error: row.error,
34
+ createdAt: row.created_at,
35
+ updatedAt: row.updated_at,
36
+ lastComputedAt: row.last_computed_at,
37
+ derivedVersion: row.derived_version,
38
+ derivedCollectedAt: row.derived_collected_at,
39
+ };
40
+ }
41
+ export function createSqliteQuestionStore(db) {
42
+ db.exec(CREATE_TABLE_SQL);
43
+ db.exec(CREATE_INDEX_SQL);
44
+ const listAll = db.prepare("SELECT * FROM derivative_questions ORDER BY created_at ASC, question_id ASC");
45
+ const getOne = db.prepare("SELECT * FROM derivative_questions WHERE question_id = ?");
46
+ const insertOne = db.prepare(`
47
+ INSERT INTO derivative_questions (
48
+ question_id, derived_scope, source_scopes, question, model,
49
+ registered_by, status, error, created_at, updated_at,
50
+ last_computed_at, derived_version, derived_collected_at
51
+ ) VALUES (
52
+ @question_id, @derived_scope, @source_scopes, @question, @model,
53
+ @registered_by, @status, @error, @created_at, @updated_at,
54
+ @last_computed_at, @derived_version, @derived_collected_at
55
+ )`);
56
+ const updateOne = db.prepare(`
57
+ UPDATE derivative_questions SET
58
+ status = @status,
59
+ error = @error,
60
+ updated_at = @updated_at,
61
+ last_computed_at = @last_computed_at,
62
+ derived_version = @derived_version,
63
+ derived_collected_at = @derived_collected_at
64
+ WHERE question_id = @question_id`);
65
+ const deleteOne = db.prepare("DELETE FROM derivative_questions WHERE question_id = ?");
66
+ return {
67
+ async list(filter) {
68
+ return listAll.all()
69
+ .map(toRegistration)
70
+ .filter((registration) => matchesQuestionFilter(registration, filter));
71
+ },
72
+ async get(questionId) {
73
+ const row = getOne.get(questionId);
74
+ return row ? toRegistration(row) : null;
75
+ },
76
+ async insert(registration) {
77
+ insertOne.run({
78
+ question_id: registration.questionId,
79
+ derived_scope: registration.derivedScope,
80
+ source_scopes: JSON.stringify(registration.sourceScopes),
81
+ question: registration.question,
82
+ model: registration.model,
83
+ registered_by: JSON.stringify(registration.registeredBy),
84
+ status: registration.status,
85
+ error: registration.error,
86
+ created_at: registration.createdAt,
87
+ updated_at: registration.updatedAt,
88
+ last_computed_at: registration.lastComputedAt,
89
+ derived_version: registration.derivedVersion,
90
+ derived_collected_at: registration.derivedCollectedAt,
91
+ });
92
+ },
93
+ async update(questionId, patch) {
94
+ const current = getOne.get(questionId);
95
+ if (!current)
96
+ return null;
97
+ const merged = { ...toRegistration(current), ...patch };
98
+ updateOne.run({
99
+ question_id: questionId,
100
+ status: merged.status,
101
+ error: merged.error,
102
+ updated_at: merged.updatedAt,
103
+ last_computed_at: merged.lastComputedAt,
104
+ derived_version: merged.derivedVersion,
105
+ derived_collected_at: merged.derivedCollectedAt,
106
+ });
107
+ return merged;
108
+ },
109
+ async delete(questionId) {
110
+ return deleteOne.run(questionId).changes > 0;
111
+ },
112
+ };
113
+ }
114
+ //# sourceMappingURL=question-store.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"question-store.js","sourceRoot":"","sources":["../../src/storage/question-store.ts"],"names":[],"mappings":"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"}