@mastra/server 1.33.0-alpha.6 → 1.33.0-alpha.7

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 (168) hide show
  1. package/CHANGELOG.md +152 -0
  2. package/dist/{api-schema-manifest-IWGQ5O45.js → api-schema-manifest-JLJ555JD.js} +3 -3
  3. package/dist/{api-schema-manifest-IWGQ5O45.js.map → api-schema-manifest-JLJ555JD.js.map} +1 -1
  4. package/dist/{api-schema-manifest-KDXQELMU.cjs → api-schema-manifest-QMJFKSSQ.cjs} +4 -4
  5. package/dist/{api-schema-manifest-KDXQELMU.cjs.map → api-schema-manifest-QMJFKSSQ.cjs.map} +1 -1
  6. package/dist/{chunk-IDLB647Y.js → chunk-2S4WCY5N.js} +3 -3
  7. package/dist/{chunk-IDLB647Y.js.map → chunk-2S4WCY5N.js.map} +1 -1
  8. package/dist/{chunk-EFW6MWXU.cjs → chunk-5XW4MKE6.cjs} +22 -2
  9. package/dist/chunk-5XW4MKE6.cjs.map +1 -0
  10. package/dist/{chunk-N6HISTTP.cjs → chunk-6ICH4PZY.cjs} +8 -8
  11. package/dist/{chunk-N6HISTTP.cjs.map → chunk-6ICH4PZY.cjs.map} +1 -1
  12. package/dist/{chunk-TE2PWB67.js → chunk-6IR53OXN.js} +3 -3
  13. package/dist/{chunk-TE2PWB67.js.map → chunk-6IR53OXN.js.map} +1 -1
  14. package/dist/{chunk-LXNZK6NM.cjs → chunk-6PJXFSA6.cjs} +51 -51
  15. package/dist/{chunk-LXNZK6NM.cjs.map → chunk-6PJXFSA6.cjs.map} +1 -1
  16. package/dist/{chunk-64YJOWH2.cjs → chunk-72W42JL4.cjs} +5 -5
  17. package/dist/{chunk-64YJOWH2.cjs.map → chunk-72W42JL4.cjs.map} +1 -1
  18. package/dist/{chunk-UOBKNRHM.cjs → chunk-7MXANTMR.cjs} +7 -7
  19. package/dist/{chunk-UOBKNRHM.cjs.map → chunk-7MXANTMR.cjs.map} +1 -1
  20. package/dist/{chunk-RQNN75EV.js → chunk-7QLLMDX3.js} +4 -4
  21. package/dist/{chunk-RQNN75EV.js.map → chunk-7QLLMDX3.js.map} +1 -1
  22. package/dist/{chunk-2KDOM6QE.js → chunk-7UMTLDZF.js} +106 -4
  23. package/dist/chunk-7UMTLDZF.js.map +1 -0
  24. package/dist/{chunk-WEDFF5FH.js → chunk-7UYUFWJS.js} +42 -42
  25. package/dist/chunk-7UYUFWJS.js.map +1 -0
  26. package/dist/{chunk-VZNSMKB7.cjs → chunk-7Y6MST2S.cjs} +135 -133
  27. package/dist/chunk-7Y6MST2S.cjs.map +1 -0
  28. package/dist/{chunk-CSG535HL.cjs → chunk-AHKXIRNB.cjs} +67 -41
  29. package/dist/chunk-AHKXIRNB.cjs.map +1 -0
  30. package/dist/chunk-B3CHYE7C.js +549 -0
  31. package/dist/chunk-B3CHYE7C.js.map +1 -0
  32. package/dist/{chunk-XPF4VEXO.js → chunk-C45QKFMT.js} +18 -16
  33. package/dist/chunk-C45QKFMT.js.map +1 -0
  34. package/dist/{chunk-OJLXPTSL.cjs → chunk-CXWOBZOJ.cjs} +13 -13
  35. package/dist/{chunk-OJLXPTSL.cjs.map → chunk-CXWOBZOJ.cjs.map} +1 -1
  36. package/dist/{chunk-5HQXXBTM.js → chunk-DXZFPYNO.js} +3 -3
  37. package/dist/{chunk-5HQXXBTM.js.map → chunk-DXZFPYNO.js.map} +1 -1
  38. package/dist/{chunk-TWT64BVR.js → chunk-E55OUW7R.js} +44 -69
  39. package/dist/chunk-E55OUW7R.js.map +1 -0
  40. package/dist/{chunk-LOZT5NDU.cjs → chunk-E74QCKFN.cjs} +3 -3
  41. package/dist/{chunk-LOZT5NDU.cjs.map → chunk-E74QCKFN.cjs.map} +1 -1
  42. package/dist/{chunk-IT26WLSZ.js → chunk-EWN5J4RH.js} +6 -6
  43. package/dist/{chunk-IT26WLSZ.js.map → chunk-EWN5J4RH.js.map} +1 -1
  44. package/dist/chunk-F3HP5HM6.cjs +998 -0
  45. package/dist/chunk-F3HP5HM6.cjs.map +1 -0
  46. package/dist/{chunk-47U5QTGT.cjs → chunk-FST7LM2Z.cjs} +76 -29
  47. package/dist/chunk-FST7LM2Z.cjs.map +1 -0
  48. package/dist/{chunk-MTKGUIFX.js → chunk-GCR6GN77.js} +4 -4
  49. package/dist/{chunk-MTKGUIFX.js.map → chunk-GCR6GN77.js.map} +1 -1
  50. package/dist/{chunk-ANXKF4TA.cjs → chunk-HN23LS75.cjs} +108 -108
  51. package/dist/chunk-HN23LS75.cjs.map +1 -0
  52. package/dist/{chunk-EQ27BVOT.js → chunk-IJFWBMHN.js} +3 -3
  53. package/dist/{chunk-EQ27BVOT.js.map → chunk-IJFWBMHN.js.map} +1 -1
  54. package/dist/{chunk-UOC4K3RU.js → chunk-JOUPK2UV.js} +3 -3
  55. package/dist/{chunk-UOC4K3RU.js.map → chunk-JOUPK2UV.js.map} +1 -1
  56. package/dist/{chunk-IYEGDP3G.js → chunk-M7DF3D2M.js} +3 -3
  57. package/dist/{chunk-IYEGDP3G.js.map → chunk-M7DF3D2M.js.map} +1 -1
  58. package/dist/{chunk-KSQVYDDO.cjs → chunk-OAWMKZCM.cjs} +4 -4
  59. package/dist/{chunk-KSQVYDDO.cjs.map → chunk-OAWMKZCM.cjs.map} +1 -1
  60. package/dist/{chunk-CYLX5SJ4.js → chunk-PX7NE2KG.js} +4 -4
  61. package/dist/{chunk-CYLX5SJ4.js.map → chunk-PX7NE2KG.js.map} +1 -1
  62. package/dist/{chunk-2HM5SQM5.js → chunk-Q3JFNANT.js} +3 -3
  63. package/dist/{chunk-2HM5SQM5.js.map → chunk-Q3JFNANT.js.map} +1 -1
  64. package/dist/{chunk-EKS524LA.js → chunk-QJD675UA.js} +76 -29
  65. package/dist/chunk-QJD675UA.js.map +1 -0
  66. package/dist/{chunk-WMS63TTU.cjs → chunk-T3X7ZXVR.cjs} +140 -36
  67. package/dist/chunk-T3X7ZXVR.cjs.map +1 -0
  68. package/dist/{chunk-4KNRG3KO.cjs → chunk-TFJZGWXX.cjs} +7 -7
  69. package/dist/{chunk-4KNRG3KO.cjs.map → chunk-TFJZGWXX.cjs.map} +1 -1
  70. package/dist/chunk-TLLV2JP5.js +983 -0
  71. package/dist/chunk-TLLV2JP5.js.map +1 -0
  72. package/dist/chunk-TTJ3DYZH.cjs +557 -0
  73. package/dist/chunk-TTJ3DYZH.cjs.map +1 -0
  74. package/dist/{chunk-R7EB3VDI.cjs → chunk-VZV7DUW7.cjs} +4 -4
  75. package/dist/{chunk-R7EB3VDI.cjs.map → chunk-VZV7DUW7.cjs.map} +1 -1
  76. package/dist/{chunk-GAS277DM.cjs → chunk-WLDDOYXP.cjs} +7 -7
  77. package/dist/{chunk-GAS277DM.cjs.map → chunk-WLDDOYXP.cjs.map} +1 -1
  78. package/dist/{chunk-Y3OQTZDN.js → chunk-WN62DURP.js} +37 -11
  79. package/dist/chunk-WN62DURP.js.map +1 -0
  80. package/dist/{chunk-QEM5P746.cjs → chunk-XUFBFMUU.cjs} +67 -92
  81. package/dist/chunk-XUFBFMUU.cjs.map +1 -0
  82. package/dist/{chunk-BK2PRWVJ.cjs → chunk-Y5LNMKEY.cjs} +5 -5
  83. package/dist/{chunk-BK2PRWVJ.cjs.map → chunk-Y5LNMKEY.cjs.map} +1 -1
  84. package/dist/{chunk-OJRAH5VV.js → chunk-YARY4I5U.js} +18 -3
  85. package/dist/chunk-YARY4I5U.js.map +1 -0
  86. package/dist/docs/SKILL.md +1 -1
  87. package/dist/docs/assets/SOURCE_MAP.json +1 -1
  88. package/dist/{observational-memory-HAJ3K5JJ-RB4HNAIV.cjs → observational-memory-IP2RVQQG-5IHDRYAB.cjs} +26 -26
  89. package/dist/{observational-memory-HAJ3K5JJ-RB4HNAIV.cjs.map → observational-memory-IP2RVQQG-5IHDRYAB.cjs.map} +1 -1
  90. package/dist/{observational-memory-HAJ3K5JJ-J2PZI56J.js → observational-memory-IP2RVQQG-DIZILT73.js} +3 -3
  91. package/dist/{observational-memory-HAJ3K5JJ-J2PZI56J.js.map → observational-memory-IP2RVQQG-DIZILT73.js.map} +1 -1
  92. package/dist/server/auth/index.cjs +15 -15
  93. package/dist/server/auth/index.js +1 -1
  94. package/dist/server/constants.d.ts +5 -0
  95. package/dist/server/constants.d.ts.map +1 -1
  96. package/dist/server/handlers/a2a.cjs +14 -14
  97. package/dist/server/handlers/a2a.js +1 -1
  98. package/dist/server/handlers/agent-builder.cjs +16 -16
  99. package/dist/server/handlers/agent-builder.js +1 -1
  100. package/dist/server/handlers/agents.cjs +39 -39
  101. package/dist/server/handlers/agents.d.ts.map +1 -1
  102. package/dist/server/handlers/agents.js +1 -1
  103. package/dist/server/handlers/auth.cjs +11 -11
  104. package/dist/server/handlers/auth.js +1 -1
  105. package/dist/server/handlers/conversations.cjs +5 -5
  106. package/dist/server/handlers/conversations.js +1 -1
  107. package/dist/server/handlers/logs.cjs +4 -4
  108. package/dist/server/handlers/logs.js +1 -1
  109. package/dist/server/handlers/memory.cjs +27 -27
  110. package/dist/server/handlers/memory.js +1 -1
  111. package/dist/server/handlers/responses.adapter.cjs +18 -14
  112. package/dist/server/handlers/responses.adapter.d.ts +96 -2
  113. package/dist/server/handlers/responses.adapter.d.ts.map +1 -1
  114. package/dist/server/handlers/responses.adapter.js +1 -1
  115. package/dist/server/handlers/responses.cjs +4 -4
  116. package/dist/server/handlers/responses.d.ts.map +1 -1
  117. package/dist/server/handlers/responses.js +1 -1
  118. package/dist/server/handlers/responses.storage.cjs +8 -8
  119. package/dist/server/handlers/responses.storage.d.ts +4 -2
  120. package/dist/server/handlers/responses.storage.d.ts.map +1 -1
  121. package/dist/server/handlers/responses.storage.js +1 -1
  122. package/dist/server/handlers/scores.cjs +7 -7
  123. package/dist/server/handlers/scores.js +1 -1
  124. package/dist/server/handlers/system.cjs +3 -3
  125. package/dist/server/handlers/system.js +1 -1
  126. package/dist/server/handlers/tools.cjs +6 -6
  127. package/dist/server/handlers/tools.js +1 -1
  128. package/dist/server/handlers/utils.cjs +10 -10
  129. package/dist/server/handlers/utils.js +1 -1
  130. package/dist/server/handlers/voice.cjs +8 -8
  131. package/dist/server/handlers/voice.js +1 -1
  132. package/dist/server/handlers/workflows.cjs +32 -24
  133. package/dist/server/handlers/workflows.d.ts +83 -0
  134. package/dist/server/handlers/workflows.d.ts.map +1 -1
  135. package/dist/server/handlers/workflows.js +1 -1
  136. package/dist/server/handlers.cjs +22 -22
  137. package/dist/server/handlers.js +11 -11
  138. package/dist/server/server-adapter/index.cjs +43 -16
  139. package/dist/server/server-adapter/index.cjs.map +1 -1
  140. package/dist/server/server-adapter/index.d.ts +5 -1
  141. package/dist/server/server-adapter/index.d.ts.map +1 -1
  142. package/dist/server/server-adapter/index.js +15 -7
  143. package/dist/server/server-adapter/index.js.map +1 -1
  144. package/dist/server/server-adapter/routes/workflows.d.ts +66 -1
  145. package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -1
  146. package/package.json +7 -7
  147. package/dist/chunk-2KDOM6QE.js.map +0 -1
  148. package/dist/chunk-47U5QTGT.cjs.map +0 -1
  149. package/dist/chunk-AJYJ4H7P.js +0 -438
  150. package/dist/chunk-AJYJ4H7P.js.map +0 -1
  151. package/dist/chunk-ANXKF4TA.cjs.map +0 -1
  152. package/dist/chunk-CSG535HL.cjs.map +0 -1
  153. package/dist/chunk-DFSUBEGE.js +0 -226
  154. package/dist/chunk-DFSUBEGE.js.map +0 -1
  155. package/dist/chunk-EFW6MWXU.cjs.map +0 -1
  156. package/dist/chunk-EKS524LA.js.map +0 -1
  157. package/dist/chunk-OJ72T77G.cjs +0 -452
  158. package/dist/chunk-OJ72T77G.cjs.map +0 -1
  159. package/dist/chunk-OJRAH5VV.js.map +0 -1
  160. package/dist/chunk-PJYQMPXT.cjs +0 -234
  161. package/dist/chunk-PJYQMPXT.cjs.map +0 -1
  162. package/dist/chunk-QEM5P746.cjs.map +0 -1
  163. package/dist/chunk-TWT64BVR.js.map +0 -1
  164. package/dist/chunk-VZNSMKB7.cjs.map +0 -1
  165. package/dist/chunk-WEDFF5FH.js.map +0 -1
  166. package/dist/chunk-WMS63TTU.cjs.map +0 -1
  167. package/dist/chunk-XPF4VEXO.js.map +0 -1
  168. package/dist/chunk-Y3OQTZDN.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/server/handlers/responses.adapter.ts"],"names":["tools","isProviderDefinedTool","zodToJsonSchema","randomUUID","text","nextEvents","pendingToolResult"],"mappings":"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","file":"chunk-F3HP5HM6.cjs","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport type { MastraDBMessage } from '@mastra/core/agent';\nimport { isProviderDefinedTool } from '@mastra/core/tools';\nimport { zodToJsonSchema } from '@mastra/core/utils/zod-to-json';\nimport type {\n ConversationItem,\n ResponseInputMessage,\n ResponseObject,\n ResponseOutputItem,\n ResponseTextConfig,\n ResponseTool,\n} from '../schemas/responses';\nimport type { ProviderMetadataLike, ResponseTurnRecord, UsageLike } from './responses.storage';\n\nexport type ResponseExecutionMessage = {\n role: 'system' | 'user' | 'assistant';\n content: string;\n};\n\n/**\n * Flattens Responses API message content into the plain-text shape Mastra agent\n * execution expects today.\n */\nfunction normalizeMessageContent(content: ResponseInputMessage['content']): string {\n if (typeof content === 'string') {\n return content;\n }\n\n return content.map(part => part.text).join('');\n}\n\n/**\n * Extracts the human-readable text represented by a persisted Mastra message.\n */\nfunction getMessageText(message: MastraDBMessage): string {\n const parts = Array.isArray(message.content?.parts) ? message.content.parts : [];\n return parts\n .flatMap(part => (part.type === 'text' ? [part.text] : []))\n .filter((text): text is string => typeof text === 'string')\n .join('');\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\nfunction getMessageRole(message: MastraDBMessage): string {\n return (message as { role?: string }).role ?? '';\n}\n\n/**\n * Creates a stable fallback key for tool items when a tool call id is missing\n * from the stored message payload.\n */\nfunction getToolKey(toolCallId: string | null, messageId: string, partIndex: number) {\n return toolCallId ?? `${messageId}:${partIndex}`;\n}\n\nfunction getFunctionCallOutputItemId(toolCallId: string) {\n return `${toolCallId}:output`;\n}\n\n/**\n * Normalizes tool parameter schemas so the Responses API always exposes the\n * plain JSON Schema object regardless of whether the source tool came from a\n * provider-defined tool or a Mastra/Zod tool definition.\n */\nfunction normalizeToolParameters(schema: unknown): unknown {\n if (!isRecord(schema)) {\n return schema;\n }\n\n if (isRecord(schema.json) && Object.keys(schema).length === 1) {\n return schema.json;\n }\n\n return schema;\n}\n\n/**\n * Maps configured Mastra tools into Responses API tool definitions.\n */\nexport function mapMastraToolsToResponseTools(tools: Record<string, unknown> | undefined): ResponseTool[] {\n if (!tools) {\n return [];\n }\n\n return Object.values(tools).flatMap(tool => {\n if (!isRecord(tool)) {\n return [];\n }\n\n const name = typeof tool.id === 'string' ? tool.id : typeof tool.name === 'string' ? tool.name : null;\n if (!name) {\n return [];\n }\n\n const description = typeof tool.description === 'string' ? tool.description : undefined;\n\n let parameters: unknown;\n if (isProviderDefinedTool(tool)) {\n const resolvedSchema = typeof tool.inputSchema === 'function' ? tool.inputSchema() : tool.inputSchema;\n parameters =\n isRecord(resolvedSchema) && 'jsonSchema' in resolvedSchema\n ? normalizeToolParameters(resolvedSchema.jsonSchema)\n : undefined;\n } else if ('inputSchema' in tool && tool.inputSchema) {\n parameters = normalizeToolParameters(zodToJsonSchema(tool.inputSchema as never));\n }\n\n return [\n {\n type: 'function',\n name,\n ...(description ? { description } : {}),\n ...(parameters !== undefined ? { parameters: JSON.parse(JSON.stringify(parameters)) } : {}),\n } satisfies ResponseTool,\n ];\n });\n}\n\nfunction stringifyToolPayload(value: unknown) {\n if (typeof value === 'string') {\n return value;\n }\n\n return JSON.stringify(value === undefined ? {} : value);\n}\n\nfunction stringifyToolArguments(value: unknown) {\n if (isRecord(value) && typeof value.__raw === 'string') {\n return value.__raw;\n }\n\n return stringifyToolPayload(value === null ? undefined : value);\n}\n\nfunction createOutputMessage({\n messageId,\n status,\n text,\n}: {\n messageId: string;\n status: ResponseObject['status'];\n text: string;\n}) {\n const responseStatus: Extract<ResponseObject['output'][number], { type: 'message' }>['status'] =\n status === 'completed' ? 'completed' : 'incomplete';\n\n return {\n id: messageId,\n type: 'message' as const,\n role: 'assistant' as const,\n status: responseStatus,\n content: [createOutputTextPart(text)],\n };\n}\n\nfunction createConversationMessage({\n messageId,\n role,\n text,\n}: {\n messageId: string;\n role: 'system' | 'user' | 'assistant';\n text: string;\n}) {\n return {\n id: messageId,\n type: 'message' as const,\n role,\n status: 'completed' as const,\n content: [\n role === 'assistant'\n ? createOutputTextPart(text)\n : {\n type: 'input_text' as const,\n text,\n },\n ],\n };\n}\n\nfunction createFunctionCallItem({\n itemId,\n callId,\n name,\n args,\n}: {\n itemId: string;\n callId: string;\n name: string;\n args: unknown;\n}) {\n return {\n id: itemId,\n type: 'function_call' as const,\n call_id: callId,\n name,\n arguments: stringifyToolArguments(args),\n status: 'completed' as const,\n };\n}\n\nfunction createFunctionCallOutputItem({ itemId, callId, output }: { itemId: string; callId: string; output: unknown }) {\n return {\n id: itemId,\n type: 'function_call_output' as const,\n call_id: callId,\n output: stringifyToolPayload(output),\n };\n}\n\ntype ResponseToolItem = Extract<ConversationItem, { type: 'function_call' | 'function_call_output' }>;\n\n/**\n * Records which tool call ids already have dedicated tool-result messages so we can\n * avoid duplicating `function_call_output` items when assistant messages echo the\n * result inline.\n */\nfunction collectToolResultCallIds(messages: MastraDBMessage[]) {\n const toolResultCallIds = new Set<string>();\n\n for (const message of messages) {\n const parts = Array.isArray(message.content?.parts) ? message.content.parts : [];\n for (const [partIndex, part] of parts.entries()) {\n if (!isRecord(part) || part.type !== 'tool-invocation' || !isRecord(part.toolInvocation)) {\n continue;\n }\n\n const toolInvocation = part.toolInvocation;\n const toolCallId =\n typeof toolInvocation.toolCallId === 'string'\n ? toolInvocation.toolCallId\n : getToolKey(null, message.id, partIndex);\n\n if (getMessageRole(message) === 'tool' && toolInvocation.result !== undefined) {\n toolResultCallIds.add(toolCallId);\n }\n }\n }\n\n return toolResultCallIds;\n}\n\n/**\n * Maps one persisted Mastra message into the tool-related Responses items that\n * it contributes to the conversation timeline.\n */\nfunction mapMastraMessageToResponseToolItems({\n message,\n toolResultCallIds,\n emittedCallIds,\n emittedResultCallIds,\n}: {\n message: MastraDBMessage;\n toolResultCallIds: Set<string>;\n emittedCallIds: Set<string>;\n emittedResultCallIds: Set<string>;\n}): ResponseToolItem[] {\n const items: ResponseToolItem[] = [];\n const parts = Array.isArray(message.content?.parts) ? message.content.parts : [];\n\n for (const [partIndex, part] of parts.entries()) {\n if (!isRecord(part) || part.type !== 'tool-invocation' || !isRecord(part.toolInvocation)) {\n continue;\n }\n\n const toolInvocation = part.toolInvocation;\n const toolName = typeof toolInvocation.toolName === 'string' ? toolInvocation.toolName : null;\n const toolCallId =\n typeof toolInvocation.toolCallId === 'string'\n ? toolInvocation.toolCallId\n : getToolKey(null, message.id, partIndex);\n\n if (getMessageRole(message) === 'assistant' && toolName && !emittedCallIds.has(toolCallId)) {\n items.push(\n createFunctionCallItem({\n itemId: toolCallId,\n callId: toolCallId,\n name: toolName,\n args: toolInvocation.args,\n }),\n );\n emittedCallIds.add(toolCallId);\n }\n\n if (\n toolInvocation.result !== undefined &&\n !emittedResultCallIds.has(toolCallId) &&\n (getMessageRole(message) === 'tool' || !toolResultCallIds.has(toolCallId))\n ) {\n items.push(\n createFunctionCallOutputItem({\n itemId: getFunctionCallOutputItemId(toolCallId),\n callId: toolCallId,\n output: toolInvocation.result,\n }),\n );\n emittedResultCallIds.add(toolCallId);\n }\n }\n\n return items;\n}\n\n/**\n * Maps Mastra thread messages into OpenAI-style conversation items.\n */\nexport function mapMastraMessagesToConversationItems(messages: MastraDBMessage[]): ConversationItem[] {\n if (!messages.length) {\n return [];\n }\n\n const items: ConversationItem[] = [];\n const toolResultCallIds = collectToolResultCallIds(messages);\n const emittedCallIds = new Set<string>();\n const emittedResultCallIds = new Set<string>();\n\n for (const message of messages) {\n items.push(\n ...mapMastraMessageToResponseToolItems({\n message,\n toolResultCallIds,\n emittedCallIds,\n emittedResultCallIds,\n }),\n );\n\n const role = getMessageRole(message);\n const text = getMessageText(message);\n\n if ((role === 'user' || role === 'system' || role === 'assistant') && text) {\n items.push(\n createConversationMessage({\n messageId: message.id,\n role,\n text,\n }),\n );\n continue;\n }\n\n if (role === 'assistant' && !text) {\n const parts = Array.isArray(message.content?.parts) ? message.content.parts : [];\n const hasOnlyToolInvocations = parts.every(\n part => isRecord(part) && part.type === 'tool-invocation' && isRecord(part.toolInvocation),\n );\n\n if (hasOnlyToolInvocations) {\n continue;\n }\n }\n\n if (role === 'tool') {\n continue;\n }\n }\n\n return items;\n}\n\nfunction mergeFallbackOutputItems({\n output,\n fallbackOutputItems,\n}: {\n output: ResponseOutputItem[];\n fallbackOutputItems: ResponseOutputItem[];\n}): ResponseOutputItem[] {\n if (!fallbackOutputItems.length) {\n return output;\n }\n\n const outputById = new Map(output.map(item => [item.id, item]));\n const fallbackIds = new Set(fallbackOutputItems.map(item => item.id));\n\n return [\n ...fallbackOutputItems.map(item => outputById.get(item.id) ?? item),\n ...output.filter(item => !fallbackIds.has(item.id)),\n ];\n}\n\nfunction getOutputMessageText(item: Extract<ResponseOutputItem, { type: 'message' }>): string {\n return item.content.map(part => part.text).join('');\n}\n\n/**\n * Maps the stored Mastra messages for one response turn back into OpenAI-style\n * `response.output` items, preserving tool/message ordering from the thread.\n */\nexport function mapMastraMessagesToResponseOutputItems({\n messages,\n outputMessageId,\n status,\n fallbackText,\n fallbackOutputItems = [],\n}: {\n messages: MastraDBMessage[] | undefined;\n outputMessageId: string;\n status: ResponseObject['status'];\n fallbackText: string;\n fallbackOutputItems?: ResponseOutputItem[];\n}): ResponseOutputItem[] {\n if (!messages?.length) {\n if (fallbackOutputItems.length) {\n return fallbackOutputItems;\n }\n\n return [createOutputMessage({ messageId: outputMessageId, status, text: fallbackText })];\n }\n\n const output: ResponseOutputItem[] = [];\n const lastAssistantIndex = [...messages].map(message => message.role).lastIndexOf('assistant');\n const outputMessageIndex =\n [...messages]\n .map((message, index) => ({ index, message }))\n .reverse()\n .find(({ message }) => getMessageRole(message) === 'assistant' && getMessageText(message))?.index ??\n lastAssistantIndex;\n const toolResultCallIds = collectToolResultCallIds(messages);\n const emittedCallIds = new Set<string>();\n const emittedResultCallIds = new Set<string>();\n const fallbackMessageItems = fallbackOutputItems.filter(\n (item): item is Extract<ResponseOutputItem, { type: 'message' }> => item.type === 'message',\n );\n const emittedFallbackMessageIds = new Set<string>();\n\n const getOutputMessageId = ({\n message,\n text,\n useOutputMessageId,\n }: {\n message: MastraDBMessage;\n text: string;\n useOutputMessageId: boolean;\n }) => {\n const directFallbackItem = fallbackMessageItems.find(item => item.id === message.id);\n if (directFallbackItem) {\n emittedFallbackMessageIds.add(directFallbackItem.id);\n return directFallbackItem.id;\n }\n\n if (useOutputMessageId) {\n const matchingFallbackItem = fallbackMessageItems.find(\n item =>\n item.id !== outputMessageId && !emittedFallbackMessageIds.has(item.id) && getOutputMessageText(item) === text,\n );\n if (matchingFallbackItem) {\n emittedFallbackMessageIds.add(matchingFallbackItem.id);\n return matchingFallbackItem.id;\n }\n }\n\n return useOutputMessageId ? outputMessageId : message.id;\n };\n\n for (const [messageIndex, message] of messages.entries()) {\n output.push(\n ...mapMastraMessageToResponseToolItems({\n message,\n toolResultCallIds,\n emittedCallIds,\n emittedResultCallIds,\n }),\n );\n\n const text = getMessageText(message);\n if (getMessageRole(message) === 'assistant' && text) {\n const useOutputMessageId = messageIndex === outputMessageIndex;\n output.push(\n createOutputMessage({\n messageId: getOutputMessageId({ message, text, useOutputMessageId }),\n status,\n text,\n }),\n );\n }\n }\n\n if (!output.some(item => item.type === 'message') && fallbackText) {\n output.push(createOutputMessage({ messageId: outputMessageId, status, text: fallbackText }));\n }\n\n return mergeFallbackOutputItems({ output, fallbackOutputItems });\n}\n\n/**\n * Creates a stable assistant-message-backed response identifier.\n */\nexport function createMessageId() {\n return `msg_${randomUUID()}`;\n}\n\n/**\n * Maps Responses API input into the plain execution messages Mastra agents expect.\n */\nexport function mapResponseInputToExecutionMessages(\n input: ResponseInputMessage[] | string,\n): ResponseExecutionMessage[] {\n if (typeof input === 'string') {\n return [{ role: 'user', content: input }];\n }\n\n return input.map(message => ({\n role: message.role === 'developer' ? 'system' : message.role,\n content: normalizeMessageContent(message.content),\n }));\n}\n\n/**\n * Converts usage details to the Responses API usage shape.\n */\nexport function toResponseUsage(usage: UsageLike): ResponseObject['usage'] {\n if (!usage) {\n return null;\n }\n\n const inputTokens = usage.inputTokens ?? usage.promptTokens ?? 0;\n const outputTokens = usage.outputTokens ?? usage.completionTokens ?? 0;\n const totalTokens = usage.totalTokens ?? inputTokens + outputTokens;\n\n return {\n input_tokens: inputTokens,\n output_tokens: outputTokens,\n total_tokens: totalTokens,\n input_tokens_details: {\n cached_tokens: 0,\n },\n output_tokens_details: {\n reasoning_tokens: 0,\n },\n };\n}\n\n/**\n * Maps model finish reasons onto the Responses API status field.\n */\nexport function toResponseStatus(finishReason: string | undefined): ResponseObject['status'] {\n if (finishReason === 'suspended' || finishReason === 'error') {\n return 'incomplete';\n }\n\n return 'completed';\n}\n\n/**\n * Formats a text response part using the OpenAI-compatible Responses shape.\n */\nexport function createOutputTextPart(text: string) {\n return {\n type: 'output_text' as const,\n text,\n annotations: [] as unknown[],\n logprobs: [] as unknown[],\n };\n}\n\n/**\n * Builds a completed Responses API object from Mastra execution state.\n */\nexport function buildCompletedResponse({\n responseId,\n outputMessageId,\n model,\n createdAt,\n completedAt,\n status,\n text,\n usage,\n instructions,\n textConfig,\n previousResponseId,\n conversationId,\n providerOptions,\n tools,\n store,\n messages,\n fallbackOutputItems,\n}: {\n responseId: string;\n outputMessageId: string;\n model: string;\n createdAt: number;\n completedAt: number | null;\n status: ResponseObject['status'];\n text: string;\n usage: UsageLike;\n instructions?: string;\n textConfig?: ResponseTextConfig;\n previousResponseId?: string;\n conversationId?: string;\n providerOptions?: ProviderMetadataLike;\n tools: ResponseTool[];\n store: boolean;\n messages?: MastraDBMessage[];\n fallbackOutputItems?: ResponseOutputItem[];\n}): ResponseObject {\n return {\n id: responseId,\n object: 'response',\n created_at: createdAt,\n completed_at: completedAt,\n model,\n status,\n output: mapMastraMessagesToResponseOutputItems({\n messages,\n outputMessageId,\n status,\n fallbackText: text,\n fallbackOutputItems,\n }),\n usage: toResponseUsage(usage),\n error: null,\n incomplete_details: null,\n instructions: instructions ?? null,\n text: textConfig ?? null,\n previous_response_id: previousResponseId ?? null,\n conversation_id: conversationId ?? null,\n providerOptions,\n tools,\n store,\n };\n}\n\n/**\n * Builds the initial in-progress Responses API object emitted at stream start.\n */\nexport function buildInProgressResponse({\n responseId,\n model,\n createdAt,\n instructions,\n textConfig,\n previousResponseId,\n conversationId,\n tools,\n store,\n}: {\n responseId: string;\n model: string;\n createdAt: number;\n instructions?: string;\n textConfig?: ResponseTextConfig;\n previousResponseId?: string;\n conversationId?: string;\n store: boolean;\n tools?: ResponseTool[];\n}): ResponseObject {\n return {\n id: responseId,\n object: 'response',\n created_at: createdAt,\n completed_at: null,\n model,\n status: 'in_progress',\n output: [],\n usage: null,\n error: null,\n incomplete_details: null,\n instructions: instructions ?? null,\n text: textConfig ?? null,\n previous_response_id: previousResponseId ?? null,\n conversation_id: conversationId ?? null,\n tools: tools ?? [],\n store,\n };\n}\n\n/**\n * Reconstructs a Responses API object from a stored response-turn record.\n */\nexport function mapResponseTurnRecordToResponse(match: ResponseTurnRecord): ResponseObject {\n return {\n id: match.message.id,\n object: 'response',\n created_at: match.metadata.createdAt,\n completed_at: match.metadata.completedAt,\n model: match.metadata.model,\n status: match.metadata.status,\n output: mapMastraMessagesToResponseOutputItems({\n messages: match.messages,\n outputMessageId: match.message.id,\n status: match.metadata.status,\n fallbackText: getMessageText(match.message),\n fallbackOutputItems: match.metadata.outputItems,\n }),\n usage: match.metadata.usage,\n error: null,\n incomplete_details: null,\n instructions: match.metadata.instructions ?? null,\n text: match.metadata.text ?? null,\n previous_response_id: match.metadata.previousResponseId ?? null,\n conversation_id: match.thread.id,\n providerOptions: match.metadata.providerOptions,\n tools: match.metadata.tools,\n store: match.metadata.store,\n };\n}\n\n/**\n * Formats an SSE event line for the streaming Responses route.\n */\nexport function formatSseEvent(event: string, data: unknown): Uint8Array {\n return new TextEncoder().encode(`event: ${event}\\ndata: ${JSON.stringify(data)}\\n\\n`);\n}\n\n/**\n * Extracts text deltas from the Mastra stream chunk variants used by the route.\n */\nexport function extractTextDelta(value: unknown): string | null {\n if (typeof value !== 'object' || value === null || !('type' in value)) {\n return null;\n }\n\n const chunk = value as { type: string; payload?: { text?: string }; textDelta?: string; text?: string };\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.textDelta === 'string') {\n return chunk.textDelta;\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\ntype ResponseOutputItemAddedPayload = {\n type: 'response.output_item.added';\n output_index: number;\n item: ResponseOutputItem;\n};\n\ntype ResponseContentPartAddedPayload = {\n type: 'response.content_part.added';\n output_index: number;\n content_index: number;\n item_id: string;\n part: ReturnType<typeof createOutputTextPart>;\n};\n\ntype ResponseOutputTextDeltaPayload = {\n type: 'response.output_text.delta';\n output_index: number;\n content_index: number;\n item_id: string;\n delta: string;\n};\n\ntype ResponseFunctionCallArgumentsDeltaPayload = {\n type: 'response.function_call_arguments.delta';\n output_index: number;\n item_id: string;\n delta: string;\n};\n\ntype ResponseFunctionCallArgumentsDonePayload = {\n type: 'response.function_call_arguments.done';\n output_index: number;\n item_id: string;\n name: string;\n arguments: string;\n};\n\ntype ResponseOutputItemDonePayload = {\n type: 'response.output_item.done';\n output_index: number;\n item: ResponseOutputItem;\n};\n\ntype ResponseOutputTextDonePayload = {\n type: 'response.output_text.done';\n output_index: number;\n content_index: number;\n item_id: string;\n text: string;\n};\n\ntype ResponseContentPartDonePayload = {\n type: 'response.content_part.done';\n output_index: number;\n content_index: number;\n item_id: string;\n part: ReturnType<typeof createOutputTextPart>;\n};\n\ntype ResponseSsePayload =\n | ResponseOutputItemAddedPayload\n | ResponseContentPartAddedPayload\n | ResponseOutputTextDeltaPayload\n | ResponseFunctionCallArgumentsDeltaPayload\n | ResponseFunctionCallArgumentsDonePayload\n | ResponseOutputItemDonePayload\n | ResponseOutputTextDonePayload\n | ResponseContentPartDonePayload;\n\ntype ResponseSseEvent<TPayload extends ResponseSsePayload = ResponseSsePayload> = {\n event: TPayload['type'];\n payload: TPayload;\n};\n\nfunction createResponseSseEvent<TPayload extends ResponseSsePayload>(payload: TPayload): ResponseSseEvent<TPayload> {\n return { event: payload.type, payload };\n}\n\ntype ToolCallStreamState = {\n argumentsText: string;\n completed: boolean;\n itemId: string;\n name: string;\n outputIndex: number;\n zeroArgumentInputEnded: boolean;\n};\n\ntype ToolResultStreamState = {\n args: unknown;\n result: unknown;\n toolCallId: string;\n toolName?: string;\n};\n\nfunction getChunkPayload(value: unknown): Record<string, unknown> | null {\n if (!isRecord(value)) {\n return null;\n }\n\n return isRecord(value.payload) ? value.payload : value;\n}\n\nfunction stringifyResponsePayload(value: unknown): string {\n if (typeof value === 'string') {\n return value;\n }\n\n return JSON.stringify(value === undefined ? {} : value);\n}\n\nfunction stringifyFunctionCallArguments(value: unknown, fallback = ''): string {\n const serialized = value === undefined || value === null ? fallback : stringifyResponsePayload(value);\n return serialized || fallback || '{}';\n}\n\nfunction removeWhitespaceOutsideJsonStrings(value: string): string {\n let inString = false;\n let escaped = false;\n let result = '';\n\n for (const char of value) {\n if (escaped) {\n escaped = false;\n result += char;\n continue;\n }\n\n if (char === '\\\\' && inString) {\n escaped = true;\n result += char;\n continue;\n }\n\n if (char === '\"') {\n inString = !inString;\n result += char;\n continue;\n }\n\n if (!inString && /\\s/.test(char)) {\n continue;\n }\n\n result += char;\n }\n\n return result;\n}\n\nfunction getRemainingArgumentsDelta(current: string, canonical: string): string | null {\n if (!current) {\n return canonical;\n }\n\n if (canonical.startsWith(current)) {\n return canonical.slice(current.length);\n }\n\n const compactCurrent = removeWhitespaceOutsideJsonStrings(current);\n const compactCanonical = removeWhitespaceOutsideJsonStrings(canonical);\n if (compactCurrent && compactCanonical.startsWith(compactCurrent)) {\n return compactCanonical.slice(compactCurrent.length);\n }\n\n return null;\n}\n\nfunction isCompleteJsonString(value: string): boolean {\n if (!value) {\n return true;\n }\n\n try {\n JSON.parse(value);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction serializeToolError(error: unknown) {\n if (error instanceof Error) {\n return { error: error.message };\n }\n\n return { error };\n}\n\nfunction getToolCallStart(value: unknown) {\n if (!isRecord(value) || value.type !== 'tool-call-input-streaming-start') {\n return null;\n }\n\n const payload = getChunkPayload(value);\n const toolCallId = payload?.toolCallId;\n const toolName = payload?.toolName;\n if (typeof toolCallId !== 'string' || typeof toolName !== 'string') {\n return null;\n }\n\n return { toolCallId, toolName };\n}\n\nfunction getToolCallDelta(value: unknown) {\n if (!isRecord(value) || value.type !== 'tool-call-delta') {\n return null;\n }\n\n const payload = getChunkPayload(value);\n const toolCallId = payload?.toolCallId;\n // Mastra/AI SDK stream chunks have used different names for streamed tool\n // argument text across versions; normalize them to the Responses delta shape.\n const delta = payload?.argsTextDelta ?? payload?.inputTextDelta ?? payload?.argsDelta ?? payload?.delta;\n if (!payload || typeof toolCallId !== 'string' || typeof delta !== 'string') {\n return null;\n }\n\n return {\n toolCallId,\n toolName: typeof payload.toolName === 'string' ? payload.toolName : undefined,\n delta,\n };\n}\n\nfunction getToolCall(value: unknown) {\n if (!isRecord(value) || value.type !== 'tool-call') {\n return null;\n }\n\n const payload = getChunkPayload(value);\n const toolCallId = payload?.toolCallId;\n const toolName = payload?.toolName;\n const args = payload?.args ?? payload?.input;\n if (typeof toolCallId !== 'string' || typeof toolName !== 'string') {\n return null;\n }\n\n return { toolCallId, toolName, args };\n}\n\nfunction getToolCallEnd(value: unknown) {\n if (!isRecord(value) || value.type !== 'tool-call-input-streaming-end') {\n return null;\n }\n\n const payload = getChunkPayload(value);\n const toolCallId = payload?.toolCallId;\n if (typeof toolCallId !== 'string') {\n return null;\n }\n\n return { toolCallId };\n}\n\nfunction getToolResult(value: unknown) {\n if (!isRecord(value) || (value.type !== 'tool-result' && value.type !== 'tool-error')) {\n return null;\n }\n\n const payload = getChunkPayload(value);\n const toolCallId = payload?.toolCallId;\n if (!payload || typeof toolCallId !== 'string') {\n return null;\n }\n\n const toolName = typeof payload.toolName === 'string' ? payload.toolName : undefined;\n const args = payload.args ?? payload.input;\n\n if (value.type === 'tool-error') {\n return { toolCallId, toolName, args, result: serializeToolError(payload.error) };\n }\n\n const outputValue = payload.result !== undefined ? payload.result : payload.output;\n const result = payload.isError ? serializeToolError(outputValue) : outputValue;\n\n return { toolCallId, toolName, args, result };\n}\n\nexport function createResponseStreamEventTranslator(responseId: string) {\n // Keep emitted SSE terminal payloads and the final completed response output\n // aligned. Once a tool call is completed, later duplicate/canonical chunks are\n // ignored because Responses SSE has no replacement event for arguments.done.\n let text = '';\n let nextOutputIndex = 0;\n let textOutputIndex: number | null = null;\n const completedToolResultCallIds = new Set<string>();\n const pendingToolResults = new Map<string, ToolResultStreamState>();\n const toolCalls = new Map<string, ToolCallStreamState>();\n const outputItems = new Map<number, ResponseOutputItem>();\n\n const ensureTextOutputItem = (): { events: ResponseSseEvent[]; outputIndex: number } => {\n if (textOutputIndex !== null) {\n return { events: [], outputIndex: textOutputIndex };\n }\n\n textOutputIndex = nextOutputIndex++;\n return {\n outputIndex: textOutputIndex,\n events: [\n createResponseSseEvent({\n type: 'response.output_item.added',\n output_index: textOutputIndex,\n item: {\n id: responseId,\n type: 'message',\n role: 'assistant',\n status: 'in_progress',\n content: [],\n },\n }),\n createResponseSseEvent({\n type: 'response.content_part.added',\n output_index: textOutputIndex,\n content_index: 0,\n item_id: responseId,\n part: createOutputTextPart(''),\n }),\n ],\n };\n };\n\n const ensureToolCallItem = ({\n toolCallId,\n toolName,\n }: {\n toolCallId: string;\n toolName: string;\n }): { events: ResponseSseEvent[]; state: ToolCallStreamState } => {\n const existing = toolCalls.get(toolCallId);\n if (existing) {\n if (!existing.completed && toolName && existing.name !== toolName) {\n existing.name = toolName;\n }\n\n return { events: [], state: existing };\n }\n\n const state = {\n argumentsText: '',\n completed: false,\n itemId: toolCallId,\n name: toolName,\n outputIndex: nextOutputIndex++,\n zeroArgumentInputEnded: false,\n };\n toolCalls.set(toolCallId, state);\n\n return {\n state,\n events: [\n createResponseSseEvent({\n type: 'response.output_item.added',\n output_index: state.outputIndex,\n item: {\n id: state.itemId,\n type: 'function_call',\n call_id: toolCallId,\n name: toolName,\n arguments: '',\n status: 'in_progress',\n },\n }),\n ],\n };\n };\n\n const completeToolCallItem = ({\n events,\n state,\n toolCallId,\n toolName,\n args,\n }: {\n events: ResponseSseEvent[];\n state: ToolCallStreamState;\n toolCallId: string;\n toolName: string;\n args: string;\n }): ResponseSseEvent[] => {\n if (state.completed) {\n return events;\n }\n\n const item = {\n id: state.itemId,\n type: 'function_call' as const,\n call_id: toolCallId,\n name: toolName,\n arguments: args,\n status: 'completed' as const,\n };\n\n state.argumentsText = args;\n state.completed = true;\n outputItems.set(state.outputIndex, item);\n\n return [\n ...events,\n createResponseSseEvent({\n type: 'response.function_call_arguments.done',\n item_id: state.itemId,\n output_index: state.outputIndex,\n name: toolName,\n arguments: args,\n }),\n createResponseSseEvent({\n type: 'response.output_item.done',\n output_index: state.outputIndex,\n item,\n }),\n ];\n };\n\n const completeToolResultItem = ({\n events,\n toolResult,\n }: {\n events: ResponseSseEvent[];\n toolResult: ToolResultStreamState;\n }): ResponseSseEvent[] => {\n if (completedToolResultCallIds.has(toolResult.toolCallId)) {\n return events;\n }\n completedToolResultCallIds.add(toolResult.toolCallId);\n pendingToolResults.delete(toolResult.toolCallId);\n\n const outputIndex = nextOutputIndex++;\n const item = {\n id: getFunctionCallOutputItemId(toolResult.toolCallId),\n type: 'function_call_output' as const,\n call_id: toolResult.toolCallId,\n output: stringifyResponsePayload(toolResult.result),\n };\n outputItems.set(outputIndex, item);\n\n return [\n ...events,\n createResponseSseEvent({\n type: 'response.output_item.added',\n output_index: outputIndex,\n item,\n }),\n createResponseSseEvent({\n type: 'response.output_item.done',\n output_index: outputIndex,\n item,\n }),\n ];\n };\n\n return {\n get text() {\n return text;\n },\n\n getOutputItems({ text, status }: { text: string; status: ResponseObject['status'] }) {\n const items = new Map(outputItems);\n if (text) {\n const messageOutputIndex = textOutputIndex ?? nextOutputIndex;\n items.set(messageOutputIndex, createOutputMessage({ messageId: responseId, status, text }));\n }\n\n return [...items.entries()].sort(([left], [right]) => left - right).map(([, item]) => item);\n },\n\n consume(value: unknown): ResponseSseEvent[] {\n const textDelta = extractTextDelta(value);\n if (textDelta) {\n const { events, outputIndex } = ensureTextOutputItem();\n text += textDelta;\n return [\n ...events,\n createResponseSseEvent({\n type: 'response.output_text.delta',\n output_index: outputIndex,\n content_index: 0,\n item_id: responseId,\n delta: textDelta,\n }),\n ];\n }\n\n const toolCallStart = getToolCallStart(value);\n if (toolCallStart) {\n return ensureToolCallItem(toolCallStart).events;\n }\n\n const toolCallDelta = getToolCallDelta(value);\n if (toolCallDelta) {\n const existing = toolCalls.get(toolCallDelta.toolCallId);\n if (!existing && !toolCallDelta.toolName) {\n return [];\n }\n if (existing?.completed) {\n return [];\n }\n\n const ensured = ensureToolCallItem({\n toolCallId: toolCallDelta.toolCallId,\n toolName: toolCallDelta.toolName ?? existing!.name,\n });\n\n ensured.state.argumentsText += toolCallDelta.delta;\n ensured.state.zeroArgumentInputEnded = false;\n return [\n ...ensured.events,\n createResponseSseEvent({\n type: 'response.function_call_arguments.delta',\n item_id: ensured.state.itemId,\n output_index: ensured.state.outputIndex,\n delta: toolCallDelta.delta,\n }),\n ];\n }\n\n const toolCallEnd = getToolCallEnd(value);\n if (toolCallEnd) {\n const state = toolCalls.get(toolCallEnd.toolCallId);\n if (!state || state.completed) {\n return [];\n }\n\n state.zeroArgumentInputEnded = !state.argumentsText;\n return [];\n }\n\n const toolCall = getToolCall(value);\n if (toolCall) {\n const { events, state } = ensureToolCallItem(toolCall);\n const canonicalArgs = stringifyFunctionCallArguments(toolCall.args, state.argumentsText);\n if (state.completed) {\n const nextEvents = completeToolCallItem({\n events,\n state,\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n args: canonicalArgs,\n });\n\n const pendingToolResult = pendingToolResults.get(toolCall.toolCallId);\n return pendingToolResult\n ? completeToolResultItem({ events: nextEvents, toolResult: pendingToolResult })\n : nextEvents;\n }\n\n const remainingArgsDelta = getRemainingArgumentsDelta(state.argumentsText, canonicalArgs);\n const args =\n remainingArgsDelta === null\n ? // If both strings are valid but disagree, keep the bytes already emitted\n // as deltas so arguments.done and response.output stay consistent.\n isCompleteJsonString(state.argumentsText)\n ? state.argumentsText\n : canonicalArgs\n : state.argumentsText + remainingArgsDelta;\n const nextEvents = remainingArgsDelta\n ? [\n ...events,\n createResponseSseEvent({\n type: 'response.function_call_arguments.delta',\n item_id: state.itemId,\n output_index: state.outputIndex,\n delta: remainingArgsDelta,\n }),\n ]\n : events;\n\n const completedEvents = completeToolCallItem({\n events: nextEvents,\n state,\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n args,\n });\n\n const pendingToolResult = pendingToolResults.get(toolCall.toolCallId);\n return pendingToolResult\n ? completeToolResultItem({ events: completedEvents, toolResult: pendingToolResult })\n : completedEvents;\n }\n\n const toolResult = getToolResult(value);\n if (toolResult) {\n const existingToolCallState = toolCalls.get(toolResult.toolCallId);\n if (!existingToolCallState && !toolResult.toolName) {\n return [];\n }\n\n const { events: toolCallEvents, state: toolCallState } = ensureToolCallItem({\n toolCallId: toolResult.toolCallId,\n toolName: toolResult.toolName ?? existingToolCallState!.name,\n });\n\n if (completedToolResultCallIds.has(toolResult.toolCallId)) {\n return [];\n }\n\n const events: ResponseSseEvent[] = [...toolCallEvents];\n if (!toolCallState.completed) {\n const args = stringifyFunctionCallArguments(toolResult.args, toolCallState.argumentsText || '{}');\n const hasZeroArgumentHint = toolCallState.zeroArgumentInputEnded && !toolCallState.argumentsText;\n if (\n toolResult.args === undefined &&\n !hasZeroArgumentHint &&\n (!toolCallState.argumentsText || !isCompleteJsonString(toolCallState.argumentsText))\n ) {\n pendingToolResults.set(toolResult.toolCallId, toolResult);\n return events;\n }\n\n events.push(\n ...completeToolCallItem({\n events: [],\n state: toolCallState,\n toolCallId: toolResult.toolCallId,\n toolName: toolResult.toolName ?? toolCallState.name,\n args,\n }),\n );\n }\n\n return completeToolResultItem({ events, toolResult });\n }\n\n return [];\n },\n\n flushPendingToolResults(): ResponseSseEvent[] {\n const events: ResponseSseEvent[] = [];\n for (const toolResult of pendingToolResults.values()) {\n const toolCallState = toolCalls.get(toolResult.toolCallId);\n if (!toolCallState) {\n continue;\n }\n\n if (!toolCallState.completed) {\n const safeFallbackArgs = isCompleteJsonString(toolCallState.argumentsText)\n ? toolCallState.argumentsText\n : '{}';\n events.push(\n ...completeToolCallItem({\n events: [],\n state: toolCallState,\n toolCallId: toolResult.toolCallId,\n toolName: toolResult.toolName ?? toolCallState.name,\n args: stringifyFunctionCallArguments(toolResult.args, safeFallbackArgs),\n }),\n );\n }\n\n events.push(...completeToolResultItem({ events: [], toolResult }));\n }\n\n return events;\n },\n\n completeText(text: string, completedItem: Extract<ResponseOutputItem, { type: 'message' }>): ResponseSseEvent[] {\n const { events, outputIndex } = ensureTextOutputItem();\n const completedTextItem = {\n ...completedItem,\n content: [createOutputTextPart(text)],\n };\n\n return [\n ...events,\n createResponseSseEvent({\n type: 'response.output_text.done',\n output_index: outputIndex,\n content_index: 0,\n item_id: responseId,\n text,\n }),\n createResponseSseEvent({\n type: 'response.content_part.done',\n output_index: outputIndex,\n content_index: 0,\n item_id: responseId,\n part: createOutputTextPart(text),\n }),\n createResponseSseEvent({\n type: 'response.output_item.done',\n output_index: outputIndex,\n item: completedTextItem,\n }),\n ];\n },\n };\n}\n"]}
@@ -1042,7 +1042,7 @@ function imageSize(input) {
1042
1042
  throw new TypeError(`unsupported file type: ${type}`);
1043
1043
  }
1044
1044
 
1045
- // ../memory/dist/chunk-QZGJY67D.js
1045
+ // ../memory/dist/chunk-PBZHHKPE.js
1046
1046
  var OM_DEBUG_LOG = process.env.OM_DEBUG ? path.join(process.cwd(), "om-debug.log") : null;
1047
1047
  function omDebug(msg) {
1048
1048
  if (!OM_DEBUG_LOG) return;
@@ -3031,6 +3031,20 @@ ObservationStrategy.create = ((om, opts) => {
3031
3031
  if (deps.scope === "resource" && opts.resourceId) return new ResourceScopedObservationStrategy(deps, opts);
3032
3032
  return new SyncObservationStrategy(deps, opts);
3033
3033
  });
3034
+ async function loadMemoryContextMessages({
3035
+ memory,
3036
+ messageList,
3037
+ threadId,
3038
+ resourceId
3039
+ }) {
3040
+ const ctx = await memory.getContext({ threadId, resourceId });
3041
+ for (const msg of ctx.messages) {
3042
+ if (msg.role !== "system") {
3043
+ messageList.add(msg, "memory");
3044
+ }
3045
+ }
3046
+ return ctx;
3047
+ }
3034
3048
  var ObservationStep = class {
3035
3049
  constructor(turn, stepNumber) {
3036
3050
  this.turn = turn;
@@ -3396,12 +3410,12 @@ var ObservationTurn = class {
3396
3410
  this._generationCountAtStart = this._record.generationCount;
3397
3411
  this.memory = memory;
3398
3412
  if (memory) {
3399
- const ctx = await memory.getContext({ threadId: this.threadId, resourceId: this.resourceId });
3400
- for (const msg of ctx.messages) {
3401
- if (msg.role !== "system") {
3402
- this.messageList.add(msg, "memory");
3403
- }
3404
- }
3413
+ const ctx = await loadMemoryContextMessages({
3414
+ memory,
3415
+ messageList: this.messageList,
3416
+ threadId: this.threadId,
3417
+ resourceId: this.resourceId
3418
+ });
3405
3419
  this._context = {
3406
3420
  messages: ctx.messages,
3407
3421
  systemMessage: ctx.systemMessage,
@@ -10205,6 +10219,33 @@ var GATEWAY_STATE_KEY = "__isGatewayModel";
10205
10219
  function isMastraGatewayModel(model) {
10206
10220
  return typeof model === "object" && model !== null && "gatewayId" in model && model.gatewayId === "mastra";
10207
10221
  }
10222
+ function injectObservationContextMessages({
10223
+ messageList,
10224
+ systemMessages,
10225
+ continuationMessage,
10226
+ threadId,
10227
+ resourceId
10228
+ }) {
10229
+ if (!systemMessages?.length) {
10230
+ return;
10231
+ }
10232
+ messageList.clearSystemMessages("observational-memory");
10233
+ for (const msg of systemMessages) {
10234
+ messageList.addSystem(msg, "observational-memory");
10235
+ }
10236
+ const contMsg = continuationMessage ?? {
10237
+ id: "om-continuation",
10238
+ role: "user",
10239
+ createdAt: /* @__PURE__ */ new Date(0),
10240
+ content: {
10241
+ format: 2,
10242
+ parts: [{ type: "text", text: `<system-reminder>${chunk3D55EABW_cjs.OBSERVATION_CONTINUATION_HINT}</system-reminder>` }]
10243
+ },
10244
+ threadId,
10245
+ resourceId
10246
+ };
10247
+ messageList.add(contMsg, "memory");
10248
+ }
10208
10249
  var ObservationalMemoryProcessor = class {
10209
10250
  id = "observational-memory";
10210
10251
  name = "Observational Memory";
@@ -10259,6 +10300,25 @@ var ObservationalMemoryProcessor = class {
10259
10300
  const preMessagesSnapshot = reproCaptureEnabled ? safeCaptureJson(messageList.get.all.db()) : null;
10260
10301
  const preSerializedMessageList = reproCaptureEnabled ? safeCaptureJson(messageList.serialize()) : null;
10261
10302
  if (readOnly) {
10303
+ const ctx = await loadMemoryContextMessages({
10304
+ memory: this.memory,
10305
+ messageList,
10306
+ threadId,
10307
+ resourceId
10308
+ });
10309
+ const systemMessages = ctx.hasObservations && ctx.omRecord ? await this.engine.buildContextSystemMessages({
10310
+ threadId,
10311
+ resourceId,
10312
+ record: ctx.omRecord,
10313
+ unobservedContextBlocks: ctx.otherThreadsContext
10314
+ }) : void 0;
10315
+ injectObservationContextMessages({
10316
+ messageList,
10317
+ systemMessages,
10318
+ continuationMessage: ctx.continuationMessage,
10319
+ threadId,
10320
+ resourceId
10321
+ });
10262
10322
  return messageList;
10263
10323
  }
10264
10324
  const activeTurn = state.__omTurn ?? this.turn;
@@ -10314,26 +10374,13 @@ var ObservationalMemoryProcessor = class {
10314
10374
  }
10315
10375
  throw err;
10316
10376
  }
10317
- if (ctx.systemMessage) {
10318
- messageList.clearSystemMessages("observational-memory");
10319
- for (const msg of ctx.systemMessage) {
10320
- messageList.addSystem(msg, "observational-memory");
10321
- }
10322
- const contMsg = this.turn.context.continuation ?? {
10323
- id: "om-continuation",
10324
- role: "user",
10325
- createdAt: /* @__PURE__ */ new Date(0),
10326
- content: {
10327
- format: 2,
10328
- parts: [
10329
- { type: "text", text: `<system-reminder>${chunk3D55EABW_cjs.OBSERVATION_CONTINUATION_HINT}</system-reminder>` }
10330
- ]
10331
- },
10332
- threadId,
10333
- resourceId
10334
- };
10335
- messageList.add(contMsg, "memory");
10336
- }
10377
+ injectObservationContextMessages({
10378
+ messageList,
10379
+ systemMessages: ctx.systemMessage,
10380
+ continuationMessage: this.turn.context.continuation,
10381
+ threadId,
10382
+ resourceId
10383
+ });
10337
10384
  const freshRecord = await this.engine.getOrCreateRecord(threadId, resourceId);
10338
10385
  await this.engine.emitProgress({
10339
10386
  record: freshRecord,
@@ -10459,5 +10506,5 @@ exports.stripEphemeralAnchorIds = stripEphemeralAnchorIds;
10459
10506
  exports.stripObservationGroups = stripObservationGroups;
10460
10507
  exports.truncateStringByTokens = truncateStringByTokens;
10461
10508
  exports.wrapInObservationGroup = wrapInObservationGroup;
10462
- //# sourceMappingURL=chunk-47U5QTGT.cjs.map
10463
- //# sourceMappingURL=chunk-47U5QTGT.cjs.map
10509
+ //# sourceMappingURL=chunk-FST7LM2Z.cjs.map
10510
+ //# sourceMappingURL=chunk-FST7LM2Z.cjs.map