@mastra/server 1.23.0 → 1.23.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +9 -0
- package/dist/{chunk-TX3IIDZN.js → chunk-4HMKXB3Q.js} +134 -42
- package/dist/chunk-4HMKXB3Q.js.map +1 -0
- package/dist/{chunk-7TKB6WYH.js → chunk-6NY3T42O.js} +5 -3
- package/dist/chunk-6NY3T42O.js.map +1 -0
- package/dist/{chunk-XO5PXSFC.js → chunk-GIIEDO2K.js} +3 -3
- package/dist/{chunk-XO5PXSFC.js.map → chunk-GIIEDO2K.js.map} +1 -1
- package/dist/{chunk-3D2IBKF6.cjs → chunk-KAIOMGUE.cjs} +51 -25
- package/dist/chunk-KAIOMGUE.cjs.map +1 -0
- package/dist/{chunk-WZ6XPWVK.js → chunk-LUSXAYXR.js} +45 -19
- package/dist/chunk-LUSXAYXR.js.map +1 -0
- package/dist/{chunk-2KF7EWOT.cjs → chunk-NNXDDV3V.cjs} +134 -42
- package/dist/chunk-NNXDDV3V.cjs.map +1 -0
- package/dist/{chunk-4HHL4C6V.cjs → chunk-NYZJMFML.cjs} +11 -11
- package/dist/{chunk-4HHL4C6V.cjs.map → chunk-NYZJMFML.cjs.map} +1 -1
- package/dist/{chunk-UI3SS2JO.cjs → chunk-P6CD6Y4Z.cjs} +4 -4
- package/dist/{chunk-UI3SS2JO.cjs.map → chunk-P6CD6Y4Z.cjs.map} +1 -1
- package/dist/{chunk-GNVZDFY5.cjs → chunk-SAOJYYFE.cjs} +5 -3
- package/dist/chunk-SAOJYYFE.cjs.map +1 -0
- package/dist/{chunk-T4RZ3X4I.js → chunk-SLPNFGM2.js} +3 -3
- package/dist/{chunk-T4RZ3X4I.js.map → chunk-SLPNFGM2.js.map} +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/server/handlers/agent-builder.cjs +16 -16
- package/dist/server/handlers/agent-builder.js +1 -1
- package/dist/server/handlers/conversations.cjs +5 -5
- package/dist/server/handlers/conversations.js +1 -1
- package/dist/server/handlers/responses.cjs +4 -4
- package/dist/server/handlers/responses.d.ts +2 -2
- package/dist/server/handlers/responses.d.ts.map +1 -1
- package/dist/server/handlers/responses.js +1 -1
- package/dist/server/handlers.cjs +6 -6
- package/dist/server/handlers.js +3 -3
- package/dist/server/schemas/index.cjs +25 -25
- package/dist/server/schemas/index.js +2 -2
- package/dist/server/schemas/responses.d.ts +1 -1
- package/dist/server/schemas/responses.d.ts.map +1 -1
- package/dist/server/server-adapter/index.cjs +23 -23
- package/dist/server/server-adapter/index.js +3 -3
- package/dist/server/server-adapter/routes/responses.d.ts +2 -2
- package/package.json +4 -4
- package/dist/chunk-2KF7EWOT.cjs.map +0 -1
- package/dist/chunk-3D2IBKF6.cjs.map +0 -1
- package/dist/chunk-7TKB6WYH.js.map +0 -1
- package/dist/chunk-GNVZDFY5.cjs.map +0 -1
- package/dist/chunk-TX3IIDZN.js.map +0 -1
- package/dist/chunk-WZ6XPWVK.js.map +0 -1
|
@@ -34,7 +34,9 @@ var responseTextSchema = z.object({
|
|
|
34
34
|
format: responseTextFormatSchema
|
|
35
35
|
});
|
|
36
36
|
var createResponseBodySchema = z.object({
|
|
37
|
-
model: z.string().describe(
|
|
37
|
+
model: z.string().optional().describe(
|
|
38
|
+
"Optional model identifier override, such as openai/gpt-5. When omitted, the agent default model is used."
|
|
39
|
+
),
|
|
38
40
|
agent_id: z.string().describe("Mastra agent ID for the request"),
|
|
39
41
|
input: z.union([z.string(), z.array(responseInputMessageSchema)]),
|
|
40
42
|
instructions: z.string().optional(),
|
|
@@ -139,5 +141,5 @@ var deleteResponseSchema = z.object({
|
|
|
139
141
|
});
|
|
140
142
|
|
|
141
143
|
export { conversationItemMessageSchema, conversationItemSchema, conversationMessageContentSchema, createResponseBodySchema, deleteResponseSchema, responseIdPathParams, responseInputMessageSchema, responseInputTextContentSchema, responseInputTextPartSchema, responseObjectSchema, responseOutputFunctionCallOutputSchema, responseOutputFunctionCallSchema, responseOutputItemSchema, responseOutputMessageSchema, responseOutputTextSchema, responseTextFormatSchema, responseToolSchema, responseUsageSchema };
|
|
142
|
-
//# sourceMappingURL=chunk-
|
|
143
|
-
//# sourceMappingURL=chunk-
|
|
144
|
+
//# sourceMappingURL=chunk-6NY3T42O.js.map
|
|
145
|
+
//# sourceMappingURL=chunk-6NY3T42O.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/schemas/responses.ts"],"names":[],"mappings":"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","file":"chunk-6NY3T42O.js","sourcesContent":["import z from 'zod';\n\nexport const responseIdPathParams = z.object({\n responseId: z.string().describe('Unique identifier for the stored response'),\n});\n\nexport const responseInputTextPartSchema = z.object({\n type: z.enum(['input_text', 'text', 'output_text']),\n text: z.string(),\n});\n\nexport const responseInputMessageSchema = z.object({\n role: z.enum(['system', 'developer', 'user', 'assistant']),\n content: z.union([z.string(), z.array(responseInputTextPartSchema)]),\n});\n\nexport type ResponseInputMessage = z.infer<typeof responseInputMessageSchema>;\n\nconst providerOptionValuesSchema = z.record(z.string(), z.unknown());\n\nconst providerOptionsSchema = z\n .object({\n openai: providerOptionValuesSchema\n .optional()\n .describe('OpenAI provider options such as previousResponseId, conversation, or responseId'),\n })\n .passthrough();\n\nconst responseTextFormatJsonObjectSchema = z.object({\n type: z.literal('json_object').describe('Requests JSON object output compatibility for the response'),\n});\n\nconst responseTextFormatJsonSchemaSchema = z.object({\n type: z.literal('json_schema'),\n name: z.string(),\n description: z.string().optional(),\n schema: z.record(z.string(), z.unknown()),\n strict: z.boolean().optional(),\n});\n\nexport const responseTextFormatSchema = z.union([\n responseTextFormatJsonObjectSchema,\n responseTextFormatJsonSchemaSchema,\n]);\n\nexport type ResponseTextFormat = z.infer<typeof responseTextFormatSchema>;\n\nconst responseTextSchema = z.object({\n format: responseTextFormatSchema,\n});\n\nexport type ResponseTextConfig = z.infer<typeof responseTextSchema>;\n\nexport const createResponseBodySchema = z\n .object({\n model: z\n .string()\n .optional()\n .describe(\n 'Optional model identifier override, such as openai/gpt-5. When omitted, the agent default model is used.',\n ),\n agent_id: z.string().describe('Mastra agent ID for the request'),\n input: z.union([z.string(), z.array(responseInputMessageSchema)]),\n instructions: z.string().optional(),\n text: responseTextSchema\n .optional()\n .describe(\n 'Optional text output format. Supports `json_object` for JSON mode and `json_schema` for schema-constrained structured output.',\n ),\n conversation_id: z.string().optional().describe('Optional conversation ID. In Mastra this is the raw threadId.'),\n providerOptions: providerOptionsSchema\n .optional()\n .describe('Optional provider-specific options passed through to the underlying model call'),\n stream: z.boolean().optional().default(false),\n store: z.boolean().optional().default(false),\n previous_response_id: z.string().optional(),\n })\n .passthrough();\n\nexport type CreateResponseBody = z.infer<typeof createResponseBodySchema>;\n\nexport const responseOutputTextSchema = z.object({\n type: z.literal('output_text'),\n text: z.string(),\n annotations: z.array(z.unknown()).optional(),\n logprobs: z.array(z.unknown()).optional(),\n});\n\nexport const responseInputTextContentSchema = z.object({\n type: z.literal('input_text'),\n text: z.string(),\n});\n\nexport const conversationMessageContentSchema = z.union([responseInputTextContentSchema, responseOutputTextSchema]);\n\nexport const responseOutputMessageSchema = z.object({\n id: z.string(),\n type: z.literal('message'),\n role: z.literal('assistant'),\n status: z.enum(['in_progress', 'completed', 'incomplete']),\n content: z.array(responseOutputTextSchema),\n});\n\nexport const responseOutputFunctionCallSchema = z.object({\n id: z.string(),\n type: z.literal('function_call'),\n call_id: z.string(),\n name: z.string(),\n arguments: z.string(),\n status: z.enum(['in_progress', 'completed', 'incomplete']).optional(),\n});\n\nexport const responseOutputFunctionCallOutputSchema = z.object({\n id: z.string(),\n type: z.literal('function_call_output'),\n call_id: z.string(),\n output: z.string(),\n});\n\nexport const responseUsageSchema = z.object({\n input_tokens: z.number(),\n output_tokens: z.number(),\n total_tokens: z.number(),\n input_tokens_details: z\n .object({\n cached_tokens: z.number(),\n })\n .optional(),\n output_tokens_details: z\n .object({\n reasoning_tokens: z.number(),\n })\n .optional(),\n});\n\nexport type ResponseUsage = z.infer<typeof responseUsageSchema>;\n\nexport const responseToolSchema = z.object({\n type: z.literal('function'),\n name: z.string(),\n description: z.string().optional(),\n parameters: z.unknown().optional(),\n});\n\nexport type ResponseTool = z.infer<typeof responseToolSchema>;\n\nexport const responseOutputItemSchema = z.union([\n responseOutputMessageSchema,\n responseOutputFunctionCallSchema,\n responseOutputFunctionCallOutputSchema,\n]);\n\nexport type ResponseOutputItem = z.infer<typeof responseOutputItemSchema>;\n\nexport const conversationItemMessageSchema = z.object({\n id: z.string(),\n type: z.literal('message'),\n role: z.enum(['system', 'user', 'assistant']),\n status: z.literal('completed'),\n content: z.array(conversationMessageContentSchema),\n});\n\nexport const conversationItemSchema = z.union([\n conversationItemMessageSchema,\n responseOutputFunctionCallSchema,\n responseOutputFunctionCallOutputSchema,\n]);\n\nexport type ConversationItem = z.infer<typeof conversationItemSchema>;\n\nexport const responseObjectSchema = z.object({\n id: z.string(),\n object: z.literal('response'),\n created_at: z.number(),\n completed_at: z.number().nullable(),\n model: z.string(),\n status: z.enum(['in_progress', 'completed', 'incomplete']),\n output: z.array(responseOutputItemSchema),\n usage: responseUsageSchema.nullable(),\n error: z.null().optional(),\n incomplete_details: z.null().optional(),\n instructions: z.string().nullable().optional(),\n text: responseTextSchema.nullable().optional(),\n previous_response_id: z.string().nullable().optional(),\n conversation_id: z.string().nullable().optional(),\n providerOptions: providerOptionsSchema.optional(),\n tools: z.array(responseToolSchema).optional(),\n store: z.boolean().optional(),\n});\n\nexport type ResponseObject = z.infer<typeof responseObjectSchema>;\n\nexport const deleteResponseSchema = z.object({\n id: z.string(),\n object: z.literal('response'),\n deleted: z.literal(true),\n});\n\nexport type DeleteResponse = z.infer<typeof deleteResponseSchema>;\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { conversationItemSchema } from './chunk-
|
|
1
|
+
import { conversationItemSchema } from './chunk-6NY3T42O.js';
|
|
2
2
|
import { getThreadByIdResponseSchema } from './chunk-6MMZVEFC.js';
|
|
3
3
|
import z from 'zod';
|
|
4
4
|
|
|
@@ -31,5 +31,5 @@ var conversationItemsListSchema = z.object({
|
|
|
31
31
|
});
|
|
32
32
|
|
|
33
33
|
export { conversationDeletedSchema, conversationIdPathParams, conversationItemsListSchema, conversationObjectSchema, createConversationBodySchema };
|
|
34
|
-
//# sourceMappingURL=chunk-
|
|
35
|
-
//# sourceMappingURL=chunk-
|
|
34
|
+
//# sourceMappingURL=chunk-GIIEDO2K.js.map
|
|
35
|
+
//# sourceMappingURL=chunk-GIIEDO2K.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/schemas/conversations.ts"],"names":[],"mappings":";;;;AAIO,IAAM,wBAAA,GAA2B,EAAE,MAAA,CAAO;AAAA,EAC/C,cAAA,EAAgB,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,+CAA+C;AACrF,CAAC;AAEM,IAAM,4BAAA,GAA+B,EAAE,MAAA,CAAO;AAAA,EACnD,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,wDAAwD,CAAA;AAAA,EACtF,iBAAiB,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qDAAqD,CAAA;AAAA,EACrG,aAAa,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yDAAyD,CAAA;AAAA,EACrG,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,QAAA,EAAU,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAC9C,CAAC;AAIM,IAAM,wBAAA,GAA2B,EAAE,MAAA,CAAO;AAAA,EAC/C,EAAA,EAAI,EAAE,MAAA,EAAO;AAAA,EACb,MAAA,EAAQ,CAAA,CAAE,OAAA,CAAQ,cAAc,CAAA;AAAA,EAChC,MAAA,EAAQ;AACV,CAAC;AAEM,IAAM,yBAAA,GAA4B,EAAE,MAAA,CAAO;AAAA,EAChD,EAAA,EAAI,EAAE,MAAA,EAAO;AAAA,EACb,MAAA,EAAQ,CAAA,CAAE,OAAA,CAAQ,sBAAsB,CAAA;AAAA,EACxC,OAAA,EAAS,CAAA,CAAE,OAAA,CAAQ,IAAI;AACzB,CAAC;AAEM,IAAM,2BAAA,GAA8B,EAAE,MAAA,CAAO;AAAA,EAClD,MAAA,EAAQ,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,EACxB,IAAA,EAAM,CAAA,CAAE,KAAA,CAAM,sBAAsB,CAAA;AAAA,EACpC,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,QAAA,EAAU,EAAE,OAAA;AACd,CAAC","file":"chunk-
|
|
1
|
+
{"version":3,"sources":["../src/server/schemas/conversations.ts"],"names":[],"mappings":";;;;AAIO,IAAM,wBAAA,GAA2B,EAAE,MAAA,CAAO;AAAA,EAC/C,cAAA,EAAgB,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,+CAA+C;AACrF,CAAC;AAEM,IAAM,4BAAA,GAA+B,EAAE,MAAA,CAAO;AAAA,EACnD,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,SAAS,wDAAwD,CAAA;AAAA,EACtF,iBAAiB,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,qDAAqD,CAAA;AAAA,EACrG,aAAa,CAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,yDAAyD,CAAA;AAAA,EACrG,KAAA,EAAO,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC3B,QAAA,EAAU,CAAA,CAAE,MAAA,CAAO,CAAA,CAAE,MAAA,IAAU,CAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA;AAC9C,CAAC;AAIM,IAAM,wBAAA,GAA2B,EAAE,MAAA,CAAO;AAAA,EAC/C,EAAA,EAAI,EAAE,MAAA,EAAO;AAAA,EACb,MAAA,EAAQ,CAAA,CAAE,OAAA,CAAQ,cAAc,CAAA;AAAA,EAChC,MAAA,EAAQ;AACV,CAAC;AAEM,IAAM,yBAAA,GAA4B,EAAE,MAAA,CAAO;AAAA,EAChD,EAAA,EAAI,EAAE,MAAA,EAAO;AAAA,EACb,MAAA,EAAQ,CAAA,CAAE,OAAA,CAAQ,sBAAsB,CAAA;AAAA,EACxC,OAAA,EAAS,CAAA,CAAE,OAAA,CAAQ,IAAI;AACzB,CAAC;AAEM,IAAM,2BAAA,GAA8B,EAAE,MAAA,CAAO;AAAA,EAClD,MAAA,EAAQ,CAAA,CAAE,OAAA,CAAQ,MAAM,CAAA;AAAA,EACxB,IAAA,EAAM,CAAA,CAAE,KAAA,CAAM,sBAAsB,CAAA;AAAA,EACpC,QAAA,EAAU,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC9B,OAAA,EAAS,CAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,EAC7B,QAAA,EAAU,EAAE,OAAA;AACd,CAAC","file":"chunk-GIIEDO2K.js","sourcesContent":["import z from 'zod';\nimport { getThreadByIdResponseSchema } from './memory';\nimport { conversationItemSchema } from './responses';\n\nexport const conversationIdPathParams = z.object({\n conversationId: z.string().describe('Unique identifier for the conversation thread'),\n});\n\nexport const createConversationBodySchema = z.object({\n agent_id: z.string().describe('Mastra agent ID used to create the conversation thread'),\n conversation_id: z.string().optional().describe('Optional conversation ID to use as the raw threadId'),\n resource_id: z.string().optional().describe('Optional resource ID to associate with the conversation'),\n title: z.string().optional(),\n metadata: z.record(z.string(), z.unknown()).optional(),\n});\n\nexport type CreateConversationBody = z.infer<typeof createConversationBodySchema>;\n\nexport const conversationObjectSchema = z.object({\n id: z.string(),\n object: z.literal('conversation'),\n thread: getThreadByIdResponseSchema,\n});\n\nexport const conversationDeletedSchema = z.object({\n id: z.string(),\n object: z.literal('conversation.deleted'),\n deleted: z.literal(true),\n});\n\nexport const conversationItemsListSchema = z.object({\n object: z.literal('list'),\n data: z.array(conversationItemSchema),\n first_id: z.string().nullable(),\n last_id: z.string().nullable(),\n has_more: z.boolean(),\n});\n\nexport type ConversationObject = z.infer<typeof conversationObjectSchema>;\nexport type ConversationItemsList = z.infer<typeof conversationItemsListSchema>;\nexport type ConversationDeleted = z.infer<typeof conversationDeletedSchema>;\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
|
-
var
|
|
3
|
+
var chunkSAOJYYFE_cjs = require('./chunk-SAOJYYFE.cjs');
|
|
4
4
|
var chunkOJ72T77G_cjs = require('./chunk-OJ72T77G.cjs');
|
|
5
5
|
var chunkEPKGVW45_cjs = require('./chunk-EPKGVW45.cjs');
|
|
6
6
|
var chunkHUWHY7SC_cjs = require('./chunk-HUWHY7SC.cjs');
|
|
@@ -172,7 +172,8 @@ async function resolveAgentMemoryStore({
|
|
|
172
172
|
}
|
|
173
173
|
async function executeGenerate({
|
|
174
174
|
agent,
|
|
175
|
-
|
|
175
|
+
resolvedModel,
|
|
176
|
+
modelOverride,
|
|
176
177
|
instructions,
|
|
177
178
|
text,
|
|
178
179
|
providerOptions,
|
|
@@ -183,23 +184,23 @@ async function executeGenerate({
|
|
|
183
184
|
}) {
|
|
184
185
|
const executionMemory = createExecutionMemory(threadContext);
|
|
185
186
|
const structuredOutput = createStructuredOutput(text);
|
|
187
|
+
const modelOption = modelOverride ? { model: modelOverride } : {};
|
|
186
188
|
const commonOptions = {
|
|
187
189
|
instructions,
|
|
188
190
|
requestContext,
|
|
189
191
|
abortSignal,
|
|
190
|
-
|
|
192
|
+
...modelOption,
|
|
191
193
|
structuredOutput,
|
|
192
194
|
providerOptions,
|
|
193
195
|
...executionMemory ?? {}
|
|
194
196
|
};
|
|
195
|
-
const resolvedModel = await agent.getModel({ requestContext, modelConfig: model });
|
|
196
197
|
if (resolvedModel.specificationVersion === "v1") {
|
|
197
198
|
if (threadContext) {
|
|
198
199
|
return await agent.generateLegacy(input, {
|
|
199
200
|
instructions,
|
|
200
201
|
requestContext,
|
|
201
202
|
abortSignal,
|
|
202
|
-
|
|
203
|
+
...modelOption,
|
|
203
204
|
output: structuredOutput?.schema,
|
|
204
205
|
providerOptions,
|
|
205
206
|
resourceId: threadContext.resourceId,
|
|
@@ -210,7 +211,7 @@ async function executeGenerate({
|
|
|
210
211
|
instructions,
|
|
211
212
|
requestContext,
|
|
212
213
|
abortSignal,
|
|
213
|
-
|
|
214
|
+
...modelOption,
|
|
214
215
|
output: structuredOutput?.schema,
|
|
215
216
|
providerOptions
|
|
216
217
|
});
|
|
@@ -219,7 +220,8 @@ async function executeGenerate({
|
|
|
219
220
|
}
|
|
220
221
|
async function executeStream({
|
|
221
222
|
agent,
|
|
222
|
-
|
|
223
|
+
resolvedModel,
|
|
224
|
+
modelOverride,
|
|
223
225
|
instructions,
|
|
224
226
|
text,
|
|
225
227
|
providerOptions,
|
|
@@ -230,23 +232,23 @@ async function executeStream({
|
|
|
230
232
|
}) {
|
|
231
233
|
const executionMemory = createExecutionMemory(threadContext);
|
|
232
234
|
const structuredOutput = createStructuredOutput(text);
|
|
235
|
+
const modelOption = modelOverride ? { model: modelOverride } : {};
|
|
233
236
|
const commonOptions = {
|
|
234
237
|
instructions,
|
|
235
238
|
requestContext,
|
|
236
239
|
abortSignal,
|
|
237
|
-
|
|
240
|
+
...modelOption,
|
|
238
241
|
structuredOutput,
|
|
239
242
|
providerOptions,
|
|
240
243
|
...executionMemory ?? {}
|
|
241
244
|
};
|
|
242
|
-
const resolvedModel = await agent.getModel({ requestContext, modelConfig: model });
|
|
243
245
|
if (resolvedModel.specificationVersion === "v1") {
|
|
244
246
|
if (threadContext) {
|
|
245
247
|
return await agent.streamLegacy(input, {
|
|
246
248
|
instructions,
|
|
247
249
|
requestContext,
|
|
248
250
|
abortSignal,
|
|
249
|
-
|
|
251
|
+
...modelOption,
|
|
250
252
|
output: structuredOutput?.schema,
|
|
251
253
|
providerOptions,
|
|
252
254
|
resourceId: threadContext.resourceId,
|
|
@@ -257,7 +259,7 @@ async function executeStream({
|
|
|
257
259
|
instructions,
|
|
258
260
|
requestContext,
|
|
259
261
|
abortSignal,
|
|
260
|
-
|
|
262
|
+
...modelOption,
|
|
261
263
|
output: structuredOutput?.schema,
|
|
262
264
|
providerOptions
|
|
263
265
|
});
|
|
@@ -375,6 +377,22 @@ async function prepareCreateResponseRequest({
|
|
|
375
377
|
mastra,
|
|
376
378
|
agentId: body.agent_id
|
|
377
379
|
});
|
|
380
|
+
const resolvedModel = await agent.getModel({
|
|
381
|
+
requestContext,
|
|
382
|
+
modelConfig: body.model
|
|
383
|
+
});
|
|
384
|
+
const responseModel = body.model ?? (() => {
|
|
385
|
+
if (resolvedModel.provider && resolvedModel.modelId) {
|
|
386
|
+
const publicProviderId = resolvedModel.provider.includes(".") ? resolvedModel.provider.split(".")[0] : resolvedModel.provider;
|
|
387
|
+
return `${publicProviderId}/${resolvedModel.modelId}`;
|
|
388
|
+
}
|
|
389
|
+
if (resolvedModel.modelId) {
|
|
390
|
+
return resolvedModel.modelId;
|
|
391
|
+
}
|
|
392
|
+
throw new chunk64ITUOXI_cjs.HTTPException(500, {
|
|
393
|
+
message: "Responses route could not determine the effective model for this request"
|
|
394
|
+
});
|
|
395
|
+
})();
|
|
378
396
|
const shouldStore = body.store ?? false;
|
|
379
397
|
const needsMemoryStore = shouldStore || Boolean(body.conversation_id) || Boolean(body.previous_response_id);
|
|
380
398
|
const agentMemoryStore = needsMemoryStore ? await resolveAgentMemoryStore({
|
|
@@ -412,10 +430,12 @@ async function prepareCreateResponseRequest({
|
|
|
412
430
|
didStore,
|
|
413
431
|
executionInput,
|
|
414
432
|
previousResponseTurnRecord,
|
|
433
|
+
resolvedModel,
|
|
415
434
|
responseId,
|
|
435
|
+
responseModel,
|
|
416
436
|
responseMetadata: {
|
|
417
437
|
agentId: agent.id,
|
|
418
|
-
model:
|
|
438
|
+
model: responseModel,
|
|
419
439
|
createdAt,
|
|
420
440
|
instructions: body.instructions,
|
|
421
441
|
text: body.text,
|
|
@@ -434,13 +454,14 @@ function createResponseEventStream({
|
|
|
434
454
|
didStore,
|
|
435
455
|
previousResponseTurnRecord,
|
|
436
456
|
responseId,
|
|
457
|
+
responseModel,
|
|
437
458
|
responseMetadata,
|
|
438
459
|
streamResult,
|
|
439
460
|
threadContext
|
|
440
461
|
}) {
|
|
441
462
|
const createdResponse = chunkOJ72T77G_cjs.buildInProgressResponse({
|
|
442
463
|
responseId,
|
|
443
|
-
model:
|
|
464
|
+
model: responseModel,
|
|
444
465
|
createdAt,
|
|
445
466
|
instructions: body.instructions,
|
|
446
467
|
textConfig: body.text,
|
|
@@ -514,7 +535,7 @@ function createResponseEventStream({
|
|
|
514
535
|
result: streamResult,
|
|
515
536
|
responseId,
|
|
516
537
|
createdAt,
|
|
517
|
-
model:
|
|
538
|
+
model: responseModel,
|
|
518
539
|
instructions: body.instructions,
|
|
519
540
|
previousResponseId: previousResponseTurnRecord?.message.id ?? body.previous_response_id,
|
|
520
541
|
conversationId: threadContext?.threadId ?? body.conversation_id,
|
|
@@ -565,8 +586,8 @@ var CREATE_RESPONSE_ROUTE = chunkEGSCXVMR_cjs.createRoute({
|
|
|
565
586
|
method: "POST",
|
|
566
587
|
path: "/v1/responses",
|
|
567
588
|
responseType: "datastream-response",
|
|
568
|
-
bodySchema:
|
|
569
|
-
responseSchema:
|
|
589
|
+
bodySchema: chunkSAOJYYFE_cjs.createResponseBodySchema,
|
|
590
|
+
responseSchema: chunkSAOJYYFE_cjs.responseObjectSchema,
|
|
570
591
|
summary: "Create a response",
|
|
571
592
|
description: "Creates a response through a Mastra-hosted Responses API-compatible route",
|
|
572
593
|
tags: ["Responses"],
|
|
@@ -582,14 +603,17 @@ var CREATE_RESPONSE_ROUTE = chunkEGSCXVMR_cjs.createRoute({
|
|
|
582
603
|
didStore,
|
|
583
604
|
executionInput,
|
|
584
605
|
previousResponseTurnRecord,
|
|
606
|
+
resolvedModel,
|
|
585
607
|
responseId,
|
|
608
|
+
responseModel,
|
|
586
609
|
responseMetadata,
|
|
587
610
|
threadContext
|
|
588
611
|
} = await prepareCreateResponseRequest({ body, mastra, requestContext });
|
|
589
612
|
if (!body.stream) {
|
|
590
613
|
const result = await executeGenerate({
|
|
591
614
|
agent,
|
|
592
|
-
|
|
615
|
+
resolvedModel,
|
|
616
|
+
modelOverride: body.model,
|
|
593
617
|
instructions: body.instructions,
|
|
594
618
|
text: body.text,
|
|
595
619
|
providerOptions: body.providerOptions,
|
|
@@ -605,7 +629,7 @@ var CREATE_RESPONSE_ROUTE = chunkEGSCXVMR_cjs.createRoute({
|
|
|
605
629
|
result,
|
|
606
630
|
responseId,
|
|
607
631
|
createdAt,
|
|
608
|
-
model:
|
|
632
|
+
model: responseModel,
|
|
609
633
|
instructions: body.instructions,
|
|
610
634
|
previousResponseId: previousResponseTurnRecord?.message.id ?? body.previous_response_id,
|
|
611
635
|
conversationId: threadContext?.threadId ?? body.conversation_id,
|
|
@@ -617,7 +641,8 @@ var CREATE_RESPONSE_ROUTE = chunkEGSCXVMR_cjs.createRoute({
|
|
|
617
641
|
}
|
|
618
642
|
const streamResult = await executeStream({
|
|
619
643
|
agent,
|
|
620
|
-
|
|
644
|
+
resolvedModel,
|
|
645
|
+
modelOverride: body.model,
|
|
621
646
|
instructions: body.instructions,
|
|
622
647
|
text: body.text,
|
|
623
648
|
providerOptions: body.providerOptions,
|
|
@@ -634,6 +659,7 @@ var CREATE_RESPONSE_ROUTE = chunkEGSCXVMR_cjs.createRoute({
|
|
|
634
659
|
didStore,
|
|
635
660
|
previousResponseTurnRecord,
|
|
636
661
|
responseId,
|
|
662
|
+
responseModel,
|
|
637
663
|
responseMetadata,
|
|
638
664
|
streamResult,
|
|
639
665
|
threadContext
|
|
@@ -655,8 +681,8 @@ var GET_RESPONSE_ROUTE = chunkEGSCXVMR_cjs.createRoute({
|
|
|
655
681
|
method: "GET",
|
|
656
682
|
path: "/v1/responses/:responseId",
|
|
657
683
|
responseType: "json",
|
|
658
|
-
pathParamSchema:
|
|
659
|
-
responseSchema:
|
|
684
|
+
pathParamSchema: chunkSAOJYYFE_cjs.responseIdPathParams,
|
|
685
|
+
responseSchema: chunkSAOJYYFE_cjs.responseObjectSchema,
|
|
660
686
|
summary: "Retrieve a stored response",
|
|
661
687
|
description: "Returns a previously stored response object",
|
|
662
688
|
tags: ["Responses"],
|
|
@@ -678,8 +704,8 @@ var DELETE_RESPONSE_ROUTE = chunkEGSCXVMR_cjs.createRoute({
|
|
|
678
704
|
method: "DELETE",
|
|
679
705
|
path: "/v1/responses/:responseId",
|
|
680
706
|
responseType: "json",
|
|
681
|
-
pathParamSchema:
|
|
682
|
-
responseSchema:
|
|
707
|
+
pathParamSchema: chunkSAOJYYFE_cjs.responseIdPathParams,
|
|
708
|
+
responseSchema: chunkSAOJYYFE_cjs.deleteResponseSchema,
|
|
683
709
|
summary: "Delete a stored response",
|
|
684
710
|
description: "Deletes a stored response so it can no longer be retrieved or chained",
|
|
685
711
|
tags: ["Responses"],
|
|
@@ -708,5 +734,5 @@ exports.CREATE_RESPONSE_ROUTE = CREATE_RESPONSE_ROUTE;
|
|
|
708
734
|
exports.DELETE_RESPONSE_ROUTE = DELETE_RESPONSE_ROUTE;
|
|
709
735
|
exports.GET_RESPONSE_ROUTE = GET_RESPONSE_ROUTE;
|
|
710
736
|
exports.responses_exports = responses_exports;
|
|
711
|
-
//# sourceMappingURL=chunk-
|
|
712
|
-
//# sourceMappingURL=chunk-
|
|
737
|
+
//# sourceMappingURL=chunk-KAIOMGUE.cjs.map
|
|
738
|
+
//# sourceMappingURL=chunk-KAIOMGUE.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/responses.ts"],"names":["__export","HTTPException","getEffectiveThreadId","getEffectiveResourceId","existingThread","validateThreadOwnership","threadId","randomUUID","createdThread","getAgentFromSystem","getAgentMemoryStore","toResponseStatus","toResponseUsage","persistResponseTurnRecord","resolveResponseTurnMessagesForStorage","buildCompletedResponse","mapResponseInputToExecutionMessages","findResponseTurnRecord","mapMastraToolsToResponseTools","createMessageId","buildInProgressResponse","formatSseEvent","createOutputTextPart","extractTextDelta","createRoute","createResponseBodySchema","responseObjectSchema","handleError","responseIdPathParams","findResponseTurnRecordAcrossAgents","mapResponseTurnRecordToResponse","deleteResponseSchema","deleteResponseTurnRecord"],"mappings":"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","file":"chunk-KAIOMGUE.cjs","sourcesContent":["import { randomUUID } from 'node:crypto';\nimport type { Agent, MastraDBMessage } from '@mastra/core/agent';\nimport type { Mastra } from '@mastra/core/mastra';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type { MemoryStorage } from '@mastra/core/storage';\nimport { HTTPException } from '../http-exception';\nimport {\n createResponseBodySchema,\n deleteResponseSchema,\n responseIdPathParams,\n responseObjectSchema,\n} from '../schemas/responses';\nimport type { CreateResponseBody, DeleteResponse, ResponseObject } from '../schemas/responses';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\nimport {\n buildCompletedResponse,\n buildInProgressResponse,\n createMessageId,\n createOutputTextPart,\n extractTextDelta,\n formatSseEvent,\n mapMastraToolsToResponseTools,\n mapResponseInputToExecutionMessages,\n mapResponseTurnRecordToResponse,\n toResponseStatus,\n toResponseUsage,\n} from './responses.adapter';\nimport {\n deleteResponseTurnRecord,\n findResponseTurnRecord,\n findResponseTurnRecordAcrossAgents,\n getAgentMemoryStore,\n persistResponseTurnRecord,\n resolveResponseTurnMessagesForStorage,\n} from './responses.storage';\nimport type {\n ProviderMetadataLike,\n ResponseTurnRecord,\n ResponseTurnRecordMetadata,\n ThreadExecutionContext,\n UsageLike,\n} from './responses.storage';\nimport { getEffectiveResourceId, getEffectiveThreadId, validateThreadOwnership } from './utils';\n\ntype AgentExecutionInput = Parameters<Agent['generate']>[0];\ntype ResolvedAgentModel = Awaited<ReturnType<Agent['getModel']>>;\n\ntype ResponseExecutionResult = {\n text?: string;\n finishReason?: string;\n totalUsage?: UsageLike | Promise<UsageLike>;\n usage?: UsageLike | Promise<UsageLike>;\n providerMetadata?: ProviderMetadataLike | Promise<ProviderMetadataLike>;\n response?: {\n id?: string;\n dbMessages?: MastraDBMessage[];\n };\n};\n\ntype ResponseStreamResult = {\n fullStream: ReadableStream<unknown> | Promise<ReadableStream<unknown>>;\n text: Promise<string> | string;\n finishReason: Promise<string | undefined> | string | undefined;\n totalUsage?: Promise<UsageLike> | UsageLike;\n usage?: Promise<UsageLike> | UsageLike;\n providerMetadata?: Promise<ProviderMetadataLike> | ProviderMetadataLike;\n response?:\n | Promise<{\n id?: string;\n dbMessages?: MastraDBMessage[];\n }>\n | {\n id?: string;\n dbMessages?: MastraDBMessage[];\n };\n};\n\ntype CompletedResponseState = {\n completedAt: number;\n status: ResponseObject['status'];\n text: string;\n usage: UsageLike;\n usageDetails: ResponseObject['usage'];\n providerOptions: ProviderMetadataLike;\n};\n\ntype FinalizedResponse = {\n completedState: CompletedResponseState;\n response: ResponseObject;\n responseMessages: MastraDBMessage[];\n};\n\ntype PreparedCreateResponseRequest = {\n agent: Agent<any, any, any, any>;\n agentMemoryStore: MemoryStorage | null;\n configuredTools: ReturnType<typeof mapMastraToolsToResponseTools>;\n createdAt: number;\n didStore: boolean;\n executionInput: AgentExecutionInput;\n previousResponseTurnRecord: ResponseTurnRecord | null;\n resolvedModel: ResolvedAgentModel;\n responseId: string;\n responseModel: string;\n responseMetadata: Omit<\n ResponseTurnRecordMetadata,\n 'completedAt' | 'status' | 'usage' | 'providerOptions' | 'messageIds'\n >;\n threadContext: ThreadExecutionContext | null;\n};\n\nconst JSON_OBJECT_RESPONSE_SCHEMA = {\n type: 'object',\n additionalProperties: true,\n} as const;\n\nfunction jsonResponse(data: ResponseObject, status: number = 200): Response {\n return new Response(JSON.stringify(data), {\n status,\n headers: {\n 'Content-Type': 'application/json',\n },\n });\n}\n\nfunction createStructuredOutput(text: CreateResponseBody['text']) {\n if (!text) {\n return undefined;\n }\n\n switch (text.format.type) {\n case 'json_object':\n return {\n schema: JSON_OBJECT_RESPONSE_SCHEMA,\n jsonPromptInjection: true,\n };\n case 'json_schema':\n return {\n schema: text.format.schema,\n };\n default:\n return undefined;\n }\n}\n\nfunction getStreamedMessageOutputItem(response: ResponseObject, responseId: string) {\n return (\n response.output.find(\n (item): item is Extract<ResponseObject['output'][number], { type: 'message' }> =>\n item.type === 'message' && item.id === responseId,\n ) ??\n response.output.find(\n (item): item is Extract<ResponseObject['output'][number], { type: 'message' }> => item.type === 'message',\n ) ??\n null\n );\n}\n\n/**\n * Resolves the memory thread that should back the current response request.\n *\n * If `previous_response_id` is present, the request continues on that stored thread.\n * Otherwise, the route only creates or reuses a thread when the caller asked to store\n * the response and the resolved agent actually has memory configured.\n */\nasync function resolveThreadExecutionContext({\n agent,\n store,\n conversationId,\n previousResponseTurnRecord,\n requestContext,\n}: {\n agent: Agent<any, any, any, any>;\n store: boolean;\n conversationId?: string;\n previousResponseTurnRecord: ResponseTurnRecord | null;\n requestContext: RequestContext;\n}): Promise<ThreadExecutionContext | null> {\n if (conversationId && previousResponseTurnRecord && previousResponseTurnRecord.thread.id !== conversationId) {\n throw new HTTPException(400, {\n message:\n 'conversation_id and previous_response_id must reference the same conversation thread when both are provided',\n });\n }\n\n if (previousResponseTurnRecord) {\n return {\n threadId: previousResponseTurnRecord.thread.id,\n resourceId: previousResponseTurnRecord.thread.resourceId,\n };\n }\n\n const effectiveThreadId = getEffectiveThreadId(requestContext, undefined);\n const effectiveResourceId = getEffectiveResourceId(requestContext, undefined);\n\n if (!store && !conversationId && !effectiveThreadId) {\n return null;\n }\n\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n if (conversationId) {\n throw new HTTPException(400, {\n message: 'conversation_id requires the target agent to have memory configured',\n });\n }\n\n return null;\n }\n\n if (conversationId) {\n const existingThread = await memory.getThreadById({ threadId: conversationId });\n if (!existingThread) {\n throw new HTTPException(404, { message: `Conversation ${conversationId} was not found` });\n }\n\n await validateThreadOwnership(existingThread, effectiveResourceId);\n return {\n threadId: existingThread.id,\n resourceId: effectiveResourceId ?? existingThread.resourceId,\n };\n }\n\n if (!effectiveThreadId) {\n if (!store) {\n return null;\n }\n\n const threadId = randomUUID();\n const createdThread = await memory.createThread({\n threadId,\n resourceId: effectiveResourceId ?? threadId,\n });\n\n return {\n threadId: createdThread.id,\n resourceId: createdThread.resourceId,\n };\n }\n\n const threadId = effectiveThreadId;\n const existingThread = await memory.getThreadById({ threadId });\n if (existingThread) {\n await validateThreadOwnership(existingThread, effectiveResourceId);\n return {\n threadId: existingThread.id,\n resourceId: effectiveResourceId ?? existingThread.resourceId,\n };\n }\n\n if (!store) {\n return null;\n }\n\n const resourceId = effectiveResourceId ?? threadId;\n const createdThread = await memory.createThread({\n threadId,\n resourceId,\n });\n\n return {\n threadId: createdThread.id,\n resourceId: createdThread.resourceId,\n };\n}\n\nfunction createExecutionMemory(threadContext: ThreadExecutionContext | null) {\n if (!threadContext) {\n return undefined;\n }\n\n return {\n memory: {\n thread: threadContext.threadId,\n resource: threadContext.resourceId,\n },\n } as const;\n}\n\n/**\n * Resolves the registered Mastra agent that owns the response request.\n */\nasync function resolveResponseAgent({\n mastra,\n agentId,\n}: {\n mastra: Mastra | undefined;\n agentId?: string;\n}): Promise<Agent<any, any, any, any>> {\n if (!agentId) {\n throw new HTTPException(400, {\n message: 'Responses requests require an agent_id',\n });\n }\n\n if (!mastra) {\n throw new HTTPException(500, { message: 'Mastra instance is required for agent-backed responses' });\n }\n\n return getAgentFromSystem({ mastra, agentId });\n}\n\nasync function resolveAgentMemoryStore({\n agent,\n requestContext,\n errorMessage,\n}: {\n agent: Agent<any, any, any, any>;\n requestContext: RequestContext;\n errorMessage: string;\n}): Promise<MemoryStorage> {\n const agentMemoryStore = await getAgentMemoryStore({ agent, requestContext });\n if (!agentMemoryStore) {\n throw new HTTPException(400, { message: errorMessage });\n }\n\n return agentMemoryStore;\n}\n\n/**\n * Executes a non-streaming Responses API request through the resolved Mastra agent.\n */\nasync function executeGenerate({\n agent,\n resolvedModel,\n modelOverride,\n instructions,\n text,\n providerOptions,\n input,\n requestContext,\n abortSignal,\n threadContext,\n}: {\n agent: Agent;\n resolvedModel: ResolvedAgentModel;\n modelOverride?: string;\n instructions: string | undefined;\n text: CreateResponseBody['text'];\n providerOptions: CreateResponseBody['providerOptions'];\n input: AgentExecutionInput;\n requestContext: RequestContext;\n abortSignal: AbortSignal;\n threadContext: ThreadExecutionContext | null;\n}) {\n const executionMemory = createExecutionMemory(threadContext);\n const structuredOutput = createStructuredOutput(text);\n const modelOption = modelOverride ? { model: modelOverride } : {};\n const commonOptions = {\n instructions,\n requestContext,\n abortSignal,\n ...modelOption,\n structuredOutput,\n providerOptions,\n ...(executionMemory ?? {}),\n };\n\n if (resolvedModel.specificationVersion === 'v1') {\n if (threadContext) {\n return (await agent.generateLegacy(input, {\n instructions,\n requestContext,\n abortSignal,\n ...modelOption,\n output: structuredOutput?.schema,\n providerOptions,\n resourceId: threadContext.resourceId,\n threadId: threadContext.threadId,\n } as never)) as ResponseExecutionResult;\n }\n\n return (await agent.generateLegacy(input, {\n instructions,\n requestContext,\n abortSignal,\n ...modelOption,\n output: structuredOutput?.schema,\n providerOptions,\n } as never)) as ResponseExecutionResult;\n }\n\n return (await agent.generate(input, commonOptions as never)) as ResponseExecutionResult;\n}\n\n/**\n * Executes a streaming Responses API request through the resolved Mastra agent.\n */\nasync function executeStream({\n agent,\n resolvedModel,\n modelOverride,\n instructions,\n text,\n providerOptions,\n input,\n requestContext,\n abortSignal,\n threadContext,\n}: {\n agent: Agent;\n resolvedModel: ResolvedAgentModel;\n modelOverride?: string;\n instructions: string | undefined;\n text: CreateResponseBody['text'];\n providerOptions: CreateResponseBody['providerOptions'];\n input: AgentExecutionInput;\n requestContext: RequestContext;\n abortSignal: AbortSignal;\n threadContext: ThreadExecutionContext | null;\n}) {\n const executionMemory = createExecutionMemory(threadContext);\n const structuredOutput = createStructuredOutput(text);\n const modelOption = modelOverride ? { model: modelOverride } : {};\n const commonOptions = {\n instructions,\n requestContext,\n abortSignal,\n ...modelOption,\n structuredOutput,\n providerOptions,\n ...(executionMemory ?? {}),\n };\n\n if (resolvedModel.specificationVersion === 'v1') {\n if (threadContext) {\n return (await agent.streamLegacy(input, {\n instructions,\n requestContext,\n abortSignal,\n ...modelOption,\n output: structuredOutput?.schema,\n providerOptions,\n resourceId: threadContext.resourceId,\n threadId: threadContext.threadId,\n } as never)) as ResponseStreamResult;\n }\n\n return (await agent.streamLegacy(input, {\n instructions,\n requestContext,\n abortSignal,\n ...modelOption,\n output: structuredOutput?.schema,\n providerOptions,\n } as never)) as ResponseStreamResult;\n }\n\n return (await agent.stream(input, commonOptions as never)) as ResponseStreamResult;\n}\n\nasync function resolveUsage(result: ResponseExecutionResult | ResponseStreamResult): Promise<UsageLike> {\n return (await (result.totalUsage ?? result.usage ?? null)) as UsageLike;\n}\n\nasync function resolveProviderMetadata(\n result: ResponseExecutionResult | ResponseStreamResult,\n): Promise<ProviderMetadataLike> {\n return (await (result.providerMetadata ?? undefined)) as ProviderMetadataLike;\n}\n\nasync function resolveFinishReason(\n result: ResponseExecutionResult | ResponseStreamResult,\n): Promise<string | undefined> {\n return (await result.finishReason) ?? undefined;\n}\n\nasync function resolveText(result: ResponseExecutionResult | ResponseStreamResult): Promise<string> {\n return (await result.text) ?? '';\n}\n\n/**\n * Resolves the final response state shared by streaming and non-streaming flows.\n */\nasync function resolveCompletedResponseState(\n result: ResponseExecutionResult | ResponseStreamResult,\n fallbackText: string,\n): Promise<CompletedResponseState> {\n const usage = await resolveUsage(result);\n\n return {\n completedAt: Math.floor(Date.now() / 1000),\n status: toResponseStatus(await resolveFinishReason(result)),\n text: (await resolveText(result)) || fallbackText,\n usage,\n usageDetails: toResponseUsage(usage),\n providerOptions: await resolveProviderMetadata(result),\n };\n}\n\n/**\n * Stores the completed response when the request opted into memory-backed persistence.\n */\nasync function storeCompletedResponse({\n agentMemoryStore,\n didStore,\n threadContext,\n responseId,\n metadata,\n completedState,\n messages,\n}: {\n agentMemoryStore: MemoryStorage | null;\n didStore: boolean;\n threadContext: ThreadExecutionContext | null;\n responseId: string;\n metadata: Omit<ResponseTurnRecordMetadata, 'completedAt' | 'status' | 'usage' | 'providerOptions' | 'messageIds'>;\n completedState: CompletedResponseState;\n messages: MastraDBMessage[];\n}): Promise<void> {\n if (!didStore || !threadContext) {\n return;\n }\n\n await persistResponseTurnRecord({\n memoryStore: agentMemoryStore,\n responseId,\n metadata: {\n ...metadata,\n completedAt: completedState.completedAt,\n status: completedState.status,\n usage: completedState.usageDetails,\n providerOptions: completedState.providerOptions,\n messageIds: [],\n },\n threadContext,\n messages,\n });\n}\n\n/**\n * Resolves the final response object and persists the stored response turn when needed.\n */\nasync function finalizeResponse({\n agentMemoryStore,\n didStore,\n threadContext,\n result,\n responseId,\n createdAt,\n model,\n instructions,\n previousResponseId,\n conversationId,\n configuredTools,\n responseMetadata,\n fallbackText,\n}: {\n agentMemoryStore: MemoryStorage | null;\n didStore: boolean;\n threadContext: ThreadExecutionContext | null;\n result: ResponseExecutionResult | ResponseStreamResult;\n responseId: string;\n createdAt: number;\n model: string;\n instructions: string | undefined;\n previousResponseId?: string;\n conversationId?: string;\n configuredTools: ReturnType<typeof mapMastraToolsToResponseTools>;\n responseMetadata: Omit<\n ResponseTurnRecordMetadata,\n 'completedAt' | 'status' | 'usage' | 'providerOptions' | 'messageIds'\n >;\n fallbackText: string;\n}): Promise<FinalizedResponse> {\n const completedState = await resolveCompletedResponseState(result, fallbackText);\n const responseMessages = await resolveResponseTurnMessagesForStorage({\n result,\n responseId,\n text: completedState.text,\n threadContext,\n });\n const response = buildCompletedResponse({\n responseId,\n outputMessageId: responseId,\n model,\n createdAt,\n completedAt: completedState.completedAt,\n status: completedState.status,\n text: completedState.text,\n usage: completedState.usage,\n instructions,\n textConfig: responseMetadata.text,\n previousResponseId,\n conversationId,\n providerOptions: completedState.providerOptions,\n tools: configuredTools,\n messages: responseMessages,\n store: didStore,\n });\n\n await storeCompletedResponse({\n agentMemoryStore,\n didStore,\n threadContext,\n responseId,\n metadata: responseMetadata,\n completedState,\n messages: responseMessages,\n });\n\n return { completedState, response, responseMessages };\n}\n\n/**\n * Resolves all request-scoped Mastra primitives needed to execute a Responses create\n * call: the owning agent, the memory thread context, the normalized execution input,\n * and the response-turn metadata that may be persisted later.\n */\nasync function prepareCreateResponseRequest({\n body,\n mastra,\n requestContext,\n}: {\n body: CreateResponseBody;\n mastra: Mastra | undefined;\n requestContext: RequestContext;\n}): Promise<PreparedCreateResponseRequest> {\n const executionInput = mapResponseInputToExecutionMessages(body.input) as AgentExecutionInput;\n const agent = await resolveResponseAgent({\n mastra,\n agentId: body.agent_id,\n });\n const resolvedModel = await agent.getModel({\n requestContext,\n modelConfig: body.model,\n });\n const responseModel =\n body.model ??\n (() => {\n if (resolvedModel.provider && resolvedModel.modelId) {\n const publicProviderId = resolvedModel.provider.includes('.')\n ? resolvedModel.provider.split('.')[0]!\n : resolvedModel.provider;\n return `${publicProviderId}/${resolvedModel.modelId}`;\n }\n\n if (resolvedModel.modelId) {\n return resolvedModel.modelId;\n }\n\n throw new HTTPException(500, {\n message: 'Responses route could not determine the effective model for this request',\n });\n })();\n const shouldStore = body.store ?? false;\n const needsMemoryStore = shouldStore || Boolean(body.conversation_id) || Boolean(body.previous_response_id);\n const agentMemoryStore = needsMemoryStore\n ? await resolveAgentMemoryStore({\n agent,\n requestContext,\n errorMessage: body.previous_response_id\n ? 'previous_response_id requires the target agent to have memory storage configured'\n : shouldStore\n ? 'Stored responses require the target agent to have memory storage configured'\n : 'conversation_id requires the target agent to have memory storage configured',\n })\n : null;\n const previousResponseTurnRecord = body.previous_response_id\n ? await findResponseTurnRecord({ agent, responseId: body.previous_response_id, requestContext })\n : null;\n\n if (body.previous_response_id && !previousResponseTurnRecord) {\n throw new HTTPException(404, { message: `Stored response ${body.previous_response_id} was not found` });\n }\n\n const configuredTools = mapMastraToolsToResponseTools(\n (await Promise.resolve(agent.listTools({ requestContext }))) as Record<string, unknown>,\n );\n\n const responseId = createMessageId();\n const createdAt = Math.floor(Date.now() / 1000);\n const threadContext = await resolveThreadExecutionContext({\n agent,\n store: shouldStore,\n conversationId: body.conversation_id,\n previousResponseTurnRecord,\n requestContext,\n });\n\n if (shouldStore && !threadContext) {\n throw new HTTPException(400, {\n message: 'Stored responses require the target agent to have memory configured',\n });\n }\n\n const didStore = shouldStore && Boolean(threadContext);\n\n return {\n agent,\n agentMemoryStore,\n configuredTools,\n createdAt,\n didStore,\n executionInput,\n previousResponseTurnRecord,\n resolvedModel,\n responseId,\n responseModel,\n responseMetadata: {\n agentId: agent.id,\n model: responseModel,\n createdAt,\n instructions: body.instructions,\n text: body.text,\n previousResponseId: previousResponseTurnRecord?.message.id ?? body.previous_response_id,\n tools: configuredTools,\n store: didStore,\n },\n threadContext,\n };\n}\n\n/**\n * Bridges a Mastra agent stream into OpenAI-style Responses SSE events and completes\n * the stored response-turn record when the stream finishes.\n */\nfunction createResponseEventStream({\n agentMemoryStore,\n body,\n configuredTools,\n createdAt,\n didStore,\n previousResponseTurnRecord,\n responseId,\n responseModel,\n responseMetadata,\n streamResult,\n threadContext,\n}: {\n agentMemoryStore: MemoryStorage | null;\n body: CreateResponseBody;\n configuredTools: ReturnType<typeof mapMastraToolsToResponseTools>;\n createdAt: number;\n didStore: boolean;\n previousResponseTurnRecord: ResponseTurnRecord | null;\n responseId: string;\n responseModel: string;\n responseMetadata: Omit<\n ResponseTurnRecordMetadata,\n 'completedAt' | 'status' | 'usage' | 'providerOptions' | 'messageIds'\n >;\n streamResult: ResponseStreamResult;\n threadContext: ThreadExecutionContext | null;\n}) {\n const createdResponse = buildInProgressResponse({\n responseId,\n model: responseModel,\n createdAt,\n instructions: body.instructions,\n textConfig: body.text,\n previousResponseId: body.previous_response_id,\n conversationId: threadContext?.threadId ?? body.conversation_id,\n tools: configuredTools,\n store: didStore,\n });\n\n return new ReadableStream<Uint8Array>({\n async start(controller) {\n let sequenceNumber = 1;\n const enqueueEvent = (eventName: string, payload: Record<string, unknown>) => {\n controller.enqueue(\n formatSseEvent(eventName, {\n ...payload,\n sequence_number: sequenceNumber++,\n }),\n );\n };\n\n enqueueEvent('response.created', {\n type: 'response.created',\n response: createdResponse,\n });\n enqueueEvent('response.in_progress', {\n type: 'response.in_progress',\n response: createdResponse,\n });\n enqueueEvent('response.output_item.added', {\n type: 'response.output_item.added',\n output_index: 0,\n item: {\n id: responseId,\n type: 'message',\n role: 'assistant',\n status: 'in_progress',\n content: [],\n },\n });\n enqueueEvent('response.content_part.added', {\n type: 'response.content_part.added',\n output_index: 0,\n content_index: 0,\n item_id: responseId,\n part: createOutputTextPart(''),\n });\n\n let text = '';\n const fullStream = await streamResult.fullStream;\n const reader = fullStream.getReader();\n\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done) {\n break;\n }\n\n const delta = extractTextDelta(value);\n if (delta) {\n text += delta;\n enqueueEvent('response.output_text.delta', {\n type: 'response.output_text.delta',\n output_index: 0,\n content_index: 0,\n item_id: responseId,\n delta,\n });\n }\n }\n\n const { completedState, response } = await finalizeResponse({\n agentMemoryStore,\n didStore,\n threadContext,\n result: streamResult,\n responseId,\n createdAt,\n model: responseModel,\n instructions: body.instructions,\n previousResponseId: previousResponseTurnRecord?.message.id ?? body.previous_response_id,\n conversationId: threadContext?.threadId ?? body.conversation_id,\n configuredTools,\n responseMetadata,\n fallbackText: text,\n });\n enqueueEvent('response.output_text.done', {\n type: 'response.output_text.done',\n output_index: 0,\n content_index: 0,\n item_id: responseId,\n text: completedState.text,\n });\n\n const completedItem = getStreamedMessageOutputItem(response, responseId) ?? {\n id: responseId,\n type: 'message' as const,\n role: 'assistant' as const,\n status: 'completed' as const,\n content: [createOutputTextPart(completedState.text)],\n };\n\n enqueueEvent('response.content_part.done', {\n type: 'response.content_part.done',\n output_index: 0,\n content_index: 0,\n item_id: responseId,\n part: createOutputTextPart(completedState.text),\n });\n enqueueEvent('response.output_item.done', {\n type: 'response.output_item.done',\n output_index: 0,\n item: completedItem,\n });\n enqueueEvent('response.completed', {\n type: 'response.completed',\n response,\n });\n controller.close();\n } catch (error) {\n controller.error(error);\n } finally {\n reader.releaseLock();\n }\n },\n });\n}\n\nexport const CREATE_RESPONSE_ROUTE = createRoute({\n method: 'POST',\n path: '/v1/responses',\n responseType: 'datastream-response',\n bodySchema: createResponseBodySchema,\n responseSchema: responseObjectSchema,\n summary: 'Create a response',\n description: 'Creates a response through a Mastra-hosted Responses API-compatible route',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: 'agents:execute',\n handler: async ({ mastra, requestContext, abortSignal, ...body }) => {\n try {\n const {\n agent,\n agentMemoryStore,\n configuredTools,\n createdAt,\n didStore,\n executionInput,\n previousResponseTurnRecord,\n resolvedModel,\n responseId,\n responseModel,\n responseMetadata,\n threadContext,\n } = await prepareCreateResponseRequest({ body, mastra, requestContext });\n\n if (!body.stream) {\n const result = await executeGenerate({\n agent,\n resolvedModel,\n modelOverride: body.model,\n instructions: body.instructions,\n text: body.text,\n providerOptions: body.providerOptions,\n input: executionInput,\n requestContext,\n abortSignal,\n threadContext,\n });\n\n const { response } = await finalizeResponse({\n agentMemoryStore,\n didStore,\n threadContext,\n result,\n responseId,\n createdAt,\n model: responseModel,\n instructions: body.instructions,\n previousResponseId: previousResponseTurnRecord?.message.id ?? body.previous_response_id,\n conversationId: threadContext?.threadId ?? body.conversation_id,\n configuredTools,\n responseMetadata,\n fallbackText: '',\n });\n\n return jsonResponse(response);\n }\n\n const streamResult = await executeStream({\n agent,\n resolvedModel,\n modelOverride: body.model,\n instructions: body.instructions,\n text: body.text,\n providerOptions: body.providerOptions,\n input: executionInput,\n requestContext,\n abortSignal,\n threadContext,\n });\n\n const stream = createResponseEventStream({\n agentMemoryStore,\n body,\n configuredTools,\n createdAt,\n didStore,\n previousResponseTurnRecord,\n responseId,\n responseModel,\n responseMetadata,\n streamResult,\n threadContext,\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 } catch (error) {\n return handleError(error, 'Error creating response');\n }\n },\n});\n\nexport const GET_RESPONSE_ROUTE = createRoute({\n method: 'GET',\n path: '/v1/responses/:responseId',\n responseType: 'json',\n pathParamSchema: responseIdPathParams,\n responseSchema: responseObjectSchema,\n summary: 'Retrieve a stored response',\n description: 'Returns a previously stored response object',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: 'agents:read',\n handler: async ({ mastra, requestContext, responseId }) => {\n try {\n const responseTurnRecord = await findResponseTurnRecordAcrossAgents({ mastra, responseId, requestContext });\n if (!responseTurnRecord) {\n throw new HTTPException(404, { message: `Stored response ${responseId} was not found` });\n }\n\n return mapResponseTurnRecordToResponse(responseTurnRecord);\n } catch (error) {\n return handleError(error, 'Error retrieving response');\n }\n },\n});\n\nexport const DELETE_RESPONSE_ROUTE = createRoute({\n method: 'DELETE',\n path: '/v1/responses/:responseId',\n responseType: 'json',\n pathParamSchema: responseIdPathParams,\n responseSchema: deleteResponseSchema,\n summary: 'Delete a stored response',\n description: 'Deletes a stored response so it can no longer be retrieved or chained',\n tags: ['Responses'],\n requiresAuth: true,\n requiresPermission: 'agents:delete',\n handler: async ({ mastra, requestContext, responseId }) => {\n try {\n const responseTurnRecord = await findResponseTurnRecordAcrossAgents({ mastra, responseId, requestContext });\n if (!responseTurnRecord) {\n throw new HTTPException(404, { message: `Stored response ${responseId} was not found` });\n }\n\n await deleteResponseTurnRecord({ responseTurnRecord });\n\n const response: DeleteResponse = {\n id: responseId,\n object: 'response',\n deleted: true,\n };\n\n return response;\n } catch (error) {\n return handleError(error, 'Error deleting response');\n }\n },\n});\n"]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { responseObjectSchema, createResponseBodySchema, responseIdPathParams, deleteResponseSchema } from './chunk-
|
|
1
|
+
import { responseObjectSchema, createResponseBodySchema, responseIdPathParams, deleteResponseSchema } from './chunk-6NY3T42O.js';
|
|
2
2
|
import { mapResponseTurnRecordToResponse, mapResponseInputToExecutionMessages, mapMastraToolsToResponseTools, createMessageId, buildCompletedResponse, buildInProgressResponse, createOutputTextPart, extractTextDelta, toResponseUsage, toResponseStatus, formatSseEvent } from './chunk-AJYJ4H7P.js';
|
|
3
3
|
import { findResponseTurnRecordAcrossAgents, deleteResponseTurnRecord, findResponseTurnRecord, resolveResponseTurnMessagesForStorage, getAgentMemoryStore, persistResponseTurnRecord } from './chunk-BNI76TPM.js';
|
|
4
4
|
import { getAgentFromSystem } from './chunk-GMZFJZO4.js';
|
|
@@ -170,7 +170,8 @@ async function resolveAgentMemoryStore({
|
|
|
170
170
|
}
|
|
171
171
|
async function executeGenerate({
|
|
172
172
|
agent,
|
|
173
|
-
|
|
173
|
+
resolvedModel,
|
|
174
|
+
modelOverride,
|
|
174
175
|
instructions,
|
|
175
176
|
text,
|
|
176
177
|
providerOptions,
|
|
@@ -181,23 +182,23 @@ async function executeGenerate({
|
|
|
181
182
|
}) {
|
|
182
183
|
const executionMemory = createExecutionMemory(threadContext);
|
|
183
184
|
const structuredOutput = createStructuredOutput(text);
|
|
185
|
+
const modelOption = modelOverride ? { model: modelOverride } : {};
|
|
184
186
|
const commonOptions = {
|
|
185
187
|
instructions,
|
|
186
188
|
requestContext,
|
|
187
189
|
abortSignal,
|
|
188
|
-
|
|
190
|
+
...modelOption,
|
|
189
191
|
structuredOutput,
|
|
190
192
|
providerOptions,
|
|
191
193
|
...executionMemory ?? {}
|
|
192
194
|
};
|
|
193
|
-
const resolvedModel = await agent.getModel({ requestContext, modelConfig: model });
|
|
194
195
|
if (resolvedModel.specificationVersion === "v1") {
|
|
195
196
|
if (threadContext) {
|
|
196
197
|
return await agent.generateLegacy(input, {
|
|
197
198
|
instructions,
|
|
198
199
|
requestContext,
|
|
199
200
|
abortSignal,
|
|
200
|
-
|
|
201
|
+
...modelOption,
|
|
201
202
|
output: structuredOutput?.schema,
|
|
202
203
|
providerOptions,
|
|
203
204
|
resourceId: threadContext.resourceId,
|
|
@@ -208,7 +209,7 @@ async function executeGenerate({
|
|
|
208
209
|
instructions,
|
|
209
210
|
requestContext,
|
|
210
211
|
abortSignal,
|
|
211
|
-
|
|
212
|
+
...modelOption,
|
|
212
213
|
output: structuredOutput?.schema,
|
|
213
214
|
providerOptions
|
|
214
215
|
});
|
|
@@ -217,7 +218,8 @@ async function executeGenerate({
|
|
|
217
218
|
}
|
|
218
219
|
async function executeStream({
|
|
219
220
|
agent,
|
|
220
|
-
|
|
221
|
+
resolvedModel,
|
|
222
|
+
modelOverride,
|
|
221
223
|
instructions,
|
|
222
224
|
text,
|
|
223
225
|
providerOptions,
|
|
@@ -228,23 +230,23 @@ async function executeStream({
|
|
|
228
230
|
}) {
|
|
229
231
|
const executionMemory = createExecutionMemory(threadContext);
|
|
230
232
|
const structuredOutput = createStructuredOutput(text);
|
|
233
|
+
const modelOption = modelOverride ? { model: modelOverride } : {};
|
|
231
234
|
const commonOptions = {
|
|
232
235
|
instructions,
|
|
233
236
|
requestContext,
|
|
234
237
|
abortSignal,
|
|
235
|
-
|
|
238
|
+
...modelOption,
|
|
236
239
|
structuredOutput,
|
|
237
240
|
providerOptions,
|
|
238
241
|
...executionMemory ?? {}
|
|
239
242
|
};
|
|
240
|
-
const resolvedModel = await agent.getModel({ requestContext, modelConfig: model });
|
|
241
243
|
if (resolvedModel.specificationVersion === "v1") {
|
|
242
244
|
if (threadContext) {
|
|
243
245
|
return await agent.streamLegacy(input, {
|
|
244
246
|
instructions,
|
|
245
247
|
requestContext,
|
|
246
248
|
abortSignal,
|
|
247
|
-
|
|
249
|
+
...modelOption,
|
|
248
250
|
output: structuredOutput?.schema,
|
|
249
251
|
providerOptions,
|
|
250
252
|
resourceId: threadContext.resourceId,
|
|
@@ -255,7 +257,7 @@ async function executeStream({
|
|
|
255
257
|
instructions,
|
|
256
258
|
requestContext,
|
|
257
259
|
abortSignal,
|
|
258
|
-
|
|
260
|
+
...modelOption,
|
|
259
261
|
output: structuredOutput?.schema,
|
|
260
262
|
providerOptions
|
|
261
263
|
});
|
|
@@ -373,6 +375,22 @@ async function prepareCreateResponseRequest({
|
|
|
373
375
|
mastra,
|
|
374
376
|
agentId: body.agent_id
|
|
375
377
|
});
|
|
378
|
+
const resolvedModel = await agent.getModel({
|
|
379
|
+
requestContext,
|
|
380
|
+
modelConfig: body.model
|
|
381
|
+
});
|
|
382
|
+
const responseModel = body.model ?? (() => {
|
|
383
|
+
if (resolvedModel.provider && resolvedModel.modelId) {
|
|
384
|
+
const publicProviderId = resolvedModel.provider.includes(".") ? resolvedModel.provider.split(".")[0] : resolvedModel.provider;
|
|
385
|
+
return `${publicProviderId}/${resolvedModel.modelId}`;
|
|
386
|
+
}
|
|
387
|
+
if (resolvedModel.modelId) {
|
|
388
|
+
return resolvedModel.modelId;
|
|
389
|
+
}
|
|
390
|
+
throw new HTTPException(500, {
|
|
391
|
+
message: "Responses route could not determine the effective model for this request"
|
|
392
|
+
});
|
|
393
|
+
})();
|
|
376
394
|
const shouldStore = body.store ?? false;
|
|
377
395
|
const needsMemoryStore = shouldStore || Boolean(body.conversation_id) || Boolean(body.previous_response_id);
|
|
378
396
|
const agentMemoryStore = needsMemoryStore ? await resolveAgentMemoryStore({
|
|
@@ -410,10 +428,12 @@ async function prepareCreateResponseRequest({
|
|
|
410
428
|
didStore,
|
|
411
429
|
executionInput,
|
|
412
430
|
previousResponseTurnRecord,
|
|
431
|
+
resolvedModel,
|
|
413
432
|
responseId,
|
|
433
|
+
responseModel,
|
|
414
434
|
responseMetadata: {
|
|
415
435
|
agentId: agent.id,
|
|
416
|
-
model:
|
|
436
|
+
model: responseModel,
|
|
417
437
|
createdAt,
|
|
418
438
|
instructions: body.instructions,
|
|
419
439
|
text: body.text,
|
|
@@ -432,13 +452,14 @@ function createResponseEventStream({
|
|
|
432
452
|
didStore,
|
|
433
453
|
previousResponseTurnRecord,
|
|
434
454
|
responseId,
|
|
455
|
+
responseModel,
|
|
435
456
|
responseMetadata,
|
|
436
457
|
streamResult,
|
|
437
458
|
threadContext
|
|
438
459
|
}) {
|
|
439
460
|
const createdResponse = buildInProgressResponse({
|
|
440
461
|
responseId,
|
|
441
|
-
model:
|
|
462
|
+
model: responseModel,
|
|
442
463
|
createdAt,
|
|
443
464
|
instructions: body.instructions,
|
|
444
465
|
textConfig: body.text,
|
|
@@ -512,7 +533,7 @@ function createResponseEventStream({
|
|
|
512
533
|
result: streamResult,
|
|
513
534
|
responseId,
|
|
514
535
|
createdAt,
|
|
515
|
-
model:
|
|
536
|
+
model: responseModel,
|
|
516
537
|
instructions: body.instructions,
|
|
517
538
|
previousResponseId: previousResponseTurnRecord?.message.id ?? body.previous_response_id,
|
|
518
539
|
conversationId: threadContext?.threadId ?? body.conversation_id,
|
|
@@ -580,14 +601,17 @@ var CREATE_RESPONSE_ROUTE = createRoute({
|
|
|
580
601
|
didStore,
|
|
581
602
|
executionInput,
|
|
582
603
|
previousResponseTurnRecord,
|
|
604
|
+
resolvedModel,
|
|
583
605
|
responseId,
|
|
606
|
+
responseModel,
|
|
584
607
|
responseMetadata,
|
|
585
608
|
threadContext
|
|
586
609
|
} = await prepareCreateResponseRequest({ body, mastra, requestContext });
|
|
587
610
|
if (!body.stream) {
|
|
588
611
|
const result = await executeGenerate({
|
|
589
612
|
agent,
|
|
590
|
-
|
|
613
|
+
resolvedModel,
|
|
614
|
+
modelOverride: body.model,
|
|
591
615
|
instructions: body.instructions,
|
|
592
616
|
text: body.text,
|
|
593
617
|
providerOptions: body.providerOptions,
|
|
@@ -603,7 +627,7 @@ var CREATE_RESPONSE_ROUTE = createRoute({
|
|
|
603
627
|
result,
|
|
604
628
|
responseId,
|
|
605
629
|
createdAt,
|
|
606
|
-
model:
|
|
630
|
+
model: responseModel,
|
|
607
631
|
instructions: body.instructions,
|
|
608
632
|
previousResponseId: previousResponseTurnRecord?.message.id ?? body.previous_response_id,
|
|
609
633
|
conversationId: threadContext?.threadId ?? body.conversation_id,
|
|
@@ -615,7 +639,8 @@ var CREATE_RESPONSE_ROUTE = createRoute({
|
|
|
615
639
|
}
|
|
616
640
|
const streamResult = await executeStream({
|
|
617
641
|
agent,
|
|
618
|
-
|
|
642
|
+
resolvedModel,
|
|
643
|
+
modelOverride: body.model,
|
|
619
644
|
instructions: body.instructions,
|
|
620
645
|
text: body.text,
|
|
621
646
|
providerOptions: body.providerOptions,
|
|
@@ -632,6 +657,7 @@ var CREATE_RESPONSE_ROUTE = createRoute({
|
|
|
632
657
|
didStore,
|
|
633
658
|
previousResponseTurnRecord,
|
|
634
659
|
responseId,
|
|
660
|
+
responseModel,
|
|
635
661
|
responseMetadata,
|
|
636
662
|
streamResult,
|
|
637
663
|
threadContext
|
|
@@ -703,5 +729,5 @@ var DELETE_RESPONSE_ROUTE = createRoute({
|
|
|
703
729
|
});
|
|
704
730
|
|
|
705
731
|
export { CREATE_RESPONSE_ROUTE, DELETE_RESPONSE_ROUTE, GET_RESPONSE_ROUTE, responses_exports };
|
|
706
|
-
//# sourceMappingURL=chunk-
|
|
707
|
-
//# sourceMappingURL=chunk-
|
|
732
|
+
//# sourceMappingURL=chunk-LUSXAYXR.js.map
|
|
733
|
+
//# sourceMappingURL=chunk-LUSXAYXR.js.map
|