@mastra/server 1.29.2-alpha.0 → 1.30.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 (155) hide show
  1. package/CHANGELOG.md +242 -0
  2. package/dist/{chunk-LWK57QIA.cjs → chunk-2CFH32YO.cjs} +5 -5
  3. package/dist/{chunk-LWK57QIA.cjs.map → chunk-2CFH32YO.cjs.map} +1 -1
  4. package/dist/{chunk-BR6MQNNL.js → chunk-2HVAN7FF.js} +12 -3
  5. package/dist/chunk-2HVAN7FF.js.map +1 -0
  6. package/dist/{chunk-QDNKVREO.js → chunk-2PF5ZR2Q.js} +9 -9
  7. package/dist/{chunk-QDNKVREO.js.map → chunk-2PF5ZR2Q.js.map} +1 -1
  8. package/dist/{chunk-HYI4ZAV7.js → chunk-43CWQ4M3.js} +8 -3
  9. package/dist/chunk-43CWQ4M3.js.map +1 -0
  10. package/dist/{chunk-JJT4GBDZ.js → chunk-4BSJHDYP.js} +3 -3
  11. package/dist/{chunk-JJT4GBDZ.js.map → chunk-4BSJHDYP.js.map} +1 -1
  12. package/dist/{chunk-X2XQFFXR.js → chunk-4GOK3PCO.js} +5 -5
  13. package/dist/{chunk-X2XQFFXR.js.map → chunk-4GOK3PCO.js.map} +1 -1
  14. package/dist/{chunk-4Y5P2GYV.js → chunk-4J4K36CU.js} +3 -3
  15. package/dist/{chunk-4Y5P2GYV.js.map → chunk-4J4K36CU.js.map} +1 -1
  16. package/dist/{chunk-RQXUPTUI.js → chunk-5OOYXBPG.js} +7 -3
  17. package/dist/chunk-5OOYXBPG.js.map +1 -0
  18. package/dist/{chunk-IO7PPBD4.js → chunk-DBPJYWAH.js} +47 -86
  19. package/dist/chunk-DBPJYWAH.js.map +1 -0
  20. package/dist/{chunk-W6TZ2TNY.cjs → chunk-DZZBC6UV.cjs} +7 -7
  21. package/dist/{chunk-W6TZ2TNY.cjs.map → chunk-DZZBC6UV.cjs.map} +1 -1
  22. package/dist/{chunk-I3BHHWHT.cjs → chunk-EFW6MWXU.cjs} +4 -2
  23. package/dist/chunk-EFW6MWXU.cjs.map +1 -0
  24. package/dist/{chunk-2Z5KJJDZ.js → chunk-EPM6ILRW.js} +14 -3
  25. package/dist/chunk-EPM6ILRW.js.map +1 -0
  26. package/dist/{chunk-HWK6K3DW.cjs → chunk-EQR4MMSL.cjs} +7 -7
  27. package/dist/{chunk-HWK6K3DW.cjs.map → chunk-EQR4MMSL.cjs.map} +1 -1
  28. package/dist/{chunk-VFHNACRY.js → chunk-FN4GIXQQ.js} +5 -5
  29. package/dist/{chunk-VFHNACRY.js.map → chunk-FN4GIXQQ.js.map} +1 -1
  30. package/dist/{chunk-YO7N5VOP.js → chunk-GEXJ4LPZ.js} +3 -3
  31. package/dist/{chunk-YO7N5VOP.js.map → chunk-GEXJ4LPZ.js.map} +1 -1
  32. package/dist/{chunk-XT6GKIYW.cjs → chunk-GUWIV3ZN.cjs} +9 -2
  33. package/dist/chunk-GUWIV3ZN.cjs.map +1 -0
  34. package/dist/{chunk-PSQNWPPT.cjs → chunk-H6NJWTER.cjs} +4 -4
  35. package/dist/{chunk-PSQNWPPT.cjs.map → chunk-H6NJWTER.cjs.map} +1 -1
  36. package/dist/{chunk-B5RUOKFI.cjs → chunk-HR4M27JP.cjs} +77 -77
  37. package/dist/{chunk-B5RUOKFI.cjs.map → chunk-HR4M27JP.cjs.map} +1 -1
  38. package/dist/{chunk-VLNRGJEM.js → chunk-JZNOIGOQ.js} +3 -3
  39. package/dist/{chunk-VLNRGJEM.js.map → chunk-JZNOIGOQ.js.map} +1 -1
  40. package/dist/{chunk-VR623NIZ.cjs → chunk-KI7TGMMV.cjs} +276 -160
  41. package/dist/chunk-KI7TGMMV.cjs.map +1 -0
  42. package/dist/{chunk-P7QF3UG4.js → chunk-KJLIMNMI.js} +3 -3
  43. package/dist/{chunk-P7QF3UG4.js.map → chunk-KJLIMNMI.js.map} +1 -1
  44. package/dist/{chunk-WC4RIS4D.js → chunk-KW2MZGRE.js} +3 -3
  45. package/dist/{chunk-WC4RIS4D.js.map → chunk-KW2MZGRE.js.map} +1 -1
  46. package/dist/{chunk-IA7PNRIA.cjs → chunk-LI3EL57Z.cjs} +11 -11
  47. package/dist/{chunk-IA7PNRIA.cjs.map → chunk-LI3EL57Z.cjs.map} +1 -1
  48. package/dist/{chunk-33WVA4ZN.cjs → chunk-LKS22ETT.cjs} +19 -19
  49. package/dist/{chunk-33WVA4ZN.cjs.map → chunk-LKS22ETT.cjs.map} +1 -1
  50. package/dist/{chunk-NO3V76EI.cjs → chunk-LY6Q36YN.cjs} +17 -17
  51. package/dist/{chunk-NO3V76EI.cjs.map → chunk-LY6Q36YN.cjs.map} +1 -1
  52. package/dist/{chunk-UOWUXTUO.cjs → chunk-NGYGE7QW.cjs} +27 -27
  53. package/dist/{chunk-UOWUXTUO.cjs.map → chunk-NGYGE7QW.cjs.map} +1 -1
  54. package/dist/{chunk-JVQ5EXNJ.js → chunk-OJRAH5VV.js} +4 -3
  55. package/dist/chunk-OJRAH5VV.js.map +1 -0
  56. package/dist/{chunk-JOC7WKJ2.cjs → chunk-ONPPBXWB.cjs} +48 -48
  57. package/dist/{chunk-JOC7WKJ2.cjs.map → chunk-ONPPBXWB.cjs.map} +1 -1
  58. package/dist/{chunk-QP5DRBMC.js → chunk-QL62CV5V.js} +5 -5
  59. package/dist/{chunk-QP5DRBMC.js.map → chunk-QL62CV5V.js.map} +1 -1
  60. package/dist/{chunk-6SUTXWOK.cjs → chunk-RPMBPQNO.cjs} +12 -3
  61. package/dist/chunk-RPMBPQNO.cjs.map +1 -0
  62. package/dist/{chunk-PRK4GVU6.js → chunk-RTD3NZ4G.js} +4 -4
  63. package/dist/{chunk-PRK4GVU6.js.map → chunk-RTD3NZ4G.js.map} +1 -1
  64. package/dist/{chunk-RPOKTN4O.cjs → chunk-SEAOI56Z.cjs} +7 -7
  65. package/dist/{chunk-RPOKTN4O.cjs.map → chunk-SEAOI56Z.cjs.map} +1 -1
  66. package/dist/{chunk-K33KUMJY.js → chunk-SSMLJV2K.js} +5 -5
  67. package/dist/{chunk-K33KUMJY.js.map → chunk-SSMLJV2K.js.map} +1 -1
  68. package/dist/{chunk-DIX6JWN4.cjs → chunk-TF7NSMHW.cjs} +7 -2
  69. package/dist/chunk-TF7NSMHW.cjs.map +1 -0
  70. package/dist/{chunk-B7SBAXEP.cjs → chunk-TKHLXCSZ.cjs} +7 -7
  71. package/dist/{chunk-B7SBAXEP.cjs.map → chunk-TKHLXCSZ.cjs.map} +1 -1
  72. package/dist/{chunk-JGHGC64S.cjs → chunk-UQLJDNXU.cjs} +4 -4
  73. package/dist/{chunk-JGHGC64S.cjs.map → chunk-UQLJDNXU.cjs.map} +1 -1
  74. package/dist/{chunk-YGQNINW7.js → chunk-UZRD3SEA.js} +146 -31
  75. package/dist/chunk-UZRD3SEA.js.map +1 -0
  76. package/dist/{chunk-O76KG2FC.js → chunk-VZNOKYP5.js} +3 -3
  77. package/dist/{chunk-O76KG2FC.js.map → chunk-VZNOKYP5.js.map} +1 -1
  78. package/dist/{chunk-5BXP7S4P.cjs → chunk-XG2VRXG5.cjs} +15 -4
  79. package/dist/chunk-XG2VRXG5.cjs.map +1 -0
  80. package/dist/{chunk-R4DZSQYI.cjs → chunk-Y2SA2JZT.cjs} +138 -177
  81. package/dist/chunk-Y2SA2JZT.cjs.map +1 -0
  82. package/dist/docs/SKILL.md +1 -1
  83. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  84. package/dist/{observational-memory-JX7VDONY-AOV7JL6X.js → observational-memory-ZS2HJPUO-2ZBP2HCP.js} +3 -3
  85. package/dist/{observational-memory-JX7VDONY-AOV7JL6X.js.map → observational-memory-ZS2HJPUO-2ZBP2HCP.js.map} +1 -1
  86. package/dist/{observational-memory-JX7VDONY-6J77R6HH.cjs → observational-memory-ZS2HJPUO-472SI4TK.cjs} +26 -26
  87. package/dist/{observational-memory-JX7VDONY-6J77R6HH.cjs.map → observational-memory-ZS2HJPUO-472SI4TK.cjs.map} +1 -1
  88. package/dist/server/auth/helpers.d.ts.map +1 -1
  89. package/dist/server/auth/index.cjs +14 -14
  90. package/dist/server/auth/index.js +1 -1
  91. package/dist/server/constants.d.ts +1 -0
  92. package/dist/server/constants.d.ts.map +1 -1
  93. package/dist/server/handlers/a2a.cjs +10 -10
  94. package/dist/server/handlers/a2a.js +1 -1
  95. package/dist/server/handlers/agent-builder.cjs +16 -16
  96. package/dist/server/handlers/agent-builder.js +1 -1
  97. package/dist/server/handlers/agents.cjs +41 -37
  98. package/dist/server/handlers/agents.d.ts +14 -2
  99. package/dist/server/handlers/agents.d.ts.map +1 -1
  100. package/dist/server/handlers/agents.js +1 -1
  101. package/dist/server/handlers/auth.cjs +11 -11
  102. package/dist/server/handlers/auth.js +1 -1
  103. package/dist/server/handlers/conversations.cjs +5 -5
  104. package/dist/server/handlers/conversations.js +1 -1
  105. package/dist/server/handlers/logs.cjs +4 -4
  106. package/dist/server/handlers/logs.js +1 -1
  107. package/dist/server/handlers/memory.cjs +27 -27
  108. package/dist/server/handlers/memory.js +1 -1
  109. package/dist/server/handlers/responses.cjs +4 -4
  110. package/dist/server/handlers/responses.js +1 -1
  111. package/dist/server/handlers/responses.storage.cjs +8 -8
  112. package/dist/server/handlers/responses.storage.js +1 -1
  113. package/dist/server/handlers/scores.cjs +7 -7
  114. package/dist/server/handlers/scores.js +1 -1
  115. package/dist/server/handlers/tools.cjs +6 -6
  116. package/dist/server/handlers/tools.js +1 -1
  117. package/dist/server/handlers/utils.cjs +9 -9
  118. package/dist/server/handlers/utils.js +1 -1
  119. package/dist/server/handlers/voice.cjs +8 -8
  120. package/dist/server/handlers/voice.js +1 -1
  121. package/dist/server/handlers/workflows.cjs +24 -24
  122. package/dist/server/handlers/workflows.d.ts +2 -0
  123. package/dist/server/handlers/workflows.d.ts.map +1 -1
  124. package/dist/server/handlers/workflows.js +1 -1
  125. package/dist/server/handlers.cjs +22 -22
  126. package/dist/server/handlers.js +11 -11
  127. package/dist/server/schemas/agents.d.ts +12 -0
  128. package/dist/server/schemas/agents.d.ts.map +1 -1
  129. package/dist/server/schemas/index.cjs +69 -61
  130. package/dist/server/schemas/index.js +3 -3
  131. package/dist/server/schemas/workflows.d.ts +8 -0
  132. package/dist/server/schemas/workflows.d.ts.map +1 -1
  133. package/dist/server/server-adapter/index.cjs +136 -131
  134. package/dist/server/server-adapter/index.cjs.map +1 -1
  135. package/dist/server/server-adapter/index.d.ts.map +1 -1
  136. package/dist/server/server-adapter/index.js +19 -14
  137. package/dist/server/server-adapter/index.js.map +1 -1
  138. package/dist/server/server-adapter/routes/agents.d.ts.map +1 -1
  139. package/dist/server/server-adapter/routes/workflows.d.ts +2 -0
  140. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -1
  141. package/package.json +8 -8
  142. package/dist/chunk-2Z5KJJDZ.js.map +0 -1
  143. package/dist/chunk-5BXP7S4P.cjs.map +0 -1
  144. package/dist/chunk-6SUTXWOK.cjs.map +0 -1
  145. package/dist/chunk-BR6MQNNL.js.map +0 -1
  146. package/dist/chunk-DIX6JWN4.cjs.map +0 -1
  147. package/dist/chunk-HYI4ZAV7.js.map +0 -1
  148. package/dist/chunk-I3BHHWHT.cjs.map +0 -1
  149. package/dist/chunk-IO7PPBD4.js.map +0 -1
  150. package/dist/chunk-JVQ5EXNJ.js.map +0 -1
  151. package/dist/chunk-R4DZSQYI.cjs.map +0 -1
  152. package/dist/chunk-RQXUPTUI.js.map +0 -1
  153. package/dist/chunk-VR623NIZ.cjs.map +0 -1
  154. package/dist/chunk-XT6GKIYW.cjs.map +0 -1
  155. package/dist/chunk-YGQNINW7.js.map +0 -1
@@ -1,6 +1,6 @@
1
1
  import { agentCardResponseSchema, a2aAgentIdPathParams, agentExecutionResponseSchema, agentExecutionBodySchema } from './chunk-TJNZEYLA.js';
2
- import { getPublicOrigin } from './chunk-JJT4GBDZ.js';
3
- import { getAgentFromSystem } from './chunk-YGQNINW7.js';
2
+ import { getPublicOrigin } from './chunk-4BSJHDYP.js';
3
+ import { getAgentFromSystem } from './chunk-UZRD3SEA.js';
4
4
  import { convertInstructionsToString } from './chunk-ERKUFMCT.js';
5
5
  import { createRoute } from './chunk-PA2BYLKF.js';
6
6
  import { __export } from './chunk-PR4QN5HX.js';
@@ -867,5 +867,5 @@ var AGENT_EXECUTION_ROUTE = createRoute({
867
867
  });
868
868
 
869
869
  export { AGENT_EXECUTION_ROUTE, GET_AGENT_CARD_ROUTE, a2a_exports, getAgentCardByIdHandler, getAgentExecutionHandler, handleMessageSend, handleMessageStream, handleTaskCancel, handleTaskGet, handleTaskResubscribe };
870
- //# sourceMappingURL=chunk-PRK4GVU6.js.map
871
- //# sourceMappingURL=chunk-PRK4GVU6.js.map
870
+ //# sourceMappingURL=chunk-RTD3NZ4G.js.map
871
+ //# sourceMappingURL=chunk-RTD3NZ4G.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/a2a.ts","../src/server/a2a/protocol.ts","../src/server/a2a/tasks.ts"],"names":["MastraA2AError"],"mappings":"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","file":"chunk-PRK4GVU6.js","sourcesContent":["import { MastraA2AError } from '@mastra/core/a2a';\nimport type {\n MessageSendParams,\n TaskQueryParams,\n TaskIdParams,\n AgentCard,\n TaskStatus,\n TaskState,\n} from '@mastra/core/a2a';\nimport type { Agent } from '@mastra/core/agent';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport { z } from 'zod/v4';\nimport { convertToCoreMessage, normalizeError, createSuccessResponse } from '../a2a/protocol';\nimport type { InMemoryTaskStore } from '../a2a/store';\nimport { applyUpdateToTask, createTaskContext, loadOrCreateTask } from '../a2a/tasks';\nimport {\n a2aAgentIdPathParams,\n agentExecutionBodySchema,\n agentCardResponseSchema,\n agentExecutionResponseSchema,\n} from '../schemas/a2a';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport type { Context } from '../types';\nimport { convertInstructionsToString } from '../utils';\nimport { getAgentFromSystem } from './agents';\nimport { getPublicOrigin } from './auth';\n\nconst messageSendParamsSchema = z.object({\n message: z.object({\n role: z.enum(['user', 'agent']),\n parts: z.array(\n z.object({\n kind: z.enum(['text']),\n text: z.string(),\n }),\n ),\n kind: z.literal('message'),\n messageId: z.string(),\n contextId: z.string().optional(),\n taskId: z.string().optional(),\n referenceTaskIds: z.array(z.string()).optional(),\n extensions: z.array(z.string()).optional(),\n metadata: z.record(z.string(), z.any()).optional(),\n }),\n});\n\nfunction createAgentCardDefaults(): Pick<\n AgentCard,\n | 'protocolVersion'\n | 'additionalInterfaces'\n | 'supportsAuthenticatedExtendedCard'\n | 'security'\n | 'securitySchemes'\n | 'capabilities'\n | 'defaultInputModes'\n | 'defaultOutputModes'\n> {\n return {\n protocolVersion: '0.3.0',\n additionalInterfaces: [],\n supportsAuthenticatedExtendedCard: false,\n security: [],\n securitySchemes: {},\n capabilities: {\n streaming: true,\n pushNotifications: false,\n stateTransitionHistory: false,\n extensions: [],\n },\n defaultInputModes: ['text/plain'],\n defaultOutputModes: ['text/plain'],\n };\n}\n\nexport async function getAgentCardByIdHandler({\n mastra,\n agentId,\n executionUrl = `/a2a/${agentId}`,\n provider = {\n organization: 'Mastra',\n url: 'https://mastra.ai',\n },\n version = '1.0',\n requestContext,\n}: Context & {\n requestContext: RequestContext;\n agentId: keyof ReturnType<typeof mastra.listAgents>;\n executionUrl?: string;\n version?: string;\n provider?: {\n organization: string;\n url: string;\n };\n}): Promise<AgentCard> {\n const agent = await getAgentFromSystem({ mastra, agentId: agentId as string });\n\n const [instructions, tools]: [\n Awaited<ReturnType<typeof agent.getInstructions>>,\n Awaited<ReturnType<typeof agent.listTools>>,\n ] = await Promise.all([agent.getInstructions({ requestContext }), agent.listTools({ requestContext })]);\n\n // Extract agent information to create the AgentCard\n const agentCard: AgentCard = {\n name: agent.id || (agentId as string),\n description: convertInstructionsToString(instructions),\n url: executionUrl,\n provider,\n version,\n ...createAgentCardDefaults(),\n // Convert agent tools to skills format for A2A protocol\n skills: Object.entries(tools).map(([toolId, tool]) => ({\n id: toolId,\n name: toolId,\n description: tool.description || `Tool: ${toolId}`,\n // Optional fields\n tags: ['tool'],\n })),\n };\n\n return agentCard;\n}\n\nfunction getA2AExecutionUrl({\n agentId,\n request,\n routePrefix,\n}: {\n agentId: string;\n request?: Request;\n routePrefix?: string;\n}) {\n const executionPath = `${routePrefix ?? ''}/a2a/${agentId}`;\n\n if (!request) {\n return executionPath;\n }\n\n return `${getPublicOrigin(request)}${executionPath}`;\n}\n\nfunction validateMessageSendParams(params: MessageSendParams) {\n try {\n messageSendParamsSchema.parse(params);\n } catch (error) {\n if (error instanceof z.ZodError) {\n throw MastraA2AError.invalidParams((error as z.ZodError).issues[0]!.message);\n }\n\n throw error;\n }\n}\n\nfunction createArtifactUpdate({\n taskId,\n contextId,\n text,\n data,\n}: {\n taskId: string;\n contextId: string;\n text?: string;\n data?: Record<string, unknown>;\n}) {\n const parts = [\n ...(text ? [{ kind: 'text' as const, text }] : []),\n ...(data ? [{ kind: 'data' as const, data }] : []),\n ];\n\n if (parts.length === 0) {\n return undefined;\n }\n\n return {\n kind: 'artifact-update' as const,\n taskId,\n contextId,\n lastChunk: true,\n artifact: {\n artifactId: `${taskId}:response`,\n name: data ? 'response.json' : 'response.txt',\n parts,\n },\n };\n}\n\nfunction createTextChunkArtifactUpdate({\n taskId,\n contextId,\n text,\n append,\n lastChunk,\n}: {\n taskId: string;\n contextId: string;\n text: string;\n append?: boolean;\n lastChunk?: boolean;\n}) {\n return {\n kind: 'artifact-update' as const,\n taskId,\n contextId,\n ...(append ? { append: true } : {}),\n ...(lastChunk !== undefined ? { lastChunk } : {}),\n artifact: {\n artifactId: `${taskId}:response:text`,\n name: 'response.txt',\n parts: [{ kind: 'text' as const, text }],\n },\n };\n}\n\nfunction createDataArtifactUpdate({\n taskId,\n contextId,\n data,\n lastChunk,\n}: {\n taskId: string;\n contextId: string;\n data: Record<string, unknown>;\n lastChunk?: boolean;\n}) {\n return {\n kind: 'artifact-update' as const,\n taskId,\n contextId,\n ...(lastChunk !== undefined ? { lastChunk } : {}),\n artifact: {\n artifactId: `${taskId}:response:data`,\n name: 'response.json',\n parts: [{ kind: 'data' as const, data }],\n },\n };\n}\n\nfunction extractFullStreamTextDelta(value: unknown): string | null {\n if (typeof value !== 'object' || value === null || !('type' in value)) {\n return null;\n }\n\n const chunk = value as {\n type: string;\n payload?: { text?: string; delta?: string };\n textDelta?: string;\n text?: string;\n delta?: string;\n };\n\n switch (chunk.type) {\n case 'text-delta':\n if (typeof chunk.payload?.text === 'string') {\n return chunk.payload.text;\n }\n\n if (typeof chunk.payload?.delta === 'string') {\n return chunk.payload.delta;\n }\n\n if (typeof chunk.textDelta === 'string') {\n return chunk.textDelta;\n }\n\n if (typeof chunk.delta === 'string') {\n return chunk.delta;\n }\n\n if (typeof chunk.text === 'string') {\n return chunk.text;\n }\n\n return null;\n default:\n return null;\n }\n}\n\nfunction extractFinalStructuredObject(value: unknown): Record<string, unknown> | undefined {\n if (typeof value !== 'object' || value === null || !('type' in value)) {\n return undefined;\n }\n\n const chunk = value as {\n type: string;\n object?: unknown;\n payload?: { object?: unknown };\n };\n\n if (chunk.type !== 'object-result') {\n return undefined;\n }\n\n const objectValue = chunk.payload?.object ?? chunk.object;\n return objectValue && typeof objectValue === 'object' ? (objectValue as Record<string, unknown>) : undefined;\n}\n\nexport async function handleMessageSend({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n logger,\n requestContext,\n}: {\n requestId: number | string;\n params: MessageSendParams;\n taskStore: InMemoryTaskStore;\n agent: Agent;\n agentId: string;\n logger?: IMastraLogger;\n requestContext: RequestContext;\n}) {\n validateMessageSendParams(params);\n\n const { message, metadata } = params;\n const { contextId } = message;\n const taskId = message.taskId || crypto.randomUUID();\n\n // Load or create task\n let currentData = await loadOrCreateTask({\n taskId,\n taskStore,\n agentId,\n message,\n contextId,\n metadata,\n });\n\n // Use the new TaskContext definition, passing history\n const context = createTaskContext({\n task: currentData,\n userMessage: message,\n history: currentData.history || [],\n activeCancellations: taskStore.activeCancellations,\n });\n\n try {\n // Pass contextId as threadId for memory persistence across A2A conversations\n // Allow user to pass resourceId via metadata, fall back to agentId\n const resourceId = (metadata?.resourceId as string) ?? (message.metadata?.resourceId as string) ?? agentId;\n const result = await agent.generate([convertToCoreMessage(message)], {\n runId: taskId,\n requestContext,\n ...(contextId ? { threadId: contextId, resourceId } : {}),\n });\n\n const artifactUpdate = createArtifactUpdate({\n taskId: currentData.id,\n contextId: currentData.contextId,\n text: result.text,\n data: result.object as Record<string, unknown> | undefined,\n });\n\n if (artifactUpdate) {\n currentData = applyUpdateToTask(currentData, artifactUpdate);\n }\n\n currentData = applyUpdateToTask(currentData, {\n state: 'completed',\n message: undefined,\n });\n\n // Store execution details in task metadata\n currentData.metadata = {\n ...currentData.metadata,\n execution: {\n toolCalls: result.toolCalls,\n toolResults: result.toolResults,\n usage: result.usage,\n finishReason: result.finishReason,\n },\n };\n\n await taskStore.save({ agentId, data: currentData });\n context.task = currentData;\n } catch (handlerError) {\n // If handler throws, apply 'failed' status, save, and rethrow\n const failureStatusUpdate: Omit<TaskStatus, 'timestamp'> = {\n state: 'failed',\n message: {\n messageId: crypto.randomUUID(),\n role: 'agent',\n parts: [\n {\n kind: 'text',\n text: `Handler failed: ${handlerError instanceof Error ? handlerError.message : String(handlerError)}`,\n },\n ],\n kind: 'message',\n },\n };\n currentData = applyUpdateToTask(currentData, failureStatusUpdate);\n\n try {\n await taskStore.save({ agentId, data: currentData });\n } catch (saveError) {\n // @ts-expect-error saveError is an unknown error\n logger?.error(`Failed to save task ${currentData.id} after handler error:`, saveError?.message);\n }\n\n return normalizeError(handlerError, requestId, currentData.id, logger); // Rethrow original error\n }\n\n // The loop finished, send the final task state\n return createSuccessResponse(requestId, currentData);\n}\n\nexport async function handleTaskGet({\n requestId,\n taskStore,\n agentId,\n taskId,\n}: {\n requestId: number | string;\n taskStore: InMemoryTaskStore;\n agentId: string;\n taskId: string;\n}) {\n const task = await taskStore.load({ agentId, taskId });\n\n if (!task) {\n throw MastraA2AError.taskNotFound(taskId);\n }\n\n return createSuccessResponse(requestId, task);\n}\n\nexport async function* handleMessageStream({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n logger,\n requestContext,\n}: {\n requestId: number | string;\n params: MessageSendParams;\n taskStore: InMemoryTaskStore;\n agent: Agent;\n agentId: string;\n logger?: IMastraLogger;\n requestContext: RequestContext;\n}) {\n validateMessageSendParams(params);\n\n const { message, metadata } = params;\n const { contextId } = message;\n const taskId = message.taskId || crypto.randomUUID();\n\n let currentData = await loadOrCreateTask({\n taskId,\n taskStore,\n agentId,\n message,\n contextId,\n metadata,\n });\n\n currentData = applyUpdateToTask(currentData, {\n state: 'working',\n message: {\n messageId: crypto.randomUUID(),\n kind: 'message',\n role: 'agent',\n parts: [{ kind: 'text', text: 'Generating response...' }],\n },\n });\n\n await taskStore.save({ agentId, data: currentData });\n\n yield createSuccessResponse(requestId, currentData);\n\n try {\n const resourceId = (metadata?.resourceId as string) ?? (message.metadata?.resourceId as string) ?? agentId;\n const result = await agent.stream([convertToCoreMessage(message)], {\n runId: taskId,\n requestContext,\n ...(contextId ? { threadId: contextId, resourceId } : {}),\n });\n let sawTextArtifact = false;\n let pendingTextChunk: string | undefined;\n let structuredData: Record<string, unknown> | undefined;\n\n for await (const chunk of result.fullStream) {\n const textDelta = extractFullStreamTextDelta(chunk);\n if (textDelta !== null) {\n if (!pendingTextChunk) {\n pendingTextChunk = textDelta;\n continue;\n }\n\n const textUpdate = createTextChunkArtifactUpdate({\n taskId: currentData.id,\n contextId: currentData.contextId,\n text: pendingTextChunk,\n append: sawTextArtifact,\n lastChunk: false,\n });\n\n currentData = applyUpdateToTask(currentData, textUpdate);\n await taskStore.save({ agentId, data: currentData });\n yield createSuccessResponse(requestId, textUpdate);\n\n sawTextArtifact = true;\n pendingTextChunk = textDelta;\n continue;\n }\n\n const finalStructuredObject = extractFinalStructuredObject(chunk);\n if (finalStructuredObject) {\n structuredData = finalStructuredObject;\n }\n }\n\n structuredData ??= (await result.object) as Record<string, unknown> | undefined;\n\n if (!pendingTextChunk && !sawTextArtifact) {\n const finalText = await result.text;\n if (finalText) {\n pendingTextChunk = finalText;\n }\n }\n\n if (pendingTextChunk) {\n const textUpdate = createTextChunkArtifactUpdate({\n taskId: currentData.id,\n contextId: currentData.contextId,\n text: pendingTextChunk,\n append: sawTextArtifact,\n lastChunk: !structuredData,\n });\n\n currentData = applyUpdateToTask(currentData, textUpdate);\n await taskStore.save({ agentId, data: currentData });\n yield createSuccessResponse(requestId, textUpdate);\n\n sawTextArtifact = true;\n pendingTextChunk = undefined;\n }\n\n if (structuredData) {\n const dataUpdate = createDataArtifactUpdate({\n taskId: currentData.id,\n contextId: currentData.contextId,\n data: structuredData,\n lastChunk: true,\n });\n\n currentData = applyUpdateToTask(currentData, dataUpdate);\n await taskStore.save({ agentId, data: currentData });\n yield createSuccessResponse(requestId, dataUpdate);\n }\n\n currentData = applyUpdateToTask(currentData, {\n state: 'completed',\n message: undefined,\n });\n\n currentData.metadata = {\n ...currentData.metadata,\n execution: {\n toolCalls: await result.toolCalls,\n toolResults: await result.toolResults,\n usage: await result.usage,\n finishReason: await result.finishReason,\n },\n };\n\n await taskStore.save({ agentId, data: currentData });\n } catch (handlerError) {\n currentData = applyUpdateToTask(currentData, {\n state: 'failed',\n message: {\n messageId: crypto.randomUUID(),\n role: 'agent',\n parts: [\n {\n kind: 'text',\n text: `Handler failed: ${handlerError instanceof Error ? handlerError.message : String(handlerError)}`,\n },\n ],\n kind: 'message',\n },\n });\n\n try {\n await taskStore.save({ agentId, data: currentData });\n } catch (saveError) {\n // @ts-expect-error saveError is an unknown error\n logger?.error(`Failed to save task ${currentData.id} after handler error:`, saveError?.message);\n }\n }\n\n yield createSuccessResponse(requestId, {\n kind: 'status-update',\n taskId: currentData.id,\n contextId: currentData.contextId,\n status: currentData.status,\n final: true,\n });\n}\n\nexport async function* handleTaskResubscribe({\n requestId,\n taskStore,\n agentId,\n taskId,\n abortSignal,\n}: {\n requestId: number | string;\n taskStore: InMemoryTaskStore;\n agentId: string;\n taskId: string;\n abortSignal?: AbortSignal;\n}) {\n let snapshot = taskStore.loadWithVersion({ agentId, taskId });\n\n if (!snapshot) {\n throw MastraA2AError.taskNotFound(taskId);\n }\n\n const finalStates: TaskState[] = ['completed', 'failed', 'canceled'];\n\n while (true) {\n const { task, version } = snapshot;\n const isFinal = finalStates.includes(task.status.state);\n\n yield createSuccessResponse(requestId, {\n kind: 'status-update',\n taskId: task.id,\n contextId: task.contextId,\n status: task.status,\n final: isFinal,\n });\n\n if (isFinal) {\n return;\n }\n\n const nextUpdate = await taskStore.waitForNextUpdate({\n agentId,\n taskId,\n afterVersion: version,\n signal: abortSignal,\n });\n\n snapshot = nextUpdate;\n }\n}\n\nfunction getTaskIdFromParams(\n params: MessageSendParams | TaskQueryParams | TaskIdParams | Record<string, unknown> | undefined,\n) {\n if (!params || typeof params !== 'object') {\n return undefined;\n }\n\n if ('id' in params && typeof params.id === 'string') {\n return params.id;\n }\n\n if ('taskId' in params && typeof params.taskId === 'string') {\n return params.taskId;\n }\n\n if ('message' in params && params.message && typeof params.message === 'object' && 'taskId' in params.message) {\n return typeof params.message.taskId === 'string' ? params.message.taskId : undefined;\n }\n\n return undefined;\n}\n\nfunction isAsyncIterable(value: unknown): value is AsyncIterable<unknown> {\n return !!value && typeof value === 'object' && Symbol.asyncIterator in value;\n}\n\nfunction createA2AJsonResponse(payload: unknown): Response {\n return Response.json(payload);\n}\n\nfunction createA2ASSEResponse(payload: AsyncIterable<unknown> | unknown): Response {\n const encoder = new TextEncoder();\n const iterable = isAsyncIterable(payload)\n ? payload\n : (async function* () {\n yield payload;\n })();\n\n const stream = new ReadableStream<Uint8Array>({\n async start(controller) {\n try {\n for await (const chunk of iterable) {\n controller.enqueue(encoder.encode(`data: ${JSON.stringify(chunk)}\\n\\n`));\n }\n } catch (error) {\n controller.error(error);\n return;\n }\n\n controller.close();\n },\n });\n\n return new Response(stream, {\n headers: {\n 'Content-Type': 'text/event-stream; charset=utf-8',\n 'Cache-Control': 'no-cache',\n Connection: 'keep-alive',\n 'X-Accel-Buffering': 'no',\n },\n });\n}\n\nexport async function handleTaskCancel({\n requestId,\n taskStore,\n agentId,\n taskId,\n logger,\n}: {\n requestId: number | string;\n taskStore: InMemoryTaskStore;\n agentId: string;\n taskId: string;\n logger?: IMastraLogger;\n}) {\n // Load task and history\n let data = await taskStore.load({\n agentId,\n taskId,\n });\n\n if (!data) {\n throw MastraA2AError.taskNotFound(taskId);\n }\n\n // Check if cancelable (not already in a final state)\n const finalStates: TaskState[] = ['completed', 'failed', 'canceled'];\n\n if (finalStates.includes(data.status.state)) {\n logger?.info(`Task ${taskId} already in final state ${data.status.state}, cannot cancel.`);\n return createSuccessResponse(requestId, data);\n }\n\n // Signal cancellation\n taskStore.activeCancellations.add(taskId);\n\n // Apply 'canceled' state update\n const cancelUpdate: Omit<TaskStatus, 'timestamp'> = {\n state: 'canceled',\n message: {\n role: 'agent',\n parts: [{ kind: 'text', text: 'Task cancelled by request.' }],\n kind: 'message',\n messageId: crypto.randomUUID(),\n },\n };\n\n data = applyUpdateToTask(data, cancelUpdate);\n\n // Save the updated state\n await taskStore.save({ agentId, data });\n\n // Remove from active cancellations *after* saving\n taskStore.activeCancellations.delete(taskId);\n\n // Return the updated task object\n return createSuccessResponse(requestId, data);\n}\n\nexport async function getAgentExecutionHandler({\n requestId,\n mastra,\n agentId,\n requestContext,\n method,\n params,\n taskStore,\n logger,\n abortSignal,\n}: Context & {\n requestId: number | string;\n requestContext: RequestContext;\n agentId: string;\n method:\n | 'message/send'\n | 'message/stream'\n | 'tasks/get'\n | 'tasks/cancel'\n | 'tasks/resubscribe'\n | 'tasks/pushNotificationConfig/set'\n | 'tasks/pushNotificationConfig/get'\n | 'tasks/pushNotificationConfig/list'\n | 'tasks/pushNotificationConfig/delete'\n | 'agent/getAuthenticatedExtendedCard';\n params?: MessageSendParams | TaskQueryParams | TaskIdParams | Record<string, unknown>;\n taskStore: InMemoryTaskStore;\n logger?: IMastraLogger;\n abortSignal?: AbortSignal;\n}): Promise<any> {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n let taskId: string | undefined; // For error context\n\n try {\n taskId = getTaskIdFromParams(params);\n\n // 2. Route based on method\n switch (method) {\n case 'message/send': {\n const result = await handleMessageSend({\n requestId,\n params: params as MessageSendParams,\n taskStore,\n agent,\n agentId,\n requestContext,\n });\n return result;\n }\n case 'message/stream': {\n const result = await handleMessageStream({\n requestId,\n taskStore,\n params: params as MessageSendParams,\n agent,\n agentId,\n requestContext,\n });\n return result;\n }\n\n case 'tasks/get': {\n const result = await handleTaskGet({\n requestId,\n taskStore,\n agentId,\n taskId: taskId || 'No task ID provided',\n });\n\n return result;\n }\n case 'tasks/cancel': {\n const result = await handleTaskCancel({\n requestId,\n taskStore,\n agentId,\n taskId: taskId || 'No task ID provided',\n });\n\n return result;\n }\n case 'tasks/resubscribe':\n return await handleTaskResubscribe({\n requestId,\n taskStore,\n agentId,\n taskId: taskId || 'No task ID provided',\n abortSignal,\n });\n case 'tasks/pushNotificationConfig/set':\n case 'tasks/pushNotificationConfig/get':\n case 'tasks/pushNotificationConfig/list':\n case 'tasks/pushNotificationConfig/delete':\n throw MastraA2AError.pushNotificationNotSupported();\n case 'agent/getAuthenticatedExtendedCard':\n throw MastraA2AError.extendedAgentCardNotConfigured();\n default:\n throw MastraA2AError.methodNotFound(method);\n }\n } catch (error) {\n if (error instanceof MastraA2AError && taskId && !error.taskId) {\n error.taskId = taskId; // Add task ID context if missing\n }\n\n return normalizeError(error, requestId, taskId, logger);\n }\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const GET_AGENT_CARD_ROUTE = createRoute({\n method: 'GET',\n path: '/.well-known/:agentId/agent-card.json',\n responseType: 'json',\n pathParamSchema: a2aAgentIdPathParams,\n responseSchema: agentCardResponseSchema,\n summary: 'Get agent card',\n description: 'Returns the agent card information for A2A protocol discovery',\n tags: ['Agent-to-Agent'],\n requiresAuth: true,\n handler: async ctx => {\n const executionUrl = getA2AExecutionUrl({\n agentId: ctx.agentId as string,\n request: (ctx as typeof ctx & { request?: Request }).request,\n routePrefix: ctx.routePrefix,\n });\n\n return getAgentCardByIdHandler({\n mastra: ctx.mastra,\n requestContext: ctx.requestContext,\n agentId: ctx.agentId,\n executionUrl,\n });\n },\n});\n\nexport const AGENT_EXECUTION_ROUTE = createRoute({\n method: 'POST',\n path: '/a2a/:agentId',\n responseType: 'datastream-response',\n pathParamSchema: a2aAgentIdPathParams,\n bodySchema: agentExecutionBodySchema,\n responseSchema: agentExecutionResponseSchema,\n summary: 'Execute agent',\n description: 'Executes an agent action via JSON-RPC 2.0 over A2A protocol',\n tags: ['Agent-to-Agent'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, requestContext, taskStore, abortSignal, ...bodyParams }) => {\n const { id: requestId, method } = bodyParams;\n const params = 'params' in bodyParams ? bodyParams.params : undefined;\n const result = await getAgentExecutionHandler({\n requestId,\n mastra,\n agentId: agentId as string,\n requestContext,\n method,\n params,\n taskStore: taskStore!,\n abortSignal,\n });\n\n if (method === 'message/stream' || method === 'tasks/resubscribe') {\n return createA2ASSEResponse(result);\n }\n\n return createA2AJsonResponse(result);\n },\n});\n","import { MastraA2AError } from '@mastra/core/a2a';\n\nimport type { JSONRPCError, JSONRPCResponse, Message, Part } from '@mastra/core/a2a';\nimport type { CoreMessage } from '@mastra/core/llm';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport function normalizeError(\n error: any,\n reqId: number | string | null,\n taskId?: string,\n logger?: IMastraLogger,\n): JSONRPCResponse<null, unknown> {\n let a2aError: MastraA2AError;\n if (error instanceof MastraA2AError) {\n a2aError = error;\n } else if (error instanceof Error) {\n // Generic JS error\n a2aError = MastraA2AError.internalError(error.message, { stack: error.stack });\n } else {\n // Unknown error type\n a2aError = MastraA2AError.internalError('An unknown error occurred.', error);\n }\n\n // Ensure Task ID context is present if possible\n if (taskId && !a2aError.taskId) {\n a2aError.taskId = taskId;\n }\n\n logger?.error(`Error processing request (Task: ${a2aError.taskId ?? 'N/A'}, ReqID: ${reqId ?? 'N/A'}):`, a2aError);\n\n return createErrorResponse(reqId, a2aError.toJSONRPCError());\n}\n\nexport function createErrorResponse(\n id: number | string | null,\n error: JSONRPCError<unknown>,\n): JSONRPCResponse<null, unknown> {\n // For errors, ID should be the same as request ID, or null if that couldn't be determined\n return {\n jsonrpc: '2.0',\n id: id, // Can be null if request ID was invalid/missing\n error: error,\n };\n}\n\nexport function createSuccessResponse<T>(id: number | string | null, result: T): JSONRPCResponse<T> {\n if (!id) {\n // This shouldn't happen for methods that expect a response, but safeguard\n throw MastraA2AError.internalError('Cannot create success response for null ID.');\n }\n\n return {\n jsonrpc: '2.0',\n id: id,\n result: result,\n };\n}\n\nexport function convertToCoreMessage(message: Message): CoreMessage {\n return {\n role: message.role === 'user' ? 'user' : 'assistant',\n content: message.parts.map(msg => convertToCoreMessagePart(msg)),\n };\n}\n\nfunction convertToCoreMessagePart(part: Part) {\n switch (part.kind) {\n case 'text':\n return {\n type: 'text',\n text: part.text,\n } as const;\n case 'file':\n return {\n type: 'file',\n data: 'uri' in part.file ? new URL(part.file.uri) : part.file.bytes,\n mimeType: part.file.mimeType!,\n } as const;\n case 'data':\n throw new Error('Data parts are not supported in core messages');\n }\n}\n","import type {\n Message,\n Task,\n TaskState,\n TaskStatus,\n TaskContext,\n TaskArtifactUpdateEvent,\n Artifact,\n} from '@mastra/core/a2a';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { InMemoryTaskStore } from './store';\n\nfunction isTaskStatusUpdate(update: TaskStatus | TaskArtifactUpdateEvent): update is Omit<TaskStatus, 'timestamp'> {\n return 'state' in update && !('parts' in update);\n}\n\nfunction isArtifactUpdate(update: TaskStatus | TaskArtifactUpdateEvent): update is TaskArtifactUpdateEvent {\n return 'kind' in update && update.kind === 'artifact-update';\n}\n\nexport function applyUpdateToTask(\n current: Task,\n update: Omit<TaskStatus, 'timestamp'> | TaskArtifactUpdateEvent,\n): Task {\n let newTask = structuredClone(current);\n\n if (isTaskStatusUpdate(update)) {\n // Merge status update\n newTask.status = {\n ...newTask.status, // Keep existing properties if not overwritten\n ...update, // Apply updates\n timestamp: new Date().toISOString(),\n };\n } else if (isArtifactUpdate(update)) {\n // Handle artifact update\n if (!newTask.artifacts) {\n newTask.artifacts = [];\n } else {\n // Ensure we're working with a copy of the artifacts array\n newTask.artifacts = [...newTask.artifacts];\n }\n\n const artifact = update.artifact;\n const existingIndex = newTask.artifacts.findIndex(a => a.name === artifact.name);\n const existingArtifact = newTask.artifacts[existingIndex];\n\n if (existingArtifact) {\n if (update.append) {\n // Create a deep copy for modification to avoid mutating original\n const appendedArtifact = JSON.parse(JSON.stringify(existingArtifact)) as Artifact;\n appendedArtifact.parts.push(...artifact.parts);\n if (artifact.metadata) {\n appendedArtifact.metadata = {\n ...(appendedArtifact.metadata || {}),\n ...artifact.metadata,\n };\n }\n if (artifact.description) appendedArtifact.description = artifact.description;\n newTask.artifacts[existingIndex] = appendedArtifact; // Replace with appended version\n } else {\n // Overwrite artifact at index (with a copy of the update)\n newTask.artifacts[existingIndex] = { ...artifact };\n }\n } else {\n newTask.artifacts.push({ ...artifact });\n }\n }\n\n return newTask;\n}\n\nexport async function loadOrCreateTask({\n agentId,\n taskId,\n taskStore,\n message,\n contextId,\n metadata,\n logger,\n}: {\n agentId: string;\n taskId: string;\n taskStore: InMemoryTaskStore;\n message: Message;\n contextId?: string;\n metadata?: Record<string, unknown>;\n logger?: IMastraLogger;\n}): Promise<Task> {\n const data = await taskStore.load({ agentId, taskId });\n\n // Create new task if none exists\n if (!data) {\n const initialTask: Task = {\n id: taskId,\n contextId: contextId || crypto.randomUUID(),\n status: {\n state: 'submitted',\n timestamp: new Date().toISOString(),\n message: undefined,\n },\n artifacts: [],\n history: [message],\n metadata: metadata,\n kind: 'task',\n };\n\n logger?.info(`[Task ${taskId}] Created new task.`);\n await taskStore.save({ agentId, data: initialTask });\n\n return initialTask;\n }\n\n // Handle existing task\n logger?.info(`[Task ${taskId}] Loaded existing task.`);\n\n // Add message to history and prepare updated data\n let updatedData = data;\n updatedData.history = [...(data.history || []), message];\n\n // Handle state transitions\n const { status } = data;\n const finalStates: TaskState[] = ['completed', 'failed', 'canceled'];\n\n if (finalStates.includes(status.state)) {\n logger?.warn(`[Task ${taskId}] Received message for task in final state ${status.state}. Restarting.`);\n updatedData = applyUpdateToTask(updatedData, {\n state: 'submitted',\n message: undefined,\n });\n } else if (status.state === 'input-required') {\n logger?.info(`[Task ${taskId}] Changing state from 'input-required' to 'working'.`);\n updatedData = applyUpdateToTask(updatedData, { state: 'working' });\n } else if (status.state === 'working') {\n logger?.warn(`[Task ${taskId}] Received message while already 'working'. Proceeding.`);\n }\n\n await taskStore.save({ agentId, data: updatedData });\n\n return updatedData;\n}\n\nexport function createTaskContext({\n task,\n userMessage,\n history,\n activeCancellations,\n}: {\n task: Task;\n userMessage: Message;\n history: Message[];\n activeCancellations: Set<string>;\n}): TaskContext {\n return {\n task: structuredClone(task),\n userMessage,\n history: structuredClone(history),\n isCancelled: () => activeCancellations.has(task.id),\n };\n}\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/a2a.ts","../src/server/a2a/protocol.ts","../src/server/a2a/tasks.ts"],"names":["MastraA2AError"],"mappings":"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","file":"chunk-RTD3NZ4G.js","sourcesContent":["import { MastraA2AError } from '@mastra/core/a2a';\nimport type {\n MessageSendParams,\n TaskQueryParams,\n TaskIdParams,\n AgentCard,\n TaskStatus,\n TaskState,\n} from '@mastra/core/a2a';\nimport type { Agent } from '@mastra/core/agent';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport { z } from 'zod/v4';\nimport { convertToCoreMessage, normalizeError, createSuccessResponse } from '../a2a/protocol';\nimport type { InMemoryTaskStore } from '../a2a/store';\nimport { applyUpdateToTask, createTaskContext, loadOrCreateTask } from '../a2a/tasks';\nimport {\n a2aAgentIdPathParams,\n agentExecutionBodySchema,\n agentCardResponseSchema,\n agentExecutionResponseSchema,\n} from '../schemas/a2a';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport type { Context } from '../types';\nimport { convertInstructionsToString } from '../utils';\nimport { getAgentFromSystem } from './agents';\nimport { getPublicOrigin } from './auth';\n\nconst messageSendParamsSchema = z.object({\n message: z.object({\n role: z.enum(['user', 'agent']),\n parts: z.array(\n z.object({\n kind: z.enum(['text']),\n text: z.string(),\n }),\n ),\n kind: z.literal('message'),\n messageId: z.string(),\n contextId: z.string().optional(),\n taskId: z.string().optional(),\n referenceTaskIds: z.array(z.string()).optional(),\n extensions: z.array(z.string()).optional(),\n metadata: z.record(z.string(), z.any()).optional(),\n }),\n});\n\nfunction createAgentCardDefaults(): Pick<\n AgentCard,\n | 'protocolVersion'\n | 'additionalInterfaces'\n | 'supportsAuthenticatedExtendedCard'\n | 'security'\n | 'securitySchemes'\n | 'capabilities'\n | 'defaultInputModes'\n | 'defaultOutputModes'\n> {\n return {\n protocolVersion: '0.3.0',\n additionalInterfaces: [],\n supportsAuthenticatedExtendedCard: false,\n security: [],\n securitySchemes: {},\n capabilities: {\n streaming: true,\n pushNotifications: false,\n stateTransitionHistory: false,\n extensions: [],\n },\n defaultInputModes: ['text/plain'],\n defaultOutputModes: ['text/plain'],\n };\n}\n\nexport async function getAgentCardByIdHandler({\n mastra,\n agentId,\n executionUrl = `/a2a/${agentId}`,\n provider = {\n organization: 'Mastra',\n url: 'https://mastra.ai',\n },\n version = '1.0',\n requestContext,\n}: Context & {\n requestContext: RequestContext;\n agentId: keyof ReturnType<typeof mastra.listAgents>;\n executionUrl?: string;\n version?: string;\n provider?: {\n organization: string;\n url: string;\n };\n}): Promise<AgentCard> {\n const agent = await getAgentFromSystem({ mastra, agentId: agentId as string });\n\n const [instructions, tools]: [\n Awaited<ReturnType<typeof agent.getInstructions>>,\n Awaited<ReturnType<typeof agent.listTools>>,\n ] = await Promise.all([agent.getInstructions({ requestContext }), agent.listTools({ requestContext })]);\n\n // Extract agent information to create the AgentCard\n const agentCard: AgentCard = {\n name: agent.id || (agentId as string),\n description: convertInstructionsToString(instructions),\n url: executionUrl,\n provider,\n version,\n ...createAgentCardDefaults(),\n // Convert agent tools to skills format for A2A protocol\n skills: Object.entries(tools).map(([toolId, tool]) => ({\n id: toolId,\n name: toolId,\n description: tool.description || `Tool: ${toolId}`,\n // Optional fields\n tags: ['tool'],\n })),\n };\n\n return agentCard;\n}\n\nfunction getA2AExecutionUrl({\n agentId,\n request,\n routePrefix,\n}: {\n agentId: string;\n request?: Request;\n routePrefix?: string;\n}) {\n const executionPath = `${routePrefix ?? ''}/a2a/${agentId}`;\n\n if (!request) {\n return executionPath;\n }\n\n return `${getPublicOrigin(request)}${executionPath}`;\n}\n\nfunction validateMessageSendParams(params: MessageSendParams) {\n try {\n messageSendParamsSchema.parse(params);\n } catch (error) {\n if (error instanceof z.ZodError) {\n throw MastraA2AError.invalidParams((error as z.ZodError).issues[0]!.message);\n }\n\n throw error;\n }\n}\n\nfunction createArtifactUpdate({\n taskId,\n contextId,\n text,\n data,\n}: {\n taskId: string;\n contextId: string;\n text?: string;\n data?: Record<string, unknown>;\n}) {\n const parts = [\n ...(text ? [{ kind: 'text' as const, text }] : []),\n ...(data ? [{ kind: 'data' as const, data }] : []),\n ];\n\n if (parts.length === 0) {\n return undefined;\n }\n\n return {\n kind: 'artifact-update' as const,\n taskId,\n contextId,\n lastChunk: true,\n artifact: {\n artifactId: `${taskId}:response`,\n name: data ? 'response.json' : 'response.txt',\n parts,\n },\n };\n}\n\nfunction createTextChunkArtifactUpdate({\n taskId,\n contextId,\n text,\n append,\n lastChunk,\n}: {\n taskId: string;\n contextId: string;\n text: string;\n append?: boolean;\n lastChunk?: boolean;\n}) {\n return {\n kind: 'artifact-update' as const,\n taskId,\n contextId,\n ...(append ? { append: true } : {}),\n ...(lastChunk !== undefined ? { lastChunk } : {}),\n artifact: {\n artifactId: `${taskId}:response:text`,\n name: 'response.txt',\n parts: [{ kind: 'text' as const, text }],\n },\n };\n}\n\nfunction createDataArtifactUpdate({\n taskId,\n contextId,\n data,\n lastChunk,\n}: {\n taskId: string;\n contextId: string;\n data: Record<string, unknown>;\n lastChunk?: boolean;\n}) {\n return {\n kind: 'artifact-update' as const,\n taskId,\n contextId,\n ...(lastChunk !== undefined ? { lastChunk } : {}),\n artifact: {\n artifactId: `${taskId}:response:data`,\n name: 'response.json',\n parts: [{ kind: 'data' as const, data }],\n },\n };\n}\n\nfunction extractFullStreamTextDelta(value: unknown): string | null {\n if (typeof value !== 'object' || value === null || !('type' in value)) {\n return null;\n }\n\n const chunk = value as {\n type: string;\n payload?: { text?: string; delta?: string };\n textDelta?: string;\n text?: string;\n delta?: string;\n };\n\n switch (chunk.type) {\n case 'text-delta':\n if (typeof chunk.payload?.text === 'string') {\n return chunk.payload.text;\n }\n\n if (typeof chunk.payload?.delta === 'string') {\n return chunk.payload.delta;\n }\n\n if (typeof chunk.textDelta === 'string') {\n return chunk.textDelta;\n }\n\n if (typeof chunk.delta === 'string') {\n return chunk.delta;\n }\n\n if (typeof chunk.text === 'string') {\n return chunk.text;\n }\n\n return null;\n default:\n return null;\n }\n}\n\nfunction extractFinalStructuredObject(value: unknown): Record<string, unknown> | undefined {\n if (typeof value !== 'object' || value === null || !('type' in value)) {\n return undefined;\n }\n\n const chunk = value as {\n type: string;\n object?: unknown;\n payload?: { object?: unknown };\n };\n\n if (chunk.type !== 'object-result') {\n return undefined;\n }\n\n const objectValue = chunk.payload?.object ?? chunk.object;\n return objectValue && typeof objectValue === 'object' ? (objectValue as Record<string, unknown>) : undefined;\n}\n\nexport async function handleMessageSend({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n logger,\n requestContext,\n}: {\n requestId: number | string;\n params: MessageSendParams;\n taskStore: InMemoryTaskStore;\n agent: Agent;\n agentId: string;\n logger?: IMastraLogger;\n requestContext: RequestContext;\n}) {\n validateMessageSendParams(params);\n\n const { message, metadata } = params;\n const { contextId } = message;\n const taskId = message.taskId || crypto.randomUUID();\n\n // Load or create task\n let currentData = await loadOrCreateTask({\n taskId,\n taskStore,\n agentId,\n message,\n contextId,\n metadata,\n });\n\n // Use the new TaskContext definition, passing history\n const context = createTaskContext({\n task: currentData,\n userMessage: message,\n history: currentData.history || [],\n activeCancellations: taskStore.activeCancellations,\n });\n\n try {\n // Pass contextId as threadId for memory persistence across A2A conversations\n // Allow user to pass resourceId via metadata, fall back to agentId\n const resourceId = (metadata?.resourceId as string) ?? (message.metadata?.resourceId as string) ?? agentId;\n const result = await agent.generate([convertToCoreMessage(message)], {\n runId: taskId,\n requestContext,\n ...(contextId ? { threadId: contextId, resourceId } : {}),\n });\n\n const artifactUpdate = createArtifactUpdate({\n taskId: currentData.id,\n contextId: currentData.contextId,\n text: result.text,\n data: result.object as Record<string, unknown> | undefined,\n });\n\n if (artifactUpdate) {\n currentData = applyUpdateToTask(currentData, artifactUpdate);\n }\n\n currentData = applyUpdateToTask(currentData, {\n state: 'completed',\n message: undefined,\n });\n\n // Store execution details in task metadata\n currentData.metadata = {\n ...currentData.metadata,\n execution: {\n toolCalls: result.toolCalls,\n toolResults: result.toolResults,\n usage: result.usage,\n finishReason: result.finishReason,\n },\n };\n\n await taskStore.save({ agentId, data: currentData });\n context.task = currentData;\n } catch (handlerError) {\n // If handler throws, apply 'failed' status, save, and rethrow\n const failureStatusUpdate: Omit<TaskStatus, 'timestamp'> = {\n state: 'failed',\n message: {\n messageId: crypto.randomUUID(),\n role: 'agent',\n parts: [\n {\n kind: 'text',\n text: `Handler failed: ${handlerError instanceof Error ? handlerError.message : String(handlerError)}`,\n },\n ],\n kind: 'message',\n },\n };\n currentData = applyUpdateToTask(currentData, failureStatusUpdate);\n\n try {\n await taskStore.save({ agentId, data: currentData });\n } catch (saveError) {\n // @ts-expect-error saveError is an unknown error\n logger?.error(`Failed to save task ${currentData.id} after handler error:`, saveError?.message);\n }\n\n return normalizeError(handlerError, requestId, currentData.id, logger); // Rethrow original error\n }\n\n // The loop finished, send the final task state\n return createSuccessResponse(requestId, currentData);\n}\n\nexport async function handleTaskGet({\n requestId,\n taskStore,\n agentId,\n taskId,\n}: {\n requestId: number | string;\n taskStore: InMemoryTaskStore;\n agentId: string;\n taskId: string;\n}) {\n const task = await taskStore.load({ agentId, taskId });\n\n if (!task) {\n throw MastraA2AError.taskNotFound(taskId);\n }\n\n return createSuccessResponse(requestId, task);\n}\n\nexport async function* handleMessageStream({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n logger,\n requestContext,\n}: {\n requestId: number | string;\n params: MessageSendParams;\n taskStore: InMemoryTaskStore;\n agent: Agent;\n agentId: string;\n logger?: IMastraLogger;\n requestContext: RequestContext;\n}) {\n validateMessageSendParams(params);\n\n const { message, metadata } = params;\n const { contextId } = message;\n const taskId = message.taskId || crypto.randomUUID();\n\n let currentData = await loadOrCreateTask({\n taskId,\n taskStore,\n agentId,\n message,\n contextId,\n metadata,\n });\n\n currentData = applyUpdateToTask(currentData, {\n state: 'working',\n message: {\n messageId: crypto.randomUUID(),\n kind: 'message',\n role: 'agent',\n parts: [{ kind: 'text', text: 'Generating response...' }],\n },\n });\n\n await taskStore.save({ agentId, data: currentData });\n\n yield createSuccessResponse(requestId, currentData);\n\n try {\n const resourceId = (metadata?.resourceId as string) ?? (message.metadata?.resourceId as string) ?? agentId;\n const result = await agent.stream([convertToCoreMessage(message)], {\n runId: taskId,\n requestContext,\n ...(contextId ? { threadId: contextId, resourceId } : {}),\n });\n let sawTextArtifact = false;\n let pendingTextChunk: string | undefined;\n let structuredData: Record<string, unknown> | undefined;\n\n for await (const chunk of result.fullStream) {\n const textDelta = extractFullStreamTextDelta(chunk);\n if (textDelta !== null) {\n if (!pendingTextChunk) {\n pendingTextChunk = textDelta;\n continue;\n }\n\n const textUpdate = createTextChunkArtifactUpdate({\n taskId: currentData.id,\n contextId: currentData.contextId,\n text: pendingTextChunk,\n append: sawTextArtifact,\n lastChunk: false,\n });\n\n currentData = applyUpdateToTask(currentData, textUpdate);\n await taskStore.save({ agentId, data: currentData });\n yield createSuccessResponse(requestId, textUpdate);\n\n sawTextArtifact = true;\n pendingTextChunk = textDelta;\n continue;\n }\n\n const finalStructuredObject = extractFinalStructuredObject(chunk);\n if (finalStructuredObject) {\n structuredData = finalStructuredObject;\n }\n }\n\n structuredData ??= (await result.object) as Record<string, unknown> | undefined;\n\n if (!pendingTextChunk && !sawTextArtifact) {\n const finalText = await result.text;\n if (finalText) {\n pendingTextChunk = finalText;\n }\n }\n\n if (pendingTextChunk) {\n const textUpdate = createTextChunkArtifactUpdate({\n taskId: currentData.id,\n contextId: currentData.contextId,\n text: pendingTextChunk,\n append: sawTextArtifact,\n lastChunk: !structuredData,\n });\n\n currentData = applyUpdateToTask(currentData, textUpdate);\n await taskStore.save({ agentId, data: currentData });\n yield createSuccessResponse(requestId, textUpdate);\n\n sawTextArtifact = true;\n pendingTextChunk = undefined;\n }\n\n if (structuredData) {\n const dataUpdate = createDataArtifactUpdate({\n taskId: currentData.id,\n contextId: currentData.contextId,\n data: structuredData,\n lastChunk: true,\n });\n\n currentData = applyUpdateToTask(currentData, dataUpdate);\n await taskStore.save({ agentId, data: currentData });\n yield createSuccessResponse(requestId, dataUpdate);\n }\n\n currentData = applyUpdateToTask(currentData, {\n state: 'completed',\n message: undefined,\n });\n\n currentData.metadata = {\n ...currentData.metadata,\n execution: {\n toolCalls: await result.toolCalls,\n toolResults: await result.toolResults,\n usage: await result.usage,\n finishReason: await result.finishReason,\n },\n };\n\n await taskStore.save({ agentId, data: currentData });\n } catch (handlerError) {\n currentData = applyUpdateToTask(currentData, {\n state: 'failed',\n message: {\n messageId: crypto.randomUUID(),\n role: 'agent',\n parts: [\n {\n kind: 'text',\n text: `Handler failed: ${handlerError instanceof Error ? handlerError.message : String(handlerError)}`,\n },\n ],\n kind: 'message',\n },\n });\n\n try {\n await taskStore.save({ agentId, data: currentData });\n } catch (saveError) {\n // @ts-expect-error saveError is an unknown error\n logger?.error(`Failed to save task ${currentData.id} after handler error:`, saveError?.message);\n }\n }\n\n yield createSuccessResponse(requestId, {\n kind: 'status-update',\n taskId: currentData.id,\n contextId: currentData.contextId,\n status: currentData.status,\n final: true,\n });\n}\n\nexport async function* handleTaskResubscribe({\n requestId,\n taskStore,\n agentId,\n taskId,\n abortSignal,\n}: {\n requestId: number | string;\n taskStore: InMemoryTaskStore;\n agentId: string;\n taskId: string;\n abortSignal?: AbortSignal;\n}) {\n let snapshot = taskStore.loadWithVersion({ agentId, taskId });\n\n if (!snapshot) {\n throw MastraA2AError.taskNotFound(taskId);\n }\n\n const finalStates: TaskState[] = ['completed', 'failed', 'canceled'];\n\n while (true) {\n const { task, version } = snapshot;\n const isFinal = finalStates.includes(task.status.state);\n\n yield createSuccessResponse(requestId, {\n kind: 'status-update',\n taskId: task.id,\n contextId: task.contextId,\n status: task.status,\n final: isFinal,\n });\n\n if (isFinal) {\n return;\n }\n\n const nextUpdate = await taskStore.waitForNextUpdate({\n agentId,\n taskId,\n afterVersion: version,\n signal: abortSignal,\n });\n\n snapshot = nextUpdate;\n }\n}\n\nfunction getTaskIdFromParams(\n params: MessageSendParams | TaskQueryParams | TaskIdParams | Record<string, unknown> | undefined,\n) {\n if (!params || typeof params !== 'object') {\n return undefined;\n }\n\n if ('id' in params && typeof params.id === 'string') {\n return params.id;\n }\n\n if ('taskId' in params && typeof params.taskId === 'string') {\n return params.taskId;\n }\n\n if ('message' in params && params.message && typeof params.message === 'object' && 'taskId' in params.message) {\n return typeof params.message.taskId === 'string' ? params.message.taskId : undefined;\n }\n\n return undefined;\n}\n\nfunction isAsyncIterable(value: unknown): value is AsyncIterable<unknown> {\n return !!value && typeof value === 'object' && Symbol.asyncIterator in value;\n}\n\nfunction createA2AJsonResponse(payload: unknown): Response {\n return Response.json(payload);\n}\n\nfunction createA2ASSEResponse(payload: AsyncIterable<unknown> | unknown): Response {\n const encoder = new TextEncoder();\n const iterable = isAsyncIterable(payload)\n ? payload\n : (async function* () {\n yield payload;\n })();\n\n const stream = new ReadableStream<Uint8Array>({\n async start(controller) {\n try {\n for await (const chunk of iterable) {\n controller.enqueue(encoder.encode(`data: ${JSON.stringify(chunk)}\\n\\n`));\n }\n } catch (error) {\n controller.error(error);\n return;\n }\n\n controller.close();\n },\n });\n\n return new Response(stream, {\n headers: {\n 'Content-Type': 'text/event-stream; charset=utf-8',\n 'Cache-Control': 'no-cache',\n Connection: 'keep-alive',\n 'X-Accel-Buffering': 'no',\n },\n });\n}\n\nexport async function handleTaskCancel({\n requestId,\n taskStore,\n agentId,\n taskId,\n logger,\n}: {\n requestId: number | string;\n taskStore: InMemoryTaskStore;\n agentId: string;\n taskId: string;\n logger?: IMastraLogger;\n}) {\n // Load task and history\n let data = await taskStore.load({\n agentId,\n taskId,\n });\n\n if (!data) {\n throw MastraA2AError.taskNotFound(taskId);\n }\n\n // Check if cancelable (not already in a final state)\n const finalStates: TaskState[] = ['completed', 'failed', 'canceled'];\n\n if (finalStates.includes(data.status.state)) {\n logger?.info(`Task ${taskId} already in final state ${data.status.state}, cannot cancel.`);\n return createSuccessResponse(requestId, data);\n }\n\n // Signal cancellation\n taskStore.activeCancellations.add(taskId);\n\n // Apply 'canceled' state update\n const cancelUpdate: Omit<TaskStatus, 'timestamp'> = {\n state: 'canceled',\n message: {\n role: 'agent',\n parts: [{ kind: 'text', text: 'Task cancelled by request.' }],\n kind: 'message',\n messageId: crypto.randomUUID(),\n },\n };\n\n data = applyUpdateToTask(data, cancelUpdate);\n\n // Save the updated state\n await taskStore.save({ agentId, data });\n\n // Remove from active cancellations *after* saving\n taskStore.activeCancellations.delete(taskId);\n\n // Return the updated task object\n return createSuccessResponse(requestId, data);\n}\n\nexport async function getAgentExecutionHandler({\n requestId,\n mastra,\n agentId,\n requestContext,\n method,\n params,\n taskStore,\n logger,\n abortSignal,\n}: Context & {\n requestId: number | string;\n requestContext: RequestContext;\n agentId: string;\n method:\n | 'message/send'\n | 'message/stream'\n | 'tasks/get'\n | 'tasks/cancel'\n | 'tasks/resubscribe'\n | 'tasks/pushNotificationConfig/set'\n | 'tasks/pushNotificationConfig/get'\n | 'tasks/pushNotificationConfig/list'\n | 'tasks/pushNotificationConfig/delete'\n | 'agent/getAuthenticatedExtendedCard';\n params?: MessageSendParams | TaskQueryParams | TaskIdParams | Record<string, unknown>;\n taskStore: InMemoryTaskStore;\n logger?: IMastraLogger;\n abortSignal?: AbortSignal;\n}): Promise<any> {\n const agent = await getAgentFromSystem({ mastra, agentId });\n\n let taskId: string | undefined; // For error context\n\n try {\n taskId = getTaskIdFromParams(params);\n\n // 2. Route based on method\n switch (method) {\n case 'message/send': {\n const result = await handleMessageSend({\n requestId,\n params: params as MessageSendParams,\n taskStore,\n agent,\n agentId,\n requestContext,\n });\n return result;\n }\n case 'message/stream': {\n const result = await handleMessageStream({\n requestId,\n taskStore,\n params: params as MessageSendParams,\n agent,\n agentId,\n requestContext,\n });\n return result;\n }\n\n case 'tasks/get': {\n const result = await handleTaskGet({\n requestId,\n taskStore,\n agentId,\n taskId: taskId || 'No task ID provided',\n });\n\n return result;\n }\n case 'tasks/cancel': {\n const result = await handleTaskCancel({\n requestId,\n taskStore,\n agentId,\n taskId: taskId || 'No task ID provided',\n });\n\n return result;\n }\n case 'tasks/resubscribe':\n return await handleTaskResubscribe({\n requestId,\n taskStore,\n agentId,\n taskId: taskId || 'No task ID provided',\n abortSignal,\n });\n case 'tasks/pushNotificationConfig/set':\n case 'tasks/pushNotificationConfig/get':\n case 'tasks/pushNotificationConfig/list':\n case 'tasks/pushNotificationConfig/delete':\n throw MastraA2AError.pushNotificationNotSupported();\n case 'agent/getAuthenticatedExtendedCard':\n throw MastraA2AError.extendedAgentCardNotConfigured();\n default:\n throw MastraA2AError.methodNotFound(method);\n }\n } catch (error) {\n if (error instanceof MastraA2AError && taskId && !error.taskId) {\n error.taskId = taskId; // Add task ID context if missing\n }\n\n return normalizeError(error, requestId, taskId, logger);\n }\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const GET_AGENT_CARD_ROUTE = createRoute({\n method: 'GET',\n path: '/.well-known/:agentId/agent-card.json',\n responseType: 'json',\n pathParamSchema: a2aAgentIdPathParams,\n responseSchema: agentCardResponseSchema,\n summary: 'Get agent card',\n description: 'Returns the agent card information for A2A protocol discovery',\n tags: ['Agent-to-Agent'],\n requiresAuth: true,\n handler: async ctx => {\n const executionUrl = getA2AExecutionUrl({\n agentId: ctx.agentId as string,\n request: (ctx as typeof ctx & { request?: Request }).request,\n routePrefix: ctx.routePrefix,\n });\n\n return getAgentCardByIdHandler({\n mastra: ctx.mastra,\n requestContext: ctx.requestContext,\n agentId: ctx.agentId,\n executionUrl,\n });\n },\n});\n\nexport const AGENT_EXECUTION_ROUTE = createRoute({\n method: 'POST',\n path: '/a2a/:agentId',\n responseType: 'datastream-response',\n pathParamSchema: a2aAgentIdPathParams,\n bodySchema: agentExecutionBodySchema,\n responseSchema: agentExecutionResponseSchema,\n summary: 'Execute agent',\n description: 'Executes an agent action via JSON-RPC 2.0 over A2A protocol',\n tags: ['Agent-to-Agent'],\n requiresAuth: true,\n handler: async ({ mastra, agentId, requestContext, taskStore, abortSignal, ...bodyParams }) => {\n const { id: requestId, method } = bodyParams;\n const params = 'params' in bodyParams ? bodyParams.params : undefined;\n const result = await getAgentExecutionHandler({\n requestId,\n mastra,\n agentId: agentId as string,\n requestContext,\n method,\n params,\n taskStore: taskStore!,\n abortSignal,\n });\n\n if (method === 'message/stream' || method === 'tasks/resubscribe') {\n return createA2ASSEResponse(result);\n }\n\n return createA2AJsonResponse(result);\n },\n});\n","import { MastraA2AError } from '@mastra/core/a2a';\n\nimport type { JSONRPCError, JSONRPCResponse, Message, Part } from '@mastra/core/a2a';\nimport type { CoreMessage } from '@mastra/core/llm';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport function normalizeError(\n error: any,\n reqId: number | string | null,\n taskId?: string,\n logger?: IMastraLogger,\n): JSONRPCResponse<null, unknown> {\n let a2aError: MastraA2AError;\n if (error instanceof MastraA2AError) {\n a2aError = error;\n } else if (error instanceof Error) {\n // Generic JS error\n a2aError = MastraA2AError.internalError(error.message, { stack: error.stack });\n } else {\n // Unknown error type\n a2aError = MastraA2AError.internalError('An unknown error occurred.', error);\n }\n\n // Ensure Task ID context is present if possible\n if (taskId && !a2aError.taskId) {\n a2aError.taskId = taskId;\n }\n\n logger?.error(`Error processing request (Task: ${a2aError.taskId ?? 'N/A'}, ReqID: ${reqId ?? 'N/A'}):`, a2aError);\n\n return createErrorResponse(reqId, a2aError.toJSONRPCError());\n}\n\nexport function createErrorResponse(\n id: number | string | null,\n error: JSONRPCError<unknown>,\n): JSONRPCResponse<null, unknown> {\n // For errors, ID should be the same as request ID, or null if that couldn't be determined\n return {\n jsonrpc: '2.0',\n id: id, // Can be null if request ID was invalid/missing\n error: error,\n };\n}\n\nexport function createSuccessResponse<T>(id: number | string | null, result: T): JSONRPCResponse<T> {\n if (!id) {\n // This shouldn't happen for methods that expect a response, but safeguard\n throw MastraA2AError.internalError('Cannot create success response for null ID.');\n }\n\n return {\n jsonrpc: '2.0',\n id: id,\n result: result,\n };\n}\n\nexport function convertToCoreMessage(message: Message): CoreMessage {\n return {\n role: message.role === 'user' ? 'user' : 'assistant',\n content: message.parts.map(msg => convertToCoreMessagePart(msg)),\n };\n}\n\nfunction convertToCoreMessagePart(part: Part) {\n switch (part.kind) {\n case 'text':\n return {\n type: 'text',\n text: part.text,\n } as const;\n case 'file':\n return {\n type: 'file',\n data: 'uri' in part.file ? new URL(part.file.uri) : part.file.bytes,\n mimeType: part.file.mimeType!,\n } as const;\n case 'data':\n throw new Error('Data parts are not supported in core messages');\n }\n}\n","import type {\n Message,\n Task,\n TaskState,\n TaskStatus,\n TaskContext,\n TaskArtifactUpdateEvent,\n Artifact,\n} from '@mastra/core/a2a';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { InMemoryTaskStore } from './store';\n\nfunction isTaskStatusUpdate(update: TaskStatus | TaskArtifactUpdateEvent): update is Omit<TaskStatus, 'timestamp'> {\n return 'state' in update && !('parts' in update);\n}\n\nfunction isArtifactUpdate(update: TaskStatus | TaskArtifactUpdateEvent): update is TaskArtifactUpdateEvent {\n return 'kind' in update && update.kind === 'artifact-update';\n}\n\nexport function applyUpdateToTask(\n current: Task,\n update: Omit<TaskStatus, 'timestamp'> | TaskArtifactUpdateEvent,\n): Task {\n let newTask = structuredClone(current);\n\n if (isTaskStatusUpdate(update)) {\n // Merge status update\n newTask.status = {\n ...newTask.status, // Keep existing properties if not overwritten\n ...update, // Apply updates\n timestamp: new Date().toISOString(),\n };\n } else if (isArtifactUpdate(update)) {\n // Handle artifact update\n if (!newTask.artifacts) {\n newTask.artifacts = [];\n } else {\n // Ensure we're working with a copy of the artifacts array\n newTask.artifacts = [...newTask.artifacts];\n }\n\n const artifact = update.artifact;\n const existingIndex = newTask.artifacts.findIndex(a => a.name === artifact.name);\n const existingArtifact = newTask.artifacts[existingIndex];\n\n if (existingArtifact) {\n if (update.append) {\n // Create a deep copy for modification to avoid mutating original\n const appendedArtifact = JSON.parse(JSON.stringify(existingArtifact)) as Artifact;\n appendedArtifact.parts.push(...artifact.parts);\n if (artifact.metadata) {\n appendedArtifact.metadata = {\n ...(appendedArtifact.metadata || {}),\n ...artifact.metadata,\n };\n }\n if (artifact.description) appendedArtifact.description = artifact.description;\n newTask.artifacts[existingIndex] = appendedArtifact; // Replace with appended version\n } else {\n // Overwrite artifact at index (with a copy of the update)\n newTask.artifacts[existingIndex] = { ...artifact };\n }\n } else {\n newTask.artifacts.push({ ...artifact });\n }\n }\n\n return newTask;\n}\n\nexport async function loadOrCreateTask({\n agentId,\n taskId,\n taskStore,\n message,\n contextId,\n metadata,\n logger,\n}: {\n agentId: string;\n taskId: string;\n taskStore: InMemoryTaskStore;\n message: Message;\n contextId?: string;\n metadata?: Record<string, unknown>;\n logger?: IMastraLogger;\n}): Promise<Task> {\n const data = await taskStore.load({ agentId, taskId });\n\n // Create new task if none exists\n if (!data) {\n const initialTask: Task = {\n id: taskId,\n contextId: contextId || crypto.randomUUID(),\n status: {\n state: 'submitted',\n timestamp: new Date().toISOString(),\n message: undefined,\n },\n artifacts: [],\n history: [message],\n metadata: metadata,\n kind: 'task',\n };\n\n logger?.info(`[Task ${taskId}] Created new task.`);\n await taskStore.save({ agentId, data: initialTask });\n\n return initialTask;\n }\n\n // Handle existing task\n logger?.info(`[Task ${taskId}] Loaded existing task.`);\n\n // Add message to history and prepare updated data\n let updatedData = data;\n updatedData.history = [...(data.history || []), message];\n\n // Handle state transitions\n const { status } = data;\n const finalStates: TaskState[] = ['completed', 'failed', 'canceled'];\n\n if (finalStates.includes(status.state)) {\n logger?.warn(`[Task ${taskId}] Received message for task in final state ${status.state}. Restarting.`);\n updatedData = applyUpdateToTask(updatedData, {\n state: 'submitted',\n message: undefined,\n });\n } else if (status.state === 'input-required') {\n logger?.info(`[Task ${taskId}] Changing state from 'input-required' to 'working'.`);\n updatedData = applyUpdateToTask(updatedData, { state: 'working' });\n } else if (status.state === 'working') {\n logger?.warn(`[Task ${taskId}] Received message while already 'working'. Proceeding.`);\n }\n\n await taskStore.save({ agentId, data: updatedData });\n\n return updatedData;\n}\n\nexport function createTaskContext({\n task,\n userMessage,\n history,\n activeCancellations,\n}: {\n task: Task;\n userMessage: Message;\n history: Message[];\n activeCancellations: Set<string>;\n}): TaskContext {\n return {\n task: structuredClone(task),\n userMessage,\n history: structuredClone(history),\n isCancelled: () => activeCancellations.has(task.id),\n };\n}\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkDIX6JWN4_cjs = require('./chunk-DIX6JWN4.cjs');
3
+ var chunkTF7NSMHW_cjs = require('./chunk-TF7NSMHW.cjs');
4
4
  var v4 = require('zod/v4');
5
5
 
6
6
  var actionIdPathParams = v4.z.object({
@@ -10,10 +10,10 @@ var actionRunPathParams = v4.z.object({
10
10
  actionId: v4.z.string().describe("Unique identifier for the agent-builder action"),
11
11
  runId: v4.z.string().describe("Unique identifier for the action run")
12
12
  });
13
- var streamAgentBuilderBodySchema = chunkDIX6JWN4_cjs.streamWorkflowBodySchema;
14
- var streamLegacyAgentBuilderBodySchema = chunkDIX6JWN4_cjs.streamLegacyWorkflowBodySchema;
15
- var resumeAgentBuilderBodySchema = chunkDIX6JWN4_cjs.resumeBodySchema;
16
- var startAsyncAgentBuilderBodySchema = chunkDIX6JWN4_cjs.startAsyncWorkflowBodySchema;
13
+ var streamAgentBuilderBodySchema = chunkTF7NSMHW_cjs.streamWorkflowBodySchema;
14
+ var streamLegacyAgentBuilderBodySchema = chunkTF7NSMHW_cjs.streamLegacyWorkflowBodySchema;
15
+ var resumeAgentBuilderBodySchema = chunkTF7NSMHW_cjs.resumeBodySchema;
16
+ var startAsyncAgentBuilderBodySchema = chunkTF7NSMHW_cjs.startAsyncWorkflowBodySchema;
17
17
 
18
18
  exports.actionIdPathParams = actionIdPathParams;
19
19
  exports.actionRunPathParams = actionRunPathParams;
@@ -21,5 +21,5 @@ exports.resumeAgentBuilderBodySchema = resumeAgentBuilderBodySchema;
21
21
  exports.startAsyncAgentBuilderBodySchema = startAsyncAgentBuilderBodySchema;
22
22
  exports.streamAgentBuilderBodySchema = streamAgentBuilderBodySchema;
23
23
  exports.streamLegacyAgentBuilderBodySchema = streamLegacyAgentBuilderBodySchema;
24
- //# sourceMappingURL=chunk-RPOKTN4O.cjs.map
25
- //# sourceMappingURL=chunk-RPOKTN4O.cjs.map
24
+ //# sourceMappingURL=chunk-SEAOI56Z.cjs.map
25
+ //# sourceMappingURL=chunk-SEAOI56Z.cjs.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/schemas/agent-builder.ts"],"names":["z","streamWorkflowBodySchema","streamLegacyWorkflowBodySchema","resumeBodySchema","startAsyncWorkflowBodySchema"],"mappings":";;;;;AAUO,IAAM,kBAAA,GAAqBA,KAAE,MAAA,CAAO;AAAA,EACzC,QAAA,EAAUA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gDAAgD;AAChF,CAAC;AAEM,IAAM,mBAAA,GAAsBA,KAAE,MAAA,CAAO;AAAA,EAC1C,QAAA,EAAUA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gDAAgD,CAAA;AAAA,EAC9E,KAAA,EAAOA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,sCAAsC;AACnE,CAAC;AAUM,IAAM,4BAAA,GAA+BC;AAKrC,IAAM,kCAAA,GAAqCC;AAK3C,IAAM,4BAAA,GAA+BC;AAKrC,IAAM,gCAAA,GAAmCC","file":"chunk-RPOKTN4O.cjs","sourcesContent":["import { z } from 'zod/v4';\nimport {\n streamWorkflowBodySchema,\n resumeBodySchema,\n startAsyncWorkflowBodySchema,\n streamLegacyWorkflowBodySchema,\n} from './workflows';\n\n// Path parameter schemas\n\nexport const actionIdPathParams = z.object({\n actionId: z.string().describe('Unique identifier for the agent-builder action'),\n});\n\nexport const actionRunPathParams = z.object({\n actionId: z.string().describe('Unique identifier for the agent-builder action'),\n runId: z.string().describe('Unique identifier for the action run'),\n});\n\n/**\n * Agent-builder schemas use the same body schemas as workflows\n * Both use requestContext field\n */\n\n/**\n * Schema for stream agent-builder action body\n */\nexport const streamAgentBuilderBodySchema = streamWorkflowBodySchema;\n\n/**\n * Schema for legacy stream agent-builder action body\n */\nexport const streamLegacyAgentBuilderBodySchema = streamLegacyWorkflowBodySchema;\n\n/**\n * Schema for resume agent-builder action body\n */\nexport const resumeAgentBuilderBodySchema = resumeBodySchema;\n\n/**\n * Schema for start async agent-builder action body\n */\nexport const startAsyncAgentBuilderBodySchema = startAsyncWorkflowBodySchema;\n\n// Agent-builder actions use the same response schemas as workflows since they're wrapped workflow handlers\nexport {\n createWorkflowRunResponseSchema,\n listWorkflowRunsQuerySchema,\n sendWorkflowRunEventBodySchema,\n workflowExecutionResultSchema,\n workflowControlResponseSchema,\n workflowRunsResponseSchema,\n workflowInfoSchema,\n listWorkflowsResponseSchema,\n workflowRunResultSchema,\n workflowRunResultQuerySchema,\n} from './workflows';\n"]}
1
+ {"version":3,"sources":["../src/server/schemas/agent-builder.ts"],"names":["z","streamWorkflowBodySchema","streamLegacyWorkflowBodySchema","resumeBodySchema","startAsyncWorkflowBodySchema"],"mappings":";;;;;AAUO,IAAM,kBAAA,GAAqBA,KAAE,MAAA,CAAO;AAAA,EACzC,QAAA,EAAUA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gDAAgD;AAChF,CAAC;AAEM,IAAM,mBAAA,GAAsBA,KAAE,MAAA,CAAO;AAAA,EAC1C,QAAA,EAAUA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gDAAgD,CAAA;AAAA,EAC9E,KAAA,EAAOA,IAAA,CAAE,MAAA,EAAO,CAAE,SAAS,sCAAsC;AACnE,CAAC;AAUM,IAAM,4BAAA,GAA+BC;AAKrC,IAAM,kCAAA,GAAqCC;AAK3C,IAAM,4BAAA,GAA+BC;AAKrC,IAAM,gCAAA,GAAmCC","file":"chunk-SEAOI56Z.cjs","sourcesContent":["import { z } from 'zod/v4';\nimport {\n streamWorkflowBodySchema,\n resumeBodySchema,\n startAsyncWorkflowBodySchema,\n streamLegacyWorkflowBodySchema,\n} from './workflows';\n\n// Path parameter schemas\n\nexport const actionIdPathParams = z.object({\n actionId: z.string().describe('Unique identifier for the agent-builder action'),\n});\n\nexport const actionRunPathParams = z.object({\n actionId: z.string().describe('Unique identifier for the agent-builder action'),\n runId: z.string().describe('Unique identifier for the action run'),\n});\n\n/**\n * Agent-builder schemas use the same body schemas as workflows\n * Both use requestContext field\n */\n\n/**\n * Schema for stream agent-builder action body\n */\nexport const streamAgentBuilderBodySchema = streamWorkflowBodySchema;\n\n/**\n * Schema for legacy stream agent-builder action body\n */\nexport const streamLegacyAgentBuilderBodySchema = streamLegacyWorkflowBodySchema;\n\n/**\n * Schema for resume agent-builder action body\n */\nexport const resumeAgentBuilderBodySchema = resumeBodySchema;\n\n/**\n * Schema for start async agent-builder action body\n */\nexport const startAsyncAgentBuilderBodySchema = startAsyncWorkflowBodySchema;\n\n// Agent-builder actions use the same response schemas as workflows since they're wrapped workflow handlers\nexport {\n createWorkflowRunResponseSchema,\n listWorkflowRunsQuerySchema,\n sendWorkflowRunEventBodySchema,\n workflowExecutionResultSchema,\n workflowControlResponseSchema,\n workflowRunsResponseSchema,\n workflowInfoSchema,\n listWorkflowsResponseSchema,\n workflowRunResultSchema,\n workflowRunResultQuerySchema,\n} from './workflows';\n"]}
@@ -1,8 +1,8 @@
1
1
  import { conversationObjectSchema, createConversationBodySchema, conversationIdPathParams, conversationItemsListSchema, conversationDeletedSchema } from './chunk-APFB2KF2.js';
2
2
  import { mapMastraMessagesToConversationItems } from './chunk-AJYJ4H7P.js';
3
- import { getAgentMemoryStore, findConversationThreadAcrossAgents } from './chunk-WC4RIS4D.js';
4
- import { getAgentFromSystem } from './chunk-YGQNINW7.js';
5
- import { getEffectiveResourceId } from './chunk-VLNRGJEM.js';
3
+ import { getAgentMemoryStore, findConversationThreadAcrossAgents } from './chunk-KW2MZGRE.js';
4
+ import { getAgentFromSystem } from './chunk-UZRD3SEA.js';
5
+ import { getEffectiveResourceId } from './chunk-JZNOIGOQ.js';
6
6
  import { createRoute } from './chunk-PA2BYLKF.js';
7
7
  import { handleError } from './chunk-P23KBWKB.js';
8
8
  import { HTTPException } from './chunk-6QWQZI4Q.js';
@@ -155,5 +155,5 @@ var DELETE_CONVERSATION_ROUTE = createRoute({
155
155
  });
156
156
 
157
157
  export { CREATE_CONVERSATION_ROUTE, DELETE_CONVERSATION_ROUTE, GET_CONVERSATION_ITEMS_ROUTE, GET_CONVERSATION_ROUTE, conversations_exports };
158
- //# sourceMappingURL=chunk-K33KUMJY.js.map
159
- //# sourceMappingURL=chunk-K33KUMJY.js.map
158
+ //# sourceMappingURL=chunk-SSMLJV2K.js.map
159
+ //# sourceMappingURL=chunk-SSMLJV2K.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/server/handlers/conversations.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,IAAA,qBAAA,GAAA;AAAA,QAAA,CAAA,qBAAA,EAAA;AAAA,EAAA,yBAAA,EAAA,MAAA,yBAAA;AAAA,EAAA,yBAAA,EAAA,MAAA,yBAAA;AAAA,EAAA,4BAAA,EAAA,MAAA,4BAAA;AAAA,EAAA,sBAAA,EAAA,MAAA;AAAA,CAAA,CAAA;AAiBA,SAAS,uBAAA,CAAwB,EAAE,MAAA,EAAO,EAAiE;AACzG,EAAA,OAAO;AAAA,IACL,IAAI,MAAA,CAAO,EAAA;AAAA,IACX,MAAA,EAAQ,cAAA;AAAA,IACR;AAAA,GACF;AACF;AAEA,SAAS,2BAA2B,KAAA,EAA6D;AAC/F,EAAA,OAAO;AAAA,IACL,MAAA,EAAQ,MAAA;AAAA,IACR,IAAA,EAAM,KAAA;AAAA,IACN,QAAA,EAAU,KAAA,CAAM,CAAC,CAAA,EAAG,EAAA,IAAM,IAAA;AAAA,IAC1B,OAAA,EAAS,KAAA,CAAM,EAAA,CAAG,EAAE,GAAG,EAAA,IAAM,IAAA;AAAA,IAC7B,QAAA,EAAU;AAAA,GACZ;AACF;AAEA,SAAS,yBAAyB,cAAA,EAA6C;AAC7E,EAAA,OAAO;AAAA,IACL,EAAA,EAAI,cAAA;AAAA,IACJ,MAAA,EAAQ,sBAAA;AAAA,IACR,OAAA,EAAS;AAAA,GACX;AACF;AAEO,IAAM,4BAA4B,WAAA,CAAY;AAAA,EACnD,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,mBAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,UAAA,EAAY,4BAAA;AAAA,EACZ,cAAA,EAAgB,wBAAA;AAAA,EAChB,OAAA,EAAS,uBAAA;AAAA,EACT,WAAA,EAAa,kFAAA;AAAA,EACb,IAAA,EAAM,CAAC,WAAW,CAAA;AAAA,EAClB,YAAA,EAAc,IAAA;AAAA,EACd,kBAAA,EAAoB,eAAA;AAAA,EACpB,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,cAAA,EAAgB,UAAU,eAAA,EAAiB,WAAA,EAAa,KAAA,EAAO,QAAA,EAAS,KAAM;AACtG,IAAA,IAAI;AACF,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAI,aAAA,CAAc,GAAA,EAAK,EAAE,OAAA,EAAS,iDAAiD,CAAA;AAAA,MAC3F;AAEA,MAAA,MAAM,QAAQ,MAAM,kBAAA,CAAmB,EAAE,MAAA,EAAQ,OAAA,EAAS,UAAU,CAAA;AACpE,MAAA,MAAM,SAAS,MAAM,KAAA,CAAM,SAAA,CAAU,EAAE,gBAAgB,CAAA;AACvD,MAAA,IAAI,CAAC,MAAA,EAAQ;AACX,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,OAAA,EAAU,KAAA,CAAM,EAAE,CAAA,iCAAA,CAAA,EAAqC,CAAA;AAAA,MACjG;AACA,MAAA,IAAI,CAAE,MAAM,mBAAA,CAAoB,EAAE,KAAA,EAAO,cAAA,EAAgB,CAAA,EAAI;AAC3D,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,4CAAA,EAA+C,KAAA,CAAM,EAAE,CAAA,CAAA,CAAA,EAAK,CAAA;AAAA,MACtG;AAEA,MAAA,MAAM,QAAA,GAAW,mBAAmB,UAAA,EAAW;AAC/C,MAAA,MAAM,UAAA,GAAa,sBAAA,CAAuB,cAAA,EAAgB,WAAW,CAAA,IAAK,QAAA;AAC1E,MAAA,MAAM,MAAA,GAAS,MAAM,MAAA,CAAO,YAAA,CAAa;AAAA,QACvC,QAAA;AAAA,QACA,UAAA;AAAA,QACA,KAAA;AAAA,QACA;AAAA,OACD,CAAA;AAED,MAAA,OAAO,uBAAA,CAAwB,EAAE,MAAA,EAAQ,CAAA;AAAA,IAC3C,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,6BAA6B,CAAA;AAAA,IACzD;AAAA,EACF;AACF,CAAC;AAEM,IAAM,yBAAyB,WAAA,CAAY;AAAA,EAChD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,mCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,wBAAA;AAAA,EACjB,cAAA,EAAgB,wBAAA;AAAA,EAChB,OAAA,EAAS,yBAAA;AAAA,EACT,WAAA,EAAa,gEAAA;AAAA,EACb,IAAA,EAAM,CAAC,WAAW,CAAA;AAAA,EAClB,YAAA,EAAc,IAAA;AAAA,EACd,kBAAA,EAAoB,aAAA;AAAA,EACpB,SAAS,OAAO,EAAE,MAAA,EAAQ,cAAA,EAAgB,gBAAe,KAAM;AAC7D,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAM,kCAAA,CAAmC,EAAE,MAAA,EAAQ,cAAA,EAAgB,gBAAgB,CAAA;AACjG,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,aAAA,EAAgB,cAAc,kBAAkB,CAAA;AAAA,MAC1F;AAEA,MAAA,OAAO,uBAAA,CAAwB,EAAE,MAAA,EAAQ,KAAA,CAAM,QAAQ,CAAA;AAAA,IACzD,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,+BAA+B,CAAA;AAAA,IAC3D;AAAA,EACF;AACF,CAAC;AAEM,IAAM,+BAA+B,WAAA,CAAY;AAAA,EACtD,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,yCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,wBAAA;AAAA,EACjB,cAAA,EAAgB,2BAAA;AAAA,EAChB,OAAA,EAAS,yBAAA;AAAA,EACT,WAAA,EAAa,iFAAA;AAAA,EACb,IAAA,EAAM,CAAC,WAAW,CAAA;AAAA,EAClB,YAAA,EAAc,IAAA;AAAA,EACd,kBAAA,EAAoB,aAAA;AAAA,EACpB,SAAS,OAAO,EAAE,MAAA,EAAQ,cAAA,EAAgB,gBAAe,KAAM;AAC7D,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAM,kCAAA,CAAmC,EAAE,MAAA,EAAQ,cAAA,EAAgB,gBAAgB,CAAA;AACjG,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,aAAA,EAAgB,cAAc,kBAAkB,CAAA;AAAA,MAC1F;AAEA,MAAA,MAAM,EAAE,QAAA,EAAS,GAAI,MAAM,KAAA,CAAM,YAAY,YAAA,CAAa;AAAA,QACxD,QAAA,EAAU,cAAA;AAAA,QACV,IAAA,EAAM,CAAA;AAAA,QACN,OAAA,EAAS;AAAA,OACV,CAAA;AAED,MAAA,OAAO,0BAAA,CAA2B,oCAAA,CAAqC,QAAQ,CAAC,CAAA;AAAA,IAClF,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,+BAA+B,CAAA;AAAA,IAC3D;AAAA,EACF;AACF,CAAC;AAEM,IAAM,4BAA4B,WAAA,CAAY;AAAA,EACnD,MAAA,EAAQ,QAAA;AAAA,EACR,IAAA,EAAM,mCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,wBAAA;AAAA,EACjB,cAAA,EAAgB,yBAAA;AAAA,EAChB,OAAA,EAAS,uBAAA;AAAA,EACT,WAAA,EAAa,2DAAA;AAAA,EACb,IAAA,EAAM,CAAC,WAAW,CAAA;AAAA,EAClB,YAAA,EAAc,IAAA;AAAA,EACd,kBAAA,EAAoB,eAAA;AAAA,EACpB,SAAS,OAAO,EAAE,MAAA,EAAQ,cAAA,EAAgB,gBAAe,KAAM;AAC7D,IAAA,IAAI;AACF,MAAA,MAAM,QAAQ,MAAM,kCAAA,CAAmC,EAAE,MAAA,EAAQ,cAAA,EAAgB,gBAAgB,CAAA;AACjG,MAAA,IAAI,CAAC,KAAA,EAAO;AACV,QAAA,MAAM,IAAI,cAAc,GAAA,EAAK,EAAE,SAAS,CAAA,aAAA,EAAgB,cAAc,kBAAkB,CAAA;AAAA,MAC1F;AAEA,MAAA,MAAM,MAAM,WAAA,CAAY,YAAA,CAAa,EAAE,QAAA,EAAU,gBAAgB,CAAA;AAEjE,MAAA,OAAO,yBAAyB,cAAc,CAAA;AAAA,IAChD,SAAS,KAAA,EAAO;AACd,MAAA,OAAO,WAAA,CAAY,OAAO,6BAA6B,CAAA;AAAA,IACzD;AAAA,EACF;AACF,CAAC","file":"chunk-K33KUMJY.js","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { HTTPException } from '../http-exception';\nimport {\n conversationDeletedSchema,\n conversationIdPathParams,\n conversationItemsListSchema,\n conversationObjectSchema,\n createConversationBodySchema,\n} from '../schemas/conversations';\nimport type { ConversationDeleted, ConversationItemsList, ConversationObject } from '../schemas/conversations';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { mapMastraMessagesToConversationItems } from './responses.adapter';\nimport { findConversationThreadAcrossAgents, getAgentMemoryStore } from './responses.storage';\nimport { getEffectiveResourceId } from './utils';\n\nfunction buildConversationObject({ thread }: { thread: ConversationObject['thread'] }): ConversationObject {\n return {\n id: thread.id,\n object: 'conversation',\n thread,\n };\n}\n\nfunction buildConversationItemsList(items: ConversationItemsList['data']): ConversationItemsList {\n return {\n object: 'list',\n data: items,\n first_id: items[0]?.id ?? null,\n last_id: items.at(-1)?.id ?? null,\n has_more: false,\n };\n}\n\nfunction buildConversationDeleted(conversationId: string): ConversationDeleted {\n return {\n id: conversationId,\n object: 'conversation.deleted',\n deleted: true,\n };\n}\n\nexport const CREATE_CONVERSATION_ROUTE = createRoute({\n method: 'POST',\n path: '/v1/conversations',\n responseType: 'json',\n bodySchema: createConversationBodySchema,\n responseSchema: conversationObjectSchema,\n summary: 'Create a conversation',\n description: 'Creates a new thread-backed conversation for agent-backed Responses API requests',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: 'agents:create',\n handler: async ({ mastra, requestContext, agent_id, conversation_id, resource_id, title, metadata }) => {\n try {\n if (!mastra) {\n throw new HTTPException(500, { message: 'Mastra instance is required for conversations' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId: agent_id });\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: `Agent \"${agent.id}\" does not have memory configured` });\n }\n if (!(await getAgentMemoryStore({ agent, requestContext }))) {\n throw new HTTPException(400, { message: `Memory storage is not configured for agent \"${agent.id}\"` });\n }\n\n const threadId = conversation_id ?? randomUUID();\n const resourceId = getEffectiveResourceId(requestContext, resource_id) ?? threadId;\n const thread = await memory.createThread({\n threadId,\n resourceId,\n title,\n metadata,\n });\n\n return buildConversationObject({ thread });\n } catch (error) {\n return handleError(error, 'Error creating conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationObjectSchema,\n summary: 'Retrieve a conversation',\n description: 'Returns a conversation object backed by a Mastra memory thread',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: 'agents:read',\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n return buildConversationObject({ thread: match.thread });\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ITEMS_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId/items',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationItemsListSchema,\n summary: 'List conversation items',\n description: 'Returns OpenAI-style conversation items derived from the stored thread messages',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: 'agents:read',\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n const { messages } = await match.memoryStore.listMessages({\n threadId: conversationId,\n page: 0,\n perPage: 1000,\n });\n\n return buildConversationItemsList(mapMastraMessagesToConversationItems(messages));\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const DELETE_CONVERSATION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationDeletedSchema,\n summary: 'Delete a conversation',\n description: 'Deletes a thread-backed conversation and its stored items',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: 'agents:delete',\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n await match.memoryStore.deleteThread({ threadId: conversationId });\n\n return buildConversationDeleted(conversationId);\n } catch (error) {\n return handleError(error, 'Error deleting conversation');\n }\n },\n});\n"]}
1
+ {"version":3,"sources":["../src/server/handlers/conversations.ts"],"names":[],"mappings":"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","file":"chunk-SSMLJV2K.js","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport { HTTPException } from '../http-exception';\nimport {\n conversationDeletedSchema,\n conversationIdPathParams,\n conversationItemsListSchema,\n conversationObjectSchema,\n createConversationBodySchema,\n} from '../schemas/conversations';\nimport type { ConversationDeleted, ConversationItemsList, ConversationObject } from '../schemas/conversations';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport { mapMastraMessagesToConversationItems } from './responses.adapter';\nimport { findConversationThreadAcrossAgents, getAgentMemoryStore } from './responses.storage';\nimport { getEffectiveResourceId } from './utils';\n\nfunction buildConversationObject({ thread }: { thread: ConversationObject['thread'] }): ConversationObject {\n return {\n id: thread.id,\n object: 'conversation',\n thread,\n };\n}\n\nfunction buildConversationItemsList(items: ConversationItemsList['data']): ConversationItemsList {\n return {\n object: 'list',\n data: items,\n first_id: items[0]?.id ?? null,\n last_id: items.at(-1)?.id ?? null,\n has_more: false,\n };\n}\n\nfunction buildConversationDeleted(conversationId: string): ConversationDeleted {\n return {\n id: conversationId,\n object: 'conversation.deleted',\n deleted: true,\n };\n}\n\nexport const CREATE_CONVERSATION_ROUTE = createRoute({\n method: 'POST',\n path: '/v1/conversations',\n responseType: 'json',\n bodySchema: createConversationBodySchema,\n responseSchema: conversationObjectSchema,\n summary: 'Create a conversation',\n description: 'Creates a new thread-backed conversation for agent-backed Responses API requests',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: 'agents:create',\n handler: async ({ mastra, requestContext, agent_id, conversation_id, resource_id, title, metadata }) => {\n try {\n if (!mastra) {\n throw new HTTPException(500, { message: 'Mastra instance is required for conversations' });\n }\n\n const agent = await getAgentFromSystem({ mastra, agentId: agent_id });\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n throw new HTTPException(400, { message: `Agent \"${agent.id}\" does not have memory configured` });\n }\n if (!(await getAgentMemoryStore({ agent, requestContext }))) {\n throw new HTTPException(400, { message: `Memory storage is not configured for agent \"${agent.id}\"` });\n }\n\n const threadId = conversation_id ?? randomUUID();\n const resourceId = getEffectiveResourceId(requestContext, resource_id) ?? threadId;\n const thread = await memory.createThread({\n threadId,\n resourceId,\n title,\n metadata,\n });\n\n return buildConversationObject({ thread });\n } catch (error) {\n return handleError(error, 'Error creating conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationObjectSchema,\n summary: 'Retrieve a conversation',\n description: 'Returns a conversation object backed by a Mastra memory thread',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: 'agents:read',\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n return buildConversationObject({ thread: match.thread });\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const GET_CONVERSATION_ITEMS_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/conversations/:conversationId/items',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationItemsListSchema,\n summary: 'List conversation items',\n description: 'Returns OpenAI-style conversation items derived from the stored thread messages',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: 'agents:read',\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n const { messages } = await match.memoryStore.listMessages({\n threadId: conversationId,\n page: 0,\n perPage: 1000,\n });\n\n return buildConversationItemsList(mapMastraMessagesToConversationItems(messages));\n } catch (error) {\n return handleError(error, 'Error retrieving conversation');\n }\n },\n});\n\nexport const DELETE_CONVERSATION_ROUTE = createRoute({\n method: 'DELETE',\n path: '/v1/conversations/:conversationId',\n responseType: 'json',\n pathParamSchema: conversationIdPathParams,\n responseSchema: conversationDeletedSchema,\n summary: 'Delete a conversation',\n description: 'Deletes a thread-backed conversation and its stored items',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: 'agents:delete',\n handler: async ({ mastra, requestContext, conversationId }) => {\n try {\n const match = await findConversationThreadAcrossAgents({ mastra, conversationId, requestContext });\n if (!match) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n await match.memoryStore.deleteThread({ threadId: conversationId });\n\n return buildConversationDeleted(conversationId);\n } catch (error) {\n return handleError(error, 'Error deleting conversation');\n }\n },\n});\n"]}
@@ -168,11 +168,16 @@ var createWorkflowRunBodySchema = v4.z.object({
168
168
  resourceId: v4.z.string().optional(),
169
169
  disableScorers: v4.z.boolean().optional()
170
170
  });
171
+ var observeWorkflowQuerySchema = v4.z.object({
172
+ runId: v4.z.string().describe("Unique identifier for the run"),
173
+ offset: v4.z.coerce.number().optional().describe("Resume from this event index (0-based). If omitted, replays all events.")
174
+ });
171
175
 
172
176
  exports.createWorkflowRunBodySchema = createWorkflowRunBodySchema;
173
177
  exports.createWorkflowRunResponseSchema = createWorkflowRunResponseSchema;
174
178
  exports.listWorkflowRunsQuerySchema = listWorkflowRunsQuerySchema;
175
179
  exports.listWorkflowsResponseSchema = listWorkflowsResponseSchema;
180
+ exports.observeWorkflowQuerySchema = observeWorkflowQuerySchema;
176
181
  exports.restartBodySchema = restartBodySchema;
177
182
  exports.resumeBodySchema = resumeBodySchema;
178
183
  exports.sendWorkflowRunEventBodySchema = sendWorkflowRunEventBodySchema;
@@ -188,5 +193,5 @@ exports.workflowRunPathParams = workflowRunPathParams;
188
193
  exports.workflowRunResultQuerySchema = workflowRunResultQuerySchema;
189
194
  exports.workflowRunResultSchema = workflowRunResultSchema;
190
195
  exports.workflowRunsResponseSchema = workflowRunsResponseSchema;
191
- //# sourceMappingURL=chunk-DIX6JWN4.cjs.map
192
- //# sourceMappingURL=chunk-DIX6JWN4.cjs.map
196
+ //# sourceMappingURL=chunk-TF7NSMHW.cjs.map
197
+ //# sourceMappingURL=chunk-TF7NSMHW.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/schemas/workflows.ts"],"names":["z","createCombinedPaginationSchema","tracingOptionsSchema","messageResponseSchema"],"mappings":"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","file":"chunk-TF7NSMHW.cjs","sourcesContent":["import { z } from 'zod/v4';\nimport { createCombinedPaginationSchema, tracingOptionsSchema, messageResponseSchema } from './common';\n\nexport const workflowRunStatusSchema = z.enum([\n 'running',\n 'waiting',\n 'suspended',\n 'success',\n 'failed',\n 'canceled',\n 'pending',\n 'bailed',\n 'tripwire',\n 'paused',\n]);\n\n// Path parameter schemas\nexport const workflowIdPathParams = z.object({\n workflowId: z.string().describe('Unique identifier for the workflow'),\n});\n\nexport const workflowRunPathParams = workflowIdPathParams.extend({\n runId: z.string().describe('Unique identifier for the workflow run'),\n});\n\n/**\n * Schema for serialized step\n * Uses passthrough() to allow step-specific fields\n */\nconst serializedStepSchema = z.object({\n id: z.string(),\n description: z.string().optional(),\n stateSchema: z.string().optional(),\n inputSchema: z.string().optional(),\n outputSchema: z.string().optional(),\n resumeSchema: z.string().optional(),\n suspendSchema: z.string().optional(),\n component: z.string().optional(),\n isWorkflow: z.boolean().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\n/**\n * Schema for serialized step flow entry\n * Represents different step flow types in the workflow graph\n */\nconst serializedStepFlowEntrySchema = z.object({\n type: z.enum(['step', 'sleep', 'sleepUntil', 'waitForEvent', 'parallel', 'conditional', 'loop', 'foreach']),\n});\n\n/**\n * Schema for workflow information\n * Returned by getWorkflowByIdHandler and listWorkflowsHandler\n */\nexport const workflowInfoSchema = z.object({\n steps: z.record(z.string(), serializedStepSchema),\n allSteps: z.record(z.string(), serializedStepSchema),\n name: z.string().optional(),\n description: z.string().optional(),\n stepGraph: z.array(serializedStepFlowEntrySchema),\n inputSchema: z.string().optional(),\n outputSchema: z.string().optional(),\n stateSchema: z.string().optional(),\n options: z.object({}).optional(),\n isProcessorWorkflow: z.boolean().optional(),\n});\n\n/**\n * Schema for list workflows endpoint response\n * Returns a record of workflow ID to workflow info\n */\nexport const listWorkflowsResponseSchema = z.record(z.string(), workflowInfoSchema);\n\n/**\n * Schema for workflow run object\n */\nconst workflowRunSchema = z.object({\n workflowName: z.string(),\n runId: z.string(),\n snapshot: z.union([z.record(z.string(), z.any()), z.string()]),\n createdAt: z.date(),\n updatedAt: z.date(),\n resourceId: z.string().optional(),\n});\n\n/**\n * Schema for workflow runs response (paginated)\n * Includes runs array and total count\n */\nexport const workflowRunsResponseSchema = z.object({\n runs: z.array(workflowRunSchema),\n total: z.number(),\n});\n\n/**\n * Schema for query parameters when listing workflow runs\n * Supports both page/perPage and limit/offset for backwards compatibility\n * If page/perPage provided, use directly; otherwise convert from limit/offset\n */\nexport const listWorkflowRunsQuerySchema = createCombinedPaginationSchema().extend({\n fromDate: z.coerce.date().optional(),\n toDate: z.coerce.date().optional(),\n resourceId: z.string().optional(),\n status: workflowRunStatusSchema.optional(),\n});\n\n/**\n * Base schema for workflow execution with input data and tracing\n */\nconst workflowExecutionBodySchema = z.object({\n resourceId: z.string().optional(),\n inputData: z.unknown().optional(),\n initialState: z.unknown().optional(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n tracingOptions: tracingOptionsSchema.optional(),\n perStep: z.boolean().optional(),\n});\n\n/**\n * Schema for legacy stream workflow body (no closeOnSuspend support)\n * Used by /stream-legacy endpoints\n */\nexport const streamLegacyWorkflowBodySchema = workflowExecutionBodySchema;\n\n/**\n * Schema for stream workflow body\n * Used by both /stream and /streamVNext endpoints\n */\nexport const streamWorkflowBodySchema = workflowExecutionBodySchema.extend({\n closeOnSuspend: z.boolean().optional(),\n});\n\n/**\n * Schema for resume workflow body\n * Used by resume-stream, resume-async and resume endpoints\n */\nexport const resumeBodySchema = z.object({\n step: z.union([z.string(), z.array(z.string())]).optional(), // Optional - workflow can auto-resume all suspended steps\n resumeData: z.unknown().optional(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n tracingOptions: tracingOptionsSchema.optional(),\n perStep: z.boolean().optional(),\n forEachIndex: z.number().int().nonnegative().optional(),\n});\n\n/**\n * Schema for restart workflow body\n * Used by restart-async and restart endpoints\n */\nexport const restartBodySchema = z.object({\n requestContext: z.record(z.string(), z.unknown()).optional(),\n tracingOptions: tracingOptionsSchema.optional(),\n});\n\n/**\n * Schema for time travel workflow body\n * Used by time-travel-stream, time-travel-async and time-travel endpoints\n */\nexport const timeTravelBodySchema = z.object({\n inputData: z.unknown().optional(),\n resumeData: z.unknown().optional(),\n initialState: z.unknown().optional(),\n step: z.union([z.string(), z.array(z.string())]),\n context: z.record(z.string(), z.any()).optional(),\n nestedStepsContext: z.record(z.string(), z.record(z.string(), z.any())).optional(),\n requestContext: z.record(z.string(), z.unknown()).optional(),\n tracingOptions: tracingOptionsSchema.optional(),\n perStep: z.boolean().optional(),\n});\n\n/**\n * Schema for start async workflow body\n */\nexport const startAsyncWorkflowBodySchema = workflowExecutionBodySchema;\n\n/**\n * Schema for send workflow run event body\n */\nexport const sendWorkflowRunEventBodySchema = z.object({\n event: z.string(),\n data: z.unknown(),\n});\n\n// Shared field validation for workflow result queries\nconst VALID_WORKFLOW_RESULT_FIELDS = new Set([\n 'result',\n 'error',\n 'payload',\n 'steps',\n 'activeStepsPath',\n 'serializedStepGraph',\n]);\n\nconst WORKFLOW_RESULT_FIELDS_ERROR =\n 'Invalid field name. Available fields: result, error, payload, steps, activeStepsPath, serializedStepGraph';\n\nconst createFieldsValidator = (description: string) =>\n z\n .string()\n .optional()\n .refine(\n value => {\n if (!value) return true;\n const requestedFields = value.split(',').map(f => f.trim());\n return requestedFields.every(field => VALID_WORKFLOW_RESULT_FIELDS.has(field));\n },\n { message: WORKFLOW_RESULT_FIELDS_ERROR },\n )\n .describe(description);\n\nconst withNestedWorkflowsField = z\n .enum(['true', 'false'])\n .optional()\n .describe('Whether to include nested workflow data in steps. Defaults to true. Set to false for better performance.');\n\n/**\n * Schema for workflow execution result\n * All fields are optional since field filtering allows requesting specific fields only\n */\nexport const workflowExecutionResultSchema = z.object({\n status: workflowRunStatusSchema.optional(),\n result: z.unknown().optional(),\n error: z.unknown().optional(),\n payload: z.unknown().optional(),\n initialState: z.unknown().optional(),\n steps: z.record(z.string(), z.any()).optional(),\n activeStepsPath: z.record(z.string(), z.array(z.number())).optional(),\n serializedStepGraph: z.array(serializedStepFlowEntrySchema).optional(),\n});\n\n/**\n * Schema for query parameters when getting a unified workflow run result\n */\nexport const workflowRunResultQuerySchema = z.object({\n fields: createFieldsValidator(\n 'Comma-separated list of fields to return. Available fields: result, error, payload, steps, activeStepsPath, serializedStepGraph. Metadata fields (runId, workflowName, resourceId, createdAt, updatedAt) and status are always included.',\n ),\n withNestedWorkflows: withNestedWorkflowsField,\n});\n\n/**\n * Schema for unified workflow run result response\n * Combines metadata and processed execution state\n */\nexport const workflowRunResultSchema = z.object({\n // Metadata - always present\n runId: z.string(),\n workflowName: z.string(),\n resourceId: z.string().optional(),\n createdAt: z.date(),\n updatedAt: z.date(),\n\n // Execution state\n status: workflowRunStatusSchema,\n initialState: z.record(z.string(), z.any()).optional(),\n result: z.unknown().optional(),\n error: z.unknown().optional(),\n payload: z.unknown().optional(),\n steps: z.record(z.string(), z.any()).optional(),\n\n // Optional detailed fields\n activeStepsPath: z.record(z.string(), z.array(z.number())).optional(),\n serializedStepGraph: z.array(serializedStepFlowEntrySchema).optional(),\n});\n\n/**\n * Response schema for workflow control operations\n */\nexport const workflowControlResponseSchema = messageResponseSchema;\n\n/**\n * Response schema for create workflow run operation\n * Returns only the runId after creating a run\n */\nexport const createWorkflowRunResponseSchema = z.object({\n runId: z.string(),\n});\n\n/**\n * Schema for create workflow run body\n * Used by /create-run endpoint\n */\nexport const createWorkflowRunBodySchema = z.object({\n resourceId: z.string().optional(),\n disableScorers: z.boolean().optional(),\n});\n\n/**\n * Schema for observe workflow query params\n * Extends runId with optional offset for efficient resume\n */\nexport const observeWorkflowQuerySchema = z.object({\n runId: z.string().describe('Unique identifier for the run'),\n offset: z.coerce\n .number()\n .optional()\n .describe('Resume from this event index (0-based). If omitted, replays all events.'),\n});\n"]}
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- var chunkLWK57QIA_cjs = require('./chunk-LWK57QIA.cjs');
3
+ var chunk2CFH32YO_cjs = require('./chunk-2CFH32YO.cjs');
4
4
  var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
5
5
 
6
6
  // src/server/handlers/responses.storage.ts
@@ -69,7 +69,7 @@ async function findResponseTurnRecord({
69
69
  if (!memoryStore) {
70
70
  return null;
71
71
  }
72
- const effectiveResourceId = chunkLWK57QIA_cjs.getEffectiveResourceId(requestContext, void 0);
72
+ const effectiveResourceId = chunk2CFH32YO_cjs.getEffectiveResourceId(requestContext, void 0);
73
73
  const { messages: matchedMessages } = await memoryStore.listMessagesById({ messageIds: [responseId] });
74
74
  const message = matchedMessages[0];
75
75
  if (!message || message.role !== "assistant") {
@@ -83,7 +83,7 @@ async function findResponseTurnRecord({
83
83
  if (!thread) {
84
84
  return null;
85
85
  }
86
- await chunkLWK57QIA_cjs.validateThreadOwnership(thread, effectiveResourceId);
86
+ await chunk2CFH32YO_cjs.validateThreadOwnership(thread, effectiveResourceId);
87
87
  const messageIds = metadata.messageIds.length > 0 ? metadata.messageIds : [message.id];
88
88
  const { messages: responseMessages } = await memoryStore.listMessagesById({ messageIds });
89
89
  const messagesById = new Map(responseMessages.map((storedMessage) => [storedMessage.id, storedMessage]));
@@ -115,7 +115,7 @@ async function findConversationThreadAcrossAgents({
115
115
  if (!mastra) {
116
116
  return null;
117
117
  }
118
- const effectiveResourceId = chunkLWK57QIA_cjs.getEffectiveResourceId(requestContext, void 0);
118
+ const effectiveResourceId = chunk2CFH32YO_cjs.getEffectiveResourceId(requestContext, void 0);
119
119
  const agents = Object.values(mastra.listAgents());
120
120
  for (const agent of agents) {
121
121
  const memoryStore = await getAgentMemoryStore({ agent, requestContext });
@@ -126,7 +126,7 @@ async function findConversationThreadAcrossAgents({
126
126
  if (!thread) {
127
127
  continue;
128
128
  }
129
- await chunkLWK57QIA_cjs.validateThreadOwnership(thread, effectiveResourceId);
129
+ await chunk2CFH32YO_cjs.validateThreadOwnership(thread, effectiveResourceId);
130
130
  return { thread, memoryStore };
131
131
  }
132
132
  return null;
@@ -230,5 +230,5 @@ exports.findResponseTurnRecordAcrossAgents = findResponseTurnRecordAcrossAgents;
230
230
  exports.getAgentMemoryStore = getAgentMemoryStore;
231
231
  exports.persistResponseTurnRecord = persistResponseTurnRecord;
232
232
  exports.resolveResponseTurnMessagesForStorage = resolveResponseTurnMessagesForStorage;
233
- //# sourceMappingURL=chunk-B7SBAXEP.cjs.map
234
- //# sourceMappingURL=chunk-B7SBAXEP.cjs.map
233
+ //# sourceMappingURL=chunk-TKHLXCSZ.cjs.map
234
+ //# sourceMappingURL=chunk-TKHLXCSZ.cjs.map