@mastra/pg 1.0.0-beta.10 → 1.0.0-beta.12
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/CHANGELOG.md +143 -0
- package/dist/docs/README.md +36 -0
- package/dist/docs/SKILL.md +37 -0
- package/dist/docs/SOURCE_MAP.json +6 -0
- package/dist/docs/memory/01-storage.md +181 -0
- package/dist/docs/memory/02-working-memory.md +386 -0
- package/dist/docs/memory/03-semantic-recall.md +235 -0
- package/dist/docs/memory/04-reference.md +135 -0
- package/dist/docs/processors/01-reference.md +295 -0
- package/dist/docs/rag/01-overview.md +74 -0
- package/dist/docs/rag/02-vector-databases.md +638 -0
- package/dist/docs/rag/03-retrieval.md +549 -0
- package/dist/docs/rag/04-reference.md +351 -0
- package/dist/docs/storage/01-reference.md +667 -0
- package/dist/docs/tools/01-reference.md +440 -0
- package/dist/docs/vectors/01-reference.md +307 -0
- package/dist/index.cjs +499 -156
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +500 -157
- package/dist/index.js.map +1 -1
- package/dist/shared/config.d.ts +61 -66
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/storage/client.d.ts +91 -0
- package/dist/storage/client.d.ts.map +1 -0
- package/dist/storage/db/index.d.ts +36 -17
- package/dist/storage/db/index.d.ts.map +1 -1
- package/dist/storage/domains/memory/index.d.ts +2 -1
- package/dist/storage/domains/memory/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +35 -14
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/test-utils.d.ts.map +1 -1
- package/package.json +8 -8
package/dist/shared/config.d.ts
CHANGED
|
@@ -1,18 +1,12 @@
|
|
|
1
1
|
import type { ConnectionOptions } from 'node:tls';
|
|
2
2
|
import type { CreateIndexOptions } from '@mastra/core/storage';
|
|
3
|
-
import type { ClientConfig } from 'pg';
|
|
4
|
-
import type * as pg from 'pg';
|
|
5
|
-
import type pgPromise from 'pg-promise';
|
|
6
|
-
import type { ISSLConfig } from 'pg-promise/typescript/pg-subset';
|
|
3
|
+
import type { ClientConfig, Pool, PoolConfig } from 'pg';
|
|
7
4
|
/**
|
|
8
|
-
*
|
|
9
|
-
* @template SSLType - The SSL configuration type (ISSLConfig for pg-promise, ConnectionOptions for pg)
|
|
5
|
+
* Base configuration options shared across PostgreSQL configs.
|
|
10
6
|
*/
|
|
11
|
-
export
|
|
7
|
+
export interface PostgresBaseConfig {
|
|
12
8
|
id: string;
|
|
13
9
|
schemaName?: string;
|
|
14
|
-
max?: number;
|
|
15
|
-
idleTimeoutMillis?: number;
|
|
16
10
|
/**
|
|
17
11
|
* When true, automatic initialization (table creation/migrations) is disabled.
|
|
18
12
|
* This is useful for CI/CD pipelines where you want to:
|
|
@@ -62,83 +56,84 @@ export type PostgresConfig<SSLType = ISSLConfig | ConnectionOptions> = {
|
|
|
62
56
|
* ```
|
|
63
57
|
*/
|
|
64
58
|
indexes?: CreateIndexOptions[];
|
|
65
|
-
}
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Connection string configuration.
|
|
62
|
+
*/
|
|
63
|
+
export interface ConnectionStringConfig extends PostgresBaseConfig {
|
|
64
|
+
connectionString: string;
|
|
65
|
+
ssl?: boolean | ConnectionOptions;
|
|
66
|
+
max?: number;
|
|
67
|
+
idleTimeoutMillis?: number;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Host-based configuration.
|
|
71
|
+
*/
|
|
72
|
+
export interface HostConfig extends PostgresBaseConfig {
|
|
66
73
|
host: string;
|
|
67
74
|
port: number;
|
|
68
75
|
database: string;
|
|
69
76
|
user: string;
|
|
70
77
|
password: string;
|
|
71
|
-
ssl?: boolean |
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
} | ClientConfig);
|
|
78
|
+
ssl?: boolean | ConnectionOptions;
|
|
79
|
+
max?: number;
|
|
80
|
+
idleTimeoutMillis?: number;
|
|
81
|
+
}
|
|
76
82
|
/**
|
|
77
|
-
*
|
|
78
|
-
*
|
|
79
|
-
* Accepts either:
|
|
80
|
-
* - A pre-configured pg-promise client: `{ id, client, schemaName? }`
|
|
81
|
-
* - Connection string: `{ id, connectionString, ... }`
|
|
82
|
-
* - Host/port config: `{ id, host, port, database, user, password, ... }`
|
|
83
|
-
* - Cloud SQL connector config: `{ id, stream, ... }`
|
|
83
|
+
* Pre-configured pg.Pool configuration.
|
|
84
84
|
*/
|
|
85
|
-
export
|
|
86
|
-
id: string;
|
|
85
|
+
export interface PoolInstanceConfig extends PostgresBaseConfig {
|
|
87
86
|
/**
|
|
88
|
-
* Pre-configured pg
|
|
89
|
-
* Use this
|
|
90
|
-
*
|
|
87
|
+
* Pre-configured pg.Pool instance.
|
|
88
|
+
* Use this for direct control over the connection pool, or for
|
|
89
|
+
* integration with libraries that expect a pg.Pool.
|
|
91
90
|
*
|
|
92
91
|
* @example
|
|
93
92
|
* ```typescript
|
|
94
|
-
* import
|
|
93
|
+
* import { Pool } from 'pg';
|
|
95
94
|
*
|
|
96
|
-
* const
|
|
97
|
-
* const
|
|
95
|
+
* const pool = new Pool({ connectionString: '...' });
|
|
96
|
+
* const store = new PostgresStore({ id: 'my-store', pool });
|
|
98
97
|
*
|
|
99
|
-
* //
|
|
100
|
-
* client.$pool.on('connect', async (poolClient) => {
|
|
101
|
-
* await poolClient.query('SET ROLE my_role;');
|
|
102
|
-
* });
|
|
103
|
-
*
|
|
104
|
-
* const store = new PostgresStore({ id: 'my-store', client });
|
|
98
|
+
* // Use store.pool for other libraries that need a pg.Pool
|
|
105
99
|
* ```
|
|
106
100
|
*/
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
101
|
+
pool: Pool;
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* PostgreSQL configuration for PostgresStore.
|
|
105
|
+
*
|
|
106
|
+
* Accepts either:
|
|
107
|
+
* - A pre-configured pg.Pool: `{ id, pool, schemaName? }`
|
|
108
|
+
* - Connection string: `{ id, connectionString, ... }`
|
|
109
|
+
* - Host/port config: `{ id, host, port, database, user, password, ... }`
|
|
110
|
+
* - Cloud SQL connector config: `{ id, stream, ... }` (via pg.ClientConfig)
|
|
111
|
+
*/
|
|
112
|
+
export type PostgresStoreConfig = PoolInstanceConfig | ConnectionStringConfig | HostConfig | (PostgresBaseConfig & ClientConfig);
|
|
113
113
|
/**
|
|
114
114
|
* PostgreSQL configuration for PgVector (uses pg with ConnectionOptions)
|
|
115
115
|
*/
|
|
116
|
-
export type PgVectorConfig =
|
|
117
|
-
pgPoolOptions?: Omit<
|
|
116
|
+
export type PgVectorConfig = (ConnectionStringConfig | HostConfig | (PostgresBaseConfig & ClientConfig)) & {
|
|
117
|
+
pgPoolOptions?: Omit<PoolConfig, 'connectionString'>;
|
|
118
118
|
};
|
|
119
|
-
export declare const isConnectionStringConfig: <SSLType>(cfg: PostgresConfig<SSLType>) => cfg is PostgresConfig<SSLType> & {
|
|
120
|
-
connectionString: string;
|
|
121
|
-
ssl?: boolean | SSLType;
|
|
122
|
-
};
|
|
123
|
-
export declare const isHostConfig: <SSLType>(cfg: PostgresConfig<SSLType>) => cfg is PostgresConfig<SSLType> & {
|
|
124
|
-
host: string;
|
|
125
|
-
port: number;
|
|
126
|
-
database: string;
|
|
127
|
-
user: string;
|
|
128
|
-
password: string;
|
|
129
|
-
ssl?: boolean | SSLType;
|
|
130
|
-
};
|
|
131
|
-
export declare const isCloudSqlConfig: <SSLType>(cfg: PostgresConfig<SSLType>) => cfg is PostgresConfig<SSLType> & ClientConfig;
|
|
132
119
|
/**
|
|
133
|
-
* Type guard for pre-configured
|
|
120
|
+
* Type guard for pre-configured pg.Pool config
|
|
121
|
+
*/
|
|
122
|
+
export declare const isPoolConfig: (cfg: PostgresStoreConfig) => cfg is PoolInstanceConfig;
|
|
123
|
+
/**
|
|
124
|
+
* Type guard for connection string config
|
|
125
|
+
*/
|
|
126
|
+
export declare const isConnectionStringConfig: (cfg: PostgresStoreConfig) => cfg is ConnectionStringConfig;
|
|
127
|
+
/**
|
|
128
|
+
* Type guard for host-based config
|
|
129
|
+
*/
|
|
130
|
+
export declare const isHostConfig: (cfg: PostgresStoreConfig) => cfg is HostConfig;
|
|
131
|
+
/**
|
|
132
|
+
* Type guard for Cloud SQL connector config
|
|
133
|
+
*/
|
|
134
|
+
export declare const isCloudSqlConfig: (cfg: PostgresStoreConfig) => cfg is PostgresBaseConfig & ClientConfig;
|
|
135
|
+
/**
|
|
136
|
+
* Validate PostgresStore configuration.
|
|
134
137
|
*/
|
|
135
|
-
export declare const isClientConfig: (cfg: PostgresStoreConfig) => cfg is {
|
|
136
|
-
id: string;
|
|
137
|
-
client: pgPromise.IDatabase<{}>;
|
|
138
|
-
schemaName?: string;
|
|
139
|
-
disableInit?: boolean;
|
|
140
|
-
skipDefaultIndexes?: boolean;
|
|
141
|
-
indexes?: CreateIndexOptions[];
|
|
142
|
-
};
|
|
143
138
|
export declare const validateConfig: (name: string, config: PostgresStoreConfig) => void;
|
|
144
139
|
//# sourceMappingURL=config.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/shared/config.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAEzD;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,MAAM,CAAC;IACX,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB;;;;;;;;;;;;;;;;;;OAkBG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;;;;;OAQG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;;;;;;;;;;;;;OAiBG;IACH,OAAO,CAAC,EAAE,kBAAkB,EAAE,CAAC;CAChC;AAED;;GAEG;AACH,MAAM,WAAW,sBAAuB,SAAQ,kBAAkB;IAChE,gBAAgB,EAAE,MAAM,CAAC;IACzB,GAAG,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,UAAW,SAAQ,kBAAkB;IACpD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,OAAO,GAAG,iBAAiB,CAAC;IAClC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC5B;AAED;;GAEG;AACH,MAAM,WAAW,kBAAmB,SAAQ,kBAAkB;IAC5D;;;;;;;;;;;;;;OAcG;IACH,IAAI,EAAE,IAAI,CAAC;CACZ;AAED;;;;;;;;GAQG;AACH,MAAM,MAAM,mBAAmB,GAC3B,kBAAkB,GAClB,sBAAsB,GACtB,UAAU,GACV,CAAC,kBAAkB,GAAG,YAAY,CAAC,CAAC;AAExC;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,CAAC,sBAAsB,GAAG,UAAU,GAAG,CAAC,kBAAkB,GAAG,YAAY,CAAC,CAAC,GAAG;IACzG,aAAa,CAAC,EAAE,IAAI,CAAC,UAAU,EAAE,kBAAkB,CAAC,CAAC;CACtD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,mBAAmB,KAAG,GAAG,IAAI,kBAE9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,wBAAwB,GAAI,KAAK,mBAAmB,KAAG,GAAG,IAAI,sBAE1E,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,mBAAmB,KAAG,GAAG,IAAI,UAE9D,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,gBAAgB,GAAI,KAAK,mBAAmB,KAAG,GAAG,IAAI,kBAAkB,GAAG,YAEvF,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,cAAc,GAAI,MAAM,MAAM,EAAE,QAAQ,mBAAmB,SAuCvE,CAAC"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import type { Pool, PoolClient, QueryResult } from 'pg';
|
|
2
|
+
export type { Pool, PoolClient, QueryResult } from 'pg';
|
|
3
|
+
/**
|
|
4
|
+
* Values array for parameterized queries.
|
|
5
|
+
*/
|
|
6
|
+
export type QueryValues = unknown[];
|
|
7
|
+
/**
|
|
8
|
+
* Common interface for database clients.
|
|
9
|
+
* PoolAdapter implements this interface by wrapping a pg.Pool.
|
|
10
|
+
*/
|
|
11
|
+
export interface DbClient {
|
|
12
|
+
/**
|
|
13
|
+
* The underlying connection pool.
|
|
14
|
+
*/
|
|
15
|
+
readonly $pool: Pool;
|
|
16
|
+
/**
|
|
17
|
+
* Acquire a client from the pool for manual query execution.
|
|
18
|
+
* Remember to call client.release() when done.
|
|
19
|
+
*/
|
|
20
|
+
connect(): Promise<PoolClient>;
|
|
21
|
+
/**
|
|
22
|
+
* Execute a query that returns no data.
|
|
23
|
+
* Use for INSERT, UPDATE, DELETE without RETURNING.
|
|
24
|
+
*/
|
|
25
|
+
none(query: string, values?: QueryValues): Promise<null>;
|
|
26
|
+
/**
|
|
27
|
+
* Execute a query that returns exactly one row.
|
|
28
|
+
* @throws Error if zero or more than one row is returned
|
|
29
|
+
*/
|
|
30
|
+
one<T = any>(query: string, values?: QueryValues): Promise<T>;
|
|
31
|
+
/**
|
|
32
|
+
* Execute a query that returns zero or one row.
|
|
33
|
+
* @returns The row, or null if no rows returned
|
|
34
|
+
* @throws Error if more than one row is returned
|
|
35
|
+
*/
|
|
36
|
+
oneOrNone<T = any>(query: string, values?: QueryValues): Promise<T | null>;
|
|
37
|
+
/**
|
|
38
|
+
* Execute a query that returns any number of rows (including zero).
|
|
39
|
+
* Alias for manyOrNone.
|
|
40
|
+
*/
|
|
41
|
+
any<T = any>(query: string, values?: QueryValues): Promise<T[]>;
|
|
42
|
+
/**
|
|
43
|
+
* Execute a query that returns zero or more rows.
|
|
44
|
+
*/
|
|
45
|
+
manyOrNone<T = any>(query: string, values?: QueryValues): Promise<T[]>;
|
|
46
|
+
/**
|
|
47
|
+
* Execute a query that returns at least one row.
|
|
48
|
+
* @throws Error if no rows are returned
|
|
49
|
+
*/
|
|
50
|
+
many<T = any>(query: string, values?: QueryValues): Promise<T[]>;
|
|
51
|
+
/**
|
|
52
|
+
* Execute a raw query, returning the full result object.
|
|
53
|
+
*/
|
|
54
|
+
query(query: string, values?: QueryValues): Promise<QueryResult>;
|
|
55
|
+
/**
|
|
56
|
+
* Execute a function within a transaction.
|
|
57
|
+
* Automatically handles BEGIN, COMMIT, and ROLLBACK.
|
|
58
|
+
*/
|
|
59
|
+
tx<T>(callback: (t: TxClient) => Promise<T>): Promise<T>;
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Transaction client interface for executing queries within a transaction.
|
|
63
|
+
*/
|
|
64
|
+
export interface TxClient {
|
|
65
|
+
none(query: string, values?: QueryValues): Promise<null>;
|
|
66
|
+
one<T = any>(query: string, values?: QueryValues): Promise<T>;
|
|
67
|
+
oneOrNone<T = any>(query: string, values?: QueryValues): Promise<T | null>;
|
|
68
|
+
any<T = any>(query: string, values?: QueryValues): Promise<T[]>;
|
|
69
|
+
manyOrNone<T = any>(query: string, values?: QueryValues): Promise<T[]>;
|
|
70
|
+
many<T = any>(query: string, values?: QueryValues): Promise<T[]>;
|
|
71
|
+
query(query: string, values?: QueryValues): Promise<QueryResult>;
|
|
72
|
+
/** Execute multiple promises in parallel */
|
|
73
|
+
batch<T>(promises: Promise<T>[]): Promise<T[]>;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Adapter that wraps a pg.Pool to implement DbClient.
|
|
77
|
+
*/
|
|
78
|
+
export declare class PoolAdapter implements DbClient {
|
|
79
|
+
readonly $pool: Pool;
|
|
80
|
+
constructor($pool: Pool);
|
|
81
|
+
connect(): Promise<PoolClient>;
|
|
82
|
+
none(query: string, values?: QueryValues): Promise<null>;
|
|
83
|
+
one<T = any>(query: string, values?: QueryValues): Promise<T>;
|
|
84
|
+
oneOrNone<T = any>(query: string, values?: QueryValues): Promise<T | null>;
|
|
85
|
+
any<T = any>(query: string, values?: QueryValues): Promise<T[]>;
|
|
86
|
+
manyOrNone<T = any>(query: string, values?: QueryValues): Promise<T[]>;
|
|
87
|
+
many<T = any>(query: string, values?: QueryValues): Promise<T[]>;
|
|
88
|
+
query(query: string, values?: QueryValues): Promise<QueryResult>;
|
|
89
|
+
tx<T>(callback: (t: TxClient) => Promise<T>): Promise<T>;
|
|
90
|
+
}
|
|
91
|
+
//# sourceMappingURL=client.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/storage/client.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +1,22 @@
|
|
|
1
|
+
import type { ConnectionOptions } from 'node:tls';
|
|
1
2
|
import { MastraBase } from '@mastra/core/base';
|
|
2
3
|
import type { StorageColumn, TABLE_NAMES, CreateIndexOptions, IndexInfo, StorageIndexStats } from '@mastra/core/storage';
|
|
3
|
-
import
|
|
4
|
-
import type {
|
|
4
|
+
import { Pool } from 'pg';
|
|
5
|
+
import type { DbClient } from '../client.js';
|
|
6
|
+
export type { DbClient } from '../client.js';
|
|
5
7
|
/**
|
|
6
8
|
* Configuration for standalone domain usage.
|
|
7
9
|
* Accepts either:
|
|
8
|
-
* 1. An existing
|
|
9
|
-
* 2. Config to create a new
|
|
10
|
+
* 1. An existing database client (Pool or PoolAdapter)
|
|
11
|
+
* 2. Config to create a new pool internally
|
|
10
12
|
*/
|
|
11
|
-
export type PgDomainConfig = PgDomainClientConfig | PgDomainRestConfig;
|
|
13
|
+
export type PgDomainConfig = PgDomainClientConfig | PgDomainPoolConfig | PgDomainRestConfig;
|
|
12
14
|
/**
|
|
13
|
-
* Pass an existing
|
|
15
|
+
* Pass an existing database client (DbClient)
|
|
14
16
|
*/
|
|
15
17
|
export interface PgDomainClientConfig {
|
|
16
|
-
/** The
|
|
17
|
-
client:
|
|
18
|
+
/** The database client */
|
|
19
|
+
client: DbClient;
|
|
18
20
|
/** Optional schema name (defaults to 'public') */
|
|
19
21
|
schemaName?: string;
|
|
20
22
|
/** When true, default indexes will not be created during initialization */
|
|
@@ -23,7 +25,20 @@ export interface PgDomainClientConfig {
|
|
|
23
25
|
indexes?: CreateIndexOptions[];
|
|
24
26
|
}
|
|
25
27
|
/**
|
|
26
|
-
* Pass
|
|
28
|
+
* Pass an existing pg.Pool
|
|
29
|
+
*/
|
|
30
|
+
export interface PgDomainPoolConfig {
|
|
31
|
+
/** Pre-configured pg.Pool */
|
|
32
|
+
pool: Pool;
|
|
33
|
+
/** Optional schema name (defaults to 'public') */
|
|
34
|
+
schemaName?: string;
|
|
35
|
+
/** When true, default indexes will not be created during initialization */
|
|
36
|
+
skipDefaultIndexes?: boolean;
|
|
37
|
+
/** Custom indexes to create for this domain's tables */
|
|
38
|
+
indexes?: CreateIndexOptions[];
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Pass config to create a new pg.Pool internally
|
|
27
42
|
*/
|
|
28
43
|
export type PgDomainRestConfig = {
|
|
29
44
|
/** Optional schema name (defaults to 'public') */
|
|
@@ -38,31 +53,36 @@ export type PgDomainRestConfig = {
|
|
|
38
53
|
database: string;
|
|
39
54
|
user: string;
|
|
40
55
|
password: string;
|
|
41
|
-
ssl?: boolean |
|
|
56
|
+
ssl?: boolean | ConnectionOptions;
|
|
42
57
|
} | {
|
|
43
58
|
connectionString: string;
|
|
44
|
-
ssl?: boolean |
|
|
59
|
+
ssl?: boolean | ConnectionOptions;
|
|
45
60
|
});
|
|
46
61
|
/**
|
|
47
|
-
* Resolves PgDomainConfig to a
|
|
48
|
-
* Handles creating a new
|
|
62
|
+
* Resolves PgDomainConfig to a database client and schema.
|
|
63
|
+
* Handles creating a new pool if config is provided.
|
|
49
64
|
*/
|
|
50
65
|
export declare function resolvePgConfig(config: PgDomainConfig): {
|
|
51
|
-
client:
|
|
66
|
+
client: DbClient;
|
|
52
67
|
schemaName?: string;
|
|
53
68
|
skipDefaultIndexes?: boolean;
|
|
54
69
|
indexes?: CreateIndexOptions[];
|
|
55
70
|
};
|
|
71
|
+
/**
|
|
72
|
+
* Exports the Mastra database schema as SQL DDL statements.
|
|
73
|
+
* Does not require a database connection.
|
|
74
|
+
*/
|
|
75
|
+
export declare function exportSchemas(schemaName?: string): string;
|
|
56
76
|
/**
|
|
57
77
|
* Internal config for PgDB - accepts already-resolved client
|
|
58
78
|
*/
|
|
59
79
|
export interface PgDBInternalConfig {
|
|
60
|
-
client:
|
|
80
|
+
client: DbClient;
|
|
61
81
|
schemaName?: string;
|
|
62
82
|
skipDefaultIndexes?: boolean;
|
|
63
83
|
}
|
|
64
84
|
export declare class PgDB extends MastraBase {
|
|
65
|
-
client:
|
|
85
|
+
client: DbClient;
|
|
66
86
|
schemaName?: string;
|
|
67
87
|
skipDefaultIndexes?: boolean;
|
|
68
88
|
constructor(config: PgDBInternalConfig);
|
|
@@ -80,7 +100,6 @@ export declare class PgDB extends MastraBase {
|
|
|
80
100
|
*/
|
|
81
101
|
private prepareValue;
|
|
82
102
|
private setupSchema;
|
|
83
|
-
protected getSqlType(type: StorageColumn['type']): string;
|
|
84
103
|
protected getDefaultValue(type: StorageColumn['type']): string;
|
|
85
104
|
insert({ tableName, record }: {
|
|
86
105
|
tableName: TABLE_NAMES;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAU/C,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,kBAAkB,EAClB,SAAS,EACT,iBAAiB,EAClB,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/storage/db/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { MastraMessageContentV2 } from '@mastra/core/agent';
|
|
2
2
|
import type { MastraDBMessage, StorageThreadType } from '@mastra/core/memory';
|
|
3
3
|
import { MemoryStorage } from '@mastra/core/storage';
|
|
4
|
-
import type { StorageResourceType, StorageListMessagesInput, StorageListMessagesOutput, StorageListThreadsByResourceIdInput, StorageListThreadsByResourceIdOutput, CreateIndexOptions } from '@mastra/core/storage';
|
|
4
|
+
import type { StorageResourceType, StorageListMessagesInput, StorageListMessagesOutput, StorageListThreadsByResourceIdInput, StorageListThreadsByResourceIdOutput, CreateIndexOptions, StorageCloneThreadInput, StorageCloneThreadOutput } from '@mastra/core/storage';
|
|
5
5
|
import type { PgDomainConfig } from '../../db/index.js';
|
|
6
6
|
export declare class MemoryPG extends MemoryStorage {
|
|
7
7
|
#private;
|
|
@@ -85,5 +85,6 @@ export declare class MemoryPG extends MemoryStorage {
|
|
|
85
85
|
workingMemory?: string;
|
|
86
86
|
metadata?: Record<string, unknown>;
|
|
87
87
|
}): Promise<StorageResourceType>;
|
|
88
|
+
cloneThread(args: StorageCloneThreadInput): Promise<StorageCloneThreadOutput>;
|
|
88
89
|
}
|
|
89
90
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/memory/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,OAAO,KAAK,EAAmB,eAAe,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAC/F,OAAO,EACL,aAAa,EAQd,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EACV,mBAAmB,EACnB,wBAAwB,EACxB,yBAAyB,EACzB,mCAAmC,EACnC,oCAAoC,EACpC,kBAAkB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/storage/domains/memory/index.ts"],"names":[],"mappings":"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"}
|
package/dist/storage/index.d.ts
CHANGED
|
@@ -1,30 +1,39 @@
|
|
|
1
1
|
import { MastraStorage } from '@mastra/core/storage';
|
|
2
2
|
import type { StorageDomains } from '@mastra/core/storage';
|
|
3
|
-
import
|
|
3
|
+
import { Pool } from 'pg';
|
|
4
4
|
import type { PostgresStoreConfig } from '../shared/config.js';
|
|
5
|
+
import type { DbClient } from './client.js';
|
|
5
6
|
import { AgentsPG } from './domains/agents/index.js';
|
|
6
7
|
import { MemoryPG } from './domains/memory/index.js';
|
|
7
8
|
import { ObservabilityPG } from './domains/observability/index.js';
|
|
8
9
|
import { ScoresPG } from './domains/scores/index.js';
|
|
9
10
|
import { WorkflowsPG } from './domains/workflows/index.js';
|
|
11
|
+
export { exportSchemas } from './db/index.js';
|
|
10
12
|
export { AgentsPG, MemoryPG, ObservabilityPG, ScoresPG, WorkflowsPG };
|
|
11
|
-
export
|
|
13
|
+
export { PoolAdapter } from './client.js';
|
|
14
|
+
export type { DbClient, TxClient, QueryValues, Pool, PoolClient, QueryResult } from './client.js';
|
|
15
|
+
export type { PgDomainConfig, PgDomainClientConfig, PgDomainPoolConfig, PgDomainRestConfig } from './db/index.js';
|
|
12
16
|
/**
|
|
13
17
|
* PostgreSQL storage adapter for Mastra.
|
|
14
18
|
*
|
|
15
|
-
* Access domain-specific storage via `getStore()`:
|
|
16
|
-
*
|
|
17
19
|
* @example
|
|
18
20
|
* ```typescript
|
|
19
|
-
*
|
|
21
|
+
* // Option 1: Connection string
|
|
22
|
+
* const store = new PostgresStore({
|
|
23
|
+
* id: 'my-store',
|
|
24
|
+
* connectionString: 'postgresql://...',
|
|
25
|
+
* });
|
|
26
|
+
*
|
|
27
|
+
* // Option 2: Pre-configured pool
|
|
28
|
+
* const pool = new Pool({ connectionString: 'postgresql://...' });
|
|
29
|
+
* const store = new PostgresStore({ id: 'my-store', pool });
|
|
20
30
|
*
|
|
21
|
-
* // Access
|
|
22
|
-
* const memory = await
|
|
31
|
+
* // Access domain storage
|
|
32
|
+
* const memory = await store.getStore('memory');
|
|
23
33
|
* await memory?.saveThread({ thread });
|
|
24
34
|
*
|
|
25
|
-
* //
|
|
26
|
-
* const
|
|
27
|
-
* await workflows?.persistWorkflowSnapshot({ workflowName, runId, snapshot });
|
|
35
|
+
* // Execute custom queries
|
|
36
|
+
* const rows = await store.db.any('SELECT * FROM my_table');
|
|
28
37
|
* ```
|
|
29
38
|
*/
|
|
30
39
|
export declare class PostgresStore extends MastraStorage {
|
|
@@ -33,13 +42,25 @@ export declare class PostgresStore extends MastraStorage {
|
|
|
33
42
|
private isInitialized;
|
|
34
43
|
stores: StorageDomains;
|
|
35
44
|
constructor(config: PostgresStoreConfig);
|
|
45
|
+
private createPool;
|
|
36
46
|
init(): Promise<void>;
|
|
37
|
-
get db(): pgPromise.IDatabase<{}, import("pg-promise/typescript/pg-subset").IClient>;
|
|
38
|
-
get pgp(): pgPromise.IMain<{}, import("pg-promise/typescript/pg-subset").IClient>;
|
|
39
47
|
/**
|
|
40
|
-
*
|
|
48
|
+
* Database client for executing queries.
|
|
41
49
|
*
|
|
42
|
-
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```typescript
|
|
52
|
+
* const rows = await store.db.any('SELECT * FROM users WHERE active = $1', [true]);
|
|
53
|
+
* const user = await store.db.one('SELECT * FROM users WHERE id = $1', [userId]);
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
get db(): DbClient;
|
|
57
|
+
/**
|
|
58
|
+
* The underlying pg.Pool for direct database access or ORM integration.
|
|
59
|
+
*/
|
|
60
|
+
get pool(): Pool;
|
|
61
|
+
/**
|
|
62
|
+
* Closes the connection pool if it was created by this store.
|
|
63
|
+
* If a pool was passed in via config, it will not be closed.
|
|
43
64
|
*/
|
|
44
65
|
close(): Promise<void>;
|
|
45
66
|
}
|
|
@@ -1 +1 @@
|
|
|
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,
|
|
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,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAQ1B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAE5D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAEzC,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;AAOlD,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAC;AAErC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,QAAQ,EAAE,WAAW,EAAE,CAAC;AACtE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,YAAY,EAAE,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAC/F,YAAY,EAAE,cAAc,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,MAAM,CAAC;AAEzG;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,qBAAa,aAAc,SAAQ,aAAa;;IAI9C,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,aAAa,CAAkB;IAEvC,MAAM,EAAE,cAAc,CAAC;gBAEX,MAAM,EAAE,mBAAmB;IA0CvC,OAAO,CAAC,UAAU;IA8BZ,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAqB3B;;;;;;;;OAQG;IACH,IAAW,EAAE,IAAI,QAAQ,CAExB;IAED;;OAEG;IACH,IAAW,IAAI,IAAI,IAAI,CAEtB;IAED;;;OAGG;IACG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAK7B"}
|
|
@@ -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;AAK5D,eAAO,MAAM,WAAW,EAAE,mBAOF,CAAC;AAEzB,eAAO,MAAM,gBAAgB,QAA0K,CAAC;AAExM,wBAAgB,OAAO,
|
|
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,SA2rBtB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@mastra/pg",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.12",
|
|
4
4
|
"description": "Postgres provider for Mastra - includes both vector and db storage capabilities",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -22,22 +22,21 @@
|
|
|
22
22
|
"dependencies": {
|
|
23
23
|
"async-mutex": "^0.5.0",
|
|
24
24
|
"pg": "^8.16.3",
|
|
25
|
-
"pg-promise": "^11.15.0",
|
|
26
25
|
"xxhash-wasm": "^1.1.0"
|
|
27
26
|
},
|
|
28
27
|
"devDependencies": {
|
|
29
28
|
"@types/node": "22.13.17",
|
|
30
|
-
"@types/pg": "^8.
|
|
29
|
+
"@types/pg": "^8.16.0",
|
|
31
30
|
"@vitest/coverage-v8": "4.0.12",
|
|
32
31
|
"@vitest/ui": "4.0.12",
|
|
33
32
|
"eslint": "^9.37.0",
|
|
34
33
|
"tsup": "^8.5.0",
|
|
35
|
-
"typescript": "^5.
|
|
36
|
-
"vitest": "4.0.
|
|
34
|
+
"typescript": "^5.9.3",
|
|
35
|
+
"vitest": "4.0.16",
|
|
37
36
|
"@internal/lint": "0.0.53",
|
|
38
37
|
"@internal/storage-test-utils": "0.0.49",
|
|
39
38
|
"@internal/types-builder": "0.0.28",
|
|
40
|
-
"@mastra/core": "1.0.0-beta.
|
|
39
|
+
"@mastra/core": "1.0.0-beta.20"
|
|
41
40
|
},
|
|
42
41
|
"peerDependencies": {
|
|
43
42
|
"@mastra/core": ">=1.0.0-0 <2.0.0-0"
|
|
@@ -59,8 +58,9 @@
|
|
|
59
58
|
"node": ">=22.13.0"
|
|
60
59
|
},
|
|
61
60
|
"scripts": {
|
|
62
|
-
"build": "tsup --silent --config tsup.config.ts",
|
|
63
|
-
"build:
|
|
61
|
+
"build:lib": "tsup --silent --config tsup.config.ts",
|
|
62
|
+
"build:docs": "pnpx tsx ../../scripts/generate-package-docs.ts stores/pg",
|
|
63
|
+
"build:watch": "pnpm build:lib --watch",
|
|
64
64
|
"pretest": "docker compose up -d && (for i in $(seq 1 30); do docker compose exec -T db pg_isready -U postgres && break || (sleep 1; [ $i -eq 30 ] && exit 1); done)",
|
|
65
65
|
"test": "vitest run",
|
|
66
66
|
"pretest:perf": "docker compose -f docker-compose.perf.yaml up -d && (for i in $(seq 1 30); do docker compose -f docker-compose.perf.yaml exec -T db pg_isready -U postgres && break || (sleep 1; [ $i -eq 30 ] && exit 1); done)",
|