@mastra/server 1.76.0-alpha.0 → 1.76.0-alpha.1

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 (93) hide show
  1. package/dist/_types/@internal_voice/dist/routes/index.d.ts +15 -0
  2. package/dist/{agents-Dyp7MBAb.cjs → agents-CKSEPpk1.cjs} +2 -2
  3. package/dist/{agents-Dyp7MBAb.cjs.map → agents-CKSEPpk1.cjs.map} +1 -1
  4. package/dist/{agents-cT-_8JA0.js → agents-CW_JJZOf.js} +2 -2
  5. package/dist/{agents-cT-_8JA0.js.map → agents-CW_JJZOf.js.map} +1 -1
  6. package/dist/{api-schema-manifest-CmJODtyM.cjs → api-schema-manifest-BzyUr2nd.cjs} +2 -2
  7. package/dist/{api-schema-manifest-CmJODtyM.cjs.map → api-schema-manifest-BzyUr2nd.cjs.map} +1 -1
  8. package/dist/{api-schema-manifest-CxCucIU6.js → api-schema-manifest-DktVob9z.js} +2 -2
  9. package/dist/{api-schema-manifest-CxCucIU6.js.map → api-schema-manifest-DktVob9z.js.map} +1 -1
  10. package/dist/{conversations-DGpzLcpr.cjs → conversations-Bj5TLNqF.cjs} +2 -2
  11. package/dist/{conversations-DGpzLcpr.cjs.map → conversations-Bj5TLNqF.cjs.map} +1 -1
  12. package/dist/{conversations-BJ6_O8Vk.js → conversations-BzBHVFYe.js} +2 -2
  13. package/dist/{conversations-BJ6_O8Vk.js.map → conversations-BzBHVFYe.js.map} +1 -1
  14. package/dist/{dist-DpUNsgQx.cjs → dist-Ce_1oIl2.cjs} +105 -15
  15. package/dist/{dist-DpUNsgQx.cjs.map → dist-Ce_1oIl2.cjs.map} +1 -1
  16. package/dist/{dist-DMtuYRLk.js → dist-CtNeEn6M.js} +105 -15
  17. package/dist/{dist-DMtuYRLk.js.map → dist-CtNeEn6M.js.map} +1 -1
  18. package/dist/docs/SKILL.md +1 -1
  19. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  20. package/dist/{editor-builder-SxOfWcbc.cjs → editor-builder-BtcTQbAC.cjs} +2 -2
  21. package/dist/{editor-builder-SxOfWcbc.cjs.map → editor-builder-BtcTQbAC.cjs.map} +1 -1
  22. package/dist/{editor-builder-BMN2fl8p.js → editor-builder-CYkaYf6-.js} +2 -2
  23. package/dist/{editor-builder-BMN2fl8p.js.map → editor-builder-CYkaYf6-.js.map} +1 -1
  24. package/dist/{editor-builder-BII35DcS.cjs → editor-builder-CmUsqdZq.cjs} +2 -2
  25. package/dist/{editor-builder-BII35DcS.cjs.map → editor-builder-CmUsqdZq.cjs.map} +1 -1
  26. package/dist/{editor-builder-mxsAeRze.js → editor-builder-DHXbVwxu.js} +2 -2
  27. package/dist/{editor-builder-mxsAeRze.js.map → editor-builder-DHXbVwxu.js.map} +1 -1
  28. package/dist/{memory-B4u-ESJ-.js → memory-B58Q2LgU.js} +19 -2
  29. package/dist/{memory-B4u-ESJ-.js.map → memory-B58Q2LgU.js.map} +1 -1
  30. package/dist/{memory-B9GGX7Iu.cjs → memory-CizEIbl1.cjs} +19 -2
  31. package/dist/memory-CizEIbl1.cjs.map +1 -0
  32. package/dist/{routes-CjNEpcic.cjs → routes-BHFCAczU.cjs} +3 -3
  33. package/dist/{routes-CjNEpcic.cjs.map → routes-BHFCAczU.cjs.map} +1 -1
  34. package/dist/{routes-BKUF5ZHA.cjs → routes-BULZI-PU.cjs} +8 -4
  35. package/dist/routes-BULZI-PU.cjs.map +1 -0
  36. package/dist/{routes-lJ3C4qRm.js → routes-DVec5dwl.js} +3 -3
  37. package/dist/{routes-lJ3C4qRm.js.map → routes-DVec5dwl.js.map} +1 -1
  38. package/dist/{routes-zHhMx-9S.js → routes-Dl6_kWm7.js} +8 -4
  39. package/dist/routes-Dl6_kWm7.js.map +1 -0
  40. package/dist/server/handlers/agent-builder.cjs +2 -2
  41. package/dist/server/handlers/agent-builder.js +2 -2
  42. package/dist/server/handlers/agent-controller.cjs +1 -1
  43. package/dist/server/handlers/agent-controller.js +1 -1
  44. package/dist/server/handlers/agents.cjs +1 -1
  45. package/dist/server/handlers/agents.js +1 -1
  46. package/dist/server/handlers/conversations.cjs +1 -1
  47. package/dist/server/handlers/conversations.js +1 -1
  48. package/dist/server/handlers/editor-builder.cjs +1 -1
  49. package/dist/server/handlers/editor-builder.js +1 -1
  50. package/dist/server/handlers/favorites-enrichment.cjs +1 -1
  51. package/dist/server/handlers/favorites-enrichment.js +1 -1
  52. package/dist/server/handlers/memory.cjs +18 -2
  53. package/dist/server/handlers/memory.cjs.map +1 -1
  54. package/dist/server/handlers/memory.d.ts +5 -0
  55. package/dist/server/handlers/memory.d.ts.map +1 -1
  56. package/dist/server/handlers/memory.js +18 -2
  57. package/dist/server/handlers/memory.js.map +1 -1
  58. package/dist/server/handlers/plans.cjs +1 -1
  59. package/dist/server/handlers/plans.js +1 -1
  60. package/dist/server/handlers/stored-agent-favorites.cjs +1 -1
  61. package/dist/server/handlers/stored-agent-favorites.js +1 -1
  62. package/dist/server/handlers/stored-agents.cjs +1 -1
  63. package/dist/server/handlers/stored-agents.js +1 -1
  64. package/dist/server/handlers/stored-skill-favorites.cjs +1 -1
  65. package/dist/server/handlers/stored-skill-favorites.js +1 -1
  66. package/dist/server/handlers/stored-skills.cjs +1 -1
  67. package/dist/server/handlers/stored-skills.js +1 -1
  68. package/dist/server/handlers/system.cjs +1 -1
  69. package/dist/server/handlers/system.js +1 -1
  70. package/dist/server/handlers/tools.cjs +1 -1
  71. package/dist/server/handlers/tools.js +1 -1
  72. package/dist/server/handlers/voice.cjs +1 -1
  73. package/dist/server/handlers/voice.js +1 -1
  74. package/dist/server/handlers/workflow-builder.cjs +1 -1
  75. package/dist/server/handlers/workflow-builder.js +1 -1
  76. package/dist/server/handlers/workflows.cjs +1 -1
  77. package/dist/server/handlers/workflows.js +1 -1
  78. package/dist/server/schemas/index.cjs +5 -5
  79. package/dist/server/schemas/index.js +5 -5
  80. package/dist/server/schemas/memory.d.ts +4 -3
  81. package/dist/server/schemas/memory.d.ts.map +1 -1
  82. package/dist/server/server-adapter/index.cjs +1 -1
  83. package/dist/server/server-adapter/index.js +1 -1
  84. package/dist/server/server-adapter/routes/memory.d.ts +5 -0
  85. package/dist/server/server-adapter/routes/memory.d.ts.map +1 -1
  86. package/dist/{workflow-builder-b1kbkuG9.js → workflow-builder-D2DgSt6L.js} +3 -3
  87. package/dist/{workflow-builder-b1kbkuG9.js.map → workflow-builder-D2DgSt6L.js.map} +1 -1
  88. package/dist/{workflow-builder-BVPR7r4o.cjs → workflow-builder-pBSrWWIp.cjs} +3 -3
  89. package/dist/{workflow-builder-BVPR7r4o.cjs.map → workflow-builder-pBSrWWIp.cjs.map} +1 -1
  90. package/package.json +5 -5
  91. package/dist/memory-B9GGX7Iu.cjs.map +0 -1
  92. package/dist/routes-BKUF5ZHA.cjs.map +0 -1
  93. package/dist/routes-zHhMx-9S.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"memory-B9GGX7Iu.cjs","names":["z","createPagePaginationSchema","lastMessagesSchema","messageHistorySchema","paginationInfoSchema","successResponseSchema"],"sources":["../src/server/schemas/memory.ts"],"sourcesContent":["import { z } from 'zod/v4';\nimport { paginationInfoSchema, createPagePaginationSchema, successResponseSchema } from './common';\nimport { lastMessagesSchema, messageHistorySchema } from './message-history';\n\n// Path parameter schemas\nexport const threadIdPathParams = z.object({\n threadId: z.string().describe('Unique identifier for the conversation thread'),\n});\n\n/**\n * Common query parameter: required agent ID\n */\nexport const agentIdQuerySchema = z.object({\n agentId: z.string(),\n});\n\n/**\n * Common query parameter: optional agent ID\n * Used for read operations that can fall back to storage when agentId is not provided\n */\nexport const optionalAgentIdQuerySchema = z.object({\n agentId: z.string().optional(),\n});\n\n/**\n * Storage order by configuration for threads and agents (have both createdAt and updatedAt)\n * Handles JSON parsing from query strings.\n *\n * The inner object is wrapped in `.optional()` so the preprocess can yield\n * `undefined` (e.g. when a legacy client sends a bare string like\n * `?orderBy=updatedAt`) without tripping a \"expected object, received undefined\"\n * Zod error. Without that inner `.optional()`, valid optional query usage\n * regresses into a hard 400.\n */\nconst storageOrderBySchema = z\n .preprocess(\n val => {\n if (val === undefined) return val;\n if (typeof val === 'string') {\n try {\n return JSON.parse(val);\n } catch {\n return undefined;\n }\n }\n return val;\n },\n z\n .object({\n field: z.enum(['createdAt', 'updatedAt']).optional(),\n direction: z.enum(['ASC', 'DESC']).optional(),\n })\n .optional(),\n )\n .optional();\n\n/**\n * Storage order by configuration for messages (only have createdAt)\n * Handles JSON parsing from query strings. See `storageOrderBySchema` for why\n * the inner object schema is also `.optional()`.\n */\nexport const messageOrderBySchema = z\n .preprocess(\n val => {\n if (val === undefined) return val;\n if (typeof val === 'string') {\n try {\n return JSON.parse(val);\n } catch {\n return undefined;\n }\n }\n return val;\n },\n z\n .object({\n field: z.enum(['createdAt']).optional(),\n direction: z.enum(['ASC', 'DESC']).optional(),\n })\n .optional(),\n )\n .optional();\n\n/**\n * Include schema for message listing - handles JSON parsing from query strings\n */\nexport const includeSchema = z\n .preprocess(\n val => {\n if (val === undefined) return val;\n if (typeof val === 'string') {\n try {\n return JSON.parse(val);\n } catch {\n // Return invalid string to fail validation (z.array will reject string type)\n return val;\n }\n }\n return val;\n },\n z.array(\n z.object({\n id: z.string(),\n threadId: z.string().optional(),\n withPreviousMessages: z.number().optional(),\n withNextMessages: z.number().optional(),\n }),\n ),\n )\n .optional();\n\nconst metadataFilterValueSchema = z.union([z.string(), z.number().finite(), z.boolean(), z.null()]);\nconst metadataFilterKeySchema = z\n .string()\n .max(128)\n .regex(/^[a-zA-Z_][a-zA-Z0-9_]*$/)\n .refine(key => !['__proto__', 'prototype', 'constructor'].includes(key));\n\n/**\n * Metadata filters are deliberately shallow scalar maps so storage adapters can\n * apply exact-match AND semantics consistently.\n */\nconst metadataFilterSchema = z.record(metadataFilterKeySchema, metadataFilterValueSchema);\n\n/**\n * Filter schema for message listing - handles JSON parsing from query strings\n */\nexport const filterSchema = z\n .preprocess(\n val => {\n if (val === undefined) return val;\n if (typeof val === 'string') {\n try {\n return JSON.parse(val);\n } catch {\n // Return invalid string to fail validation (z.object will reject string type)\n return val;\n }\n }\n return val;\n },\n z.object({\n dateRange: z\n .object({\n start: z.coerce.date().optional(),\n end: z.coerce.date().optional(),\n startExclusive: z.boolean().optional(),\n endExclusive: z.boolean().optional(),\n })\n .optional(),\n roles: z.array(z.string()).optional(),\n metadata: metadataFilterSchema.optional(),\n }),\n )\n .optional();\n\n/**\n * Memory config schema - handles JSON parsing from query strings\n */\nconst memoryConfigSchema = z\n .preprocess(\n val => {\n if (val === undefined) return val;\n if (typeof val === 'string') {\n try {\n return JSON.parse(val);\n } catch {\n // Return invalid string to fail validation (z.record will reject string type)\n return val;\n }\n }\n return val;\n },\n z.record(z.string(), z.unknown()),\n )\n .optional();\n\n/**\n * Thread object structure\n */\nconst threadSchema = z.object({\n id: z.string(),\n title: z.string().optional(),\n resourceId: z.string(),\n createdAt: z.date(),\n updatedAt: z.date(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\n/**\n * Message structure for storage\n * Extends coreMessageSchema with storage-specific fields\n */\nconst messageSchema = z.unknown();\n// const messageSchema = coreMessageSchema.extend({\n// id: z.string(),\n// createdAt: z.coerce.date(),\n// threadId: z.string().optional(),\n// resourceId: z.string().optional(),\n// });\n\n// ============================================================================\n// Query Parameter Schemas\n// ============================================================================\n\n/**\n * GET /api/memory/status\n * Includes optional resourceId and threadId for OM status lookup\n */\nexport const getMemoryStatusQuerySchema = agentIdQuerySchema.extend({\n resourceId: z.string().optional(),\n threadId: z.string().optional(),\n});\n\n/**\n * GET /memory/config\n */\nexport const getMemoryConfigQuerySchema = agentIdQuerySchema;\n\n/**\n * Inner schema for GET /memory/threads. The outer `listThreadsQuerySchema`\n * wraps this with a back-compat preprocess (see below) that rewrites the\n * legacy `?orderBy=<field>&sortDirection=<dir>` shape — emitted by\n * `@mastra/client-js` < 1.18 (e.g. mobile clients pinned to 1.4.x) — into the\n * current `{ orderBy: { field, direction } }` object shape.\n */\nconst listThreadsQueryInnerSchema = createPagePaginationSchema(100).extend({\n agentId: z.string().optional(),\n resourceId: z.string().optional(),\n metadata: z\n .preprocess(\n val => {\n if (val === undefined) return val;\n if (typeof val === 'string') {\n try {\n return JSON.parse(val);\n } catch {\n // Return invalid string to fail validation (z.record will reject string type)\n return val;\n }\n }\n return val;\n },\n z.record(z.string(), z.unknown()),\n )\n .optional(),\n orderBy: storageOrderBySchema,\n});\n\n/**\n * GET /memory/threads\n * agentId is optional - can use storage fallback when not provided\n * resourceId is optional - when omitted, returns all threads\n * metadata is optional - filters threads by metadata key-value pairs (AND logic)\n *\n * Accepts both the current shape (`orderBy[field]=...&orderBy[direction]=...`)\n * and the legacy shape used by `@mastra/client-js` < 1.18\n * (`orderBy=<field>&sortDirection=<dir>`). The legacy shape is fused into the\n * current shape before schema validation, so existing pinned clients continue\n * to work without server-side breakage.\n */\nexport const listThreadsQuerySchema = z.preprocess(val => {\n if (val === null || typeof val !== 'object' || Array.isArray(val)) return val;\n const record = val as Record<string, unknown>;\n const rawOrderBy = record.orderBy;\n // Only rewrite the legacy bare-string shape. Object / bracket-notation /\n // JSON-stringified orderBy is left alone and handled by storageOrderBySchema.\n if (typeof rawOrderBy !== 'string') return val;\n // A JSON-stringified object is the current \"stringified\" shape, not legacy —\n // let storageOrderBySchema's preprocess parse it.\n const trimmed = rawOrderBy.trim();\n if (trimmed.startsWith('{') || trimmed.startsWith('[')) return val;\n // Legacy shape detected: fuse into `{ field, direction }`.\n const direction = typeof record.sortDirection === 'string' ? record.sortDirection : undefined;\n const { sortDirection: _legacyDir, ...rest } = record;\n return {\n ...rest,\n orderBy: {\n field: rawOrderBy,\n ...(direction !== undefined ? { direction } : {}),\n },\n };\n}, listThreadsQueryInnerSchema);\n\n/**\n * GET /memory/threads/:threadId\n * agentId is optional - can use storage fallback when not provided\n * resourceId is optional - used for ownership validation fallback when not set via middleware\n */\nexport const getThreadByIdQuerySchema = optionalAgentIdQuerySchema.extend({\n resourceId: z.string().optional(),\n});\n\n/**\n * GET /memory/threads/:threadId/messages\n * agentId is optional - can use storage fallback when not provided\n */\nexport const listMessagesQuerySchema = createPagePaginationSchema(40).extend({\n agentId: z.string().optional(),\n resourceId: z.string().optional(),\n orderBy: messageOrderBySchema,\n include: includeSchema,\n filter: filterSchema,\n includeSystemReminders: z\n .preprocess(val => {\n if (val === undefined) return val;\n if (val === 'true') return true;\n if (val === 'false') return false;\n return val;\n }, z.boolean())\n .optional(),\n});\n\n/**\n * GET /memory/threads/:threadId/working-memory\n */\nexport const getWorkingMemoryQuerySchema = z.object({\n agentId: z.string(),\n resourceId: z.string().optional(),\n memoryConfig: memoryConfigSchema,\n});\n\n/**\n * DELETE /memory/threads/:threadId\n * agentId is required\n * resourceId is optional - used for ownership validation fallback when not set via middleware\n */\nexport const deleteThreadQuerySchema = agentIdQuerySchema.extend({\n resourceId: z.string().optional(),\n});\n\n/**\n * POST /memory/messages/delete\n * agentId is required\n * resourceId is optional - used for ownership validation fallback when not set via middleware\n */\nexport const deleteMessagesQuerySchema = agentIdQuerySchema.extend({\n resourceId: z.string().optional(),\n});\n\n// ============================================================================\n// Legacy /network Query Parameter Schemas (backward compatibility)\n// ============================================================================\n\n/**\n * GET /memory/network/status\n */\nexport const getMemoryStatusNetworkQuerySchema = agentIdQuerySchema;\n\n/**\n * GET /memory/network/threads\n * agentId is optional - can use storage fallback when not provided\n * resourceId is optional - when omitted, returns all threads\n * metadata is optional - filters threads by metadata key-value pairs (AND logic)\n */\nexport const listThreadsNetworkQuerySchema = createPagePaginationSchema(100).extend({\n agentId: z.string().optional(),\n resourceId: z.string().optional(),\n metadata: z\n .preprocess(\n val => {\n if (val === undefined) return val;\n if (typeof val === 'string') {\n try {\n return JSON.parse(val);\n } catch {\n // Return invalid string to fail validation (z.record will reject string type)\n return val;\n }\n }\n return val;\n },\n z.record(z.string(), z.unknown()),\n )\n .optional(),\n orderBy: storageOrderBySchema,\n});\n\n/**\n * GET /memory/network/threads/:threadId\n * agentId is optional - can use storage fallback when not provided\n * resourceId is optional - used for ownership validation fallback when not set via middleware\n */\nexport const getThreadByIdNetworkQuerySchema = optionalAgentIdQuerySchema.extend({\n resourceId: z.string().optional(),\n});\n\n/**\n * GET /memory/network/threads/:threadId/messages\n * agentId is optional - can use storage fallback when not provided\n */\nexport const listMessagesNetworkQuerySchema = createPagePaginationSchema(40).extend({\n agentId: z.string().optional(),\n resourceId: z.string().optional(),\n orderBy: messageOrderBySchema,\n include: includeSchema,\n filter: filterSchema,\n});\n\n/**\n * POST /memory/network/save-messages\n */\nexport const saveMessagesNetworkQuerySchema = agentIdQuerySchema;\n\n/**\n * POST /memory/network/threads\n */\nexport const createThreadNetworkQuerySchema = agentIdQuerySchema;\n\n/**\n * PATCH /memory/network/threads/:threadId\n */\nexport const updateThreadNetworkQuerySchema = agentIdQuerySchema;\n\n/**\n * DELETE /memory/network/threads/:threadId\n * resourceId is optional - used for ownership validation fallback when not set via middleware\n */\nexport const deleteThreadNetworkQuerySchema = agentIdQuerySchema.extend({\n resourceId: z.string().optional(),\n});\n\n/**\n * POST /memory/network/messages/delete\n * resourceId is optional - used for ownership validation fallback when not set via middleware\n */\nexport const deleteMessagesNetworkQuerySchema = agentIdQuerySchema.extend({\n resourceId: z.string().optional(),\n});\n\n// ============================================================================\n// Response Schemas\n// ============================================================================\n\n/**\n * Response for GET /memory/status\n */\nexport const memoryStatusResponseSchema = z.object({\n result: z.boolean(),\n memoryType: z.enum(['local', 'gateway']).optional(),\n observationalMemory: z\n .object({\n enabled: z.boolean(),\n hasRecord: z.boolean().optional(),\n originType: z.string().optional(),\n lastObservedAt: z.date().optional(),\n tokenCount: z.number().optional(),\n observationTokenCount: z.number().optional(),\n isObserving: z.boolean().optional(),\n isReflecting: z.boolean().optional(),\n })\n .optional(),\n});\n\n/**\n * Observational Memory config schema for API responses\n */\nconst observationalMemoryModelRoutingSchema = z.array(\n z.object({\n upTo: z.number(),\n model: z.string(),\n }),\n);\n\nconst observationalMemoryConfigSchema = z.object({\n enabled: z.boolean(),\n scope: z.enum(['thread', 'resource']).optional(),\n shareTokenBudget: z.boolean().optional(),\n messageTokens: z.union([z.number(), z.object({ min: z.number(), max: z.number() })]).optional(),\n observationTokens: z.union([z.number(), z.object({ min: z.number(), max: z.number() })]).optional(),\n observationModel: z.string().optional(),\n reflectionModel: z.string().optional(),\n observationModelRouting: observationalMemoryModelRoutingSchema.optional(),\n reflectionModelRouting: observationalMemoryModelRoutingSchema.optional(),\n});\n\n/**\n * Response for GET /memory/config\n * MemoryConfig is complex with many optional fields - using passthrough\n */\nexport const memoryConfigResponseSchema = z.object({\n memoryType: z.enum(['local', 'gateway']).optional(),\n config: z\n .object({\n lastMessages: lastMessagesSchema.optional(),\n messageHistory: messageHistorySchema.optional(),\n semanticRecall: z.union([z.boolean(), z.unknown()]).optional(),\n workingMemory: z\n .object({\n enabled: z.boolean().optional(),\n scope: z.enum(['thread', 'resource']).optional(),\n template: z.string().optional(),\n schema: z.unknown().optional(),\n version: z.enum(['stable', 'vnext']).optional(),\n })\n .passthrough() // WorkingMemory has additional experimental fields (useStateSignals, agentManaged)\n .optional(),\n observationalMemory: observationalMemoryConfigSchema.optional(),\n })\n .nullable(),\n});\n\n/**\n * Response for GET /memory/threads\n */\nexport const listThreadsResponseSchema = paginationInfoSchema.extend({\n threads: z.array(threadSchema),\n});\n\n/**\n * Response for GET /memory/threads/:threadId\n */\nexport const getThreadByIdResponseSchema = threadSchema;\n\n/**\n * Response for GET /memory/threads/:threadId/messages\n */\nexport const listMessagesResponseSchema = z.object({\n messages: z.array(messageSchema),\n uiMessages: z.array(z.unknown()).nullable(), // Converted messages in UI format\n // Absent on the gateway path, which has no page metadata to report.\n total: z.number().optional(),\n page: z.number().optional(),\n perPage: z.union([z.number(), z.literal(false)]).optional(),\n hasMore: z.boolean().optional(),\n});\n\n/**\n * Response for GET /memory/threads/:threadId/working-memory\n */\nexport const getWorkingMemoryResponseSchema = z.object({\n workingMemory: z.unknown().nullable(), // Can be string or structured object depending on template\n source: z.enum(['thread', 'resource']),\n workingMemoryTemplate: z.unknown().nullable(), // Template structure varies\n threadExists: z.boolean(),\n});\n\n// ============================================================================\n// Body Parameter Schemas for POST/PUT/DELETE\n// ============================================================================\n\n/**\n * Body schema for POST /memory/messages\n */\nexport const saveMessagesBodySchema = z.object({\n messages: z.array(messageSchema),\n});\n\n/**\n * Body schema for POST /memory/threads\n */\nexport const createThreadBodySchema = z.object({\n resourceId: z.string(),\n title: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n threadId: z.string().optional(),\n});\n\n/**\n * Body schema for PUT /memory/threads/:threadId\n */\nexport const updateThreadBodySchema = z.object({\n title: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n resourceId: z.string().optional(),\n});\n\n/**\n * Body schema for POST /memory/threads/:threadId/transfer\n * Reassigns the thread (and its messages) to a different resource.\n */\nexport const transferThreadBodySchema = z.object({\n resourceId: z.string().min(1),\n});\n\n/**\n * Response schema for POST /memory/threads/:threadId/transfer\n */\nexport const transferThreadResponseSchema = threadSchema;\n\n/**\n * Body schema for PUT /memory/threads/:threadId/working-memory\n */\nexport const updateWorkingMemoryBodySchema = z.object({\n workingMemory: z.string(),\n resourceId: z.string().optional(),\n memoryConfig: z.record(z.string(), z.unknown()).optional(),\n});\n\n/**\n * Body schema for POST /memory/messages/delete\n * Accepts: string | string[] | { id: string } | { id: string }[]\n */\nexport const deleteMessagesBodySchema = z.object({\n messageIds: z.union([\n z.string(),\n z.array(z.string()),\n z.object({ id: z.string() }),\n z.array(z.object({ id: z.string() })),\n ]),\n});\n\n/**\n * Query schema for GET /memory/search\n */\nexport const searchMemoryQuerySchema = z.object({\n agentId: z.string(),\n searchQuery: z.string(),\n resourceId: z.string(),\n threadId: z.string().optional(),\n limit: z.coerce.number().optional().default(20),\n memoryConfig: memoryConfigSchema,\n});\n\n/**\n * Response schemas\n */\nexport const saveMessagesResponseSchema = z.object({\n messages: z.array(messageSchema),\n});\n\nexport const deleteThreadResponseSchema = z.object({\n result: z.string(),\n});\n\nexport const updateWorkingMemoryResponseSchema = successResponseSchema;\n\nexport const deleteMessagesResponseSchema = successResponseSchema.extend({\n message: z.string(),\n});\n\nexport const searchMemoryResponseSchema = z.object({\n results: z.array(z.unknown()),\n count: z.number(),\n query: z.string(),\n searchScope: z.string().optional(),\n searchType: z.string().optional(),\n});\n\n/**\n * Body schema for POST /memory/threads/:threadId/clone\n */\nexport const cloneThreadBodySchema = z.object({\n newThreadId: z.string().optional(),\n resourceId: z.string().optional(),\n title: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n options: z\n .object({\n messageLimit: z.number().optional(),\n messageFilter: z\n .object({\n startDate: z.coerce.date().optional(),\n endDate: z.coerce.date().optional(),\n messageIds: z.array(z.string()).optional(),\n })\n .optional(),\n })\n .optional(),\n});\n\n/**\n * Response schema for POST /memory/threads/:threadId/clone\n */\nexport const cloneThreadResponseSchema = z.object({\n thread: threadSchema,\n clonedMessages: z.array(messageSchema),\n});\n\n// ============================================================================\n// Observational Memory Schemas\n// ============================================================================\n\n/**\n * Query schema for GET /api/memory/observational-memory\n */\nexport const getObservationalMemoryQuerySchema = z.object({\n agentId: z.string(),\n resourceId: z.string().optional(),\n threadId: z.string().optional(),\n from: z.coerce.date().optional(),\n to: z.coerce.date().optional(),\n offset: z.coerce.number().int().min(0).optional(),\n limit: z.coerce.number().int().min(1).optional(),\n});\n\n/**\n * Observational Memory record schema for API responses\n * Matches the ObservationalMemoryRecord type from @mastra/core/storage\n */\nconst bufferedObservationChunkSchema = z.object({\n id: z.string().optional(),\n cycleId: z.string(),\n observations: z.string(),\n tokenCount: z.number(),\n messageIds: z.array(z.string()).optional(),\n messageTokens: z.number(),\n lastObservedAt: z.date().optional(),\n createdAt: z.date().optional(),\n suggestedContinuation: z.string().optional(),\n currentTask: z.string().optional(),\n threadTitle: z.string().optional(),\n extractedValues: z.record(z.string(), z.unknown()).optional(),\n extractionFailures: z.array(z.object({ slug: z.string(), error: z.string() })).optional(),\n});\n\nconst observationalMemoryRecordSchema = z.object({\n id: z.string(),\n scope: z.enum(['thread', 'resource']),\n resourceId: z.string(),\n threadId: z.string().nullable(),\n activeObservations: z.string(),\n bufferedObservations: z.string().optional(),\n bufferedObservationChunks: z.array(bufferedObservationChunkSchema).optional(),\n bufferedReflection: z.string().optional(),\n originType: z.enum(['initial', 'observation', 'reflection']),\n generationCount: z.number(),\n lastObservedAt: z.date().optional(),\n totalTokensObserved: z.number(),\n observationTokenCount: z.number(),\n pendingMessageTokens: z.number(),\n isObserving: z.boolean(),\n isReflecting: z.boolean(),\n config: z.record(z.string(), z.unknown()),\n metadata: z.record(z.string(), z.unknown()).optional(),\n createdAt: z.date(),\n updatedAt: z.date(),\n});\n\n/**\n * Response schema for GET /api/memory/observational-memory\n */\nexport const getObservationalMemoryResponseSchema = z.object({\n record: observationalMemoryRecordSchema.nullable(),\n history: z.array(observationalMemoryRecordSchema).optional(),\n});\n\n/**\n * Body schema for POST /api/memory/observational-memory/buffer-status\n */\nexport const awaitBufferStatusBodySchema = z.object({\n agentId: z.string(),\n resourceId: z.string().optional(),\n threadId: z.string().optional(),\n});\n\n/**\n * Response schema for POST /api/memory/observational-memory/buffer-status\n */\nexport const awaitBufferStatusResponseSchema = z.object({\n record: observationalMemoryRecordSchema.nullable(),\n});\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes-BKUF5ZHA.cjs","names":["z","Readable"],"sources":["../../_internal-core/dist/error/index.js","../../_internal-core/dist/routes/index.js","../../_internals/voice/dist/routes/index.js"],"sourcesContent":["//#region src/error/utils.ts\n/**\n* Safely converts an object to a string representation.\n* Uses JSON.stringify first, but falls back to String() if:\n* - JSON.stringify fails (e.g., circular references)\n* - JSON.stringify returns \"{}\" (e.g., Error objects with no enumerable properties)\n*/\nfunction safeParseErrorObject(obj) {\n\tif (typeof obj !== \"object\" || obj === null) return String(obj);\n\ttry {\n\t\tconst stringified = JSON.stringify(obj);\n\t\tif (stringified === \"{}\") return String(obj);\n\t\treturn stringified;\n\t} catch {\n\t\treturn String(obj);\n\t}\n}\n/**\n* Safely converts an unknown error to an Error instance.\n*/\nfunction getErrorFromUnknown(unknown, options = {}) {\n\tconst defaultOptions = {\n\t\tfallbackMessage: \"Unknown error\",\n\t\tmaxDepth: 5,\n\t\tsupportSerialization: true,\n\t\tserializeStack: true\n\t};\n\tconst mergedOptions = options ? {\n\t\t...defaultOptions,\n\t\t...options\n\t} : defaultOptions;\n\tconst { fallbackMessage, maxDepth, supportSerialization, serializeStack } = mergedOptions;\n\tif (unknown && unknown instanceof Error) {\n\t\tif (supportSerialization) addErrorToJSON(unknown, serializeStack, { maxDepth });\n\t\treturn unknown;\n\t}\n\tlet error;\n\tif (unknown && typeof unknown === \"object\") {\n\t\tconst errorMessage = unknown && \"message\" in unknown && typeof unknown.message === \"string\" ? unknown.message : safeParseErrorObject(unknown);\n\t\tconst errorCause = \"cause\" in unknown && unknown.cause !== void 0 ? unknown.cause instanceof Error ? unknown.cause : maxDepth > 0 ? getErrorFromUnknown(unknown.cause, {\n\t\t\t...mergedOptions,\n\t\t\tmaxDepth: maxDepth - 1\n\t\t}) : void 0 : void 0;\n\t\terror = new Error(errorMessage, errorCause ? { cause: errorCause } : void 0);\n\t\tObject.assign(error, unknown);\n\t\terror.stack = \"stack\" in unknown && typeof unknown.stack === \"string\" ? unknown.stack : void 0;\n\t} else if (unknown && typeof unknown === \"string\") {\n\t\terror = new Error(unknown);\n\t\terror.stack = void 0;\n\t} else error = new Error(fallbackMessage);\n\tif (supportSerialization) addErrorToJSON(error, serializeStack, { maxDepth });\n\treturn error;\n}\nconst DEFAULT_MAX_DEPTH = 5;\n/**\n* Adds a toJSON method to an Error instance for proper serialization.\n* Ensures that message, name, cause, and custom properties are all serialized.\n* Stack is only included in JSON output if serializeStack is true.\n* Recursively adds toJSON to the cause chain for proper nested error serialization.\n*/\nfunction addErrorToJSON(error, serializeStack = true, options) {\n\tconst maxDepth = options?.maxDepth ?? DEFAULT_MAX_DEPTH;\n\tconst currentDepth = options?.currentDepth ?? 0;\n\tif (error.toJSON) return;\n\tif (error.cause instanceof Error && currentDepth < maxDepth) addErrorToJSON(error.cause, serializeStack, {\n\t\tmaxDepth,\n\t\tcurrentDepth: currentDepth + 1\n\t});\n\tObject.defineProperty(error, \"toJSON\", {\n\t\tvalue: function() {\n\t\t\tconst json = {\n\t\t\t\tmessage: this.message,\n\t\t\t\tname: this.name\n\t\t\t};\n\t\t\tif (serializeStack && this.stack !== void 0) json.stack = this.stack;\n\t\t\tif (this.cause !== void 0) if (this.cause instanceof Error && \"toJSON\" in this.cause && typeof this.cause.toJSON === \"function\") json.cause = this.cause.toJSON();\n\t\t\telse json.cause = this.cause;\n\t\t\tconst errorAsAny = this;\n\t\t\tfor (const key in errorAsAny) if (errorAsAny.hasOwnProperty(key) && !(key in json) && key !== \"toJSON\") json[key] = errorAsAny[key];\n\t\t\treturn json;\n\t\t},\n\t\tenumerable: false,\n\t\twritable: true,\n\t\tconfigurable: true\n\t});\n}\n//#endregion\n//#region src/error/index.ts\nlet ErrorDomain = /* @__PURE__ */ function(ErrorDomain) {\n\tErrorDomain[\"TOOL\"] = \"TOOL\";\n\tErrorDomain[\"AGENT\"] = \"AGENT\";\n\tErrorDomain[\"MCP\"] = \"MCP\";\n\tErrorDomain[\"AGENT_NETWORK\"] = \"AGENT_NETWORK\";\n\tErrorDomain[\"MASTRA_SERVER\"] = \"MASTRA_SERVER\";\n\tErrorDomain[\"MASTRA_OBSERVABILITY\"] = \"MASTRA_OBSERVABILITY\";\n\tErrorDomain[\"MASTRA_WORKFLOW\"] = \"MASTRA_WORKFLOW\";\n\tErrorDomain[\"MASTRA_VOICE\"] = \"MASTRA_VOICE\";\n\tErrorDomain[\"MASTRA_VECTOR\"] = \"MASTRA_VECTOR\";\n\tErrorDomain[\"MASTRA_MEMORY\"] = \"MASTRA_MEMORY\";\n\tErrorDomain[\"LLM\"] = \"LLM\";\n\tErrorDomain[\"EVAL\"] = \"EVAL\";\n\tErrorDomain[\"SCORER\"] = \"SCORER\";\n\tErrorDomain[\"A2A\"] = \"A2A\";\n\tErrorDomain[\"MASTRA_INSTANCE\"] = \"MASTRA_INSTANCE\";\n\tErrorDomain[\"MASTRA\"] = \"MASTRA\";\n\tErrorDomain[\"DEPLOYER\"] = \"DEPLOYER\";\n\tErrorDomain[\"STORAGE\"] = \"STORAGE\";\n\tErrorDomain[\"MODEL_ROUTER\"] = \"MODEL_ROUTER\";\n\treturn ErrorDomain;\n}({});\nlet ErrorCategory = /* @__PURE__ */ function(ErrorCategory) {\n\tErrorCategory[\"UNKNOWN\"] = \"UNKNOWN\";\n\tErrorCategory[\"USER\"] = \"USER\";\n\tErrorCategory[\"SYSTEM\"] = \"SYSTEM\";\n\tErrorCategory[\"THIRD_PARTY\"] = \"THIRD_PARTY\";\n\treturn ErrorCategory;\n}({});\n/**\n* Base error class for the Mastra ecosystem.\n* It standardizes error reporting and can be extended for more specific error types.\n*/\nvar MastraBaseError = class extends Error {\n\tid;\n\tdomain;\n\tcategory;\n\tdetails = {};\n\tmessage;\n\tcause;\n\tconstructor(errorDefinition, originalError) {\n\t\tconst error = originalError ? getErrorFromUnknown(originalError, {\n\t\t\tserializeStack: false,\n\t\t\tfallbackMessage: \"Unknown error\"\n\t\t}) : void 0;\n\t\tconst message = errorDefinition.text ?? error?.message ?? \"Unknown error\";\n\t\tsuper(message, { cause: error });\n\t\tthis.id = errorDefinition.id;\n\t\tthis.domain = errorDefinition.domain;\n\t\tthis.category = errorDefinition.category;\n\t\tthis.details = errorDefinition.details ?? {};\n\t\tthis.message = message;\n\t\tthis.cause = error;\n\t\tObject.setPrototypeOf(this, new.target.prototype);\n\t}\n\t/**\n\t* Returns a structured representation of the error, useful for logging or API responses.\n\t*/\n\ttoJSONDetails() {\n\t\treturn {\n\t\t\tmessage: this.message,\n\t\t\tdomain: this.domain,\n\t\t\tcategory: this.category,\n\t\t\tdetails: this.details\n\t\t};\n\t}\n\ttoJSON() {\n\t\treturn {\n\t\t\tmessage: this.message,\n\t\t\tdomain: this.domain,\n\t\t\tcategory: this.category,\n\t\t\tcode: this.id,\n\t\t\tdetails: this.details,\n\t\t\tcause: this.cause?.toJSON?.()\n\t\t};\n\t}\n\ttoString() {\n\t\treturn JSON.stringify(this.toJSON());\n\t}\n};\nvar MastraError = class extends MastraBaseError {};\n/** Permanent workflow step failure — bypasses workflow retryConfig. */\nvar MastraNonRetryableError = class extends Error {\n\tisNonRetryable = true;\n\tconstructor(message, options) {\n\t\tsuper(message, options);\n\t\tthis.name = \"MastraNonRetryableError\";\n\t\tObject.setPrototypeOf(this, new.target.prototype);\n\t}\n};\n//#endregion\nexport { ErrorCategory, ErrorDomain, MastraBaseError, MastraError, MastraNonRetryableError, getErrorFromUnknown, safeParseErrorObject };\n\n//# sourceMappingURL=index.js.map","//#region src/routes/index.ts\nfunction generateRouteOpenAPI({ method, path, summary, description, tags = [], pathParamSchema, queryParamSchema, bodySchema, responseSchema, deprecated }) {\n\tconst route = {\n\t\tsummary: summary || `${method} ${path}`,\n\t\tdescription,\n\t\ttags,\n\t\tdeprecated,\n\t\tresponses: { 200: { description: \"Successful response\" } }\n\t};\n\tif (pathParamSchema || queryParamSchema) {\n\t\troute.requestParams = {};\n\t\tif (pathParamSchema) route.requestParams.path = pathParamSchema;\n\t\tif (queryParamSchema) route.requestParams.query = queryParamSchema;\n\t}\n\tif (bodySchema) route.requestBody = { content: { \"application/json\": { schema: bodySchema } } };\n\tif (responseSchema) route.responses[200] = {\n\t\tdescription: \"Successful response\",\n\t\tcontent: { \"application/json\": { schema: responseSchema } }\n\t};\n\treturn route;\n}\nfunction createRoute(config) {\n\tconst { summary, description, tags, deprecated, requiresAuth, requiresPermission, onValidationError, ...baseRoute } = config;\n\tconst openapi = config.method !== \"ALL\" ? generateRouteOpenAPI({\n\t\tmethod: config.method,\n\t\tpath: config.path,\n\t\tsummary,\n\t\tdescription,\n\t\ttags,\n\t\tpathParamSchema: config.pathParamSchema,\n\t\tqueryParamSchema: config.queryParamSchema,\n\t\tbodySchema: config.bodySchema,\n\t\tresponseSchema: config.responseSchema,\n\t\tdeprecated\n\t}) : void 0;\n\treturn {\n\t\t...baseRoute,\n\t\topenapi,\n\t\tdeprecated,\n\t\trequiresAuth,\n\t\trequiresPermission,\n\t\tonValidationError\n\t};\n}\nfunction createPublicRoute(config) {\n\treturn createRoute({\n\t\t...config,\n\t\trequiresAuth: false\n\t});\n}\n//#endregion\nexport { createPublicRoute, createRoute, generateRouteOpenAPI };\n\n//# sourceMappingURL=index.js.map","import { ErrorDomain, MastraError } from \"@internal/core/error\";\nimport { Readable } from \"stream\";\nimport { createRoute } from \"@internal/core/routes\";\nimport { z } from \"zod/v4\";\n//#region src/routes/index.ts\nconst voiceSpeakersResponseSchema = z.array(z.object({ voiceId: z.string() }).passthrough());\nconst generateSpeechBodySchema = z.object({\n\ttext: z.string(),\n\tspeakerId: z.string().optional()\n});\nconst transcribeSpeechBodySchema = z.object({\n\taudio: z.unknown(),\n\toptions: z.record(z.string(), z.unknown()).optional()\n});\nconst transcribeSpeechResponseSchema = z.object({ text: z.string() });\nconst getListenerResponseSchema = z.unknown();\nconst speakResponseSchema = z.unknown();\nconst agentIdPathParams = z.object({ agentId: z.string().describe(\"Agent ID\") });\nvar HTTPException = class extends Error {\n\tstatus;\n\tconstructor(status, options = {}) {\n\t\tsuper(options.message, { cause: options.cause });\n\t\tthis.status = status;\n\t\tthis.stack = options.stack || this.stack;\n\t}\n};\nfunction isMastraVoiceError(error) {\n\treturn error instanceof MastraError || typeof error === \"object\" && error !== null && \"domain\" in error && error.domain === ErrorDomain.MASTRA_VOICE || error instanceof Error && error.message === \"No voice provider configured\";\n}\nfunction handleError(error, defaultMessage) {\n\tconst apiError = error;\n\tthrow new HTTPException(apiError.status || apiError.details?.status || 500, {\n\t\tmessage: apiError.message || defaultMessage,\n\t\tstack: apiError.stack,\n\t\tcause: apiError.cause\n\t});\n}\nfunction validateBody(data) {\n\tfor (const [key, value] of Object.entries(data)) if (value === void 0 || value === null || value === \"\") throw new HTTPException(400, { message: `${key} is required` });\n}\nasync function getAgentFromSystem({ mastra, agentId, requestContext }) {\n\tconst logger = mastra.getLogger?.();\n\tif (!agentId) throw new HTTPException(400, { message: \"Agent ID is required\" });\n\tlet agent;\n\ttry {\n\t\tagent = mastra.getAgentById(agentId);\n\t} catch (error) {\n\t\tlogger?.debug?.(\"Error getting agent from mastra, searching agents for agent\", error);\n\t}\n\tif (!agent) {\n\t\tlogger?.debug?.(\"Agent not found, looking through sub-agents\", { agentId });\n\t\tconst agents = mastra.listAgents?.();\n\t\tif (Object.keys(agents || {}).length) for (const ag of Object.values(agents)) try {\n\t\t\tconst subAgent = (await ag.listAgents())[agentId];\n\t\t\tif (subAgent) {\n\t\t\t\tagent = subAgent;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlogger?.debug?.(\"Error getting agent from agent\", error);\n\t\t}\n\t}\n\tif (agent && mastra.getEditor) try {\n\t\tconst editorAgent = mastra.getEditor()?.agent;\n\t\tif (editorAgent) agent = await editorAgent.applyStoredOverrides(agent, { status: \"published\" }, requestContext);\n\t} catch (error) {\n\t\tlogger?.debug?.(\"Error applying stored overrides to code agent\", error);\n\t}\n\tif (!agent) {\n\t\tlogger?.debug?.(\"Agent not found in code-defined agents, looking in stored agents\", { agentId });\n\t\ttry {\n\t\t\tagent = await mastra.getEditor?.()?.agent.getById(agentId) ?? null;\n\t\t} catch (error) {\n\t\t\tlogger?.debug?.(\"Error getting stored agent\", error);\n\t\t}\n\t}\n\tif (!agent) throw new HTTPException(404, { message: `Agent with id ${agentId} not found` });\n\treturn agent;\n}\nconst GET_SPEAKERS_ROUTE = createRoute({\n\tmethod: \"GET\",\n\tpath: \"/agents/:agentId/voice/speakers\",\n\tresponseType: \"json\",\n\tsummary: \"Get voice speakers\",\n\tdescription: \"Returns available voice speakers for the specified agent\",\n\ttags: [\"Agents\", \"Voice\"],\n\trequiresAuth: true,\n\tpathParamSchema: agentIdPathParams,\n\tresponseSchema: voiceSpeakersResponseSchema,\n\thandler: async ({ mastra, agentId, requestContext }) => {\n\t\ttry {\n\t\t\tif (!agentId) throw new HTTPException(400, { message: \"Agent ID is required\" });\n\t\t\tconst voice = await (await getAgentFromSystem({\n\t\t\t\tmastra,\n\t\t\t\tagentId,\n\t\t\t\trequestContext\n\t\t\t})).getVoice({ requestContext });\n\t\t\treturn await Promise.resolve().then(() => voice.getSpeakers()).catch((err) => {\n\t\t\t\tif (isMastraVoiceError(err)) return [];\n\t\t\t\tthrow err;\n\t\t\t});\n\t\t} catch (error) {\n\t\t\treturn handleError(error, \"Error getting speakers\");\n\t\t}\n\t}\n});\nconst GET_SPEAKERS_DEPRECATED_ROUTE = createRoute({\n\tmethod: \"GET\",\n\tpath: \"/agents/:agentId/speakers\",\n\tresponseType: \"json\",\n\tsummary: \"Get available speakers for an agent\",\n\tdescription: \"[DEPRECATED] Use /agents/:agentId/voice/speakers instead. Get available speakers for an agent\",\n\ttags: [\"Agents\", \"Voice\"],\n\trequiresAuth: true,\n\tdeprecated: true,\n\tpathParamSchema: agentIdPathParams,\n\tresponseSchema: voiceSpeakersResponseSchema,\n\thandler: GET_SPEAKERS_ROUTE.handler\n});\nconst GENERATE_SPEECH_ROUTE = createRoute({\n\tmethod: \"POST\",\n\tpath: \"/agents/:agentId/voice/speak\",\n\tresponseType: \"datastream-response\",\n\tsummary: \"Generate speech\",\n\tdescription: \"Generates speech audio from text using the agent voice configuration\",\n\ttags: [\"Agents\", \"Voice\"],\n\trequiresAuth: true,\n\tpathParamSchema: agentIdPathParams,\n\tbodySchema: generateSpeechBodySchema,\n\tresponseSchema: speakResponseSchema,\n\thandler: async ({ mastra, agentId, text, speakerId, requestContext }) => {\n\t\ttry {\n\t\t\tif (!agentId) throw new HTTPException(400, { message: \"Agent ID is required\" });\n\t\t\tvalidateBody({ text });\n\t\t\tconst voice = await (await getAgentFromSystem({\n\t\t\t\tmastra,\n\t\t\t\tagentId,\n\t\t\t\trequestContext\n\t\t\t})).getVoice({ requestContext });\n\t\t\tif (!voice) throw new HTTPException(400, { message: \"Agent does not have voice capabilities\" });\n\t\t\tconst audioStream = await Promise.resolve().then(() => voice.speak(text, { speaker: speakerId })).catch((err) => {\n\t\t\t\tif (isMastraVoiceError(err)) throw new HTTPException(400, { message: err.message });\n\t\t\t\tthrow err;\n\t\t\t});\n\t\t\tif (!audioStream) throw new HTTPException(500, { message: \"Failed to generate speech\" });\n\t\t\tconst webStream = audioStream instanceof ReadableStream ? audioStream : audioStream instanceof Readable ? Readable.toWeb(audioStream) : audioStream;\n\t\t\treturn new Response(webStream, { headers: { \"Content-Type\": \"audio/mpeg\" } });\n\t\t} catch (error) {\n\t\t\treturn handleError(error, \"Error generating speech\");\n\t\t}\n\t}\n});\nconst GENERATE_SPEECH_DEPRECATED_ROUTE = createRoute({\n\tmethod: \"POST\",\n\tpath: \"/agents/:agentId/speak\",\n\tresponseType: \"datastream-response\",\n\tsummary: \"Convert text to speech\",\n\tdescription: \"[DEPRECATED] Use /agents/:agentId/voice/speak instead. Convert text to speech using the agent's voice provider\",\n\ttags: [\"Agents\", \"Voice\"],\n\trequiresAuth: true,\n\tdeprecated: true,\n\tpathParamSchema: agentIdPathParams,\n\tbodySchema: generateSpeechBodySchema,\n\tresponseSchema: speakResponseSchema,\n\thandler: GENERATE_SPEECH_ROUTE.handler\n});\nconst TRANSCRIBE_SPEECH_ROUTE = createRoute({\n\tmethod: \"POST\",\n\tpath: \"/agents/:agentId/voice/listen\",\n\tresponseType: \"json\",\n\tsummary: \"Transcribe speech\",\n\tdescription: \"Transcribes speech audio to text using the agent voice configuration\",\n\ttags: [\"Agents\", \"Voice\"],\n\trequiresAuth: true,\n\tpathParamSchema: agentIdPathParams,\n\tbodySchema: transcribeSpeechBodySchema,\n\tresponseSchema: transcribeSpeechResponseSchema,\n\thandler: async ({ mastra, agentId, audio, options, requestContext }) => {\n\t\ttry {\n\t\t\tif (!agentId) throw new HTTPException(400, { message: \"Agent ID is required\" });\n\t\t\tif (!audio) throw new HTTPException(400, { message: \"Audio data is required\" });\n\t\t\tconst voice = await (await getAgentFromSystem({\n\t\t\t\tmastra,\n\t\t\t\tagentId,\n\t\t\t\trequestContext\n\t\t\t})).getVoice({ requestContext });\n\t\t\tif (!voice) throw new HTTPException(400, { message: \"Agent does not have voice capabilities\" });\n\t\t\tconst audioStream = new Readable();\n\t\t\taudioStream.push(audio);\n\t\t\taudioStream.push(null);\n\t\t\treturn { text: await voice.listen(audioStream, options) };\n\t\t} catch (error) {\n\t\t\treturn handleError(error, \"Error transcribing speech\");\n\t\t}\n\t}\n});\nconst TRANSCRIBE_SPEECH_DEPRECATED_ROUTE = createRoute({\n\tmethod: \"POST\",\n\tpath: \"/agents/:agentId/listen\",\n\tresponseType: \"json\",\n\tsummary: \"Convert speech to text\",\n\tdescription: \"[DEPRECATED] Use /agents/:agentId/voice/listen instead. Convert speech to text using the agent's voice provider. Additional provider-specific options can be passed as query parameters.\",\n\ttags: [\"Agents\", \"Voice\"],\n\trequiresAuth: true,\n\tdeprecated: true,\n\tpathParamSchema: agentIdPathParams,\n\tbodySchema: transcribeSpeechBodySchema,\n\tresponseSchema: transcribeSpeechResponseSchema,\n\thandler: TRANSCRIBE_SPEECH_ROUTE.handler\n});\nconst GET_LISTENER_ROUTE = createRoute({\n\tmethod: \"GET\",\n\tpath: \"/agents/:agentId/voice/listener\",\n\tresponseType: \"json\",\n\tsummary: \"Get voice listener\",\n\tdescription: \"Returns the voice listener configuration for the agent\",\n\ttags: [\"Agents\", \"Voice\"],\n\trequiresAuth: true,\n\tpathParamSchema: agentIdPathParams,\n\tresponseSchema: getListenerResponseSchema,\n\thandler: async ({ mastra, agentId, requestContext }) => {\n\t\ttry {\n\t\t\tif (!agentId) throw new HTTPException(400, { message: \"Agent ID is required\" });\n\t\t\tconst agent = mastra.getAgentById(agentId);\n\t\t\tif (!agent) throw new HTTPException(404, { message: \"Agent not found\" });\n\t\t\tconst voice = await agent.getVoice({ requestContext });\n\t\t\treturn await Promise.resolve().then(() => voice.getListener()).catch((err) => {\n\t\t\t\tif (isMastraVoiceError(err)) return { enabled: false };\n\t\t\t\tthrow err;\n\t\t\t});\n\t\t} catch (error) {\n\t\t\treturn handleError(error, \"Error getting listeners\");\n\t\t}\n\t}\n});\n//#endregion\nexport { GENERATE_SPEECH_DEPRECATED_ROUTE, GENERATE_SPEECH_ROUTE, GET_LISTENER_ROUTE, GET_SPEAKERS_DEPRECATED_ROUTE, GET_SPEAKERS_ROUTE, TRANSCRIBE_SPEECH_DEPRECATED_ROUTE, TRANSCRIBE_SPEECH_ROUTE, generateSpeechBodySchema, getListenerResponseSchema, speakResponseSchema, transcribeSpeechBodySchema, transcribeSpeechResponseSchema, voiceSpeakersResponseSchema };\n\n//# sourceMappingURL=index.js.map"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"routes-zHhMx-9S.js","names":[],"sources":["../../_internal-core/dist/error/index.js","../../_internal-core/dist/routes/index.js","../../_internals/voice/dist/routes/index.js"],"sourcesContent":["//#region src/error/utils.ts\n/**\n* Safely converts an object to a string representation.\n* Uses JSON.stringify first, but falls back to String() if:\n* - JSON.stringify fails (e.g., circular references)\n* - JSON.stringify returns \"{}\" (e.g., Error objects with no enumerable properties)\n*/\nfunction safeParseErrorObject(obj) {\n\tif (typeof obj !== \"object\" || obj === null) return String(obj);\n\ttry {\n\t\tconst stringified = JSON.stringify(obj);\n\t\tif (stringified === \"{}\") return String(obj);\n\t\treturn stringified;\n\t} catch {\n\t\treturn String(obj);\n\t}\n}\n/**\n* Safely converts an unknown error to an Error instance.\n*/\nfunction getErrorFromUnknown(unknown, options = {}) {\n\tconst defaultOptions = {\n\t\tfallbackMessage: \"Unknown error\",\n\t\tmaxDepth: 5,\n\t\tsupportSerialization: true,\n\t\tserializeStack: true\n\t};\n\tconst mergedOptions = options ? {\n\t\t...defaultOptions,\n\t\t...options\n\t} : defaultOptions;\n\tconst { fallbackMessage, maxDepth, supportSerialization, serializeStack } = mergedOptions;\n\tif (unknown && unknown instanceof Error) {\n\t\tif (supportSerialization) addErrorToJSON(unknown, serializeStack, { maxDepth });\n\t\treturn unknown;\n\t}\n\tlet error;\n\tif (unknown && typeof unknown === \"object\") {\n\t\tconst errorMessage = unknown && \"message\" in unknown && typeof unknown.message === \"string\" ? unknown.message : safeParseErrorObject(unknown);\n\t\tconst errorCause = \"cause\" in unknown && unknown.cause !== void 0 ? unknown.cause instanceof Error ? unknown.cause : maxDepth > 0 ? getErrorFromUnknown(unknown.cause, {\n\t\t\t...mergedOptions,\n\t\t\tmaxDepth: maxDepth - 1\n\t\t}) : void 0 : void 0;\n\t\terror = new Error(errorMessage, errorCause ? { cause: errorCause } : void 0);\n\t\tObject.assign(error, unknown);\n\t\terror.stack = \"stack\" in unknown && typeof unknown.stack === \"string\" ? unknown.stack : void 0;\n\t} else if (unknown && typeof unknown === \"string\") {\n\t\terror = new Error(unknown);\n\t\terror.stack = void 0;\n\t} else error = new Error(fallbackMessage);\n\tif (supportSerialization) addErrorToJSON(error, serializeStack, { maxDepth });\n\treturn error;\n}\nconst DEFAULT_MAX_DEPTH = 5;\n/**\n* Adds a toJSON method to an Error instance for proper serialization.\n* Ensures that message, name, cause, and custom properties are all serialized.\n* Stack is only included in JSON output if serializeStack is true.\n* Recursively adds toJSON to the cause chain for proper nested error serialization.\n*/\nfunction addErrorToJSON(error, serializeStack = true, options) {\n\tconst maxDepth = options?.maxDepth ?? DEFAULT_MAX_DEPTH;\n\tconst currentDepth = options?.currentDepth ?? 0;\n\tif (error.toJSON) return;\n\tif (error.cause instanceof Error && currentDepth < maxDepth) addErrorToJSON(error.cause, serializeStack, {\n\t\tmaxDepth,\n\t\tcurrentDepth: currentDepth + 1\n\t});\n\tObject.defineProperty(error, \"toJSON\", {\n\t\tvalue: function() {\n\t\t\tconst json = {\n\t\t\t\tmessage: this.message,\n\t\t\t\tname: this.name\n\t\t\t};\n\t\t\tif (serializeStack && this.stack !== void 0) json.stack = this.stack;\n\t\t\tif (this.cause !== void 0) if (this.cause instanceof Error && \"toJSON\" in this.cause && typeof this.cause.toJSON === \"function\") json.cause = this.cause.toJSON();\n\t\t\telse json.cause = this.cause;\n\t\t\tconst errorAsAny = this;\n\t\t\tfor (const key in errorAsAny) if (errorAsAny.hasOwnProperty(key) && !(key in json) && key !== \"toJSON\") json[key] = errorAsAny[key];\n\t\t\treturn json;\n\t\t},\n\t\tenumerable: false,\n\t\twritable: true,\n\t\tconfigurable: true\n\t});\n}\n//#endregion\n//#region src/error/index.ts\nlet ErrorDomain = /* @__PURE__ */ function(ErrorDomain) {\n\tErrorDomain[\"TOOL\"] = \"TOOL\";\n\tErrorDomain[\"AGENT\"] = \"AGENT\";\n\tErrorDomain[\"MCP\"] = \"MCP\";\n\tErrorDomain[\"AGENT_NETWORK\"] = \"AGENT_NETWORK\";\n\tErrorDomain[\"MASTRA_SERVER\"] = \"MASTRA_SERVER\";\n\tErrorDomain[\"MASTRA_OBSERVABILITY\"] = \"MASTRA_OBSERVABILITY\";\n\tErrorDomain[\"MASTRA_WORKFLOW\"] = \"MASTRA_WORKFLOW\";\n\tErrorDomain[\"MASTRA_VOICE\"] = \"MASTRA_VOICE\";\n\tErrorDomain[\"MASTRA_VECTOR\"] = \"MASTRA_VECTOR\";\n\tErrorDomain[\"MASTRA_MEMORY\"] = \"MASTRA_MEMORY\";\n\tErrorDomain[\"LLM\"] = \"LLM\";\n\tErrorDomain[\"EVAL\"] = \"EVAL\";\n\tErrorDomain[\"SCORER\"] = \"SCORER\";\n\tErrorDomain[\"A2A\"] = \"A2A\";\n\tErrorDomain[\"MASTRA_INSTANCE\"] = \"MASTRA_INSTANCE\";\n\tErrorDomain[\"MASTRA\"] = \"MASTRA\";\n\tErrorDomain[\"DEPLOYER\"] = \"DEPLOYER\";\n\tErrorDomain[\"STORAGE\"] = \"STORAGE\";\n\tErrorDomain[\"MODEL_ROUTER\"] = \"MODEL_ROUTER\";\n\treturn ErrorDomain;\n}({});\nlet ErrorCategory = /* @__PURE__ */ function(ErrorCategory) {\n\tErrorCategory[\"UNKNOWN\"] = \"UNKNOWN\";\n\tErrorCategory[\"USER\"] = \"USER\";\n\tErrorCategory[\"SYSTEM\"] = \"SYSTEM\";\n\tErrorCategory[\"THIRD_PARTY\"] = \"THIRD_PARTY\";\n\treturn ErrorCategory;\n}({});\n/**\n* Base error class for the Mastra ecosystem.\n* It standardizes error reporting and can be extended for more specific error types.\n*/\nvar MastraBaseError = class extends Error {\n\tid;\n\tdomain;\n\tcategory;\n\tdetails = {};\n\tmessage;\n\tcause;\n\tconstructor(errorDefinition, originalError) {\n\t\tconst error = originalError ? getErrorFromUnknown(originalError, {\n\t\t\tserializeStack: false,\n\t\t\tfallbackMessage: \"Unknown error\"\n\t\t}) : void 0;\n\t\tconst message = errorDefinition.text ?? error?.message ?? \"Unknown error\";\n\t\tsuper(message, { cause: error });\n\t\tthis.id = errorDefinition.id;\n\t\tthis.domain = errorDefinition.domain;\n\t\tthis.category = errorDefinition.category;\n\t\tthis.details = errorDefinition.details ?? {};\n\t\tthis.message = message;\n\t\tthis.cause = error;\n\t\tObject.setPrototypeOf(this, new.target.prototype);\n\t}\n\t/**\n\t* Returns a structured representation of the error, useful for logging or API responses.\n\t*/\n\ttoJSONDetails() {\n\t\treturn {\n\t\t\tmessage: this.message,\n\t\t\tdomain: this.domain,\n\t\t\tcategory: this.category,\n\t\t\tdetails: this.details\n\t\t};\n\t}\n\ttoJSON() {\n\t\treturn {\n\t\t\tmessage: this.message,\n\t\t\tdomain: this.domain,\n\t\t\tcategory: this.category,\n\t\t\tcode: this.id,\n\t\t\tdetails: this.details,\n\t\t\tcause: this.cause?.toJSON?.()\n\t\t};\n\t}\n\ttoString() {\n\t\treturn JSON.stringify(this.toJSON());\n\t}\n};\nvar MastraError = class extends MastraBaseError {};\n/** Permanent workflow step failure — bypasses workflow retryConfig. */\nvar MastraNonRetryableError = class extends Error {\n\tisNonRetryable = true;\n\tconstructor(message, options) {\n\t\tsuper(message, options);\n\t\tthis.name = \"MastraNonRetryableError\";\n\t\tObject.setPrototypeOf(this, new.target.prototype);\n\t}\n};\n//#endregion\nexport { ErrorCategory, ErrorDomain, MastraBaseError, MastraError, MastraNonRetryableError, getErrorFromUnknown, safeParseErrorObject };\n\n//# sourceMappingURL=index.js.map","//#region src/routes/index.ts\nfunction generateRouteOpenAPI({ method, path, summary, description, tags = [], pathParamSchema, queryParamSchema, bodySchema, responseSchema, deprecated }) {\n\tconst route = {\n\t\tsummary: summary || `${method} ${path}`,\n\t\tdescription,\n\t\ttags,\n\t\tdeprecated,\n\t\tresponses: { 200: { description: \"Successful response\" } }\n\t};\n\tif (pathParamSchema || queryParamSchema) {\n\t\troute.requestParams = {};\n\t\tif (pathParamSchema) route.requestParams.path = pathParamSchema;\n\t\tif (queryParamSchema) route.requestParams.query = queryParamSchema;\n\t}\n\tif (bodySchema) route.requestBody = { content: { \"application/json\": { schema: bodySchema } } };\n\tif (responseSchema) route.responses[200] = {\n\t\tdescription: \"Successful response\",\n\t\tcontent: { \"application/json\": { schema: responseSchema } }\n\t};\n\treturn route;\n}\nfunction createRoute(config) {\n\tconst { summary, description, tags, deprecated, requiresAuth, requiresPermission, onValidationError, ...baseRoute } = config;\n\tconst openapi = config.method !== \"ALL\" ? generateRouteOpenAPI({\n\t\tmethod: config.method,\n\t\tpath: config.path,\n\t\tsummary,\n\t\tdescription,\n\t\ttags,\n\t\tpathParamSchema: config.pathParamSchema,\n\t\tqueryParamSchema: config.queryParamSchema,\n\t\tbodySchema: config.bodySchema,\n\t\tresponseSchema: config.responseSchema,\n\t\tdeprecated\n\t}) : void 0;\n\treturn {\n\t\t...baseRoute,\n\t\topenapi,\n\t\tdeprecated,\n\t\trequiresAuth,\n\t\trequiresPermission,\n\t\tonValidationError\n\t};\n}\nfunction createPublicRoute(config) {\n\treturn createRoute({\n\t\t...config,\n\t\trequiresAuth: false\n\t});\n}\n//#endregion\nexport { createPublicRoute, createRoute, generateRouteOpenAPI };\n\n//# sourceMappingURL=index.js.map","import { ErrorDomain, MastraError } from \"@internal/core/error\";\nimport { Readable } from \"stream\";\nimport { createRoute } from \"@internal/core/routes\";\nimport { z } from \"zod/v4\";\n//#region src/routes/index.ts\nconst voiceSpeakersResponseSchema = z.array(z.object({ voiceId: z.string() }).passthrough());\nconst generateSpeechBodySchema = z.object({\n\ttext: z.string(),\n\tspeakerId: z.string().optional()\n});\nconst transcribeSpeechBodySchema = z.object({\n\taudio: z.unknown(),\n\toptions: z.record(z.string(), z.unknown()).optional()\n});\nconst transcribeSpeechResponseSchema = z.object({ text: z.string() });\nconst getListenerResponseSchema = z.unknown();\nconst speakResponseSchema = z.unknown();\nconst agentIdPathParams = z.object({ agentId: z.string().describe(\"Agent ID\") });\nvar HTTPException = class extends Error {\n\tstatus;\n\tconstructor(status, options = {}) {\n\t\tsuper(options.message, { cause: options.cause });\n\t\tthis.status = status;\n\t\tthis.stack = options.stack || this.stack;\n\t}\n};\nfunction isMastraVoiceError(error) {\n\treturn error instanceof MastraError || typeof error === \"object\" && error !== null && \"domain\" in error && error.domain === ErrorDomain.MASTRA_VOICE || error instanceof Error && error.message === \"No voice provider configured\";\n}\nfunction handleError(error, defaultMessage) {\n\tconst apiError = error;\n\tthrow new HTTPException(apiError.status || apiError.details?.status || 500, {\n\t\tmessage: apiError.message || defaultMessage,\n\t\tstack: apiError.stack,\n\t\tcause: apiError.cause\n\t});\n}\nfunction validateBody(data) {\n\tfor (const [key, value] of Object.entries(data)) if (value === void 0 || value === null || value === \"\") throw new HTTPException(400, { message: `${key} is required` });\n}\nasync function getAgentFromSystem({ mastra, agentId, requestContext }) {\n\tconst logger = mastra.getLogger?.();\n\tif (!agentId) throw new HTTPException(400, { message: \"Agent ID is required\" });\n\tlet agent;\n\ttry {\n\t\tagent = mastra.getAgentById(agentId);\n\t} catch (error) {\n\t\tlogger?.debug?.(\"Error getting agent from mastra, searching agents for agent\", error);\n\t}\n\tif (!agent) {\n\t\tlogger?.debug?.(\"Agent not found, looking through sub-agents\", { agentId });\n\t\tconst agents = mastra.listAgents?.();\n\t\tif (Object.keys(agents || {}).length) for (const ag of Object.values(agents)) try {\n\t\t\tconst subAgent = (await ag.listAgents())[agentId];\n\t\t\tif (subAgent) {\n\t\t\t\tagent = subAgent;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t} catch (error) {\n\t\t\tlogger?.debug?.(\"Error getting agent from agent\", error);\n\t\t}\n\t}\n\tif (agent && mastra.getEditor) try {\n\t\tconst editorAgent = mastra.getEditor()?.agent;\n\t\tif (editorAgent) agent = await editorAgent.applyStoredOverrides(agent, { status: \"published\" }, requestContext);\n\t} catch (error) {\n\t\tlogger?.debug?.(\"Error applying stored overrides to code agent\", error);\n\t}\n\tif (!agent) {\n\t\tlogger?.debug?.(\"Agent not found in code-defined agents, looking in stored agents\", { agentId });\n\t\ttry {\n\t\t\tagent = await mastra.getEditor?.()?.agent.getById(agentId) ?? null;\n\t\t} catch (error) {\n\t\t\tlogger?.debug?.(\"Error getting stored agent\", error);\n\t\t}\n\t}\n\tif (!agent) throw new HTTPException(404, { message: `Agent with id ${agentId} not found` });\n\treturn agent;\n}\nconst GET_SPEAKERS_ROUTE = createRoute({\n\tmethod: \"GET\",\n\tpath: \"/agents/:agentId/voice/speakers\",\n\tresponseType: \"json\",\n\tsummary: \"Get voice speakers\",\n\tdescription: \"Returns available voice speakers for the specified agent\",\n\ttags: [\"Agents\", \"Voice\"],\n\trequiresAuth: true,\n\tpathParamSchema: agentIdPathParams,\n\tresponseSchema: voiceSpeakersResponseSchema,\n\thandler: async ({ mastra, agentId, requestContext }) => {\n\t\ttry {\n\t\t\tif (!agentId) throw new HTTPException(400, { message: \"Agent ID is required\" });\n\t\t\tconst voice = await (await getAgentFromSystem({\n\t\t\t\tmastra,\n\t\t\t\tagentId,\n\t\t\t\trequestContext\n\t\t\t})).getVoice({ requestContext });\n\t\t\treturn await Promise.resolve().then(() => voice.getSpeakers()).catch((err) => {\n\t\t\t\tif (isMastraVoiceError(err)) return [];\n\t\t\t\tthrow err;\n\t\t\t});\n\t\t} catch (error) {\n\t\t\treturn handleError(error, \"Error getting speakers\");\n\t\t}\n\t}\n});\nconst GET_SPEAKERS_DEPRECATED_ROUTE = createRoute({\n\tmethod: \"GET\",\n\tpath: \"/agents/:agentId/speakers\",\n\tresponseType: \"json\",\n\tsummary: \"Get available speakers for an agent\",\n\tdescription: \"[DEPRECATED] Use /agents/:agentId/voice/speakers instead. Get available speakers for an agent\",\n\ttags: [\"Agents\", \"Voice\"],\n\trequiresAuth: true,\n\tdeprecated: true,\n\tpathParamSchema: agentIdPathParams,\n\tresponseSchema: voiceSpeakersResponseSchema,\n\thandler: GET_SPEAKERS_ROUTE.handler\n});\nconst GENERATE_SPEECH_ROUTE = createRoute({\n\tmethod: \"POST\",\n\tpath: \"/agents/:agentId/voice/speak\",\n\tresponseType: \"datastream-response\",\n\tsummary: \"Generate speech\",\n\tdescription: \"Generates speech audio from text using the agent voice configuration\",\n\ttags: [\"Agents\", \"Voice\"],\n\trequiresAuth: true,\n\tpathParamSchema: agentIdPathParams,\n\tbodySchema: generateSpeechBodySchema,\n\tresponseSchema: speakResponseSchema,\n\thandler: async ({ mastra, agentId, text, speakerId, requestContext }) => {\n\t\ttry {\n\t\t\tif (!agentId) throw new HTTPException(400, { message: \"Agent ID is required\" });\n\t\t\tvalidateBody({ text });\n\t\t\tconst voice = await (await getAgentFromSystem({\n\t\t\t\tmastra,\n\t\t\t\tagentId,\n\t\t\t\trequestContext\n\t\t\t})).getVoice({ requestContext });\n\t\t\tif (!voice) throw new HTTPException(400, { message: \"Agent does not have voice capabilities\" });\n\t\t\tconst audioStream = await Promise.resolve().then(() => voice.speak(text, { speaker: speakerId })).catch((err) => {\n\t\t\t\tif (isMastraVoiceError(err)) throw new HTTPException(400, { message: err.message });\n\t\t\t\tthrow err;\n\t\t\t});\n\t\t\tif (!audioStream) throw new HTTPException(500, { message: \"Failed to generate speech\" });\n\t\t\tconst webStream = audioStream instanceof ReadableStream ? audioStream : audioStream instanceof Readable ? Readable.toWeb(audioStream) : audioStream;\n\t\t\treturn new Response(webStream, { headers: { \"Content-Type\": \"audio/mpeg\" } });\n\t\t} catch (error) {\n\t\t\treturn handleError(error, \"Error generating speech\");\n\t\t}\n\t}\n});\nconst GENERATE_SPEECH_DEPRECATED_ROUTE = createRoute({\n\tmethod: \"POST\",\n\tpath: \"/agents/:agentId/speak\",\n\tresponseType: \"datastream-response\",\n\tsummary: \"Convert text to speech\",\n\tdescription: \"[DEPRECATED] Use /agents/:agentId/voice/speak instead. Convert text to speech using the agent's voice provider\",\n\ttags: [\"Agents\", \"Voice\"],\n\trequiresAuth: true,\n\tdeprecated: true,\n\tpathParamSchema: agentIdPathParams,\n\tbodySchema: generateSpeechBodySchema,\n\tresponseSchema: speakResponseSchema,\n\thandler: GENERATE_SPEECH_ROUTE.handler\n});\nconst TRANSCRIBE_SPEECH_ROUTE = createRoute({\n\tmethod: \"POST\",\n\tpath: \"/agents/:agentId/voice/listen\",\n\tresponseType: \"json\",\n\tsummary: \"Transcribe speech\",\n\tdescription: \"Transcribes speech audio to text using the agent voice configuration\",\n\ttags: [\"Agents\", \"Voice\"],\n\trequiresAuth: true,\n\tpathParamSchema: agentIdPathParams,\n\tbodySchema: transcribeSpeechBodySchema,\n\tresponseSchema: transcribeSpeechResponseSchema,\n\thandler: async ({ mastra, agentId, audio, options, requestContext }) => {\n\t\ttry {\n\t\t\tif (!agentId) throw new HTTPException(400, { message: \"Agent ID is required\" });\n\t\t\tif (!audio) throw new HTTPException(400, { message: \"Audio data is required\" });\n\t\t\tconst voice = await (await getAgentFromSystem({\n\t\t\t\tmastra,\n\t\t\t\tagentId,\n\t\t\t\trequestContext\n\t\t\t})).getVoice({ requestContext });\n\t\t\tif (!voice) throw new HTTPException(400, { message: \"Agent does not have voice capabilities\" });\n\t\t\tconst audioStream = new Readable();\n\t\t\taudioStream.push(audio);\n\t\t\taudioStream.push(null);\n\t\t\treturn { text: await voice.listen(audioStream, options) };\n\t\t} catch (error) {\n\t\t\treturn handleError(error, \"Error transcribing speech\");\n\t\t}\n\t}\n});\nconst TRANSCRIBE_SPEECH_DEPRECATED_ROUTE = createRoute({\n\tmethod: \"POST\",\n\tpath: \"/agents/:agentId/listen\",\n\tresponseType: \"json\",\n\tsummary: \"Convert speech to text\",\n\tdescription: \"[DEPRECATED] Use /agents/:agentId/voice/listen instead. Convert speech to text using the agent's voice provider. Additional provider-specific options can be passed as query parameters.\",\n\ttags: [\"Agents\", \"Voice\"],\n\trequiresAuth: true,\n\tdeprecated: true,\n\tpathParamSchema: agentIdPathParams,\n\tbodySchema: transcribeSpeechBodySchema,\n\tresponseSchema: transcribeSpeechResponseSchema,\n\thandler: TRANSCRIBE_SPEECH_ROUTE.handler\n});\nconst GET_LISTENER_ROUTE = createRoute({\n\tmethod: \"GET\",\n\tpath: \"/agents/:agentId/voice/listener\",\n\tresponseType: \"json\",\n\tsummary: \"Get voice listener\",\n\tdescription: \"Returns the voice listener configuration for the agent\",\n\ttags: [\"Agents\", \"Voice\"],\n\trequiresAuth: true,\n\tpathParamSchema: agentIdPathParams,\n\tresponseSchema: getListenerResponseSchema,\n\thandler: async ({ mastra, agentId, requestContext }) => {\n\t\ttry {\n\t\t\tif (!agentId) throw new HTTPException(400, { message: \"Agent ID is required\" });\n\t\t\tconst agent = mastra.getAgentById(agentId);\n\t\t\tif (!agent) throw new HTTPException(404, { message: \"Agent not found\" });\n\t\t\tconst voice = await agent.getVoice({ requestContext });\n\t\t\treturn await Promise.resolve().then(() => voice.getListener()).catch((err) => {\n\t\t\t\tif (isMastraVoiceError(err)) return { enabled: false };\n\t\t\t\tthrow err;\n\t\t\t});\n\t\t} catch (error) {\n\t\t\treturn handleError(error, \"Error getting listeners\");\n\t\t}\n\t}\n});\n//#endregion\nexport { GENERATE_SPEECH_DEPRECATED_ROUTE, GENERATE_SPEECH_ROUTE, GET_LISTENER_ROUTE, GET_SPEAKERS_DEPRECATED_ROUTE, GET_SPEAKERS_ROUTE, TRANSCRIBE_SPEECH_DEPRECATED_ROUTE, TRANSCRIBE_SPEECH_ROUTE, generateSpeechBodySchema, getListenerResponseSchema, speakResponseSchema, transcribeSpeechBodySchema, transcribeSpeechResponseSchema, voiceSpeakersResponseSchema };\n\n//# sourceMappingURL=index.js.map"],"mappings":"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"}