@mastra/server 1.66.0-alpha.3 → 1.66.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.
Files changed (64) hide show
  1. package/dist/{api-schema-manifest-D8q7uq5S.js → api-schema-manifest-BkKHbFJi.js} +2 -2
  2. package/dist/{api-schema-manifest-D8q7uq5S.js.map → api-schema-manifest-BkKHbFJi.js.map} +1 -1
  3. package/dist/{api-schema-manifest-ByH3iaGn.cjs → api-schema-manifest-Cpw4nIVv.cjs} +2 -2
  4. package/dist/{api-schema-manifest-ByH3iaGn.cjs.map → api-schema-manifest-Cpw4nIVv.cjs.map} +1 -1
  5. package/dist/{conversations-DtnawNGm.js → conversations-D89Io31L.js} +2 -2
  6. package/dist/{conversations-DtnawNGm.js.map → conversations-D89Io31L.js.map} +1 -1
  7. package/dist/{conversations-PF0eKhIu.cjs → conversations-DJybpnE5.cjs} +2 -2
  8. package/dist/{conversations-PF0eKhIu.cjs.map → conversations-DJybpnE5.cjs.map} +1 -1
  9. package/dist/{dist-CPemc7JX.js → dist-4Qm6OSPJ.js} +2 -2
  10. package/dist/{dist-CPemc7JX.js.map → dist-4Qm6OSPJ.js.map} +1 -1
  11. package/dist/{dist-3A2vpk0A.cjs → dist-BmrsK_KX.cjs} +2 -2
  12. package/dist/{dist-3A2vpk0A.cjs.map → dist-BmrsK_KX.cjs.map} +1 -1
  13. package/dist/docs/SKILL.md +1 -1
  14. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  15. package/dist/docs/references/reference-observability-tracing-trace-query.md +42 -0
  16. package/dist/{memory-D0prxytx.cjs → memory-CVODqy7m.cjs} +19 -1
  17. package/dist/memory-CVODqy7m.cjs.map +1 -0
  18. package/dist/{memory-CBLqn9xl.js → memory-CjWJYFVI.js} +2 -2
  19. package/dist/memory-CjWJYFVI.js.map +1 -0
  20. package/dist/{routes-DoFMsPa7.js → routes-DCwOOz84.js} +6 -6
  21. package/dist/{routes-DoFMsPa7.js.map → routes-DCwOOz84.js.map} +1 -1
  22. package/dist/{routes-CnUWgoC8.cjs → routes-Dgd2S9av.cjs} +6 -6
  23. package/dist/{routes-CnUWgoC8.cjs.map → routes-Dgd2S9av.cjs.map} +1 -1
  24. package/dist/server/handlers/agent-builder.cjs +1 -1
  25. package/dist/server/handlers/agent-builder.js +1 -1
  26. package/dist/server/handlers/agent-controller.cjs +86 -31
  27. package/dist/server/handlers/agent-controller.cjs.map +1 -1
  28. package/dist/server/handlers/agent-controller.d.ts +57 -0
  29. package/dist/server/handlers/agent-controller.d.ts.map +1 -1
  30. package/dist/server/handlers/agent-controller.js +86 -31
  31. package/dist/server/handlers/agent-controller.js.map +1 -1
  32. package/dist/server/handlers/conversations.cjs +1 -1
  33. package/dist/server/handlers/conversations.js +1 -1
  34. package/dist/server/handlers/mcp-client-versions.cjs +1 -1
  35. package/dist/server/handlers/mcp-client-versions.js +1 -1
  36. package/dist/server/handlers/memory.cjs +1 -1
  37. package/dist/server/handlers/memory.js +1 -1
  38. package/dist/server/handlers/prompt-block-versions.cjs +1 -1
  39. package/dist/server/handlers/prompt-block-versions.js +1 -1
  40. package/dist/server/handlers/scorer-versions.cjs +1 -1
  41. package/dist/server/handlers/scorer-versions.js +1 -1
  42. package/dist/server/handlers/stored-agents.cjs +2 -2
  43. package/dist/server/handlers/stored-agents.js +2 -2
  44. package/dist/server/handlers/stored-mcp-clients.cjs +1 -1
  45. package/dist/server/handlers/stored-mcp-clients.js +1 -1
  46. package/dist/server/handlers/stored-prompt-blocks.cjs +1 -1
  47. package/dist/server/handlers/stored-prompt-blocks.js +1 -1
  48. package/dist/server/handlers/stored-scorers.cjs +1 -1
  49. package/dist/server/handlers/stored-scorers.js +1 -1
  50. package/dist/server/handlers/stored-skill-favorites.cjs +1 -1
  51. package/dist/server/handlers/stored-skill-favorites.js +1 -1
  52. package/dist/server/handlers/stored-skills.cjs +1 -1
  53. package/dist/server/handlers/stored-skills.js +1 -1
  54. package/dist/server/handlers/system.cjs +1 -1
  55. package/dist/server/handlers/system.js +1 -1
  56. package/dist/server/schemas/index.cjs +6 -3
  57. package/dist/server/schemas/index.js +4 -4
  58. package/dist/server/schemas/memory.d.ts +36 -0
  59. package/dist/server/schemas/memory.d.ts.map +1 -1
  60. package/dist/server/server-adapter/index.cjs +1 -1
  61. package/dist/server/server-adapter/index.js +1 -1
  62. package/package.json +9 -9
  63. package/dist/memory-CBLqn9xl.js.map +0 -1
  64. package/dist/memory-D0prxytx.cjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"agent-controller.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/agent-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-controller.d.ts","sourceRoot":"","sources":["../../../src/server/handlers/agent-controller.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { t as HTTPException } from "../../http-exception-CyfxZB6W.js";
2
2
  import { n as createRoute } from "../../route-builder-BveLN9LU.js";
3
3
  import { handleError } from "./error.js";
4
+ import { t as enforceThreadAccess } from "../../utils-Hz8Hc2cd.js";
5
+ import { E as includeSchema, F as messageOrderBySchema, h as filterSchema } from "../../memory-CjWJYFVI.js";
4
6
  import { z } from "zod/v4";
5
7
  //#region src/server/handlers/agent-controller.ts
6
8
  /**
@@ -161,9 +163,28 @@ const cloneThreadBodySchema = z.object({
161
163
  sourceThreadId: z.string().optional(),
162
164
  title: z.string().optional()
163
165
  });
166
+ const controllerPaginationNumber = z.coerce.number().int().min(0);
164
167
  const listMessagesQuerySchema = z.object({
165
- limit: z.coerce.number().optional(),
168
+ /** @deprecated Use page and perPage instead. */
169
+ limit: controllerPaginationNumber.optional(),
170
+ page: controllerPaginationNumber.optional(),
171
+ perPage: z.preprocess((value) => value === "false" ? false : value, z.union([z.literal(false), controllerPaginationNumber])).optional(),
172
+ orderBy: messageOrderBySchema,
173
+ include: includeSchema,
174
+ filter: filterSchema,
166
175
  sessionScope: z.string().optional()
176
+ }).superRefine((value, ctx) => {
177
+ if (value.limit === void 0) return;
178
+ for (const field of [
179
+ "perPage",
180
+ "orderBy",
181
+ "include",
182
+ "filter"
183
+ ]) if (value[field] !== void 0) ctx.addIssue({
184
+ code: "custom",
185
+ message: `limit cannot be combined with ${field}; use perPage instead`,
186
+ path: ["limit"]
187
+ });
167
188
  });
168
189
  /**
169
190
  * `tags` arrives as a JSON-encoded object in the query string (query params are
@@ -308,21 +329,27 @@ const messageContentV2Schema = z.object({
308
329
  format: z.literal(2),
309
330
  parts: z.array(messagePartSchema)
310
331
  }).passthrough();
311
- const listMessagesResponseSchema = z.object({ messages: z.array(z.object({
312
- id: z.string(),
313
- role: z.enum([
314
- "user",
315
- "assistant",
316
- "system",
317
- "tool",
318
- "signal"
319
- ]),
320
- content: messageContentV2Schema,
321
- createdAt: z.string().optional(),
322
- threadId: z.string().optional(),
323
- resourceId: z.string().optional(),
324
- type: z.string().optional()
325
- })) });
332
+ const listMessagesResponseSchema = z.object({
333
+ messages: z.array(z.object({
334
+ id: z.string(),
335
+ role: z.enum([
336
+ "user",
337
+ "assistant",
338
+ "system",
339
+ "tool",
340
+ "signal"
341
+ ]),
342
+ content: messageContentV2Schema,
343
+ createdAt: z.string().optional(),
344
+ threadId: z.string().optional(),
345
+ resourceId: z.string().optional(),
346
+ type: z.string().optional()
347
+ })),
348
+ total: z.number(),
349
+ page: z.number(),
350
+ perPage: z.union([z.number(), z.literal(false)]),
351
+ hasMore: z.boolean()
352
+ });
326
353
  const listModelsResponseSchema = z.object({ models: z.array(z.object({
327
354
  id: z.string(),
328
355
  provider: z.string(),
@@ -429,7 +456,7 @@ function carriesError(event) {
429
456
  * An `Error`'s `message`/`name` are non-enumerable, so flatten it before JSON
430
457
  * serialization. Streamed message events intentionally retain the controller's
431
458
  * live accumulated message; consumers requiring temporal isolation must copy or
432
- * serialize at their own ownership boundary.
459
+ * serialize the value there.
433
460
  */
434
461
  function toWireEvent(event) {
435
462
  if ("displayState" in event) return {
@@ -1058,27 +1085,55 @@ const LIST_AGENT_CONTROLLER_THREAD_MESSAGES_ROUTE = createRoute({
1058
1085
  queryParamSchema: listMessagesQuerySchema,
1059
1086
  responseSchema: listMessagesResponseSchema,
1060
1087
  summary: "List thread messages",
1061
- description: "Lists messages for a specific thread. Returns most recent messages first.",
1088
+ description: "Returns a paginated list of messages in a specific thread. The deprecated limit parameter may only be combined with page.",
1062
1089
  tags: ["AgentController", "Threads"],
1063
1090
  requiresAuth: true,
1064
1091
  requiresPermission: "agent-controller:read",
1065
- handler: async ({ mastra, controllerId, resourceId, threadId, limit }) => {
1092
+ handler: async ({ mastra, controllerId, resourceId, threadId, limit, page, perPage, orderBy, include, filter, requestContext }) => {
1066
1093
  try {
1094
+ if (limit !== void 0 && (perPage !== void 0 || orderBy !== void 0 || include !== void 0 || filter !== void 0)) throw new HTTPException(400, { message: "limit can only be combined with page; use perPage instead" });
1067
1095
  const controller = getAgentControllerOrThrow(mastra, controllerId);
1068
1096
  const thread = await controller.queryThreadById({ threadId });
1069
- if (!thread || thread.resourceId !== resourceId) throw new Error(`Thread not found: ${threadId}`);
1070
- return { messages: (await controller.queryThreadMessages({
1097
+ if (!thread || resourceId && thread.resourceId && thread.resourceId !== resourceId) throw new HTTPException(404, { message: "Thread not found" });
1098
+ await enforceThreadAccess({
1099
+ mastra,
1100
+ requestContext,
1071
1101
  threadId,
1072
- limit
1073
- })).map((m) => ({
1074
- id: m.id,
1075
- role: m.role,
1076
- content: m.content,
1077
- createdAt: m.createdAt instanceof Date ? m.createdAt.toISOString() : void 0,
1078
- threadId: m.threadId,
1079
- resourceId: m.resourceId,
1080
- type: m.type
1081
- })) };
1102
+ thread,
1103
+ effectiveResourceId: resourceId
1104
+ });
1105
+ const isLegacyLimitQuery = limit !== void 0;
1106
+ const result = await controller.queryThreadMessages(limit !== void 0 ? {
1107
+ threadId,
1108
+ resourceId,
1109
+ perPage: limit,
1110
+ page: page ?? 0,
1111
+ orderBy: {
1112
+ field: "createdAt",
1113
+ direction: "DESC"
1114
+ }
1115
+ } : {
1116
+ threadId,
1117
+ resourceId,
1118
+ ...perPage !== void 0 ? { perPage } : {},
1119
+ ...page !== void 0 ? { page } : {},
1120
+ ...orderBy !== void 0 ? { orderBy } : {},
1121
+ ...include !== void 0 ? { include } : {},
1122
+ ...filter !== void 0 ? { filter } : {}
1123
+ });
1124
+ const messages = isLegacyLimitQuery ? result.messages.reverse() : result.messages;
1125
+ return {
1126
+ ...result,
1127
+ messages: messages.map((m) => ({
1128
+ id: m.id,
1129
+ role: m.role,
1130
+ content: m.content,
1131
+ createdAt: m.createdAt instanceof Date ? m.createdAt.toISOString() : void 0,
1132
+ threadId: m.threadId,
1133
+ resourceId: m.resourceId,
1134
+ type: m.type
1135
+ }))
1136
+ };
1082
1137
  } catch (error) {
1083
1138
  return handleError(error, "error listing controller thread messages");
1084
1139
  }