@mastra/pg 1.0.0-beta.0 → 1.0.0-beta.10

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 (35) hide show
  1. package/CHANGELOG.md +495 -0
  2. package/README.md +3 -0
  3. package/dist/index.cjs +2976 -2039
  4. package/dist/index.cjs.map +1 -1
  5. package/dist/index.js +2960 -2028
  6. package/dist/index.js.map +1 -1
  7. package/dist/shared/config.d.ts +98 -3
  8. package/dist/shared/config.d.ts.map +1 -1
  9. package/dist/storage/{domains/operations → db}/index.d.ts +77 -45
  10. package/dist/storage/db/index.d.ts.map +1 -0
  11. package/dist/storage/domains/agents/index.d.ts +39 -0
  12. package/dist/storage/domains/agents/index.d.ts.map +1 -0
  13. package/dist/storage/domains/memory/index.d.ts +30 -11
  14. package/dist/storage/domains/memory/index.d.ts.map +1 -1
  15. package/dist/storage/domains/observability/index.d.ts +29 -36
  16. package/dist/storage/domains/observability/index.d.ts.map +1 -1
  17. package/dist/storage/domains/scores/index.d.ts +26 -29
  18. package/dist/storage/domains/scores/index.d.ts.map +1 -1
  19. package/dist/storage/domains/utils.d.ts +1 -5
  20. package/dist/storage/domains/utils.d.ts.map +1 -1
  21. package/dist/storage/domains/workflows/index.d.ts +31 -20
  22. package/dist/storage/domains/workflows/index.d.ts.map +1 -1
  23. package/dist/storage/index.d.ts +30 -195
  24. package/dist/storage/index.d.ts.map +1 -1
  25. package/dist/storage/performance-indexes/performance-test.d.ts +3 -1
  26. package/dist/storage/performance-indexes/performance-test.d.ts.map +1 -1
  27. package/dist/storage/test-utils.d.ts.map +1 -1
  28. package/dist/vector/index.d.ts +42 -6
  29. package/dist/vector/index.d.ts.map +1 -1
  30. package/dist/vector/sql-builder.d.ts +4 -0
  31. package/dist/vector/sql-builder.d.ts.map +1 -1
  32. package/dist/vector/types.d.ts +10 -0
  33. package/dist/vector/types.d.ts.map +1 -1
  34. package/package.json +8 -7
  35. package/dist/storage/domains/operations/index.d.ts.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/storage/domains/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIvF,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,sBAE5C;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,UAKjG;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,cAAc,CAAC,WAAW,CAAC,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CASnH;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GACtC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,CA6B9B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,EACrC,SAAS,EACT,MAAM,GACP,EAAE;IACD,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B,GAAG,CAAC,CA+BJ"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/storage/domains/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAIvE,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,sBAE5C;AAED,wBAAgB,YAAY,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAE,UAKjG;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAC5B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,GACtC;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,GAAG,EAAE,CAAA;CAAE,CA6B9B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,CAAC,EAAE,EACrC,SAAS,EACT,MAAM,GACP,EAAE;IACD,SAAS,EAAE,WAAW,CAAC;IACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAC7B,GAAG,CAAC,CA+BJ"}
@@ -1,17 +1,28 @@
1
1
  import { WorkflowsStorage } from '@mastra/core/storage';
2
- import type { StorageListWorkflowRunsInput, WorkflowRun, WorkflowRuns } from '@mastra/core/storage';
2
+ import type { UpdateWorkflowStateOptions, StorageListWorkflowRunsInput, WorkflowRun, WorkflowRuns, CreateIndexOptions } from '@mastra/core/storage';
3
3
  import type { StepResult, WorkflowRunState } from '@mastra/core/workflows';
4
- import type { IDatabase } from 'pg-promise';
5
- import type { StoreOperationsPG } from '../operations/index.js';
4
+ import type { PgDomainConfig } from '../../db/index.js';
6
5
  export declare class WorkflowsPG extends WorkflowsStorage {
7
- client: IDatabase<{}>;
8
- private operations;
9
- private schema;
10
- constructor({ client, operations, schema, }: {
11
- client: IDatabase<{}>;
12
- operations: StoreOperationsPG;
13
- schema: string;
14
- });
6
+ #private;
7
+ /** Tables managed by this domain */
8
+ static readonly MANAGED_TABLES: readonly ["mastra_workflow_snapshot"];
9
+ constructor(config: PgDomainConfig);
10
+ /**
11
+ * Returns default index definitions for the workflows domain tables.
12
+ * Currently no default indexes are defined for workflows.
13
+ */
14
+ getDefaultIndexDefinitions(): CreateIndexOptions[];
15
+ /**
16
+ * Creates default indexes for optimal query performance.
17
+ * Currently no default indexes are defined for workflows.
18
+ */
19
+ createDefaultIndexes(): Promise<void>;
20
+ init(): Promise<void>;
21
+ /**
22
+ * Creates custom user-defined indexes for this domain's tables.
23
+ */
24
+ createCustomIndexes(): Promise<void>;
25
+ dangerouslyClearAll(): Promise<void>;
15
26
  updateWorkflowResults({}: {
16
27
  workflowName: string;
17
28
  runId: string;
@@ -22,19 +33,15 @@ export declare class WorkflowsPG extends WorkflowsStorage {
22
33
  updateWorkflowState({}: {
23
34
  workflowName: string;
24
35
  runId: string;
25
- opts: {
26
- status: string;
27
- result?: StepResult<any, any, any, any>;
28
- error?: string;
29
- suspendedPaths?: Record<string, number[]>;
30
- waitingPaths?: Record<string, number[]>;
31
- };
36
+ opts: UpdateWorkflowStateOptions;
32
37
  }): Promise<WorkflowRunState | undefined>;
33
- persistWorkflowSnapshot({ workflowName, runId, resourceId, snapshot, }: {
38
+ persistWorkflowSnapshot({ workflowName, runId, resourceId, snapshot, createdAt, updatedAt, }: {
34
39
  workflowName: string;
35
40
  runId: string;
36
41
  resourceId?: string;
37
42
  snapshot: WorkflowRunState;
43
+ createdAt?: Date;
44
+ updatedAt?: Date;
38
45
  }): Promise<void>;
39
46
  loadWorkflowSnapshot({ workflowName, runId, }: {
40
47
  workflowName: string;
@@ -44,6 +51,10 @@ export declare class WorkflowsPG extends WorkflowsStorage {
44
51
  runId: string;
45
52
  workflowName?: string;
46
53
  }): Promise<WorkflowRun | null>;
47
- listWorkflowRuns({ workflowName, fromDate, toDate, perPage, page, resourceId, }?: StorageListWorkflowRunsInput): Promise<WorkflowRuns>;
54
+ deleteWorkflowRunById({ runId, workflowName }: {
55
+ runId: string;
56
+ workflowName: string;
57
+ }): Promise<void>;
58
+ listWorkflowRuns({ workflowName, fromDate, toDate, perPage, page, resourceId, status, }?: StorageListWorkflowRunsInput): Promise<WorkflowRuns>;
48
59
  }
49
60
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/workflows/index.ts"],"names":[],"mappings":"AACA,OAAO,EAA6C,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACnG,OAAO,KAAK,EAAE,4BAA4B,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AACpG,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,eAAe,CAAC;AAuBvD,qBAAa,WAAY,SAAQ,gBAAgB;IACxC,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;IAC7B,OAAO,CAAC,UAAU,CAAoB;IACtC,OAAO,CAAC,MAAM,CAAS;gBAEX,EACV,MAAM,EACN,UAAU,EACV,MAAM,GACP,EAAE;QACD,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QACtB,UAAU,EAAE,iBAAiB,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC;KAChB;IAOD,qBAAqB,CACnB,EAMC,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACrC,GACA,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAG1D,mBAAmB,CACjB,EAIC,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE;YACJ,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACxC,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;SACzC,CAAC;KACH,GACA,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAIlC,uBAAuB,CAAC,EAC5B,YAAY,EACZ,KAAK,EACL,UAAU,EACV,QAAQ,GACT,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,gBAAgB,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBX,oBAAoB,CAAC,EACzB,YAAY,EACZ,KAAK,GACN,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAoB9B,kBAAkB,CAAC,EACvB,KAAK,EACL,YAAY,GACb,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAoDzB,gBAAgB,CAAC,EACrB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,OAAO,EACP,IAAI,EACJ,UAAU,GACX,GAAE,4BAAiC,GAAG,OAAO,CAAC,YAAY,CAAC;CAkF7D"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/workflows/index.ts"],"names":[],"mappings":"AACA,OAAO,EAIL,gBAAgB,EAEjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,0BAA0B,EAC1B,4BAA4B,EAC5B,WAAW,EACX,YAAY,EACZ,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AA8B/C,qBAAa,WAAY,SAAQ,gBAAgB;;IAM/C,oCAAoC;IACpC,MAAM,CAAC,QAAQ,CAAC,cAAc,wCAAsC;gBAExD,MAAM,EAAE,cAAc;IAUlC;;;OAGG;IACH,0BAA0B,IAAI,kBAAkB,EAAE;IAIlD;;;OAGG;IACG,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAW3B;;OAEG;IACG,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAepC,mBAAmB,IAAI,OAAO,CAAC,IAAI,CAAC;IAI1C,qBAAqB,CACnB,EAMC,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACrC,GACA,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAG1D,mBAAmB,CACjB,EAIC,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE,0BAA0B,CAAC;KAClC,GACA,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAIlC,uBAAuB,CAAC,EAC5B,YAAY,EACZ,KAAK,EACL,UAAU,EACV,QAAQ,EACR,SAAS,EACT,SAAS,GACV,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,gBAAgB,CAAC;QAC3B,SAAS,CAAC,EAAE,IAAI,CAAC;QACjB,SAAS,CAAC,EAAE,IAAI,CAAC;KAClB,GAAG,OAAO,CAAC,IAAI,CAAC;IAwBX,oBAAoB,CAAC,EACzB,YAAY,EACZ,KAAK,GACN,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAoB9B,kBAAkB,CAAC,EACvB,KAAK,EACL,YAAY,GACb,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAmDzB,qBAAqB,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAsBtG,gBAAgB,CAAC,EACrB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,OAAO,EACP,IAAI,EACJ,UAAU,EACV,MAAM,GACP,GAAE,4BAAiC,GAAG,OAAO,CAAC,YAAY,CAAC;CAqF7D"}
@@ -1,211 +1,46 @@
1
- import type { MastraMessageContentV2, MastraDBMessage } from '@mastra/core/agent';
2
- import type { ScoreRowData, ScoringSource } from '@mastra/core/evals';
3
- import type { StorageThreadType } from '@mastra/core/memory';
4
1
  import { MastraStorage } from '@mastra/core/storage';
5
- import type { PaginationInfo, StorageColumn, StorageResourceType, TABLE_NAMES, WorkflowRun, WorkflowRuns, StoragePagination, StorageDomains, SpanRecord, TraceRecord, TracesPaginatedArg, StorageListWorkflowRunsInput } from '@mastra/core/storage';
6
- import type { StepResult, WorkflowRunState } from '@mastra/core/workflows';
2
+ import type { StorageDomains } from '@mastra/core/storage';
7
3
  import pgPromise from 'pg-promise';
8
4
  import type { PostgresStoreConfig } from '../shared/config.js';
9
- export type { CreateIndexOptions, IndexInfo } from '@mastra/core/storage';
5
+ import { AgentsPG } from './domains/agents/index.js';
6
+ import { MemoryPG } from './domains/memory/index.js';
7
+ import { ObservabilityPG } from './domains/observability/index.js';
8
+ import { ScoresPG } from './domains/scores/index.js';
9
+ import { WorkflowsPG } from './domains/workflows/index.js';
10
+ export { AgentsPG, MemoryPG, ObservabilityPG, ScoresPG, WorkflowsPG };
11
+ export type { PgDomainConfig } from './db/index.js';
12
+ /**
13
+ * PostgreSQL storage adapter for Mastra.
14
+ *
15
+ * Access domain-specific storage via `getStore()`:
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const storage = new PostgresStore({ connectionString: '...' });
20
+ *
21
+ * // Access memory domain
22
+ * const memory = await storage.getStore('memory');
23
+ * await memory?.saveThread({ thread });
24
+ *
25
+ * // Access workflows domain
26
+ * const workflows = await storage.getStore('workflows');
27
+ * await workflows?.persistWorkflowSnapshot({ workflowName, runId, snapshot });
28
+ * ```
29
+ */
10
30
  export declare class PostgresStore extends MastraStorage {
11
31
  #private;
12
32
  private schema;
13
- private isConnected;
33
+ private isInitialized;
14
34
  stores: StorageDomains;
15
35
  constructor(config: PostgresStoreConfig);
16
36
  init(): Promise<void>;
17
37
  get db(): pgPromise.IDatabase<{}, import("pg-promise/typescript/pg-subset").IClient>;
18
38
  get pgp(): pgPromise.IMain<{}, import("pg-promise/typescript/pg-subset").IClient>;
19
- get supports(): {
20
- selectByIncludeResourceScope: boolean;
21
- resourceWorkingMemory: boolean;
22
- hasColumn: boolean;
23
- createTable: boolean;
24
- deleteMessages: boolean;
25
- observabilityInstance: boolean;
26
- indexManagement: boolean;
27
- listScoresBySpan: boolean;
28
- };
29
- createTable({ tableName, schema, }: {
30
- tableName: TABLE_NAMES;
31
- schema: Record<string, StorageColumn>;
32
- }): Promise<void>;
33
- alterTable({ tableName, schema, ifNotExists, }: {
34
- tableName: TABLE_NAMES;
35
- schema: Record<string, StorageColumn>;
36
- ifNotExists: string[];
37
- }): Promise<void>;
38
- clearTable({ tableName }: {
39
- tableName: TABLE_NAMES;
40
- }): Promise<void>;
41
- dropTable({ tableName }: {
42
- tableName: TABLE_NAMES;
43
- }): Promise<void>;
44
- insert({ tableName, record }: {
45
- tableName: TABLE_NAMES;
46
- record: Record<string, any>;
47
- }): Promise<void>;
48
- batchInsert({ tableName, records }: {
49
- tableName: TABLE_NAMES;
50
- records: Record<string, any>[];
51
- }): Promise<void>;
52
- load<R>({ tableName, keys }: {
53
- tableName: TABLE_NAMES;
54
- keys: Record<string, string>;
55
- }): Promise<R | null>;
56
39
  /**
57
- * Memory
40
+ * Closes the pg-promise connection pool.
41
+ *
42
+ * This will close ALL connections in the pool, including pre-configured clients.
58
43
  */
59
- getThreadById({ threadId }: {
60
- threadId: string;
61
- }): Promise<StorageThreadType | null>;
62
- saveThread({ thread }: {
63
- thread: StorageThreadType;
64
- }): Promise<StorageThreadType>;
65
- updateThread({ id, title, metadata, }: {
66
- id: string;
67
- title: string;
68
- metadata: Record<string, unknown>;
69
- }): Promise<StorageThreadType>;
70
- deleteThread({ threadId }: {
71
- threadId: string;
72
- }): Promise<void>;
73
- listMessagesById({ messageIds }: {
74
- messageIds: string[];
75
- }): Promise<{
76
- messages: MastraDBMessage[];
77
- }>;
78
- saveMessages(args: {
79
- messages: MastraDBMessage[];
80
- }): Promise<{
81
- messages: MastraDBMessage[];
82
- }>;
83
- updateMessages({ messages, }: {
84
- messages: (Partial<Omit<MastraDBMessage, 'createdAt'>> & {
85
- id: string;
86
- content?: {
87
- metadata?: MastraMessageContentV2['metadata'];
88
- content?: MastraMessageContentV2['content'];
89
- };
90
- })[];
91
- }): Promise<MastraDBMessage[]>;
92
- deleteMessages(messageIds: string[]): Promise<void>;
93
- getResourceById({ resourceId }: {
94
- resourceId: string;
95
- }): Promise<StorageResourceType | null>;
96
- saveResource({ resource }: {
97
- resource: StorageResourceType;
98
- }): Promise<StorageResourceType>;
99
- updateResource({ resourceId, workingMemory, metadata, }: {
100
- resourceId: string;
101
- workingMemory?: string;
102
- metadata?: Record<string, unknown>;
103
- }): Promise<StorageResourceType>;
104
- /**
105
- * Workflows
106
- */
107
- updateWorkflowResults({ workflowName, runId, stepId, result, requestContext, }: {
108
- workflowName: string;
109
- runId: string;
110
- stepId: string;
111
- result: StepResult<any, any, any, any>;
112
- requestContext: Record<string, any>;
113
- }): Promise<Record<string, StepResult<any, any, any, any>>>;
114
- updateWorkflowState({ workflowName, runId, opts, }: {
115
- workflowName: string;
116
- runId: string;
117
- opts: {
118
- status: string;
119
- result?: StepResult<any, any, any, any>;
120
- error?: string;
121
- suspendedPaths?: Record<string, number[]>;
122
- waitingPaths?: Record<string, number[]>;
123
- };
124
- }): Promise<WorkflowRunState | undefined>;
125
- persistWorkflowSnapshot({ workflowName, runId, resourceId, snapshot, }: {
126
- workflowName: string;
127
- runId: string;
128
- resourceId?: string;
129
- snapshot: WorkflowRunState;
130
- }): Promise<void>;
131
- loadWorkflowSnapshot({ workflowName, runId, }: {
132
- workflowName: string;
133
- runId: string;
134
- }): Promise<WorkflowRunState | null>;
135
- listWorkflowRuns({ workflowName, fromDate, toDate, perPage, page, resourceId, }?: StorageListWorkflowRunsInput): Promise<WorkflowRuns>;
136
- getWorkflowRunById({ runId, workflowName, }: {
137
- runId: string;
138
- workflowName?: string;
139
- }): Promise<WorkflowRun | null>;
140
44
  close(): Promise<void>;
141
- /**
142
- * Tracing / Observability
143
- */
144
- createSpan(span: SpanRecord): Promise<void>;
145
- updateSpan({ spanId, traceId, updates, }: {
146
- spanId: string;
147
- traceId: string;
148
- updates: Partial<Omit<SpanRecord, 'spanId' | 'traceId'>>;
149
- }): Promise<void>;
150
- getTrace(traceId: string): Promise<TraceRecord | null>;
151
- getTracesPaginated(args: TracesPaginatedArg): Promise<{
152
- pagination: PaginationInfo;
153
- spans: SpanRecord[];
154
- }>;
155
- batchCreateSpans(args: {
156
- records: SpanRecord[];
157
- }): Promise<void>;
158
- batchUpdateSpans(args: {
159
- records: {
160
- traceId: string;
161
- spanId: string;
162
- updates: Partial<Omit<SpanRecord, 'spanId' | 'traceId'>>;
163
- }[];
164
- }): Promise<void>;
165
- batchDeleteTraces(args: {
166
- traceIds: string[];
167
- }): Promise<void>;
168
- /**
169
- * Scorers
170
- */
171
- getScoreById({ id }: {
172
- id: string;
173
- }): Promise<ScoreRowData | null>;
174
- listScoresByScorerId({ scorerId, pagination, entityId, entityType, source, }: {
175
- scorerId: string;
176
- pagination: StoragePagination;
177
- entityId?: string;
178
- entityType?: string;
179
- source?: ScoringSource;
180
- }): Promise<{
181
- pagination: PaginationInfo;
182
- scores: ScoreRowData[];
183
- }>;
184
- saveScore(score: ScoreRowData): Promise<{
185
- score: ScoreRowData;
186
- }>;
187
- listScoresByRunId({ runId, pagination, }: {
188
- runId: string;
189
- pagination: StoragePagination;
190
- }): Promise<{
191
- pagination: PaginationInfo;
192
- scores: ScoreRowData[];
193
- }>;
194
- listScoresByEntityId({ entityId, entityType, pagination, }: {
195
- pagination: StoragePagination;
196
- entityId: string;
197
- entityType: string;
198
- }): Promise<{
199
- pagination: PaginationInfo;
200
- scores: ScoreRowData[];
201
- }>;
202
- listScoresBySpan({ traceId, spanId, pagination, }: {
203
- traceId: string;
204
- spanId: string;
205
- pagination: StoragePagination;
206
- }): Promise<{
207
- pagination: PaginationInfo;
208
- scores: ScoreRowData[];
209
- }>;
210
45
  }
211
46
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAElF,OAAO,KAAK,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,mBAAmB,EACnB,WAAW,EACX,WAAW,EACX,YAAY,EACZ,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,WAAW,EACX,kBAAkB,EAClB,4BAA4B,EAC7B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC3E,OAAO,SAAS,MAAM,YAAY,CAAC;AAEnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAO5D,YAAY,EAAE,kBAAkB,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAE1E,qBAAa,aAAc,SAAQ,aAAa;;IAI9C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAkB;IAErC,MAAM,EAAE,cAAc,CAAC;gBAEX,MAAM,EAAE,mBAAmB;IAqDjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAgD3B,IAAW,EAAE,+EAKZ;IAED,IAAW,GAAG,2EAKb;IAED,IAAW,QAAQ;;;;;;;;;MAWlB;IAEK,WAAW,CAAC,EAChB,SAAS,EACT,MAAM,GACP,EAAE;QACD,SAAS,EAAE,WAAW,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;KACvC,GAAG,OAAO,CAAC,IAAI,CAAC;IAIX,UAAU,CAAC,EACf,SAAS,EACT,MAAM,EACN,WAAW,GACZ,EAAE;QACD,SAAS,EAAE,WAAW,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC;QACtC,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB,GAAG,OAAO,CAAC,IAAI,CAAC;IAIX,UAAU,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIpE,SAAS,CAAC,EAAE,SAAS,EAAE,EAAE;QAAE,SAAS,EAAE,WAAW,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAInE,MAAM,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE;QAAE,SAAS,EAAE,WAAW,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAIrG,WAAW,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,EAAE;QAAE,SAAS,EAAE,WAAW,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI9G,IAAI,CAAC,CAAC,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,EAAE;QAAE,SAAS,EAAE,WAAW,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;KAAE,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAI/G;;OAEG;IAEG,aAAa,CAAC,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAIpF,UAAU,CAAC,EAAE,MAAM,EAAE,EAAE;QAAE,MAAM,EAAE,iBAAiB,CAAA;KAAE,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIjF,YAAY,CAAC,EACjB,EAAE,EACF,KAAK,EACL,QAAQ,GACT,EAAE;QACD,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACnC,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAIxB,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/D,gBAAgB,CAAC,EAAE,UAAU,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IAIpG,YAAY,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC;QAAE,QAAQ,EAAE,eAAe,EAAE,CAAA;KAAE,CAAC;IAI7F,cAAc,CAAC,EACnB,QAAQ,GACT,EAAE;QACD,QAAQ,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,WAAW,CAAC,CAAC,GAAG;YACvD,EAAE,EAAE,MAAM,CAAC;YACX,OAAO,CAAC,EAAE;gBACR,QAAQ,CAAC,EAAE,sBAAsB,CAAC,UAAU,CAAC,CAAC;gBAC9C,OAAO,CAAC,EAAE,sBAAsB,CAAC,SAAS,CAAC,CAAC;aAC7C,CAAC;SACH,CAAC,EAAE,CAAC;KACN,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IAIxB,cAAc,CAAC,UAAU,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAInD,eAAe,CAAC,EAAE,UAAU,EAAE,EAAE;QAAE,UAAU,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAI5F,YAAY,CAAC,EAAE,QAAQ,EAAE,EAAE;QAAE,QAAQ,EAAE,mBAAmB,CAAA;KAAE,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAI3F,cAAc,CAAC,EACnB,UAAU,EACV,aAAa,EACb,QAAQ,GACT,EAAE;QACD,UAAU,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACpC,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAIhC;;OAEG;IACG,qBAAqB,CAAC,EAC1B,YAAY,EACZ,KAAK,EACL,MAAM,EACN,MAAM,EACN,cAAc,GACf,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QACvC,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KACrC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAIrD,mBAAmB,CAAC,EACxB,YAAY,EACZ,KAAK,EACL,IAAI,GACL,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,IAAI,EAAE;YACJ,MAAM,EAAE,MAAM,CAAC;YACf,MAAM,CAAC,EAAE,UAAU,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;YACxC,KAAK,CAAC,EAAE,MAAM,CAAC;YACf,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;YAC1C,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;SACzC,CAAC;KACH,GAAG,OAAO,CAAC,gBAAgB,GAAG,SAAS,CAAC;IAInC,uBAAuB,CAAC,EAC5B,YAAY,EACZ,KAAK,EACL,UAAU,EACV,QAAQ,GACT,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,QAAQ,EAAE,gBAAgB,CAAC;KAC5B,GAAG,OAAO,CAAC,IAAI,CAAC;IAIX,oBAAoB,CAAC,EACzB,YAAY,EACZ,KAAK,GACN,EAAE;QACD,YAAY,EAAE,MAAM,CAAC;QACrB,KAAK,EAAE,MAAM,CAAC;KACf,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAI9B,gBAAgB,CAAC,EACrB,YAAY,EACZ,QAAQ,EACR,MAAM,EACN,OAAO,EACP,IAAI,EACJ,UAAU,GACX,GAAE,4BAAiC,GAAG,OAAO,CAAC,YAAY,CAAC;IAItD,kBAAkB,CAAC,EACvB,KAAK,EACL,YAAY,GACb,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAIzB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAI5B;;OAEG;IACG,UAAU,CAAC,IAAI,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAY3C,UAAU,CAAC,EACf,MAAM,EACN,OAAO,EACP,OAAO,GACR,EAAE;QACD,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,MAAM,CAAC;QAChB,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC;KAC1D,GAAG,OAAO,CAAC,IAAI,CAAC;IAYX,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC;IAYtD,kBAAkB,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,UAAU,EAAE,CAAA;KAAE,CAAC;IAY1G,gBAAgB,CAAC,IAAI,EAAE;QAAE,OAAO,EAAE,UAAU,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhE,gBAAgB,CAAC,IAAI,EAAE;QAC3B,OAAO,EAAE;YACP,OAAO,EAAE,MAAM,CAAC;YAChB,MAAM,EAAE,MAAM,CAAC;YACf,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,UAAU,EAAE,QAAQ,GAAG,SAAS,CAAC,CAAC,CAAC;SAC1D,EAAE,CAAC;KACL,GAAG,OAAO,CAAC,IAAI,CAAC;IAYX,iBAAiB,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,EAAE,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpE;;OAEG;IACG,YAAY,CAAC,EAAE,EAAE,EAAE,EAAE;QAAE,EAAE,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAIlE,oBAAoB,CAAC,EACzB,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,UAAU,EACV,MAAM,GACP,EAAE;QACD,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,iBAAiB,CAAC;QAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,MAAM,CAAC,EAAE,aAAa,CAAC;KACxB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IAI7D,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,YAAY,CAAA;KAAE,CAAC;IAIhE,iBAAiB,CAAC,EACtB,KAAK,EACL,UAAU,GACX,EAAE;QACD,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,iBAAiB,CAAC;KAC/B,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IAI7D,oBAAoB,CAAC,EACzB,QAAQ,EACR,UAAU,EACV,UAAU,GACX,EAAE;QACD,UAAU,EAAE,iBAAiB,CAAC;QAC9B,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;KACpB,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;IAQ7D,gBAAgB,CAAC,EACrB,OAAO,EACP,MAAM,EACN,UAAU,GACX,EAAE;QACD,OAAO,EAAE,MAAM,CAAC;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,iBAAiB,CAAC;KAC/B,GAAG,OAAO,CAAC;QAAE,UAAU,EAAE,cAAc,CAAC;QAAC,MAAM,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC;CAGpE"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/storage/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAwB,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC3E,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,SAAS,MAAM,YAAY,CAAC;AAQnC,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACtE,YAAY,EAAE,cAAc,EAAE,MAAM,MAAM,CAAC;AAE3C;;;;;;;;;;;;;;;;;GAiBG;AACH,qBAAa,aAAc,SAAQ,aAAa;;IAG9C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAkB;IAEvC,MAAM,EAAE,cAAc,CAAC;gBAEX,MAAM,EAAE,mBAAmB;IAyFjC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAuB3B,IAAW,EAAE,+EAEZ;IAED,IAAW,GAAG,2EAEb;IAED;;;;OAIG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -26,13 +26,15 @@ interface PerformanceComparison {
26
26
  }
27
27
  export declare class PostgresPerformanceTest {
28
28
  private store;
29
+ private memory;
30
+ private dbOps;
29
31
  private config;
30
32
  constructor(config: PerformanceTestConfig);
31
33
  init(): Promise<void>;
32
34
  cleanup(): Promise<void>;
33
35
  resetDatabase(): Promise<void>;
34
36
  dropPerformanceIndexes(): Promise<void>;
35
- createAutomaticIndexes(): Promise<void>;
37
+ createDefaultIndexes(): Promise<void>;
36
38
  seedTestData(): Promise<void>;
37
39
  measureOperation(name: string, operation: () => Promise<any>, scenario: 'without_indexes' | 'with_indexes'): Promise<PerformanceResult>;
38
40
  runPerformanceTests(scenario: 'without_indexes' | 'with_indexes'): Promise<PerformanceResult[]>;
@@ -1 +1 @@
1
- {"version":3,"file":"performance-test.d.ts","sourceRoot":"","sources":["../../../src/storage/performance-indexes/performance-test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,UAAU,qBAAqB;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,iBAAiB,GAAG,cAAc,CAAC;CAC9C;AAED,UAAU,qBAAqB;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,iBAAiB,CAAC;IAClC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAwB;gBAE1B,MAAM,EAAE,qBAAqB;IAQnC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAIrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCxB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB9B,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BvC,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IAMvC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAoM7B,gBAAgB,CACpB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EAC7B,QAAQ,EAAE,iBAAiB,GAAG,cAAc,GAC3C,OAAO,CAAC,iBAAiB,CAAC;IA6BvB,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA+B/F,iBAAiB,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAoCrD,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B5C,eAAe,CAAC,WAAW,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAwB3D,YAAY,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAiB1C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAkBpC"}
1
+ {"version":3,"file":"performance-test.d.ts","sourceRoot":"","sources":["../../../src/storage/performance-indexes/performance-test.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,UAAU,qBAAqB;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,UAAU,iBAAiB;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,iBAAiB,GAAG,cAAc,CAAC;CAC9C;AAED,UAAU,qBAAqB;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,iBAAiB,CAAC;IAClC,WAAW,EAAE,iBAAiB,CAAC;IAC/B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,MAAM,CAAC;CAC/B;AAED,qBAAa,uBAAuB;IAClC,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,KAAK,CAAO;IACpB,OAAO,CAAC,MAAM,CAAwB;gBAE1B,MAAM,EAAE,qBAAqB;IAUnC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAKrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAmCxB,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB9B,sBAAsB,IAAI,OAAO,CAAC,IAAI,CAAC;IA2BvC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAOrC,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;IAoM7B,gBAAgB,CACpB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,OAAO,CAAC,GAAG,CAAC,EAC7B,QAAQ,EAAE,iBAAiB,GAAG,cAAc,GAC3C,OAAO,CAAC,iBAAiB,CAAC;IA6BvB,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,cAAc,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC;IA+B/F,iBAAiB,IAAI,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAoCrD,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;IA+B5C,eAAe,CAAC,WAAW,EAAE,qBAAqB,EAAE,GAAG,IAAI;IAwB3D,YAAY,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,IAAI;IAiB1C,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC;CAkBpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../src/storage/test-utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,eAAO,MAAM,WAAW,EAAE,mBAOF,CAAC;AAEzB,eAAO,MAAM,gBAAgB,QAA0K,CAAC;AAExM,wBAAgB,OAAO,SA0vBtB"}
1
+ {"version":3,"file":"test-utils.d.ts","sourceRoot":"","sources":["../../src/storage/test-utils.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAK5D,eAAO,MAAM,WAAW,EAAE,mBAOF,CAAC;AAEzB,eAAO,MAAM,gBAAgB,QAA0K,CAAC;AAExM,wBAAgB,OAAO,SA+qBtB"}
@@ -1,11 +1,17 @@
1
1
  import { MastraVector } from '@mastra/core/vector';
2
- import type { IndexStats, QueryResult, QueryVectorParams, CreateIndexParams, UpsertVectorParams, DescribeIndexParams, DeleteIndexParams, DeleteVectorParams, UpdateVectorParams } from '@mastra/core/vector';
2
+ import type { IndexStats, QueryResult, QueryVectorParams, CreateIndexParams, UpsertVectorParams, DescribeIndexParams, DeleteIndexParams, DeleteVectorParams, DeleteVectorsParams, UpdateVectorParams } from '@mastra/core/vector';
3
3
  import * as pg from 'pg';
4
4
  import type { PgVectorConfig } from '../shared/config.js';
5
5
  import type { PGVectorFilter } from './filter.js';
6
- import type { IndexConfig, IndexType } from './types.js';
6
+ import type { IndexConfig, IndexType, VectorType } from './types.js';
7
7
  export interface PGIndexStats extends IndexStats {
8
8
  type: IndexType;
9
+ /**
10
+ * The pgvector storage type used for this index.
11
+ * - 'vector': Full precision (4 bytes per dimension)
12
+ * - 'halfvec': Half precision (2 bytes per dimension)
13
+ */
14
+ vectorType: VectorType;
9
15
  config: {
10
16
  m?: number;
11
17
  efConstruction?: number;
@@ -29,22 +35,33 @@ interface PgQueryVectorParams extends QueryVectorParams<PGVectorFilter> {
29
35
  interface PgCreateIndexParams extends CreateIndexParams {
30
36
  indexConfig?: IndexConfig;
31
37
  buildIndex?: boolean;
38
+ /**
39
+ * The pgvector storage type for embeddings.
40
+ * - 'vector': Full precision (4 bytes per dimension), max 2000 dimensions for indexes (default)
41
+ * - 'halfvec': Half precision (2 bytes per dimension), max 4000 dimensions for indexes
42
+ *
43
+ * Use 'halfvec' for large dimension models like text-embedding-3-large (3072 dimensions)
44
+ */
45
+ vectorType?: VectorType;
32
46
  }
33
47
  interface PgDefineIndexParams {
34
48
  indexName: string;
35
49
  metric: 'cosine' | 'euclidean' | 'dotproduct';
36
50
  indexConfig: IndexConfig;
51
+ vectorType?: VectorType;
37
52
  }
38
53
  export declare class PgVector extends MastraVector<PGVectorFilter> {
39
54
  pool: pg.Pool;
40
55
  private describeIndexCache;
41
56
  private createdIndexes;
57
+ private indexVectorTypes;
42
58
  private mutexesByName;
43
59
  private schema?;
44
60
  private setupSchemaPromise;
45
61
  private installVectorExtensionPromise;
46
62
  private vectorExtensionInstalled;
47
63
  private vectorExtensionSchema;
64
+ private vectorExtensionVersion;
48
65
  private schemaSetupComplete;
49
66
  private cacheWarmupPromise;
50
67
  constructor(config: PgVectorConfig & {
@@ -52,24 +69,35 @@ export declare class PgVector extends MastraVector<PGVectorFilter> {
52
69
  });
53
70
  private getMutexByName;
54
71
  /**
55
- * Detects which schema contains the vector extension
72
+ * Detects which schema contains the vector extension and its version
56
73
  */
57
74
  private detectVectorExtensionSchema;
75
+ /**
76
+ * Checks if the installed pgvector version supports halfvec type.
77
+ * halfvec was introduced in pgvector 0.7.0.
78
+ */
79
+ private supportsHalfvec;
58
80
  /**
59
81
  * Gets the properly qualified vector type name
82
+ * @param vectorType - The type of vector storage ('vector' or 'halfvec')
60
83
  */
61
84
  private getVectorTypeName;
85
+ /**
86
+ * Gets the operator class for index creation based on metric and vector type.
87
+ * pgvector uses different operator classes for vector vs halfvec types.
88
+ */
89
+ private getMetricOperatorClass;
62
90
  private getTableName;
63
91
  private getSchemaName;
64
92
  transformFilter(filter?: PGVectorFilter): PGVectorFilter;
65
93
  getIndexInfo({ indexName }: DescribeIndexParams): Promise<PGIndexStats>;
66
94
  query({ indexName, queryVector, topK, filter, includeVector, minScore, ef, probes, }: PgQueryVectorParams): Promise<QueryResult[]>;
67
- upsert({ indexName, vectors, metadata, ids }: UpsertVectorParams): Promise<string[]>;
95
+ upsert({ indexName, vectors, metadata, ids, deleteFilter, }: UpsertVectorParams<PGVectorFilter>): Promise<string[]>;
68
96
  private hasher;
69
97
  private getIndexCacheKey;
70
98
  private cachedIndexExists;
71
99
  private setupSchema;
72
- createIndex({ indexName, dimension, metric, indexConfig, buildIndex, }: PgCreateIndexParams): Promise<void>;
100
+ createIndex({ indexName, dimension, metric, indexConfig, buildIndex, vectorType, }: PgCreateIndexParams): Promise<void>;
73
101
  buildIndex({ indexName, metric, indexConfig }: PgDefineIndexParams): Promise<void>;
74
102
  private setupIndex;
75
103
  private installVectorExtension;
@@ -94,7 +122,7 @@ export declare class PgVector extends MastraVector<PGVectorFilter> {
94
122
  * @returns A promise that resolves when the update is complete.
95
123
  * @throws Will throw an error if no updates are provided or if the update operation fails.
96
124
  */
97
- updateVector({ indexName, id, update }: UpdateVectorParams): Promise<void>;
125
+ updateVector({ indexName, id, filter, update }: UpdateVectorParams<PGVectorFilter>): Promise<void>;
98
126
  /**
99
127
  * Deletes a vector by its ID.
100
128
  * @param indexName - The name of the index containing the vector.
@@ -103,6 +131,14 @@ export declare class PgVector extends MastraVector<PGVectorFilter> {
103
131
  * @throws Will throw an error if the deletion operation fails.
104
132
  */
105
133
  deleteVector({ indexName, id }: DeleteVectorParams): Promise<void>;
134
+ /**
135
+ * Delete vectors matching a metadata filter.
136
+ * @param indexName - The name of the index containing the vectors.
137
+ * @param filter - The filter to match vectors for deletion.
138
+ * @returns A promise that resolves when the deletion is complete.
139
+ * @throws Will throw an error if the deletion operation fails.
140
+ */
141
+ deleteVectors({ indexName, filter, ids }: DeleteVectorsParams<PGVectorFilter>): Promise<void>;
106
142
  }
107
143
  export {};
108
144
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vector/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/vector/index.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,10 @@ interface FilterResult {
3
3
  sql: string;
4
4
  values: any[];
5
5
  }
6
+ /**
7
+ * Build a filter query for DELETE operations (no minScore/topK parameters)
8
+ */
9
+ export declare function buildDeleteFilterQuery(filter: PGVectorFilter): FilterResult;
6
10
  export declare function buildFilterQuery(filter: PGVectorFilter, minScore: number, topK: number): FilterResult;
7
11
  export {};
8
12
  //# sourceMappingURL=sql-builder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sql-builder.d.ts","sourceRoot":"","sources":["../../src/vector/sql-builder.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAqO/C,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,GAAG,EAAE,CAAC;CACf;AAWD,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAwGrG"}
1
+ {"version":3,"file":"sql-builder.d.ts","sourceRoot":"","sources":["../../src/vector/sql-builder.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAmP/C,UAAU,YAAY;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,GAAG,EAAE,CAAC;CACf;AAWD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,cAAc,GAAG,YAAY,CAwG3E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,YAAY,CAwGrG"}
@@ -1,4 +1,14 @@
1
1
  export type IndexType = 'ivfflat' | 'hnsw' | 'flat';
2
+ /**
3
+ * pgvector storage types for embeddings.
4
+ * - 'vector': Full precision (4 bytes per dimension), max 2000 dimensions for indexes
5
+ * - 'halfvec': Half precision (2 bytes per dimension), max 4000 dimensions for indexes
6
+ *
7
+ * Use 'halfvec' for large dimension models like text-embedding-3-large (3072 dimensions)
8
+ *
9
+ * Note: 'halfvec' requires pgvector >= 0.7.0
10
+ */
11
+ export type VectorType = 'vector' | 'halfvec';
2
12
  interface IVFConfig {
3
13
  lists?: number;
4
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vector/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,UAAU,SAAS;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/vector/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD;;;;;;;;GAQG;AACH,MAAM,MAAM,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE9C,UAAU,SAAS;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,UAAU,UAAU;IAClB,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mastra/pg",
3
- "version": "1.0.0-beta.0",
3
+ "version": "1.0.0-beta.10",
4
4
  "description": "Postgres provider for Mastra - includes both vector and db storage capabilities",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",
@@ -26,17 +26,18 @@
26
26
  "xxhash-wasm": "^1.1.0"
27
27
  },
28
28
  "devDependencies": {
29
- "@microsoft/api-extractor": "^7.52.8",
30
- "@types/node": "^20.19.0",
31
- "@types/pg": "^8.15.5",
29
+ "@types/node": "22.13.17",
30
+ "@types/pg": "^8.15.6",
31
+ "@vitest/coverage-v8": "4.0.12",
32
+ "@vitest/ui": "4.0.12",
32
33
  "eslint": "^9.37.0",
33
34
  "tsup": "^8.5.0",
34
35
  "typescript": "^5.8.3",
35
- "vitest": "^3.2.4",
36
+ "vitest": "4.0.12",
36
37
  "@internal/lint": "0.0.53",
37
38
  "@internal/storage-test-utils": "0.0.49",
38
- "@mastra/core": "1.0.0-beta.0",
39
- "@internal/types-builder": "0.0.28"
39
+ "@internal/types-builder": "0.0.28",
40
+ "@mastra/core": "1.0.0-beta.16"
40
41
  },
41
42
  "peerDependencies": {
42
43
  "@mastra/core": ">=1.0.0-0 <2.0.0-0"
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/operations/index.ts"],"names":[],"mappings":"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"}