@mastra/pg 0.17.8 → 1.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +222 -24
- package/README.md +69 -20
- package/dist/index.cjs +271 -585
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +271 -585
- package/dist/index.js.map +1 -1
- package/dist/shared/config.d.ts +1 -0
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/storage/domains/memory/index.d.ts +14 -45
- package/dist/storage/domains/memory/index.d.ts.map +1 -1
- package/dist/storage/domains/observability/index.d.ts +16 -16
- package/dist/storage/domains/observability/index.d.ts.map +1 -1
- package/dist/storage/domains/operations/index.d.ts.map +1 -1
- package/dist/storage/domains/scores/index.d.ts +5 -5
- package/dist/storage/domains/scores/index.d.ts.map +1 -1
- package/dist/storage/domains/workflows/index.d.ts +4 -10
- package/dist/storage/domains/workflows/index.d.ts.map +1 -1
- package/dist/storage/index.d.ts +34 -93
- package/dist/storage/index.d.ts.map +1 -1
- package/dist/storage/performance-indexes/performance-test.d.ts.map +1 -1
- package/dist/storage/test-utils.d.ts.map +1 -1
- package/dist/vector/index.d.ts +3 -1
- package/dist/vector/index.d.ts.map +1 -1
- package/package.json +8 -12
- package/dist/storage/domains/legacy-evals/index.d.ts +0 -20
- package/dist/storage/domains/legacy-evals/index.d.ts.map +0 -1
- package/dist/storage/domains/traces/index.d.ts +0 -23
- package/dist/storage/domains/traces/index.d.ts.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,49 +1,247 @@
|
|
|
1
1
|
# @mastra/pg
|
|
2
2
|
|
|
3
|
-
## 0.
|
|
3
|
+
## 1.0.0-beta.0
|
|
4
4
|
|
|
5
|
-
###
|
|
5
|
+
### Major Changes
|
|
6
6
|
|
|
7
|
-
-
|
|
7
|
+
- Moving scorers under the eval domain, api method consistency, prebuilt evals, scorers require ids. ([#9589](https://github.com/mastra-ai/mastra/pull/9589))
|
|
8
8
|
|
|
9
|
-
-
|
|
10
|
-
- @mastra/core@0.24.0
|
|
9
|
+
- Every Mastra primitive (agent, MCPServer, workflow, tool, processor, scorer, and vector) now has a get, list, and add method associated with it. Each primitive also now requires an id to be set. ([#9675](https://github.com/mastra-ai/mastra/pull/9675))
|
|
11
10
|
|
|
12
|
-
|
|
11
|
+
Primitives that are added to other primitives are also automatically added to the Mastra instance
|
|
13
12
|
|
|
14
|
-
|
|
13
|
+
- Update handlers to use `listWorkflowRuns` instead of `getWorkflowRuns`. Fix type names from `StoragelistThreadsByResourceIdInput/Output` to `StorageListThreadsByResourceIdInput/Output`. ([#9507](https://github.com/mastra-ai/mastra/pull/9507))
|
|
15
14
|
|
|
16
|
-
-
|
|
15
|
+
- **BREAKING:** Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
|
|
17
16
|
|
|
18
|
-
|
|
19
|
-
- @mastra/core@0.24.0-alpha.0
|
|
17
|
+
Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
|
|
20
18
|
|
|
21
|
-
|
|
19
|
+
**Storage changes:**
|
|
20
|
+
- `StoragePagination.perPage` type changed from `number` to `number | false`
|
|
21
|
+
- All storage implementations support `perPage: false`:
|
|
22
|
+
- Memory: `listMessages()`
|
|
23
|
+
- Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
|
|
24
|
+
- HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
|
|
22
25
|
|
|
23
|
-
|
|
26
|
+
**Memory changes:**
|
|
27
|
+
- `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
|
|
28
|
+
- Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
|
|
24
29
|
|
|
25
|
-
|
|
30
|
+
**Stricter validation:**
|
|
31
|
+
- `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
|
|
26
32
|
|
|
27
|
-
|
|
28
|
-
- @mastra/core@0.23.1
|
|
33
|
+
**Migration:**
|
|
29
34
|
|
|
30
|
-
|
|
35
|
+
```typescript
|
|
36
|
+
// Storage/Memory: Replace getMessagesPaginated with listMessages
|
|
37
|
+
- storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
|
|
38
|
+
+ storage.listMessages({ threadId, page: 0, perPage: 20 })
|
|
39
|
+
+ storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
|
|
31
40
|
|
|
32
|
-
|
|
41
|
+
// Memory: Replace selectBy with flat parameters
|
|
42
|
+
- memory.query({ threadId, selectBy: { last: 20, include: [...] } })
|
|
43
|
+
+ memory.query({ threadId, perPage: 20, include: [...] })
|
|
44
|
+
|
|
45
|
+
// Client SDK
|
|
46
|
+
- thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
|
|
47
|
+
+ thread.listMessages({ page: 0, perPage: 20 })
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
- # Major Changes ([#9695](https://github.com/mastra-ai/mastra/pull/9695))
|
|
51
|
+
|
|
52
|
+
## Storage Layer
|
|
53
|
+
|
|
54
|
+
### BREAKING: Removed `storage.getMessages()`
|
|
55
|
+
|
|
56
|
+
The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
|
|
57
|
+
|
|
58
|
+
**Migration:**
|
|
59
|
+
|
|
60
|
+
```typescript
|
|
61
|
+
// Before
|
|
62
|
+
const messages = await storage.getMessages({ threadId: 'thread-1' });
|
|
63
|
+
|
|
64
|
+
// After
|
|
65
|
+
const result = await storage.listMessages({
|
|
66
|
+
threadId: 'thread-1',
|
|
67
|
+
page: 0,
|
|
68
|
+
perPage: 50,
|
|
69
|
+
});
|
|
70
|
+
const messages = result.messages; // Access messages array
|
|
71
|
+
console.log(result.total); // Total count
|
|
72
|
+
console.log(result.hasMore); // Whether more pages exist
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Message ordering default
|
|
76
|
+
|
|
77
|
+
`listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
|
|
78
|
+
|
|
79
|
+
**To use DESC ordering (newest first):**
|
|
80
|
+
|
|
81
|
+
```typescript
|
|
82
|
+
const result = await storage.listMessages({
|
|
83
|
+
threadId: 'thread-1',
|
|
84
|
+
orderBy: { field: 'createdAt', direction: 'DESC' },
|
|
85
|
+
});
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
## Client SDK
|
|
89
|
+
|
|
90
|
+
### BREAKING: Renamed `client.getThreadMessages()` → `client.listThreadMessages()`
|
|
91
|
+
|
|
92
|
+
**Migration:**
|
|
93
|
+
|
|
94
|
+
```typescript
|
|
95
|
+
// Before
|
|
96
|
+
const response = await client.getThreadMessages(threadId, { agentId });
|
|
97
|
+
|
|
98
|
+
// After
|
|
99
|
+
const response = await client.listThreadMessages(threadId, { agentId });
|
|
100
|
+
```
|
|
101
|
+
|
|
102
|
+
The response format remains the same.
|
|
103
|
+
|
|
104
|
+
## Type Changes
|
|
105
|
+
|
|
106
|
+
### BREAKING: Removed `StorageGetMessagesArg` type
|
|
107
|
+
|
|
108
|
+
Use `StorageListMessagesInput` instead:
|
|
109
|
+
|
|
110
|
+
```typescript
|
|
111
|
+
// Before
|
|
112
|
+
import type { StorageGetMessagesArg } from '@mastra/core';
|
|
33
113
|
|
|
34
|
-
|
|
114
|
+
// After
|
|
115
|
+
import type { StorageListMessagesInput } from '@mastra/core';
|
|
116
|
+
```
|
|
35
117
|
|
|
36
|
-
-
|
|
37
|
-
- @mastra/core@0.23.0
|
|
118
|
+
- Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
|
|
38
119
|
|
|
39
|
-
|
|
120
|
+
- Add new list methods to storage API: `listMessages`, `listMessagesById`, `listThreadsByResourceId`, and `listWorkflowRuns`. Most methods are currently wrappers around existing methods. Full implementations will be added when migrating away from legacy methods. ([#9489](https://github.com/mastra-ai/mastra/pull/9489))
|
|
121
|
+
|
|
122
|
+
- Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
|
|
123
|
+
|
|
124
|
+
- Implement listMessages API for replacing previous methods ([#9531](https://github.com/mastra-ai/mastra/pull/9531))
|
|
125
|
+
|
|
126
|
+
- Remove `getThreadsByResourceId` and `getThreadsByResourceIdPaginated` methods from storage interfaces in favor of `listThreadsByResourceId`. The new method uses `offset`/`limit` pagination and a nested `orderBy` object structure (`{ field, direction }`). ([#9536](https://github.com/mastra-ai/mastra/pull/9536))
|
|
127
|
+
|
|
128
|
+
- Remove `getMessagesById` method from storage interfaces in favor of `listMessagesById`. The new method only returns V2-format messages and removes the format parameter, simplifying the API surface. Users should migrate from `getMessagesById({ messageIds, format })` to `listMessagesById({ messageIds })`. ([#9534](https://github.com/mastra-ai/mastra/pull/9534))
|
|
129
|
+
|
|
130
|
+
- Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
|
|
131
|
+
|
|
132
|
+
- **BREAKING CHANGE**: Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
|
|
133
|
+
|
|
134
|
+
All storage and memory pagination APIs have been updated to use `page` (0-indexed) and `perPage` instead of `offset` and `limit`, aligning with standard REST API patterns.
|
|
135
|
+
|
|
136
|
+
**Affected APIs:**
|
|
137
|
+
- `Memory.listThreadsByResourceId()`
|
|
138
|
+
- `Memory.listMessages()`
|
|
139
|
+
- `Storage.listWorkflowRuns()`
|
|
140
|
+
|
|
141
|
+
**Migration:**
|
|
142
|
+
|
|
143
|
+
```typescript
|
|
144
|
+
// Before
|
|
145
|
+
await memory.listThreadsByResourceId({
|
|
146
|
+
resourceId: 'user-123',
|
|
147
|
+
offset: 20,
|
|
148
|
+
limit: 10,
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
// After
|
|
152
|
+
await memory.listThreadsByResourceId({
|
|
153
|
+
resourceId: 'user-123',
|
|
154
|
+
page: 2, // page = Math.floor(offset / limit)
|
|
155
|
+
perPage: 10,
|
|
156
|
+
});
|
|
157
|
+
|
|
158
|
+
// Before
|
|
159
|
+
await memory.listMessages({
|
|
160
|
+
threadId: 'thread-456',
|
|
161
|
+
offset: 20,
|
|
162
|
+
limit: 10,
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
// After
|
|
166
|
+
await memory.listMessages({
|
|
167
|
+
threadId: 'thread-456',
|
|
168
|
+
page: 2,
|
|
169
|
+
perPage: 10,
|
|
170
|
+
});
|
|
171
|
+
|
|
172
|
+
// Before
|
|
173
|
+
await storage.listWorkflowRuns({
|
|
174
|
+
workflowName: 'my-workflow',
|
|
175
|
+
offset: 20,
|
|
176
|
+
limit: 10,
|
|
177
|
+
});
|
|
178
|
+
|
|
179
|
+
// After
|
|
180
|
+
await storage.listWorkflowRuns({
|
|
181
|
+
workflowName: 'my-workflow',
|
|
182
|
+
page: 2,
|
|
183
|
+
perPage: 10,
|
|
184
|
+
});
|
|
185
|
+
```
|
|
186
|
+
|
|
187
|
+
**Additional improvements:**
|
|
188
|
+
- Added validation for negative `page` values in all storage implementations
|
|
189
|
+
- Improved `perPage` validation to handle edge cases (negative values, `0`, `false`)
|
|
190
|
+
- Added reusable query parser utilities for consistent validation in handlers
|
|
191
|
+
|
|
192
|
+
- ```([#9709](https://github.com/mastra-ai/mastra/pull/9709))
|
|
193
|
+
import { Mastra } from '@mastra/core';
|
|
194
|
+
import { Observability } from '@mastra/observability'; // Explicit import
|
|
195
|
+
|
|
196
|
+
const mastra = new Mastra({
|
|
197
|
+
...other_config,
|
|
198
|
+
observability: new Observability({
|
|
199
|
+
default: { enabled: true }
|
|
200
|
+
}) // Instance
|
|
201
|
+
});
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Instead of:
|
|
205
|
+
|
|
206
|
+
```
|
|
207
|
+
import { Mastra } from '@mastra/core';
|
|
208
|
+
import '@mastra/observability/init'; // Explicit import
|
|
209
|
+
|
|
210
|
+
const mastra = new Mastra({
|
|
211
|
+
...other_config,
|
|
212
|
+
observability: {
|
|
213
|
+
default: { enabled: true }
|
|
214
|
+
}
|
|
215
|
+
});
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
Also renamed a bunch of:
|
|
219
|
+
- `Tracing` things to `Observability` things.
|
|
220
|
+
- `AI-` things to just things.
|
|
221
|
+
|
|
222
|
+
- Removed old tracing code based on OpenTelemetry ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
|
|
223
|
+
|
|
224
|
+
- Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
|
|
225
|
+
|
|
226
|
+
- Renamed `MastraMessageV2` to `MastraDBMessage` ([#9255](https://github.com/mastra-ai/mastra/pull/9255))
|
|
227
|
+
Made the return format of all methods that return db messages consistent. It's always `{ messages: MastraDBMessage[] }` now, and messages can be converted after that using `@mastra/ai-sdk/ui`'s `toAISdkV4/5Messages()` function
|
|
228
|
+
|
|
229
|
+
- moved ai-tracing code into @mastra/observability ([#9661](https://github.com/mastra-ai/mastra/pull/9661))
|
|
230
|
+
|
|
231
|
+
- Remove legacy evals from Mastra ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
|
|
232
|
+
|
|
233
|
+
### Minor Changes
|
|
234
|
+
|
|
235
|
+
- Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
|
|
40
236
|
|
|
41
237
|
### Patch Changes
|
|
42
238
|
|
|
43
|
-
-
|
|
239
|
+
- Fix pg listThreadsByResourceId page number validation ([#9671](https://github.com/mastra-ai/mastra/pull/9671))
|
|
240
|
+
|
|
241
|
+
- Fixes "invalid input syntax for type json" error in tracing with PostgreSQL. ([#9154](https://github.com/mastra-ai/mastra/pull/9154))
|
|
44
242
|
|
|
45
|
-
- Updated dependencies [[`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`
|
|
46
|
-
- @mastra/core@0.
|
|
243
|
+
- Updated dependencies [[`39c9743`](https://github.com/mastra-ai/mastra/commit/39c97432d084294f8ba85fbf3ef28098ff21459e), [`f743dbb`](https://github.com/mastra-ai/mastra/commit/f743dbb8b40d1627b5c10c0e6fc154f4ebb6e394), [`fec5129`](https://github.com/mastra-ai/mastra/commit/fec5129de7fc64423ea03661a56cef31dc747a0d), [`0491e7c`](https://github.com/mastra-ai/mastra/commit/0491e7c9b714cb0ba22187ee062147ec2dd7c712), [`f6f4903`](https://github.com/mastra-ai/mastra/commit/f6f4903397314f73362061dc5a3e8e7c61ea34aa), [`0e8ed46`](https://github.com/mastra-ai/mastra/commit/0e8ed467c54d6901a6a365f270ec15d6faadb36c), [`6c049d9`](https://github.com/mastra-ai/mastra/commit/6c049d94063fdcbd5b81c4912a2bf82a92c9cc0b), [`2f897df`](https://github.com/mastra-ai/mastra/commit/2f897df208508f46f51b7625e5dd20c37f93e0e3), [`3443770`](https://github.com/mastra-ai/mastra/commit/3443770662df8eb24c9df3589b2792d78cfcb811), [`f0a07e0`](https://github.com/mastra-ai/mastra/commit/f0a07e0111b3307c5fabfa4094c5c2cfb734fbe6), [`aaa40e7`](https://github.com/mastra-ai/mastra/commit/aaa40e788628b319baa8e889407d11ad626547fa), [`1521d71`](https://github.com/mastra-ai/mastra/commit/1521d716e5daedc74690c983fbd961123c56756b), [`9e1911d`](https://github.com/mastra-ai/mastra/commit/9e1911db2b4db85e0e768c3f15e0d61e319869f6), [`ebac155`](https://github.com/mastra-ai/mastra/commit/ebac15564a590117db7078233f927a7e28a85106), [`dd1c38d`](https://github.com/mastra-ai/mastra/commit/dd1c38d1b75f1b695c27b40d8d9d6ed00d5e0f6f), [`5948e6a`](https://github.com/mastra-ai/mastra/commit/5948e6a5146c83666ba3f294b2be576c82a513fb), [`8940859`](https://github.com/mastra-ai/mastra/commit/89408593658199b4ad67f7b65e888f344e64a442), [`e629310`](https://github.com/mastra-ai/mastra/commit/e629310f1a73fa236d49ec7a1d1cceb6229dc7cc), [`4c6b492`](https://github.com/mastra-ai/mastra/commit/4c6b492c4dd591c6a592520c1f6855d6e936d71f), [`dff01d8`](https://github.com/mastra-ai/mastra/commit/dff01d81ce1f4e4087cfac20fa868e6db138dd14), [`9d819d5`](https://github.com/mastra-ai/mastra/commit/9d819d54b61481639f4008e4694791bddf187edd), [`71c8d6c`](https://github.com/mastra-ai/mastra/commit/71c8d6c161253207b2b9588bdadb7eed604f7253), [`6179a9b`](https://github.com/mastra-ai/mastra/commit/6179a9ba36ffac326de3cc3c43cdc8028d37c251), [`00f4921`](https://github.com/mastra-ai/mastra/commit/00f4921dd2c91a1e5446799599ef7116a8214a1a), [`ca8041c`](https://github.com/mastra-ai/mastra/commit/ca8041cce0379fda22ed293a565bcb5b6ddca68a), [`7051bf3`](https://github.com/mastra-ai/mastra/commit/7051bf38b3b122a069008f861f7bfc004a6d9f6e), [`a8f1494`](https://github.com/mastra-ai/mastra/commit/a8f1494f4bbdc2770bcf327d4c7d869e332183f1), [`0793497`](https://github.com/mastra-ai/mastra/commit/079349753620c40246ffd673e3f9d7d9820beff3), [`5df9cce`](https://github.com/mastra-ai/mastra/commit/5df9cce1a753438413f64c11eeef8f845745c2a8), [`a854ede`](https://github.com/mastra-ai/mastra/commit/a854ede62bf5ac0945a624ac48913dd69c73aabf), [`c576fc0`](https://github.com/mastra-ai/mastra/commit/c576fc0b100b2085afded91a37c97a0ea0ec09c7), [`3defc80`](https://github.com/mastra-ai/mastra/commit/3defc80cf2b88a1b7fc1cc4ddcb91e982a614609), [`16153fe`](https://github.com/mastra-ai/mastra/commit/16153fe7eb13c99401f48e6ca32707c965ee28b9), [`9f4a683`](https://github.com/mastra-ai/mastra/commit/9f4a6833e88b52574665c028fd5508ad5c2f6004), [`bc94344`](https://github.com/mastra-ai/mastra/commit/bc943444a1342d8a662151b7bce1df7dae32f59c), [`57d157f`](https://github.com/mastra-ai/mastra/commit/57d157f0b163a95c3e6c9eae31bdb11d1bfc64f9), [`903f67d`](https://github.com/mastra-ai/mastra/commit/903f67d184504a273893818c02b961f5423a79ad), [`2a90c55`](https://github.com/mastra-ai/mastra/commit/2a90c55a86a9210697d5adaab5ee94584b079adc), [`eb09742`](https://github.com/mastra-ai/mastra/commit/eb09742197f66c4c38154c3beec78313e69760b2), [`96d35f6`](https://github.com/mastra-ai/mastra/commit/96d35f61376bc2b1bf148648a2c1985bd51bef55), [`5cbe88a`](https://github.com/mastra-ai/mastra/commit/5cbe88aefbd9f933bca669fd371ea36bf939ac6d), [`a1bd7b8`](https://github.com/mastra-ai/mastra/commit/a1bd7b8571db16b94eb01588f451a74758c96d65), [`d78b38d`](https://github.com/mastra-ai/mastra/commit/d78b38d898fce285260d3bbb4befade54331617f), [`0633100`](https://github.com/mastra-ai/mastra/commit/0633100a911ad22f5256471bdf753da21c104742), [`c710c16`](https://github.com/mastra-ai/mastra/commit/c710c1652dccfdc4111c8412bca7a6bb1d48b441), [`354ad0b`](https://github.com/mastra-ai/mastra/commit/354ad0b7b1b8183ac567f236a884fc7ede6d7138), [`cfae733`](https://github.com/mastra-ai/mastra/commit/cfae73394f4920635e6c919c8e95ff9a0788e2e5), [`e3dfda7`](https://github.com/mastra-ai/mastra/commit/e3dfda7b11bf3b8c4bb55637028befb5f387fc74), [`844ea5d`](https://github.com/mastra-ai/mastra/commit/844ea5dc0c248961e7bf73629ae7dcff503e853c), [`398fde3`](https://github.com/mastra-ai/mastra/commit/398fde3f39e707cda79372cdae8f9870e3b57c8d), [`f0f8f12`](https://github.com/mastra-ai/mastra/commit/f0f8f125c308f2d0fd36942ef652fd852df7522f), [`0d7618b`](https://github.com/mastra-ai/mastra/commit/0d7618bc650bf2800934b243eca5648f4aeed9c2), [`7b763e5`](https://github.com/mastra-ai/mastra/commit/7b763e52fc3eaf699c2a99f2adf418dd46e4e9a5), [`d36cfbb`](https://github.com/mastra-ai/mastra/commit/d36cfbbb6565ba5f827883cc9bb648eb14befdc1), [`3697853`](https://github.com/mastra-ai/mastra/commit/3697853deeb72017d90e0f38a93c1e29221aeca0), [`b2e45ec`](https://github.com/mastra-ai/mastra/commit/b2e45eca727a8db01a81ba93f1a5219c7183c839), [`d6d49f7`](https://github.com/mastra-ai/mastra/commit/d6d49f7b8714fa19a52ff9c7cf7fb7e73751901e), [`a534e95`](https://github.com/mastra-ai/mastra/commit/a534e9591f83b3cc1ebff99c67edf4cda7bf81d3), [`9d0e7fe`](https://github.com/mastra-ai/mastra/commit/9d0e7feca8ed98de959f53476ee1456073673348), [`53d927c`](https://github.com/mastra-ai/mastra/commit/53d927cc6f03bff33655b7e2b788da445a08731d), [`3f2faf2`](https://github.com/mastra-ai/mastra/commit/3f2faf2e2d685d6c053cc5af1bf9fedf267b2ce5), [`22f64bc`](https://github.com/mastra-ai/mastra/commit/22f64bc1d37149480b58bf2fefe35b79a1e3e7d5), [`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc), [`b7959e6`](https://github.com/mastra-ai/mastra/commit/b7959e6e25a46b480f9ea2217c4c6c588c423791), [`bda6370`](https://github.com/mastra-ai/mastra/commit/bda637009360649aaf579919e7873e33553c273e), [`d7acd8e`](https://github.com/mastra-ai/mastra/commit/d7acd8e987b5d7eff4fd98b0906c17c06a2e83d5), [`c7f1f7d`](https://github.com/mastra-ai/mastra/commit/c7f1f7d24f61f247f018cc2d1f33bf63212959a7), [`0bddc6d`](https://github.com/mastra-ai/mastra/commit/0bddc6d8dbd6f6008c0cba2e4960a2da75a55af1), [`735d8c1`](https://github.com/mastra-ai/mastra/commit/735d8c1c0d19fbc09e6f8b66cf41bc7655993838), [`acf322e`](https://github.com/mastra-ai/mastra/commit/acf322e0f1fd0189684cf529d91c694bea918a45), [`c942802`](https://github.com/mastra-ai/mastra/commit/c942802a477a925b01859a7b8688d4355715caaa), [`a0c8c1b`](https://github.com/mastra-ai/mastra/commit/a0c8c1b87d4fee252aebda73e8637fbe01d761c9), [`cc34739`](https://github.com/mastra-ai/mastra/commit/cc34739c34b6266a91bea561119240a7acf47887), [`c218bd3`](https://github.com/mastra-ai/mastra/commit/c218bd3759e32423735b04843a09404572631014), [`2c4438b`](https://github.com/mastra-ai/mastra/commit/2c4438b87817ab7eed818c7990fef010475af1a3), [`2b8893c`](https://github.com/mastra-ai/mastra/commit/2b8893cb108ef9acb72ee7835cd625610d2c1a4a), [`8e5c75b`](https://github.com/mastra-ai/mastra/commit/8e5c75bdb1d08a42d45309a4c72def4b6890230f), [`e59e0d3`](https://github.com/mastra-ai/mastra/commit/e59e0d32afb5fcf2c9f3c00c8f81f6c21d3a63fa), [`fa8409b`](https://github.com/mastra-ai/mastra/commit/fa8409bc39cfd8ba6643b9db5269b90b22e2a2f7), [`173c535`](https://github.com/mastra-ai/mastra/commit/173c535c0645b0da404fe09f003778f0b0d4e019)]:
|
|
244
|
+
- @mastra/core@1.0.0-beta.0
|
|
47
245
|
|
|
48
246
|
## 0.17.5
|
|
49
247
|
|
package/README.md
CHANGED
|
@@ -115,26 +115,32 @@ const store = new PostgresStore({
|
|
|
115
115
|
|
|
116
116
|
// Create a thread
|
|
117
117
|
await store.saveThread({
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
118
|
+
thread: {
|
|
119
|
+
id: 'thread-123',
|
|
120
|
+
resourceId: 'resource-456',
|
|
121
|
+
title: 'My Thread',
|
|
122
|
+
metadata: { key: 'value' },
|
|
123
|
+
createdAt: new Date(),
|
|
124
|
+
},
|
|
122
125
|
});
|
|
123
126
|
|
|
124
127
|
// Add messages to thread
|
|
125
|
-
await store.saveMessages(
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
128
|
+
await store.saveMessages({
|
|
129
|
+
messages: [
|
|
130
|
+
{
|
|
131
|
+
id: 'msg-789',
|
|
132
|
+
threadId: 'thread-123',
|
|
133
|
+
role: 'user',
|
|
134
|
+
content: { content: 'Hello' },
|
|
135
|
+
resourceId: 'resource-456',
|
|
136
|
+
createdAt: new Date(),
|
|
137
|
+
},
|
|
138
|
+
],
|
|
139
|
+
});
|
|
134
140
|
|
|
135
141
|
// Query threads and messages
|
|
136
|
-
const savedThread = await store.
|
|
137
|
-
const messages = await store.
|
|
142
|
+
const savedThread = await store.getThreadById({ threadId: 'thread-123' });
|
|
143
|
+
const messages = await store.listMessages({ threadId: 'thread-123' });
|
|
138
144
|
```
|
|
139
145
|
|
|
140
146
|
## Configuration
|
|
@@ -329,13 +335,56 @@ The system automatically detects configuration changes and only rebuilds indexes
|
|
|
329
335
|
|
|
330
336
|
## Storage Methods
|
|
331
337
|
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
- `
|
|
335
|
-
- `
|
|
336
|
-
- `
|
|
338
|
+
### Thread Operations
|
|
339
|
+
|
|
340
|
+
- `saveThread({ thread })`: Create or update a thread
|
|
341
|
+
- `getThreadById({ threadId })`: Get a thread by ID
|
|
342
|
+
- `updateThread({ id, title, metadata })`: Update thread title and/or metadata
|
|
343
|
+
- `deleteThread({ threadId })`: Delete a thread and its messages
|
|
344
|
+
- `listThreadsByResourceId({ resourceId, offset, limit, orderBy? })`: List paginated threads for a resource
|
|
345
|
+
|
|
346
|
+
### Message Operations
|
|
347
|
+
|
|
348
|
+
- `saveMessages({ messages })`: Save multiple messages in a transaction
|
|
349
|
+
- `listMessages({ threadId, resourceId?, perPage?, page?, orderBy?, filter? })`: Get messages for a thread with pagination
|
|
350
|
+
- `listMessagesById({ messageIds })`: Get specific messages by their IDs
|
|
351
|
+
- `updateMessages({ messages })`: Update existing messages
|
|
337
352
|
- `deleteMessages(messageIds)`: Delete specific messages
|
|
338
353
|
|
|
354
|
+
### Resource Operations
|
|
355
|
+
|
|
356
|
+
- `getResourceById({ resourceId })`: Get a resource by ID
|
|
357
|
+
- `saveResource({ resource })`: Create or save a resource
|
|
358
|
+
- `updateResource({ resourceId, workingMemory })`: Update resource working memory
|
|
359
|
+
|
|
360
|
+
### Workflow Operations
|
|
361
|
+
|
|
362
|
+
- `persistWorkflowSnapshot({ workflowName, runId, snapshot })`: Save workflow state
|
|
363
|
+
- `loadWorkflowSnapshot({ workflowName, runId })`: Load workflow state
|
|
364
|
+
- `listWorkflowRuns({ workflowName, pagination })`: List workflow runs with pagination
|
|
365
|
+
- `getWorkflowRunById({ workflowName, runId })`: Get a specific workflow run
|
|
366
|
+
- `updateWorkflowState({ workflowName, runId, state })`: Update workflow state
|
|
367
|
+
- `updateWorkflowResults({ workflowName, runId, results })`: Update workflow results
|
|
368
|
+
|
|
369
|
+
### AI Observability Operations
|
|
370
|
+
|
|
371
|
+
- `createSpan(span)`: Create a single AI span
|
|
372
|
+
- `batchCreateSpans({ records })`: Create multiple AI spans
|
|
373
|
+
- `updateSpan({ traceId, spanId, updates })`: Update an AI span
|
|
374
|
+
- `batchUpdateSpans({ updates })`: Update multiple AI spans
|
|
375
|
+
- `getTrace(traceId)`: Get an trace by ID
|
|
376
|
+
- `getTracesPaginated({ ...filters, pagination })`: Get paginated traces with filtering
|
|
377
|
+
- `batchDeleteTraces({ traceIds })`: Delete multiple traces
|
|
378
|
+
|
|
379
|
+
### Evaluation/Scoring Operations
|
|
380
|
+
|
|
381
|
+
- `getScoreById({ id })`: Get a score by ID
|
|
382
|
+
- `saveScore(score)`: Save an evaluation score
|
|
383
|
+
- `listScoresByScorerId({ scorerId, pagination })`: List scores by scorer with pagination
|
|
384
|
+
- `listScoresByRunId({ runId, pagination })`: List scores by run with pagination
|
|
385
|
+
- `listScoresByEntityId({ entityId, entityType, pagination })`: List scores by entity with pagination
|
|
386
|
+
- `listScoresBySpan({ traceId, spanId, pagination })`: List scores by span with pagination
|
|
387
|
+
|
|
339
388
|
## Index Management
|
|
340
389
|
|
|
341
390
|
The PostgreSQL store provides comprehensive index management capabilities to optimize query performance.
|