@mastra/clickhouse 0.15.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 CHANGED
@@ -1,31 +1,237 @@
1
1
  # @mastra/clickhouse
2
2
 
3
- ## 0.15.8
3
+ ## 1.0.0-beta.0
4
4
 
5
- ### Patch Changes
5
+ ### Major Changes
6
6
 
7
- - update peerdeps ([`5ca1cca`](https://github.com/mastra-ai/mastra/commit/5ca1ccac61ffa7141e6d9fa8f22d3ad4d03bf5dc))
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
- - Updated dependencies [[`5ca1cca`](https://github.com/mastra-ai/mastra/commit/5ca1ccac61ffa7141e6d9fa8f22d3ad4d03bf5dc), [`6d7e90d`](https://github.com/mastra-ai/mastra/commit/6d7e90db09713e6250f4d6c3d3cff1b4740e50f9), [`f78b908`](https://github.com/mastra-ai/mastra/commit/f78b9080e11af765969b36b4a619761056030840), [`23c2614`](https://github.com/mastra-ai/mastra/commit/23c26140fdbf04b8c59e8d7d52106d67dad962ec), [`e365eda`](https://github.com/mastra-ai/mastra/commit/e365eda45795b43707310531cac1e2ce4e5a0712)]:
10
- - @mastra/core@0.24.0
9
+ - 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))
11
10
 
12
- ## 0.15.8-alpha.0
11
+ - **BREAKING:** Remove `getMessagesPaginated()` and add `perPage: false` support ([#9670](https://github.com/mastra-ai/mastra/pull/9670))
13
12
 
14
- ### Patch Changes
13
+ Removes deprecated `getMessagesPaginated()` method. The `listMessages()` API and score handlers now support `perPage: false` to fetch all records without pagination limits.
15
14
 
16
- - update peerdeps ([`5ca1cca`](https://github.com/mastra-ai/mastra/commit/5ca1ccac61ffa7141e6d9fa8f22d3ad4d03bf5dc))
15
+ **Storage changes:**
16
+ - `StoragePagination.perPage` type changed from `number` to `number | false`
17
+ - All storage implementations support `perPage: false`:
18
+ - Memory: `listMessages()`
19
+ - Scores: `listScoresBySpan()`, `listScoresByRunId()`, `listScoresByExecutionId()`
20
+ - HTTP query parser accepts `"false"` string (e.g., `?perPage=false`)
17
21
 
18
- - Updated dependencies [[`5ca1cca`](https://github.com/mastra-ai/mastra/commit/5ca1ccac61ffa7141e6d9fa8f22d3ad4d03bf5dc), [`6d7e90d`](https://github.com/mastra-ai/mastra/commit/6d7e90db09713e6250f4d6c3d3cff1b4740e50f9), [`f78b908`](https://github.com/mastra-ai/mastra/commit/f78b9080e11af765969b36b4a619761056030840), [`23c2614`](https://github.com/mastra-ai/mastra/commit/23c26140fdbf04b8c59e8d7d52106d67dad962ec), [`e365eda`](https://github.com/mastra-ai/mastra/commit/e365eda45795b43707310531cac1e2ce4e5a0712)]:
19
- - @mastra/core@0.24.0-alpha.0
22
+ **Memory changes:**
23
+ - `memory.query()` parameter type changed from `StorageGetMessagesArg` to `StorageListMessagesInput`
24
+ - Uses flat parameters (`page`, `perPage`, `include`, `filter`, `vectorSearchString`) instead of `selectBy` object
20
25
 
21
- ## 0.15.7
26
+ **Stricter validation:**
27
+ - `listMessages()` requires non-empty, non-whitespace `threadId` (throws error instead of returning empty results)
22
28
 
23
- ### Patch Changes
29
+ **Migration:**
24
30
 
25
- - Fix peerdependencies ([`eb7c1c8`](https://github.com/mastra-ai/mastra/commit/eb7c1c8c592d8fb16dfd250e337d9cdc73c8d5de))
31
+ ```typescript
32
+ // Storage/Memory: Replace getMessagesPaginated with listMessages
33
+ - storage.getMessagesPaginated({ threadId, selectBy: { pagination: { page: 0, perPage: 20 } } })
34
+ + storage.listMessages({ threadId, page: 0, perPage: 20 })
35
+ + storage.listMessages({ threadId, page: 0, perPage: false }) // Fetch all
26
36
 
27
- - Updated dependencies []:
28
- - @mastra/core@0.23.1
37
+ // Memory: Replace selectBy with flat parameters
38
+ - memory.query({ threadId, selectBy: { last: 20, include: [...] } })
39
+ + memory.query({ threadId, perPage: 20, include: [...] })
40
+
41
+ // Client SDK
42
+ - thread.getMessagesPaginated({ selectBy: { pagination: { page: 0 } } })
43
+ + thread.listMessages({ page: 0, perPage: 20 })
44
+ ```
45
+
46
+ - # Major Changes ([#9695](https://github.com/mastra-ai/mastra/pull/9695))
47
+
48
+ ## Storage Layer
49
+
50
+ ### BREAKING: Removed `storage.getMessages()`
51
+
52
+ The `getMessages()` method has been removed from all storage implementations. Use `listMessages()` instead, which provides pagination support.
53
+
54
+ **Migration:**
55
+
56
+ ```typescript
57
+ // Before
58
+ const messages = await storage.getMessages({ threadId: 'thread-1' });
59
+
60
+ // After
61
+ const result = await storage.listMessages({
62
+ threadId: 'thread-1',
63
+ page: 0,
64
+ perPage: 50,
65
+ });
66
+ const messages = result.messages; // Access messages array
67
+ console.log(result.total); // Total count
68
+ console.log(result.hasMore); // Whether more pages exist
69
+ ```
70
+
71
+ ### Message ordering default
72
+
73
+ `listMessages()` defaults to ASC (oldest first) ordering by `createdAt`, matching the previous `getMessages()` behavior.
74
+
75
+ **To use DESC ordering (newest first):**
76
+
77
+ ```typescript
78
+ const result = await storage.listMessages({
79
+ threadId: 'thread-1',
80
+ orderBy: { field: 'createdAt', direction: 'DESC' },
81
+ });
82
+ ```
83
+
84
+ ## Client SDK
85
+
86
+ ### BREAKING: Renamed `client.getThreadMessages()` → `client.listThreadMessages()`
87
+
88
+ **Migration:**
89
+
90
+ ```typescript
91
+ // Before
92
+ const response = await client.getThreadMessages(threadId, { agentId });
93
+
94
+ // After
95
+ const response = await client.listThreadMessages(threadId, { agentId });
96
+ ```
97
+
98
+ The response format remains the same.
99
+
100
+ ## Type Changes
101
+
102
+ ### BREAKING: Removed `StorageGetMessagesArg` type
103
+
104
+ Use `StorageListMessagesInput` instead:
105
+
106
+ ```typescript
107
+ // Before
108
+ import type { StorageGetMessagesArg } from '@mastra/core';
109
+
110
+ // After
111
+ import type { StorageListMessagesInput } from '@mastra/core';
112
+ ```
113
+
114
+ - Bump minimum required Node.js version to 22.13.0 ([#9706](https://github.com/mastra-ai/mastra/pull/9706))
115
+
116
+ - 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))
117
+
118
+ - Rename RuntimeContext to RequestContext ([#9511](https://github.com/mastra-ai/mastra/pull/9511))
119
+
120
+ - Implement listMessages API for replacing previous methods ([#9531](https://github.com/mastra-ai/mastra/pull/9531))
121
+
122
+ - 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))
123
+
124
+ - 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))
125
+
126
+ - Renamed a bunch of observability/tracing-related things to drop the AI prefix. ([#9744](https://github.com/mastra-ai/mastra/pull/9744))
127
+
128
+ - **BREAKING CHANGE**: Pagination APIs now use `page`/`perPage` instead of `offset`/`limit` ([#9592](https://github.com/mastra-ai/mastra/pull/9592))
129
+
130
+ 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.
131
+
132
+ **Affected APIs:**
133
+ - `Memory.listThreadsByResourceId()`
134
+ - `Memory.listMessages()`
135
+ - `Storage.listWorkflowRuns()`
136
+
137
+ **Migration:**
138
+
139
+ ```typescript
140
+ // Before
141
+ await memory.listThreadsByResourceId({
142
+ resourceId: 'user-123',
143
+ offset: 20,
144
+ limit: 10,
145
+ });
146
+
147
+ // After
148
+ await memory.listThreadsByResourceId({
149
+ resourceId: 'user-123',
150
+ page: 2, // page = Math.floor(offset / limit)
151
+ perPage: 10,
152
+ });
153
+
154
+ // Before
155
+ await memory.listMessages({
156
+ threadId: 'thread-456',
157
+ offset: 20,
158
+ limit: 10,
159
+ });
160
+
161
+ // After
162
+ await memory.listMessages({
163
+ threadId: 'thread-456',
164
+ page: 2,
165
+ perPage: 10,
166
+ });
167
+
168
+ // Before
169
+ await storage.listWorkflowRuns({
170
+ workflowName: 'my-workflow',
171
+ offset: 20,
172
+ limit: 10,
173
+ });
174
+
175
+ // After
176
+ await storage.listWorkflowRuns({
177
+ workflowName: 'my-workflow',
178
+ page: 2,
179
+ perPage: 10,
180
+ });
181
+ ```
182
+
183
+ **Additional improvements:**
184
+ - Added validation for negative `page` values in all storage implementations
185
+ - Improved `perPage` validation to handle edge cases (negative values, `0`, `false`)
186
+ - Added reusable query parser utilities for consistent validation in handlers
187
+
188
+ - ```([#9709](https://github.com/mastra-ai/mastra/pull/9709))
189
+ import { Mastra } from '@mastra/core';
190
+ import { Observability } from '@mastra/observability'; // Explicit import
191
+
192
+ const mastra = new Mastra({
193
+ ...other_config,
194
+ observability: new Observability({
195
+ default: { enabled: true }
196
+ }) // Instance
197
+ });
198
+ ```
199
+
200
+ Instead of:
201
+
202
+ ```
203
+ import { Mastra } from '@mastra/core';
204
+ import '@mastra/observability/init'; // Explicit import
205
+
206
+ const mastra = new Mastra({
207
+ ...other_config,
208
+ observability: {
209
+ default: { enabled: true }
210
+ }
211
+ });
212
+ ```
213
+
214
+ Also renamed a bunch of:
215
+ - `Tracing` things to `Observability` things.
216
+ - `AI-` things to just things.
217
+
218
+ - Removed old tracing code based on OpenTelemetry ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
219
+
220
+ - Mark as stable ([`83d5942`](https://github.com/mastra-ai/mastra/commit/83d5942669ce7bba4a6ca4fd4da697a10eb5ebdc))
221
+
222
+ - Renamed `MastraMessageV2` to `MastraDBMessage` ([#9255](https://github.com/mastra-ai/mastra/pull/9255))
223
+ 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
224
+
225
+ - Remove legacy evals from Mastra ([#9491](https://github.com/mastra-ai/mastra/pull/9491))
226
+
227
+ ### Minor Changes
228
+
229
+ - Update peer dependencies to match core package version bump (1.0.0) ([#9237](https://github.com/mastra-ai/mastra/pull/9237))
230
+
231
+ ### Patch Changes
232
+
233
+ - 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)]:
234
+ - @mastra/core@1.0.0-beta.0
29
235
 
30
236
  ## 0.15.6
31
237
 
package/README.md CHANGED
@@ -26,29 +26,32 @@ const store = new ClickhouseStore({
26
26
 
27
27
  // Create a thread
28
28
  await store.saveThread({
29
- id: 'thread-123',
30
- resourceId: 'resource-456',
31
- title: 'My Thread',
32
- metadata: { key: 'value' },
33
- createdAt: new Date(),
34
- updatedAt: new Date(),
29
+ thread: {
30
+ id: 'thread-123',
31
+ resourceId: 'resource-456',
32
+ title: 'My Thread',
33
+ metadata: { key: 'value' },
34
+ createdAt: new Date(),
35
+ },
35
36
  });
36
37
 
37
38
  // Add messages to thread
38
- await store.saveMessages([
39
- {
40
- id: 'msg-789',
41
- threadId: 'thread-123',
42
- role: 'user',
43
- type: 'text',
44
- content: [{ type: 'text', text: 'Hello' }],
45
- createdAt: new Date(),
46
- },
47
- ]);
39
+ await store.saveMessages({
40
+ messages: [
41
+ {
42
+ id: 'msg-789',
43
+ threadId: 'thread-123',
44
+ role: 'user',
45
+ content: { content: 'Hello' },
46
+ resourceId: 'resource-456',
47
+ createdAt: new Date(),
48
+ },
49
+ ],
50
+ });
48
51
 
49
52
  // Query threads and messages
50
53
  const savedThread = await store.getThreadById({ threadId: 'thread-123' });
51
- const messages = await store.getMessages({ threadId: 'thread-123' });
54
+ const { messages } = await store.listMessages({ threadId: 'thread-123' });
52
55
 
53
56
  // Clean up
54
57
  await store.close();
@@ -89,21 +92,44 @@ The store uses different table engines for different types of data:
89
92
 
90
93
  ### Thread Operations
91
94
 
92
- - `saveThread(thread)`: Create or update a thread
95
+ - `saveThread({ thread })`: Create or update a thread
93
96
  - `getThreadById({ threadId })`: Get a thread by ID
97
+ - `listThreadsByResourceId({ resourceId, offset, limit, orderBy? })`: List paginated threads for a resource
94
98
  - `updateThread({ id, title, metadata })`: Update thread title and metadata
95
99
  - `deleteThread({ threadId })`: Delete a thread and its messages
96
100
 
97
101
  ### Message Operations
98
102
 
99
- - `saveMessages(messages)`: Save multiple messages
100
- - `getMessages({ threadId, selectBy? })`: Get messages for a thread with optional filtering
101
- - `deleteMessages(messageIds)`: Delete specific messages
103
+ - `saveMessages({ messages })`: Save multiple messages
104
+ - `listMessages({ threadId, perPage?, page? })`: Get messages for a thread with pagination
105
+ - `updateMessages({ messages })`: Update existing messages
106
+
107
+ ### Resource Operations
108
+
109
+ - `getResourceById({ resourceId })`: Get a resource by ID
110
+ - `saveResource({ resource })`: Create or save a resource
111
+ - `updateResource({ resourceId, workingMemory })`: Update resource working memory
102
112
 
103
113
  ### Workflow Operations
104
114
 
105
115
  - `persistWorkflowSnapshot({ workflowName, runId, snapshot })`: Save workflow state
106
116
  - `loadWorkflowSnapshot({ workflowName, runId })`: Load workflow state
117
+ - `listWorkflowRuns({ workflowName, pagination })`: List workflow runs with pagination
118
+ - `getWorkflowRunById({ workflowName, runId })`: Get a specific workflow run
119
+
120
+ ### Evaluation/Scoring Operations
121
+
122
+ - `getScoreById({ id })`: Get a score by ID
123
+ - `saveScore(score)`: Save an evaluation score
124
+ - `listScoresByScorerId({ scorerId, pagination })`: List scores by scorer with pagination
125
+ - `listScoresByRunId({ runId, pagination })`: List scores by run with pagination
126
+ - `listScoresByEntityId({ entityId, entityType, pagination })`: List scores by entity with pagination
127
+ - `listScoresBySpan({ traceId, spanId, pagination })`: List scores by span with pagination
128
+
129
+ ### Operations Not Currently Supported
130
+
131
+ - `deleteMessages(messageIds)`: Message deletion is not supported in ClickHouse
132
+ - AI Observability (traces/spans): Not currently supported
107
133
 
108
134
  ## Data Types
109
135