@zauso-ai/capstan-db 0.3.0 → 0.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -2,8 +2,8 @@ export { defineModel, field, relation } from "./model.js";
2
2
  export { generateDrizzleSchema } from "./schema.js";
3
3
  export { createDatabase } from "./client.js";
4
4
  export type { DatabaseInstance } from "./client.js";
5
- export { planMigration, generateMigration, applyMigration, ensureTrackingTable, getAppliedMigrations, getMigrationStatus, applyTrackedMigrations, } from "./migrate.js";
6
- export type { MigrationDbClient, MigrationIssue, MigrationIssueCode, MigrationOptions, MigrationPlan, MigrationStatus } from "./migrate.js";
5
+ export { planMigration, generateMigration, applyMigration, ensureTrackingTable, ensureTrackingTableAsync, getAppliedMigrations, getAppliedMigrationsAsync, getMigrationStatus, getMigrationStatusAsync, applyTrackedMigrations, applyTrackedMigrationsAsync, } from "./migrate.js";
6
+ export type { AsyncMigrationDbClient, MigrationDbClient, MigrationIssue, MigrationIssueCode, MigrationOptions, MigrationPlan, MigrationStatus } from "./migrate.js";
7
7
  export { createDatabaseRuntime } from "./runtime.js";
8
8
  export type { DatabaseRuntime, FindManyOptions, ModelRepository, QueryOrder, SqlMutationResult, SqlRuntimeAdapter } from "./runtime.js";
9
9
  export { createCrudRepository, createCrudRuntime, generateCrudRoutes, pluralize } from "./crud.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC5I,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACxI,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACnG,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,YAAY,EACV,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,UAAU,EACV,UAAU,GACX,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AACtB,YAAY,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,cAAc,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AACpK,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AACrD,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,UAAU,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACxI,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACnG,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAC/E,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AACnE,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACxE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC7F,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAClE,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AACtD,YAAY,EACV,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,UAAU,EACV,UAAU,GACX,MAAM,YAAY,CAAC"}
package/dist/index.js CHANGED
@@ -1,7 +1,7 @@
1
1
  export { defineModel, field, relation } from "./model.js";
2
2
  export { generateDrizzleSchema } from "./schema.js";
3
3
  export { createDatabase } from "./client.js";
4
- export { planMigration, generateMigration, applyMigration, ensureTrackingTable, getAppliedMigrations, getMigrationStatus, applyTrackedMigrations, } from "./migrate.js";
4
+ export { planMigration, generateMigration, applyMigration, ensureTrackingTable, ensureTrackingTableAsync, getAppliedMigrations, getAppliedMigrationsAsync, getMigrationStatus, getMigrationStatusAsync, applyTrackedMigrations, applyTrackedMigrationsAsync, } from "./migrate.js";
5
5
  export { createDatabaseRuntime } from "./runtime.js";
6
6
  export { createCrudRepository, createCrudRuntime, generateCrudRoutes, pluralize } from "./crud.js";
7
7
  export { defineEmbedding, openaiEmbeddings } from "./embedding.js";
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,sBAAsB,GACvB,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEnG,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,OAAO,EACL,aAAa,EACb,iBAAiB,EACjB,cAAc,EACd,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,yBAAyB,EACzB,kBAAkB,EAClB,uBAAuB,EACvB,sBAAsB,EACtB,2BAA2B,GAC5B,MAAM,cAAc,CAAC;AAEtB,OAAO,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAC;AAErD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEnG,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAExE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC"}
package/dist/migrate.d.ts CHANGED
@@ -34,7 +34,14 @@ export interface MigrationDbClient {
34
34
  };
35
35
  }
36
36
  export declare function ensureTrackingTable(client: MigrationDbClient, provider?: DbProvider): void;
37
+ export interface AsyncMigrationDbClient {
38
+ query: (sql: string, params?: unknown[]) => Promise<Array<Record<string, unknown>>>;
39
+ execute: (sql: string, params?: unknown[]) => Promise<unknown>;
40
+ transaction: <T>(fn: (client: AsyncMigrationDbClient) => Promise<T>) => Promise<T>;
41
+ }
42
+ export declare function ensureTrackingTableAsync(client: AsyncMigrationDbClient, provider?: DbProvider): Promise<void>;
37
43
  export declare function getAppliedMigrations(client: MigrationDbClient): string[];
44
+ export declare function getAppliedMigrationsAsync(client: AsyncMigrationDbClient): Promise<string[]>;
38
45
  export interface MigrationStatus {
39
46
  applied: Array<{
40
47
  name: string;
@@ -43,8 +50,13 @@ export interface MigrationStatus {
43
50
  pending: string[];
44
51
  }
45
52
  export declare function getMigrationStatus(client: MigrationDbClient, allMigrationNames: string[], provider?: DbProvider): MigrationStatus;
53
+ export declare function getMigrationStatusAsync(client: AsyncMigrationDbClient, allMigrationNames: string[], provider?: DbProvider): Promise<MigrationStatus>;
46
54
  export declare function applyTrackedMigrations(client: MigrationDbClient, migrations: Array<{
47
55
  name: string;
48
56
  sql: string;
49
57
  }>, provider?: DbProvider): string[];
58
+ export declare function applyTrackedMigrationsAsync(client: AsyncMigrationDbClient, migrations: Array<{
59
+ name: string;
60
+ sql: string;
61
+ }>, provider?: DbProvider): Promise<string[]>;
50
62
  //# sourceMappingURL=migrate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAoC,eAAe,EAAE,MAAM,YAAY,CAAC;AAqIhG,MAAM,MAAM,kBAAkB,GAC1B,YAAY,GACZ,aAAa,GACb,cAAc,GACd,YAAY,GACZ,eAAe,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,kBAAkB,CAAC;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,UAAU,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,IAAI,EAAE,OAAO,CAAC;CACf;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,EAAE,UAAU,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AA2FD,wBAAgB,aAAa,CAC3B,UAAU,EAAE,eAAe,EAAE,EAC7B,QAAQ,EAAE,eAAe,EAAE,EAC3B,OAAO,CAAC,EAAE,UAAU,GAAG,gBAAgB,GACtC,aAAa,CA0If;AAED,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,eAAe,EAAE,EAC7B,QAAQ,EAAE,eAAe,EAAE,EAC3B,OAAO,CAAC,EAAE,UAAU,GAAG,gBAAgB,GACtC,MAAM,EAAE,CAYV;AAED,wBAAgB,cAAc,CAAC,EAAE,EAAE;IAAE,OAAO,EAAE;QAAE,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAA;CAAE,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,IAAI,CAcpG;AA2BD,MAAM,WAAW,iBAAiB;IAChC,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK;QACxB,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,EAAE,CAAC;QACzC,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;QACvC,GAAG,EAAE,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,KAAK,OAAO,CAAC;KACxC,CAAC;CACH;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,GAAE,UAAqB,GAAG,IAAI,CAEpG;AAED,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,EAAE,CAKxE;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACpD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,iBAAiB,EACzB,iBAAiB,EAAE,MAAM,EAAE,EAC3B,QAAQ,GAAE,UAAqB,GAC9B,eAAe,CAajB;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,iBAAiB,EACzB,UAAU,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAAC,EAChD,QAAQ,GAAE,UAAqB,GAC9B,MAAM,EAAE,CAkCV"}
1
+ {"version":3,"file":"migrate.d.ts","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"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"}
package/dist/migrate.js CHANGED
@@ -327,10 +327,20 @@ function createTrackingTableSQL(provider) {
327
327
  export function ensureTrackingTable(client, provider = "sqlite") {
328
328
  client.exec(createTrackingTableSQL(provider));
329
329
  }
330
+ function trackingNamePlaceholder(provider) {
331
+ return provider === "postgres" ? "$1" : "?";
332
+ }
333
+ export async function ensureTrackingTableAsync(client, provider = "sqlite") {
334
+ await client.execute(createTrackingTableSQL(provider));
335
+ }
330
336
  export function getAppliedMigrations(client) {
331
337
  const rows = client.prepare("SELECT name FROM _capstan_migrations ORDER BY id ASC").all();
332
338
  return rows.map((row) => row.name);
333
339
  }
340
+ export async function getAppliedMigrationsAsync(client) {
341
+ const rows = await client.query("SELECT name FROM _capstan_migrations ORDER BY id ASC");
342
+ return rows.map((row) => String(row.name));
343
+ }
334
344
  export function getMigrationStatus(client, allMigrationNames, provider = "sqlite") {
335
345
  ensureTrackingTable(client, provider);
336
346
  const rows = client.prepare("SELECT name, applied_at FROM _capstan_migrations ORDER BY id ASC").all();
@@ -340,6 +350,15 @@ export function getMigrationStatus(client, allMigrationNames, provider = "sqlite
340
350
  pending: allMigrationNames.filter((name) => !appliedSet.has(name)),
341
351
  };
342
352
  }
353
+ export async function getMigrationStatusAsync(client, allMigrationNames, provider = "sqlite") {
354
+ await ensureTrackingTableAsync(client, provider);
355
+ const rows = await client.query("SELECT name, applied_at FROM _capstan_migrations ORDER BY id ASC");
356
+ const appliedSet = new Set(rows.map((row) => row.name));
357
+ return {
358
+ applied: rows.map((row) => ({ name: row.name, appliedAt: row.applied_at })),
359
+ pending: allMigrationNames.filter((name) => !appliedSet.has(name)),
360
+ };
361
+ }
343
362
  export function applyTrackedMigrations(client, migrations, provider = "sqlite") {
344
363
  ensureTrackingTable(client, provider);
345
364
  const applied = getAppliedMigrations(client);
@@ -369,4 +388,27 @@ export function applyTrackedMigrations(client, migrations, provider = "sqlite")
369
388
  }
370
389
  return executed;
371
390
  }
391
+ export async function applyTrackedMigrationsAsync(client, migrations, provider = "sqlite") {
392
+ await ensureTrackingTableAsync(client, provider);
393
+ const applied = await getAppliedMigrationsAsync(client);
394
+ const appliedSet = new Set(applied);
395
+ const pending = migrations.filter((migration) => !appliedSet.has(migration.name));
396
+ if (pending.length === 0)
397
+ return [];
398
+ const executed = [];
399
+ for (const migration of pending) {
400
+ const statements = migration.sql
401
+ .split(";")
402
+ .map((statement) => statement.trim())
403
+ .filter((statement) => statement.length > 0 && !statement.startsWith("--"));
404
+ await client.transaction(async (tx) => {
405
+ for (const stmt of statements) {
406
+ await tx.execute(stmt);
407
+ }
408
+ await tx.execute(`INSERT INTO _capstan_migrations (name) VALUES (${trackingNamePlaceholder(provider)})`, [migration.name]);
409
+ });
410
+ executed.push(migration.name);
411
+ }
412
+ return executed;
413
+ }
372
414
  //# sourceMappingURL=migrate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"migrate.js","sourceRoot":"","sources":["../src/migrate.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAG1H,SAAS,SAAS,CAChB,SAAiB,EACjB,GAAoB,EACpB,QAAoB,EACpB,QAAsC;IAEtC,MAAM,OAAO,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;IACvC,MAAM,eAAe,GAAG,GAAG,CAAC,UAAU;QACpC,CAAC,CAAC,CAAC,GAAG,EAAE;YACJ,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;YAC/D,OAAO,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAClE,CAAC,CAAC,EAAE;QACN,CAAC,CAAC,SAAS,CAAC;IACd,MAAM,KAAK,GAAa,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC,CAAC,mBAAmB,CAAC,eAAe,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IAErI,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC5B,CAAC;IACD,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QACnD,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACzB,CAAC;IACD,IAAI,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;QAC9B,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvB,CAAC;IAED,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACpD,IAAI,WAAW,EAAE,CAAC;QAChB,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAC1B,CAAC;IAED,IAAI,GAAG,CAAC,UAAU,EAAE,CAAC;QACnB,MAAM,MAAM,GAAG,qBAAqB,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;QAC/D,KAAK,CAAC,IAAI,CAAC,cAAc,iBAAiB,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACpG,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,CAAC;AAED,SAAS,cAAc,CACrB,KAAsB,EACtB,QAAoB,EACpB,QAAsC,EACtC,iBAA0B;IAE1B,MAAM,SAAS,GAAG,iBAAiB,IAAI,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAChE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,KAAK,SAAS,CAAC,IAAI,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC,CAAC;IAChH,OAAO,gBAAgB,SAAS,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AAC/D,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB,EAAE,QAAoB;IAC3D,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU,CAAC;QAChB,KAAK,OAAO;YACV,OAAO,wBAAwB,SAAS,EAAE,CAAC;IAC/C,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CACnB,SAAiB,EACjB,SAAiB,EACjB,GAAoB,EACpB,QAAoB,EACpB,QAAsC;IAEtC,OAAO,eAAe,SAAS,eAAe,SAAS,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,CAAC;AAChG,CAAC;AAED,SAAS,eAAe,CACtB,SAAiB,EACjB,aAAqB,EACrB,WAAmB;IAEnB,OAAO,eAAe,SAAS,kBAAkB,WAAW,CAAC,aAAa,CAAC,OAAO,WAAW,CAAC,WAAW,CAAC,EAAE,CAAC;AAC/G,CAAC;AAED,SAAS,cAAc,CAAC,aAAqB,EAAE,WAAmB,EAAE,QAAoB;IACtF,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,OAAO;YACV,OAAO,gBAAgB,aAAa,OAAO,WAAW,EAAE,CAAC;QAC3D,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU;YACb,OAAO,eAAe,aAAa,cAAc,WAAW,EAAE,CAAC;IACnE,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,SAAiB,EAAE,GAAoB;IACxD,OAAO,OAAO,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;AACrE,CAAC;AAED,SAAS,cAAc,CAAC,SAAiB,EAAE,GAAoB,EAAE,QAAoB;IACnF,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC1C,MAAM,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;IAC3C,MAAM,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QACxC,MAAM,GAAG,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC;QACnC,OAAO,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU;YACb,OAAO,UAAU,MAAM,uBAAuB,OAAO,OAAO,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;QAC/F,KAAK,OAAO;YACV,OAAO,UAAU,MAAM,SAAS,OAAO,OAAO,SAAS,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACnF,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,SAAiB,EAAE,GAAoB,EAAE,QAAoB;IACjF,MAAM,OAAO,GAAG,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC1C,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd,KAAK,UAAU;YACb,OAAO,wBAAwB,OAAO,EAAE,CAAC;QAC3C,KAAK,OAAO;YACV,OAAO,cAAc,OAAO,OAAO,SAAS,EAAE,CAAC;IACnD,CAAC;AACH,CAAC;AAOD,SAAS,SAAS,CAAC,KAAsB;IACvC,OAAO,EAAE,SAAS,EAAE,iBAAiB,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC;AACxD,CAAC;AA8BD,SAAS,uBAAuB,CAAC,OAAuC;IACtE,IAAI,CAAC,OAAO,EAAE,CAAC;QACb,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACxE,CAAC;IACD,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QAChC,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,gBAAgB,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IACvE,CAAC;IACD,OAAO;QACL,QAAQ,EAAE,OAAO,CAAC,QAAQ,IAAI,QAAQ;QACtC,gBAAgB,EAAE,OAAO,CAAC,gBAAgB,IAAI,KAAK;QACnD,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,KAAK;KAChC,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,KAAqB;IAC5C,OAAO,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC;AACxC,CAAC;AAOD,SAAS,mBAAmB,CAC1B,SAA0B,EAC1B,OAAwB;IAExB,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IACpG,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;IAClG,MAAM,IAAI,GAAG,IAAI,GAAG,EAAU,CAAC;IAC/B,MAAM,OAAO,GAAmB,EAAE,CAAC;IAEnC,KAAK,MAAM,WAAW,IAAI,KAAK,EAAE,CAAC;QAChC,MAAM,OAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,aAAa,EAAE,EAAE,CAC/C,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC;YACxB,oBAAoB,CAAC,SAAS,CAAC,MAAM,CAAC,aAAa,CAAE,CAAC,KAAK,oBAAoB,CAAC,OAAO,CAAC,MAAM,CAAC,WAAW,CAAE,CAAC,CAC9G,CAAC;QACF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACzB,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;YAClC,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;YACxB,OAAO,CAAC,IAAI,CAAC,EAAE,aAAa,EAAE,WAAW,EAAE,CAAC,CAAC;QAC/C,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,aAAa,CAAC,SAAiB;IACtC,OAAO,iBAAiB,SAAS,EAAE,CAAC;AACtC,CAAC;AAED,SAAS,oBAAoB,CAC3B,SAA0B,EAC1B,OAAwB,EACxB,QAAoB,EACpB,QAAsC,EACtC,OAAuB;IAEvB,MAAM,SAAS,GAAG,iBAAiB,CAAC,OAAO,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC;IAC1C,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,MAAM,CAAC,WAAW,EAAE,MAAM,CAAC,aAAa,CAAU,CAAC,CAAC,CAAC;IAC5G,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;SAC5C,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE;QACjB,MAAM,eAAe,GAAG,aAAa,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC3G,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO;YACL,YAAY,EAAE,WAAW,CAAC,SAAS,CAAC;YACpC,YAAY,EAAE,WAAW,CAAC,eAAe,CAAC;SAC3C,CAAC;IACJ,CAAC,CAAC;SACD,MAAM,CAAC,CAAC,KAAK,EAA2D,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAAC;IAE9F,MAAM,UAAU,GAAG,CAAC,cAAc,CAAC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC3E,IAAI,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC3B,UAAU,CAAC,IAAI,CACb,eAAe,QAAQ,KAAK,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI;YACzF,UAAU,WAAW,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,SAAS,EAAE,CACxF,CAAC;IACJ,CAAC;IACD,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IACnD,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC/D,KAAK,MAAM,GAAG,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;QAClC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,MAAM,UAAU,aAAa,CAC3B,UAA6B,EAC7B,QAA2B,EAC3B,OAAuC;IAEvC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,UAAU,GAAa,EAAE,CAAC;IAChC,MAAM,MAAM,GAAqB,EAAE,CAAC;IAEpC,MAAM,OAAO,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,UAAU,EAAE,CAAC;QAC/B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACpC,CAAC;IAED,MAAM,KAAK,GAAG,IAAI,GAAG,EAAqB,CAAC;IAC3C,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,IAAI,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC;QAC9B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IAClC,CAAC;IACD,MAAM,QAAQ,GAAG,IAAI,GAAG,CAA0B;QAChD,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAU,CAAC;QAC1D,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAU,CAAC;KACzD,CAAC,CAAC;IAEH,KAAK,MAAM,CAAC,SAAS,CAAC,IAAI,OAAO,EAAE,CAAC;QAClC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;YAC1B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,YAAY;gBAClB,SAAS;gBACT,WAAW,EAAE,IAAI;gBACjB,OAAO,EAAE,UAAU,SAAS,6CAA6C;aAC1E,CAAC,CAAC;YACH,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;gBAC9B,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,IAAI,KAAK,EAAE,CAAC;QACxC,MAAM,QAAQ,GAAG,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QACxC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YAC3E,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBACvC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;YACrE,CAAC;YACD,SAAS;QACX,CAAC;QAED,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QACnE,MAAM,YAAY,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;QAC/D,MAAM,OAAO,GAAG,mBAAmB,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;QAClE,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC;QAC3E,MAAM,SAAS,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;QACvE,MAAM,eAAe,GAAG,CAAC,GAAG,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7H,MAAM,iBAAiB,GAAG,CAAC,GAAG,cAAc,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,CAAC;QACjI,MAAM,iBAAiB,GAAG,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAC9E,SAAS,IAAI,QAAQ,CAAC,KAAK,CAAC,MAAM;YAClC,oBAAoB,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC,KAAK,oBAAoB,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAE,CAAC,CAClH,CAAC;QAEF,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,eAAe;gBACrB,SAAS;gBACT,SAAS,EAAE,GAAG,MAAM,CAAC,aAAa,KAAK,MAAM,CAAC,WAAW,EAAE;gBAC3D,WAAW,EAAE,KAAK;gBAClB,OAAO,EAAE,WAAW,SAAS,IAAI,MAAM,CAAC,aAAa,qBAAqB,MAAM,CAAC,WAAW,IAAI;aACjG,CAAC,CAAC;QACL,CAAC;QAED,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;YAC1C,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI,EAAE,aAAa;gBACnB,SAAS;gBACT,SAAS;gBACT,WAAW,EAAE,IAAI;gBACjB,OAAO,EAAE,WAAW,SAAS,IAAI,SAAS,6CAA6C;aACxF,CAAC,CAAC;QACL,CAAC;QAED,MAAM,YAAY,GAAG,iBAAiB,CAAC,MAAM,GAAG,CAAC,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC;QAClF,MAAM,UAAU,GAAG,iBAAiB,CAAC,MAAM,KAAK,CAAC,IAAI,QAAQ,CAAC,gBAAgB,CAAC;QAE/E,IAAI,YAAY,IAAI,UAAU,EAAE,CAAC;YAC/B,UAAU,CAAC,IAAI,CAAC,GAAG,oBAAoB,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;QAC/G,CAAC;aAAM,CAAC;YACN,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;gBAC7B,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,EAAE,MAAM,CAAC,aAAa,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC;YACxF,CAAC;YAED,KAAK,MAAM,SAAS,IAAI,eAAe,EAAE,CAAC;gBACxC,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAE,EAAE,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;YACpH,CAAC;YAED,KAAK,MAAM,SAAS,IAAI,iBAAiB,EAAE,CAAC;gBAC1C,MAAM,CAAC,IAAI,CAAC;oBACV,IAAI,EAAE,cAAc;oBACpB,SAAS;oBACT,SAAS;oBACT,WAAW,EAAE,KAAK;oBAClB,OAAO,EAAE,WAAW,SAAS,IAAI,SAAS,yDAAyD;iBACpG,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,CAAU,CAAC,CACzE,CAAC;QACF,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,GAAG,CAAU,CAAC,CACvE,CAAC;QAEF,IAAI,CAAC,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC;YACjC,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,WAAW,EAAE,CAAC;gBAC3C,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBACpC,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;gBACrE,CAAC;YACH,CAAC;YAED,KAAK,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,IAAI,eAAe,EAAE,CAAC;gBAC/C,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,CAAC,EAAE,CAAC;oBAChC,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI,EAAE,YAAY;wBAClB,SAAS;wBACT,WAAW,EAAE,IAAI;wBACjB,OAAO,EAAE,UAAU,SAAS,CAAC,SAAS,EAAE,GAAG,CAAC,6CAA6C;qBAC1F,CAAC,CAAC;oBACH,IAAI,QAAQ,CAAC,gBAAgB,EAAE,CAAC;wBAC9B,UAAU,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,EAAE,GAAG,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;oBACnE,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAED,OAAO;QACL,QAAQ,EAAE,QAAQ,CAAC,QAAQ;QAC3B,UAAU;QACV,MAAM;QACN,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;KACvD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,UAA6B,EAC7B,QAA2B,EAC3B,OAAuC;IAEvC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,IAAI,GAAG,aAAa,CAAC,UAAU,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;IAE3D,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QAC3E,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM;aACxB,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,OAAO,EAAE,CAAC;aACnD,IAAI,CAAC,IAAI,CAAC,CAAC;QACd,MAAM,IAAI,KAAK,CAAC,sDAAsD,OAAO,EAAE,CAAC,CAAC;IACnF,CAAC;IAED,OAAO,IAAI,CAAC,UAAU,CAAC;AACzB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,EAAgD,EAAE,GAAa;IAC5F,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAE7B,MAAM,MAAM,GAAG,EAAE,CAAC,OAAO,CAAC;IAC1B,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;IACjC,IAAI,CAAC;QACH,KAAK,MAAM,IAAI,IAAI,GAAG,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACpB,CAAC;QACD,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACxB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACxB,MAAM,GAAG,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,sBAAsB,CAAC,QAAoB;IAClD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,UAAU;YACb,OAAO;;;;EAIX,CAAC;QACC,KAAK,OAAO;YACV,OAAO;;;;EAIX,CAAC;QACC,KAAK,QAAQ,CAAC;QACd,KAAK,QAAQ,CAAC;QACd;YACE,OAAO;;;;EAIX,CAAC;IACD,CAAC;AACH,CAAC;AAWD,MAAM,UAAU,mBAAmB,CAAC,MAAyB,EAAE,WAAuB,QAAQ;IAC5F,MAAM,CAAC,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;AAChD,CAAC;AAQD,SAAS,uBAAuB,CAAC,QAAoB;IACnD,OAAO,QAAQ,KAAK,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC;AAC9C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAA8B,EAC9B,WAAuB,QAAQ;IAE/B,MAAM,MAAM,CAAC,OAAO,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,UAAU,oBAAoB,CAAC,MAAyB;IAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CACzB,sDAAsD,CACvD,CAAC,GAAG,EAA6B,CAAC;IACnC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,yBAAyB,CAAC,MAA8B;IAC5E,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAAC,sDAAsD,CAAC,CAAC;IACxF,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;AAC7C,CAAC;AAOD,MAAM,UAAU,kBAAkB,CAChC,MAAyB,EACzB,iBAA2B,EAC3B,WAAuB,QAAQ;IAE/B,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEtC,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CACzB,kEAAkE,CACnE,CAAC,GAAG,EAAiD,CAAC;IAEvD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAExD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3E,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,MAA8B,EAC9B,iBAA2B,EAC3B,WAAuB,QAAQ;IAE/B,MAAM,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEjD,MAAM,IAAI,GAAG,MAAM,MAAM,CAAC,KAAK,CAC7B,kEAAkE,CACpB,CAAC;IAEjD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;IAExD,OAAO;QACL,OAAO,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,EAAE,GAAG,CAAC,UAAU,EAAE,CAAC,CAAC;QAC3E,OAAO,EAAE,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;KACnE,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CACpC,MAAyB,EACzB,UAAgD,EAChD,WAAuB,QAAQ;IAE/B,mBAAmB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEtC,MAAM,OAAO,GAAG,oBAAoB,CAAC,MAAM,CAAC,CAAC;IAC7C,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAEpC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAClF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG;aAC7B,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;aACpC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9E,MAAM,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;QACjC,IAAI,CAAC;YACH,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACpB,CAAC;YACD,MAAM,CAAC,OAAO,CACZ,mDAAmD,CACpD,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChC,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;YACxB,MAAM,GAAG,CAAC;QACZ,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,2BAA2B,CAC/C,MAA8B,EAC9B,UAAgD,EAChD,WAAuB,QAAQ;IAE/B,MAAM,wBAAwB,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IAEjD,MAAM,OAAO,GAAG,MAAM,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,CAAC;IAEpC,MAAM,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IAClF,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEpC,MAAM,QAAQ,GAAa,EAAE,CAAC;IAE9B,KAAK,MAAM,SAAS,IAAI,OAAO,EAAE,CAAC;QAChC,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG;aAC7B,KAAK,CAAC,GAAG,CAAC;aACV,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;aACpC,MAAM,CAAC,CAAC,SAAS,EAAE,EAAE,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;QAE9E,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,EAAE,EAAE,EAAE,EAAE;YACpC,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;gBAC9B,MAAM,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;YACD,MAAM,EAAE,CAAC,OAAO,CACd,kDAAkD,uBAAuB,CAAC,QAAQ,CAAC,GAAG,EACtF,CAAC,SAAS,CAAC,IAAI,CAAC,CACjB,CAAC;QACJ,CAAC,CAAC,CAAC;QACH,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@zauso-ai/capstan-db",
3
- "version": "0.3.0",
3
+ "version": "0.3.1",
4
4
  "type": "module",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -1,31 +0,0 @@
1
- import type { VectorFilter, VectorHybridSearchOptions, VectorSearchResult, VectorStore, VectorStoreConfig } from "./vector-store.js";
2
- interface StoredEntry {
3
- vector: number[];
4
- metadata: Record<string, unknown>;
5
- }
6
- /**
7
- * In-memory vector store backed by a `Map`.
8
- *
9
- * This implementation wraps the same cosine-distance utilities that power the
10
- * existing `findNearest` and `hybridSearch` exports so that behaviour is
11
- * identical when running without a database.
12
- */
13
- export declare class InMemoryVectorStore implements VectorStore {
14
- /** @internal */
15
- readonly _store: Map<string, StoredEntry>;
16
- private readonly _dimensions;
17
- constructor(config?: Partial<VectorStoreConfig>);
18
- private _validateDimensions;
19
- upsert(id: string, vector: number[], metadata?: Record<string, unknown>): Promise<void>;
20
- upsertBatch(items: ReadonlyArray<{
21
- id: string;
22
- vector: number[];
23
- metadata?: Record<string, unknown>;
24
- }>): Promise<void>;
25
- search(query: number[], k: number, filter?: VectorFilter): Promise<VectorSearchResult[]>;
26
- hybridSearch(query: string, queryVector: number[], k: number, opts?: VectorHybridSearchOptions): Promise<VectorSearchResult[]>;
27
- remove(id: string): Promise<boolean>;
28
- count(): Promise<number>;
29
- }
30
- export {};
31
- //# sourceMappingURL=vector-store-memory.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vector-store-memory.d.ts","sourceRoot":"","sources":["../../../.claude/worktrees/agent-a1ae6f0b/packages/db/src/vector-store-memory.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EACV,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAE3B,UAAU,WAAW;IACnB,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACnC;AAqCD;;;;;;GAMG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACrD,gBAAgB;IAChB,QAAQ,CAAC,MAAM,2BAAkC;IACjD,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;gBAErC,MAAM,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC;IAI/C,OAAO,CAAC,mBAAmB;IAWrB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAKvF,WAAW,CACf,KAAK,EAAE,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,GACzF,OAAO,CAAC,IAAI,CAAC;IASV,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAexF,YAAY,CAChB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EAAE,EACrB,CAAC,EAAE,MAAM,EACT,IAAI,CAAC,EAAE,yBAAyB,GAC/B,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAgC1B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAIpC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;CAG/B"}
@@ -1,125 +0,0 @@
1
- // ---------------------------------------------------------------------------
2
- // InMemoryVectorStore — brute-force in-memory vector search
3
- // ---------------------------------------------------------------------------
4
- //
5
- // Suitable for development and small datasets (<10K vectors). All data lives
6
- // in a plain Map and is lost when the process exits. Search is O(n) per
7
- // query — acceptable for prototyping but not for production workloads.
8
- // ---------------------------------------------------------------------------
9
- import { cosineDistance } from "./search.js";
10
- /** Simple whitespace tokeniser with lower-casing and deduplication. */
11
- function tokenize(text) {
12
- return [
13
- ...new Set(text
14
- .toLowerCase()
15
- .split(/\W+/)
16
- .filter((t) => t.length > 0)),
17
- ];
18
- }
19
- /** Normalised keyword overlap score in [0, 1]. */
20
- function keywordOverlap(queryTerms, text) {
21
- if (queryTerms.length === 0)
22
- return 0;
23
- const docTokens = new Set(tokenize(text));
24
- let hits = 0;
25
- for (const term of queryTerms) {
26
- if (docTokens.has(term))
27
- hits++;
28
- }
29
- return hits / queryTerms.length;
30
- }
31
- function matchesFilter(metadata, filter) {
32
- for (const [key, value] of Object.entries(filter)) {
33
- const actual = metadata[key];
34
- if (Array.isArray(value)) {
35
- if (!value.includes(actual))
36
- return false;
37
- }
38
- else if (actual !== value) {
39
- return false;
40
- }
41
- }
42
- return true;
43
- }
44
- /**
45
- * In-memory vector store backed by a `Map`.
46
- *
47
- * This implementation wraps the same cosine-distance utilities that power the
48
- * existing `findNearest` and `hybridSearch` exports so that behaviour is
49
- * identical when running without a database.
50
- */
51
- export class InMemoryVectorStore {
52
- /** @internal */
53
- _store = new Map();
54
- _dimensions;
55
- constructor(config) {
56
- this._dimensions = config?.dimensions;
57
- }
58
- _validateDimensions(vector) {
59
- if (vector.length === 0) {
60
- throw new Error("Cannot store a zero-length vector.");
61
- }
62
- if (this._dimensions !== undefined && vector.length !== this._dimensions) {
63
- throw new Error(`Dimension mismatch: expected ${this._dimensions}, got ${vector.length}.`);
64
- }
65
- }
66
- async upsert(id, vector, metadata) {
67
- this._validateDimensions(vector);
68
- this._store.set(id, { vector, metadata: metadata ?? {} });
69
- }
70
- async upsertBatch(items) {
71
- for (const item of items) {
72
- this._validateDimensions(item.vector);
73
- }
74
- for (const item of items) {
75
- this._store.set(item.id, { vector: item.vector, metadata: item.metadata ?? {} });
76
- }
77
- }
78
- async search(query, k, filter) {
79
- if (query.length === 0)
80
- return [];
81
- const results = [];
82
- for (const [id, entry] of this._store) {
83
- if (filter && !matchesFilter(entry.metadata, filter))
84
- continue;
85
- if (entry.vector.length !== query.length)
86
- continue;
87
- const score = 1 - cosineDistance(query, entry.vector);
88
- results.push({ id, score, metadata: entry.metadata });
89
- }
90
- results.sort((a, b) => b.score - a.score);
91
- return results.slice(0, Math.max(0, k));
92
- }
93
- async hybridSearch(query, queryVector, k, opts) {
94
- const keywordWeight = opts?.keywordWeight ?? 0.3;
95
- const vectorWeight = opts?.vectorWeight ?? 0.7;
96
- const queryTerms = tokenize(query);
97
- if (queryTerms.length === 0 && queryVector.length === 0)
98
- return [];
99
- const results = [];
100
- for (const [id, entry] of this._store) {
101
- if (opts?.filter && !matchesFilter(entry.metadata, opts.filter))
102
- continue;
103
- const vectorScore = queryVector.length > 0 && entry.vector.length === queryVector.length
104
- ? 1 - cosineDistance(queryVector, entry.vector)
105
- : 0;
106
- // Use the "text" metadata field for keyword matching when available.
107
- const text = typeof entry.metadata["text"] === "string" ? entry.metadata["text"] : "";
108
- const kwScore = keywordOverlap(queryTerms, text);
109
- results.push({
110
- id,
111
- score: vectorWeight * vectorScore + keywordWeight * kwScore,
112
- metadata: entry.metadata,
113
- });
114
- }
115
- results.sort((a, b) => b.score - a.score);
116
- return results.slice(0, Math.max(0, k));
117
- }
118
- async remove(id) {
119
- return this._store.delete(id);
120
- }
121
- async count() {
122
- return this._store.size;
123
- }
124
- }
125
- //# sourceMappingURL=vector-store-memory.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vector-store-memory.js","sourceRoot":"","sources":["../../../.claude/worktrees/agent-a1ae6f0b/packages/db/src/vector-store-memory.ts"],"names":[],"mappings":"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"}
@@ -1,46 +0,0 @@
1
- import type { VectorFilter, VectorHybridSearchOptions, VectorSearchResult, VectorStore, VectorStoreConfig } from "./vector-store.js";
2
- /** Minimal query interface accepted by the pgvector store. */
3
- export interface PgQueryFn {
4
- /** Execute a parameterised SQL statement and return rows. */
5
- (sql: string, params?: unknown[]): Promise<Record<string, unknown>[]>;
6
- }
7
- /**
8
- * PostgreSQL vector store powered by the pgvector extension.
9
- *
10
- * The store creates a `capstan_vectors` table (configurable via
11
- * `config.tableName`) and uses the `<=>` cosine distance operator for
12
- * similarity search. The pgvector extension is created automatically on
13
- * first use if the connected role has the required permissions.
14
- *
15
- * No pgvector npm package is required — all interaction happens through raw
16
- * parameterised SQL.
17
- */
18
- export declare class PgVectorStore implements VectorStore {
19
- private readonly _query;
20
- private readonly _table;
21
- private readonly _dimensions;
22
- private _initialised;
23
- constructor(config: VectorStoreConfig & {
24
- connection: PgQueryFn;
25
- });
26
- /** @internal */
27
- _ensureSchema(): Promise<void>;
28
- upsert(id: string, vector: number[], metadata?: Record<string, unknown>): Promise<void>;
29
- upsertBatch(items: ReadonlyArray<{
30
- id: string;
31
- vector: number[];
32
- metadata?: Record<string, unknown>;
33
- }>): Promise<void>;
34
- search(query: number[], k: number, filter?: VectorFilter): Promise<VectorSearchResult[]>;
35
- hybridSearch(query: string, queryVector: number[], k: number, opts?: VectorHybridSearchOptions): Promise<VectorSearchResult[]>;
36
- remove(id: string): Promise<boolean>;
37
- count(): Promise<number>;
38
- private _validateDimensions;
39
- /** Format a number array as a pgvector literal `[1,2,3]`. */
40
- private _vec;
41
- /** Quote a SQL identifier to prevent injection. */
42
- private _qi;
43
- /** Build a WHERE clause from a VectorFilter, starting param indices at `startIdx`. */
44
- private _buildFilterClause;
45
- }
46
- //# sourceMappingURL=vector-store-pgvector.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vector-store-pgvector.d.ts","sourceRoot":"","sources":["../../../.claude/worktrees/agent-a1ae6f0b/packages/db/src/vector-store-pgvector.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EACV,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAE3B,8DAA8D;AAC9D,MAAM,WAAW,SAAS;IACxB,6DAA6D;IAC7D,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;CACvE;AAED;;;;;;;;;;GAUG;AACH,qBAAa,aAAc,YAAW,WAAW;IAC/C,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAY;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;IACrC,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,iBAAiB,GAAG;QAAE,UAAU,EAAE,SAAS,CAAA;KAAE;IAgBjE,gBAAgB;IACV,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IA6C9B,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkBvF,WAAW,CACf,KAAK,EAAE,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,GACzF,OAAO,CAAC,IAAI,CAAC;IA6BV,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IA0BxF,YAAY,CAChB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EAAE,EACrB,CAAC,EAAE,MAAM,EACT,IAAI,CAAC,EAAE,yBAAyB,GAC/B,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAkC1B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IASpC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAY9B,OAAO,CAAC,mBAAmB;IAW3B,6DAA6D;IAC7D,OAAO,CAAC,IAAI;IAIZ,mDAAmD;IACnD,OAAO,CAAC,GAAG;IAIX,sFAAsF;IACtF,OAAO,CAAC,kBAAkB;CA0B3B"}
@@ -1,215 +0,0 @@
1
- // ---------------------------------------------------------------------------
2
- // PgVectorStore — PostgreSQL pgvector-backed vector search
3
- // ---------------------------------------------------------------------------
4
- //
5
- // Uses raw SQL over a caller-supplied query function so there is no hard
6
- // dependency on any specific PostgreSQL client library. The pgvector
7
- // extension must be installed in the target database.
8
- // ---------------------------------------------------------------------------
9
- /**
10
- * PostgreSQL vector store powered by the pgvector extension.
11
- *
12
- * The store creates a `capstan_vectors` table (configurable via
13
- * `config.tableName`) and uses the `<=>` cosine distance operator for
14
- * similarity search. The pgvector extension is created automatically on
15
- * first use if the connected role has the required permissions.
16
- *
17
- * No pgvector npm package is required — all interaction happens through raw
18
- * parameterised SQL.
19
- */
20
- export class PgVectorStore {
21
- _query;
22
- _table;
23
- _dimensions;
24
- _initialised = false;
25
- constructor(config) {
26
- if (!config.connection) {
27
- throw new Error("PgVectorStore requires a `connection` query function.");
28
- }
29
- if (!config.dimensions) {
30
- throw new Error("PgVectorStore requires `dimensions` to be specified.");
31
- }
32
- this._query = config.connection;
33
- this._table = config.tableName ?? "capstan_vectors";
34
- this._dimensions = config.dimensions;
35
- }
36
- // -------------------------------------------------------------------------
37
- // Schema bootstrap
38
- // -------------------------------------------------------------------------
39
- /** @internal */
40
- async _ensureSchema() {
41
- if (this._initialised)
42
- return;
43
- try {
44
- await this._query("CREATE EXTENSION IF NOT EXISTS vector");
45
- }
46
- catch (err) {
47
- const message = err instanceof Error ? err.message : String(err);
48
- throw new Error(`pgvector extension not found. Run: CREATE EXTENSION vector;\n` +
49
- `Underlying error: ${message}`);
50
- }
51
- const table = this._table;
52
- const dim = this._dimensions;
53
- await this._query(`
54
- CREATE TABLE IF NOT EXISTS ${this._qi(table)} (
55
- id TEXT PRIMARY KEY,
56
- embedding vector(${dim}) NOT NULL,
57
- content TEXT NOT NULL DEFAULT '',
58
- metadata JSONB NOT NULL DEFAULT '{}'::jsonb
59
- )
60
- `);
61
- // Create an IVFFlat index if it does not already exist. The index
62
- // requires at least one row so we wrap in a DO block that is safe to
63
- // re-run.
64
- await this._query(`
65
- CREATE INDEX IF NOT EXISTS ${this._qi(table + "_embedding_idx")}
66
- ON ${this._qi(table)}
67
- USING ivfflat (embedding vector_cosine_ops)
68
- WITH (lists = 100)
69
- `).catch(() => {
70
- // Index creation can fail on an empty table — that is fine, it will
71
- // be retried lazily on the next search.
72
- });
73
- this._initialised = true;
74
- }
75
- // -------------------------------------------------------------------------
76
- // VectorStore implementation
77
- // -------------------------------------------------------------------------
78
- async upsert(id, vector, metadata) {
79
- this._validateDimensions(vector);
80
- await this._ensureSchema();
81
- const text = typeof metadata?.["text"] === "string" ? metadata["text"] : "";
82
- const metaJson = JSON.stringify(metadata ?? {});
83
- await this._query(`INSERT INTO ${this._qi(this._table)} (id, embedding, content, metadata)
84
- VALUES ($1, $2::vector, $3, $4::jsonb)
85
- ON CONFLICT (id) DO UPDATE
86
- SET embedding = EXCLUDED.embedding,
87
- content = EXCLUDED.content,
88
- metadata = EXCLUDED.metadata`, [id, this._vec(vector), text, metaJson]);
89
- }
90
- async upsertBatch(items) {
91
- if (items.length === 0)
92
- return;
93
- for (const item of items)
94
- this._validateDimensions(item.vector);
95
- await this._ensureSchema();
96
- // Batch upserts using a single multi-row INSERT .. ON CONFLICT.
97
- const valueClauses = [];
98
- const params = [];
99
- let idx = 1;
100
- for (const item of items) {
101
- const text = typeof item.metadata?.["text"] === "string" ? item.metadata["text"] : "";
102
- const metaJson = JSON.stringify(item.metadata ?? {});
103
- valueClauses.push(`($${idx}, $${idx + 1}::vector, $${idx + 2}, $${idx + 3}::jsonb)`);
104
- params.push(item.id, this._vec(item.vector), text, metaJson);
105
- idx += 4;
106
- }
107
- await this._query(`INSERT INTO ${this._qi(this._table)} (id, embedding, content, metadata)
108
- VALUES ${valueClauses.join(", ")}
109
- ON CONFLICT (id) DO UPDATE
110
- SET embedding = EXCLUDED.embedding,
111
- content = EXCLUDED.content,
112
- metadata = EXCLUDED.metadata`, params);
113
- }
114
- async search(query, k, filter) {
115
- if (query.length === 0)
116
- return [];
117
- this._validateDimensions(query);
118
- await this._ensureSchema();
119
- const { clause, params, nextIndex } = this._buildFilterClause(filter, 2);
120
- const rows = await this._query(`SELECT id, metadata, 1 - (embedding <=> $1::vector) AS score
121
- FROM ${this._qi(this._table)}
122
- ${clause}
123
- ORDER BY embedding <=> $1::vector
124
- LIMIT $${nextIndex}`, [this._vec(query), ...params, Math.max(1, k)]);
125
- return rows.map((row) => {
126
- const meta = typeof row["metadata"] === "string"
127
- ? JSON.parse(row["metadata"])
128
- : row["metadata"];
129
- const result = { id: String(row["id"]), score: Number(row["score"]) };
130
- if (meta !== undefined)
131
- result.metadata = meta;
132
- return result;
133
- });
134
- }
135
- async hybridSearch(query, queryVector, k, opts) {
136
- if (query.length === 0 && queryVector.length === 0)
137
- return [];
138
- if (queryVector.length > 0)
139
- this._validateDimensions(queryVector);
140
- await this._ensureSchema();
141
- const vectorWeight = opts?.vectorWeight ?? 0.7;
142
- const keywordWeight = opts?.keywordWeight ?? 0.3;
143
- const { clause, params, nextIndex } = this._buildFilterClause(opts?.filter, 3);
144
- let idx = nextIndex;
145
- // Use ts_rank for text relevance combined with cosine similarity.
146
- const rows = await this._query(`SELECT id, metadata,
147
- ${vectorWeight} * (1 - (embedding <=> $1::vector))
148
- + ${keywordWeight} * COALESCE(ts_rank(to_tsvector('simple', content), plainto_tsquery('simple', $2)), 0)
149
- AS score
150
- FROM ${this._qi(this._table)}
151
- ${clause}
152
- ORDER BY score DESC
153
- LIMIT $${idx}`, [this._vec(queryVector), query, ...params, Math.max(1, k)]);
154
- return rows.map((row) => {
155
- const meta = typeof row["metadata"] === "string"
156
- ? JSON.parse(row["metadata"])
157
- : row["metadata"];
158
- const result = { id: String(row["id"]), score: Number(row["score"]) };
159
- if (meta !== undefined)
160
- result.metadata = meta;
161
- return result;
162
- });
163
- }
164
- async remove(id) {
165
- await this._ensureSchema();
166
- const rows = await this._query(`DELETE FROM ${this._qi(this._table)} WHERE id = $1 RETURNING id`, [id]);
167
- return rows.length > 0;
168
- }
169
- async count() {
170
- await this._ensureSchema();
171
- const rows = await this._query(`SELECT COUNT(*)::int AS count FROM ${this._qi(this._table)}`);
172
- return Number(rows[0]?.["count"] ?? 0);
173
- }
174
- // -------------------------------------------------------------------------
175
- // Internal helpers
176
- // -------------------------------------------------------------------------
177
- _validateDimensions(vector) {
178
- if (vector.length === 0) {
179
- throw new Error("Cannot store a zero-length vector.");
180
- }
181
- if (vector.length !== this._dimensions) {
182
- throw new Error(`Dimension mismatch: expected ${this._dimensions}, got ${vector.length}.`);
183
- }
184
- }
185
- /** Format a number array as a pgvector literal `[1,2,3]`. */
186
- _vec(v) {
187
- return `[${v.join(",")}]`;
188
- }
189
- /** Quote a SQL identifier to prevent injection. */
190
- _qi(identifier) {
191
- return `"${identifier.replace(/"/g, '""')}"`;
192
- }
193
- /** Build a WHERE clause from a VectorFilter, starting param indices at `startIdx`. */
194
- _buildFilterClause(filter, startIdx) {
195
- if (!filter || Object.keys(filter).length === 0) {
196
- return { clause: "", params: [], nextIndex: startIdx };
197
- }
198
- const parts = [];
199
- const params = [];
200
- let idx = startIdx;
201
- for (const [key, value] of Object.entries(filter)) {
202
- // Use JSONB containment for metadata filtering.
203
- const fragment = JSON.stringify({ [key]: value });
204
- parts.push(`metadata @> $${idx}::jsonb`);
205
- params.push(fragment);
206
- idx++;
207
- }
208
- return {
209
- clause: `WHERE ${parts.join(" AND ")}`,
210
- params,
211
- nextIndex: idx,
212
- };
213
- }
214
- }
215
- //# sourceMappingURL=vector-store-pgvector.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vector-store-pgvector.js","sourceRoot":"","sources":["../../../.claude/worktrees/agent-a1ae6f0b/packages/db/src/vector-store-pgvector.ts"],"names":[],"mappings":"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"}
@@ -1,51 +0,0 @@
1
- import type { VectorFilter, VectorHybridSearchOptions, VectorSearchResult, VectorStore, VectorStoreConfig } from "./vector-store.js";
2
- /**
3
- * Minimal interface for a `better-sqlite3` Database instance.
4
- *
5
- * We only declare the subset of the API we actually use so that callers are
6
- * not forced to depend on `@types/better-sqlite3`.
7
- */
8
- export interface SqliteConnection {
9
- prepare(sql: string): {
10
- run(...params: unknown[]): {
11
- changes: number;
12
- };
13
- all(...params: unknown[]): Record<string, unknown>[];
14
- get(...params: unknown[]): Record<string, unknown> | undefined;
15
- };
16
- exec(sql: string): void;
17
- }
18
- /**
19
- * SQLite vector store.
20
- *
21
- * Stores vectors as JSON text columns and loads them into memory for
22
- * brute-force cosine search. The trade-off is durability with a simple
23
- * dependency chain — no native extensions beyond `better-sqlite3`.
24
- */
25
- export declare class SqliteVectorStore implements VectorStore {
26
- private readonly _db;
27
- private readonly _table;
28
- private readonly _dimensions;
29
- private _initialised;
30
- constructor(config: VectorStoreConfig & {
31
- connection: SqliteConnection;
32
- });
33
- /** @internal */
34
- _ensureSchema(): void;
35
- upsert(id: string, vector: number[], metadata?: Record<string, unknown>): Promise<void>;
36
- upsertBatch(items: ReadonlyArray<{
37
- id: string;
38
- vector: number[];
39
- metadata?: Record<string, unknown>;
40
- }>): Promise<void>;
41
- search(query: number[], k: number, filter?: VectorFilter): Promise<VectorSearchResult[]>;
42
- hybridSearch(query: string, queryVector: number[], k: number, opts?: VectorHybridSearchOptions): Promise<VectorSearchResult[]>;
43
- remove(id: string): Promise<boolean>;
44
- count(): Promise<number>;
45
- private _validateDimensions;
46
- /** Load all stored rows, parsing JSON columns. */
47
- private _loadAll;
48
- /** Escape a SQL identifier (double-quote style). */
49
- private _esc;
50
- }
51
- //# sourceMappingURL=vector-store-sqlite.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vector-store-sqlite.d.ts","sourceRoot":"","sources":["../../../.claude/worktrees/agent-a1ae6f0b/packages/db/src/vector-store-sqlite.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EACV,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,EAClB,WAAW,EACX,iBAAiB,EAClB,MAAM,mBAAmB,CAAC;AAE3B;;;;;GAKG;AACH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG;QACpB,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG;YAAE,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC;QAC/C,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;QACrD,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAAC;KAChE,CAAC;IACF,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AA2CD;;;;;;GAMG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IACnD,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAmB;IACvC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqB;IACjD,OAAO,CAAC,YAAY,CAAS;gBAEjB,MAAM,EAAE,iBAAiB,GAAG;QAAE,UAAU,EAAE,gBAAgB,CAAA;KAAE;IAaxE,gBAAgB;IAChB,aAAa,IAAI,IAAI;IAiBf,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBvF,WAAW,CACf,KAAK,EAAE,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,GACzF,OAAO,CAAC,IAAI,CAAC;IAqBV,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAkBxF,YAAY,CAChB,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EAAE,EACrB,CAAC,EAAE,MAAM,EACT,IAAI,CAAC,EAAE,yBAAyB,GAC/B,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAgC1B,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAQpC,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAY9B,OAAO,CAAC,mBAAmB;IAW3B,kDAAkD;IAClD,OAAO,CAAC,QAAQ;IAahB,oDAAoD;IACpD,OAAO,CAAC,IAAI;CAGb"}
@@ -1,203 +0,0 @@
1
- // ---------------------------------------------------------------------------
2
- // SqliteVectorStore — SQLite-backed vector search with JSON array storage
3
- // ---------------------------------------------------------------------------
4
- //
5
- // Vectors are persisted as JSON arrays in a `capstan_vectors` table. On
6
- // search, all matching rows are loaded into memory and scored with the same
7
- // cosine-distance function used by the in-memory store. This gives durable
8
- // storage without requiring pgvector, at the cost of O(n) scan time.
9
- //
10
- // Suitable for moderate datasets where PostgreSQL is overkill but persistence
11
- // across restarts is desired.
12
- // ---------------------------------------------------------------------------
13
- import { cosineDistance } from "./search.js";
14
- /** Simple whitespace tokeniser with lower-casing and deduplication. */
15
- function tokenize(text) {
16
- return [
17
- ...new Set(text
18
- .toLowerCase()
19
- .split(/\W+/)
20
- .filter((t) => t.length > 0)),
21
- ];
22
- }
23
- function keywordOverlap(queryTerms, text) {
24
- if (queryTerms.length === 0)
25
- return 0;
26
- const docTokens = new Set(tokenize(text));
27
- let hits = 0;
28
- for (const term of queryTerms) {
29
- if (docTokens.has(term))
30
- hits++;
31
- }
32
- return hits / queryTerms.length;
33
- }
34
- function matchesFilter(metadata, filter) {
35
- for (const [key, value] of Object.entries(filter)) {
36
- const actual = metadata[key];
37
- if (Array.isArray(value)) {
38
- if (!value.includes(actual))
39
- return false;
40
- }
41
- else if (actual !== value) {
42
- return false;
43
- }
44
- }
45
- return true;
46
- }
47
- /**
48
- * SQLite vector store.
49
- *
50
- * Stores vectors as JSON text columns and loads them into memory for
51
- * brute-force cosine search. The trade-off is durability with a simple
52
- * dependency chain — no native extensions beyond `better-sqlite3`.
53
- */
54
- export class SqliteVectorStore {
55
- _db;
56
- _table;
57
- _dimensions;
58
- _initialised = false;
59
- constructor(config) {
60
- if (!config.connection) {
61
- throw new Error("SqliteVectorStore requires a `connection` (better-sqlite3 Database instance).");
62
- }
63
- this._db = config.connection;
64
- this._table = config.tableName ?? "capstan_vectors";
65
- this._dimensions = config.dimensions;
66
- }
67
- // -------------------------------------------------------------------------
68
- // Schema bootstrap
69
- // -------------------------------------------------------------------------
70
- /** @internal */
71
- _ensureSchema() {
72
- if (this._initialised)
73
- return;
74
- this._db.exec(`
75
- CREATE TABLE IF NOT EXISTS "${this._esc(this._table)}" (
76
- id TEXT PRIMARY KEY,
77
- embedding TEXT NOT NULL,
78
- content TEXT NOT NULL DEFAULT '',
79
- metadata TEXT NOT NULL DEFAULT '{}'
80
- )
81
- `);
82
- this._initialised = true;
83
- }
84
- // -------------------------------------------------------------------------
85
- // VectorStore implementation
86
- // -------------------------------------------------------------------------
87
- async upsert(id, vector, metadata) {
88
- this._validateDimensions(vector);
89
- this._ensureSchema();
90
- const text = typeof metadata?.["text"] === "string" ? metadata["text"] : "";
91
- const metaJson = JSON.stringify(metadata ?? {});
92
- this._db
93
- .prepare(`INSERT INTO "${this._esc(this._table)}" (id, embedding, content, metadata)
94
- VALUES (?, ?, ?, ?)
95
- ON CONFLICT(id) DO UPDATE
96
- SET embedding = excluded.embedding,
97
- content = excluded.content,
98
- metadata = excluded.metadata`)
99
- .run(id, JSON.stringify(vector), text, metaJson);
100
- }
101
- async upsertBatch(items) {
102
- if (items.length === 0)
103
- return;
104
- for (const item of items)
105
- this._validateDimensions(item.vector);
106
- this._ensureSchema();
107
- const stmt = this._db.prepare(`INSERT INTO "${this._esc(this._table)}" (id, embedding, content, metadata)
108
- VALUES (?, ?, ?, ?)
109
- ON CONFLICT(id) DO UPDATE
110
- SET embedding = excluded.embedding,
111
- content = excluded.content,
112
- metadata = excluded.metadata`);
113
- for (const item of items) {
114
- const text = typeof item.metadata?.["text"] === "string" ? item.metadata["text"] : "";
115
- const metaJson = JSON.stringify(item.metadata ?? {});
116
- stmt.run(item.id, JSON.stringify(item.vector), text, metaJson);
117
- }
118
- }
119
- async search(query, k, filter) {
120
- if (query.length === 0)
121
- return [];
122
- this._ensureSchema();
123
- const rows = this._loadAll();
124
- const results = [];
125
- for (const row of rows) {
126
- if (filter && !matchesFilter(row.metadata, filter))
127
- continue;
128
- if (row.vector.length !== query.length)
129
- continue;
130
- const score = 1 - cosineDistance(query, row.vector);
131
- results.push({ id: row.id, score, metadata: row.metadata });
132
- }
133
- results.sort((a, b) => b.score - a.score);
134
- return results.slice(0, Math.max(0, k));
135
- }
136
- async hybridSearch(query, queryVector, k, opts) {
137
- const vectorWeight = opts?.vectorWeight ?? 0.7;
138
- const keywordWeight = opts?.keywordWeight ?? 0.3;
139
- const queryTerms = tokenize(query);
140
- if (queryTerms.length === 0 && queryVector.length === 0)
141
- return [];
142
- this._ensureSchema();
143
- const rows = this._loadAll();
144
- const results = [];
145
- for (const row of rows) {
146
- if (opts?.filter && !matchesFilter(row.metadata, opts.filter))
147
- continue;
148
- const vectorScore = queryVector.length > 0 && row.vector.length === queryVector.length
149
- ? 1 - cosineDistance(queryVector, row.vector)
150
- : 0;
151
- const kwScore = keywordOverlap(queryTerms, row.content);
152
- results.push({
153
- id: row.id,
154
- score: vectorWeight * vectorScore + keywordWeight * kwScore,
155
- metadata: row.metadata,
156
- });
157
- }
158
- results.sort((a, b) => b.score - a.score);
159
- return results.slice(0, Math.max(0, k));
160
- }
161
- async remove(id) {
162
- this._ensureSchema();
163
- const result = this._db
164
- .prepare(`DELETE FROM "${this._esc(this._table)}" WHERE id = ?`)
165
- .run(id);
166
- return result.changes > 0;
167
- }
168
- async count() {
169
- this._ensureSchema();
170
- const row = this._db
171
- .prepare(`SELECT COUNT(*) AS count FROM "${this._esc(this._table)}"`)
172
- .get();
173
- return Number(row?.["count"] ?? 0);
174
- }
175
- // -------------------------------------------------------------------------
176
- // Internal helpers
177
- // -------------------------------------------------------------------------
178
- _validateDimensions(vector) {
179
- if (vector.length === 0) {
180
- throw new Error("Cannot store a zero-length vector.");
181
- }
182
- if (this._dimensions !== undefined && vector.length !== this._dimensions) {
183
- throw new Error(`Dimension mismatch: expected ${this._dimensions}, got ${vector.length}.`);
184
- }
185
- }
186
- /** Load all stored rows, parsing JSON columns. */
187
- _loadAll() {
188
- const rawRows = this._db
189
- .prepare(`SELECT id, embedding, content, metadata FROM "${this._esc(this._table)}"`)
190
- .all();
191
- return rawRows.map((row) => ({
192
- id: String(row["id"]),
193
- vector: JSON.parse(String(row["embedding"])),
194
- content: String(row["content"] ?? ""),
195
- metadata: JSON.parse(String(row["metadata"] ?? "{}")),
196
- }));
197
- }
198
- /** Escape a SQL identifier (double-quote style). */
199
- _esc(identifier) {
200
- return identifier.replace(/"/g, '""');
201
- }
202
- }
203
- //# sourceMappingURL=vector-store-sqlite.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vector-store-sqlite.js","sourceRoot":"","sources":["../../../.claude/worktrees/agent-a1ae6f0b/packages/db/src/vector-store-sqlite.ts"],"names":[],"mappings":"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"}
@@ -1,79 +0,0 @@
1
- /**
2
- * Filter condition for vector search. Each key is a metadata field name and
3
- * the value is either a literal (exact match) or an array of allowed values.
4
- */
5
- export type VectorFilter = Record<string, unknown>;
6
- /** A single result returned from a vector search operation. */
7
- export interface VectorSearchResult {
8
- /** Identifier of the stored vector. */
9
- id: string;
10
- /** Similarity score in [0, 1] where 1 is identical. */
11
- score: number;
12
- /** Metadata that was stored alongside the vector. */
13
- metadata?: Record<string, unknown>;
14
- }
15
- /** Options for hybrid (keyword + vector) search. */
16
- export interface VectorHybridSearchOptions {
17
- /** Weight for the keyword component (0-1). @default 0.3 */
18
- keywordWeight?: number;
19
- /** Weight for the vector component (0-1). @default 0.7 */
20
- vectorWeight?: number;
21
- /** Optional metadata filter applied before scoring. */
22
- filter?: VectorFilter;
23
- }
24
- /**
25
- * Pluggable vector storage and similarity search backend.
26
- *
27
- * Implementations range from a simple in-memory map (development) through
28
- * SQLite-backed persistence up to full pgvector-powered ANN search.
29
- */
30
- export interface VectorStore {
31
- /** Insert or update a vector with its ID and optional metadata. */
32
- upsert(id: string, vector: number[], metadata?: Record<string, unknown>): Promise<void>;
33
- /** Batch upsert for efficiency. */
34
- upsertBatch(items: ReadonlyArray<{
35
- id: string;
36
- vector: number[];
37
- metadata?: Record<string, unknown>;
38
- }>): Promise<void>;
39
- /** Find k nearest neighbours by vector similarity. */
40
- search(query: number[], k: number, filter?: VectorFilter): Promise<VectorSearchResult[]>;
41
- /**
42
- * Hybrid search combining vector similarity with keyword text matching.
43
- *
44
- * The `query` string is used for keyword scoring while `queryVector` drives
45
- * the vector similarity component.
46
- */
47
- hybridSearch(query: string, queryVector: number[], k: number, opts?: VectorHybridSearchOptions): Promise<VectorSearchResult[]>;
48
- /** Remove a vector by ID. Returns `true` if the entry existed. */
49
- remove(id: string): Promise<boolean>;
50
- /** Return the number of stored vectors. */
51
- count(): Promise<number>;
52
- }
53
- /** Configuration accepted by the {@link createVectorStore} factory. */
54
- export interface VectorStoreConfig {
55
- /** Backend provider to use. */
56
- provider: "memory" | "pgvector" | "sqlite";
57
- /**
58
- * Number of dimensions each vector contains. Required for pgvector so that
59
- * the column can be sized correctly; optional for memory and SQLite stores.
60
- */
61
- dimensions?: number;
62
- /**
63
- * Name of the database table used for persistence.
64
- * @default "capstan_vectors"
65
- */
66
- tableName?: string;
67
- /**
68
- * A raw query function used by the pgvector and SQLite adapters.
69
- *
70
- * For pgvector this should be a function that accepts a parameterised SQL
71
- * string with `$1`, `$2`, etc. placeholders and returns an array of row
72
- * objects.
73
- *
74
- * For SQLite this should be a synchronous `better-sqlite3` `Database`
75
- * instance (it will be accessed via `.prepare().all()` / `.run()`).
76
- */
77
- connection?: unknown;
78
- }
79
- //# sourceMappingURL=vector-store.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vector-store.d.ts","sourceRoot":"","sources":["../../../.claude/worktrees/agent-a1ae6f0b/packages/db/src/vector-store.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEnD,+DAA+D;AAC/D,MAAM,WAAW,kBAAkB;IACjC,uCAAuC;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,oDAAoD;AACpD,MAAM,WAAW,yBAAyB;IACxC,2DAA2D;IAC3D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,uDAAuD;IACvD,MAAM,CAAC,EAAE,YAAY,CAAC;CACvB;AAED;;;;;GAKG;AACH,MAAM,WAAW,WAAW;IAC1B,mEAAmE;IACnE,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAExF,mCAAmC;IACnC,WAAW,CAAC,KAAK,EAAE,aAAa,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;KAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEvH,sDAAsD;IACtD,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAEzF;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,yBAAyB,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAAC;IAE/H,mEAAmE;IACnE,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IAErC,2CAA2C;IAC3C,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;CAC1B;AAED,uEAAuE;AACvE,MAAM,WAAW,iBAAiB;IAChC,+BAA+B;IAC/B,QAAQ,EAAE,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;IAE3C;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB;;;;;;;;;OASG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB"}
@@ -1,5 +0,0 @@
1
- // ---------------------------------------------------------------------------
2
- // VectorStore — adapter interface for pluggable vector search backends
3
- // ---------------------------------------------------------------------------
4
- export {};
5
- //# sourceMappingURL=vector-store.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"vector-store.js","sourceRoot":"","sources":["../../../.claude/worktrees/agent-a1ae6f0b/packages/db/src/vector-store.ts"],"names":[],"mappings":"AAAA,8EAA8E;AAC9E,uEAAuE;AACvE,8EAA8E"}