@mastra/server 1.29.2-alpha.0 → 1.30.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +120 -0
- package/dist/{chunk-LWK57QIA.cjs → chunk-2CFH32YO.cjs} +5 -5
- package/dist/{chunk-LWK57QIA.cjs.map → chunk-2CFH32YO.cjs.map} +1 -1
- package/dist/{chunk-BR6MQNNL.js → chunk-2HVAN7FF.js} +12 -3
- package/dist/chunk-2HVAN7FF.js.map +1 -0
- package/dist/{chunk-QDNKVREO.js → chunk-2PF5ZR2Q.js} +9 -9
- package/dist/{chunk-QDNKVREO.js.map → chunk-2PF5ZR2Q.js.map} +1 -1
- package/dist/{chunk-HYI4ZAV7.js → chunk-43CWQ4M3.js} +8 -3
- package/dist/chunk-43CWQ4M3.js.map +1 -0
- package/dist/{chunk-JJT4GBDZ.js → chunk-4BSJHDYP.js} +3 -3
- package/dist/{chunk-JJT4GBDZ.js.map → chunk-4BSJHDYP.js.map} +1 -1
- package/dist/{chunk-X2XQFFXR.js → chunk-4GOK3PCO.js} +5 -5
- package/dist/{chunk-X2XQFFXR.js.map → chunk-4GOK3PCO.js.map} +1 -1
- package/dist/{chunk-4Y5P2GYV.js → chunk-4J4K36CU.js} +3 -3
- package/dist/{chunk-4Y5P2GYV.js.map → chunk-4J4K36CU.js.map} +1 -1
- package/dist/{chunk-RQXUPTUI.js → chunk-5OOYXBPG.js} +7 -3
- package/dist/chunk-5OOYXBPG.js.map +1 -0
- package/dist/{chunk-IO7PPBD4.js → chunk-DBPJYWAH.js} +47 -86
- package/dist/chunk-DBPJYWAH.js.map +1 -0
- package/dist/{chunk-W6TZ2TNY.cjs → chunk-DZZBC6UV.cjs} +7 -7
- package/dist/{chunk-W6TZ2TNY.cjs.map → chunk-DZZBC6UV.cjs.map} +1 -1
- package/dist/{chunk-I3BHHWHT.cjs → chunk-EFW6MWXU.cjs} +4 -2
- package/dist/chunk-EFW6MWXU.cjs.map +1 -0
- package/dist/{chunk-2Z5KJJDZ.js → chunk-EPM6ILRW.js} +14 -3
- package/dist/chunk-EPM6ILRW.js.map +1 -0
- package/dist/{chunk-HWK6K3DW.cjs → chunk-EQR4MMSL.cjs} +7 -7
- package/dist/{chunk-HWK6K3DW.cjs.map → chunk-EQR4MMSL.cjs.map} +1 -1
- package/dist/{chunk-VFHNACRY.js → chunk-FN4GIXQQ.js} +5 -5
- package/dist/{chunk-VFHNACRY.js.map → chunk-FN4GIXQQ.js.map} +1 -1
- package/dist/{chunk-YO7N5VOP.js → chunk-GEXJ4LPZ.js} +3 -3
- package/dist/{chunk-YO7N5VOP.js.map → chunk-GEXJ4LPZ.js.map} +1 -1
- package/dist/{chunk-XT6GKIYW.cjs → chunk-GUWIV3ZN.cjs} +9 -2
- package/dist/chunk-GUWIV3ZN.cjs.map +1 -0
- package/dist/{chunk-PSQNWPPT.cjs → chunk-H6NJWTER.cjs} +4 -4
- package/dist/{chunk-PSQNWPPT.cjs.map → chunk-H6NJWTER.cjs.map} +1 -1
- package/dist/{chunk-B5RUOKFI.cjs → chunk-HR4M27JP.cjs} +77 -77
- package/dist/{chunk-B5RUOKFI.cjs.map → chunk-HR4M27JP.cjs.map} +1 -1
- package/dist/{chunk-VLNRGJEM.js → chunk-JZNOIGOQ.js} +3 -3
- package/dist/{chunk-VLNRGJEM.js.map → chunk-JZNOIGOQ.js.map} +1 -1
- package/dist/{chunk-VR623NIZ.cjs → chunk-KI7TGMMV.cjs} +276 -160
- package/dist/chunk-KI7TGMMV.cjs.map +1 -0
- package/dist/{chunk-P7QF3UG4.js → chunk-KJLIMNMI.js} +3 -3
- package/dist/{chunk-P7QF3UG4.js.map → chunk-KJLIMNMI.js.map} +1 -1
- package/dist/{chunk-WC4RIS4D.js → chunk-KW2MZGRE.js} +3 -3
- package/dist/{chunk-WC4RIS4D.js.map → chunk-KW2MZGRE.js.map} +1 -1
- package/dist/{chunk-IA7PNRIA.cjs → chunk-LI3EL57Z.cjs} +11 -11
- package/dist/{chunk-IA7PNRIA.cjs.map → chunk-LI3EL57Z.cjs.map} +1 -1
- package/dist/{chunk-33WVA4ZN.cjs → chunk-LKS22ETT.cjs} +19 -19
- package/dist/{chunk-33WVA4ZN.cjs.map → chunk-LKS22ETT.cjs.map} +1 -1
- package/dist/{chunk-NO3V76EI.cjs → chunk-LY6Q36YN.cjs} +17 -17
- package/dist/{chunk-NO3V76EI.cjs.map → chunk-LY6Q36YN.cjs.map} +1 -1
- package/dist/{chunk-UOWUXTUO.cjs → chunk-NGYGE7QW.cjs} +27 -27
- package/dist/{chunk-UOWUXTUO.cjs.map → chunk-NGYGE7QW.cjs.map} +1 -1
- package/dist/{chunk-JVQ5EXNJ.js → chunk-OJRAH5VV.js} +4 -3
- package/dist/chunk-OJRAH5VV.js.map +1 -0
- package/dist/{chunk-JOC7WKJ2.cjs → chunk-ONPPBXWB.cjs} +48 -48
- package/dist/{chunk-JOC7WKJ2.cjs.map → chunk-ONPPBXWB.cjs.map} +1 -1
- package/dist/{chunk-QP5DRBMC.js → chunk-QL62CV5V.js} +5 -5
- package/dist/{chunk-QP5DRBMC.js.map → chunk-QL62CV5V.js.map} +1 -1
- package/dist/{chunk-6SUTXWOK.cjs → chunk-RPMBPQNO.cjs} +12 -3
- package/dist/chunk-RPMBPQNO.cjs.map +1 -0
- package/dist/{chunk-PRK4GVU6.js → chunk-RTD3NZ4G.js} +4 -4
- package/dist/{chunk-PRK4GVU6.js.map → chunk-RTD3NZ4G.js.map} +1 -1
- package/dist/{chunk-RPOKTN4O.cjs → chunk-SEAOI56Z.cjs} +7 -7
- package/dist/{chunk-RPOKTN4O.cjs.map → chunk-SEAOI56Z.cjs.map} +1 -1
- package/dist/{chunk-K33KUMJY.js → chunk-SSMLJV2K.js} +5 -5
- package/dist/{chunk-K33KUMJY.js.map → chunk-SSMLJV2K.js.map} +1 -1
- package/dist/{chunk-DIX6JWN4.cjs → chunk-TF7NSMHW.cjs} +7 -2
- package/dist/chunk-TF7NSMHW.cjs.map +1 -0
- package/dist/{chunk-B7SBAXEP.cjs → chunk-TKHLXCSZ.cjs} +7 -7
- package/dist/{chunk-B7SBAXEP.cjs.map → chunk-TKHLXCSZ.cjs.map} +1 -1
- package/dist/{chunk-JGHGC64S.cjs → chunk-UQLJDNXU.cjs} +4 -4
- package/dist/{chunk-JGHGC64S.cjs.map → chunk-UQLJDNXU.cjs.map} +1 -1
- package/dist/{chunk-YGQNINW7.js → chunk-UZRD3SEA.js} +146 -31
- package/dist/chunk-UZRD3SEA.js.map +1 -0
- package/dist/{chunk-O76KG2FC.js → chunk-VZNOKYP5.js} +3 -3
- package/dist/{chunk-O76KG2FC.js.map → chunk-VZNOKYP5.js.map} +1 -1
- package/dist/{chunk-5BXP7S4P.cjs → chunk-XG2VRXG5.cjs} +15 -4
- package/dist/chunk-XG2VRXG5.cjs.map +1 -0
- package/dist/{chunk-R4DZSQYI.cjs → chunk-Y2SA2JZT.cjs} +138 -177
- package/dist/chunk-Y2SA2JZT.cjs.map +1 -0
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/assets/SOURCE_MAP.json +1 -1
- package/dist/{observational-memory-JX7VDONY-AOV7JL6X.js → observational-memory-ZS2HJPUO-2ZBP2HCP.js} +3 -3
- package/dist/{observational-memory-JX7VDONY-AOV7JL6X.js.map → observational-memory-ZS2HJPUO-2ZBP2HCP.js.map} +1 -1
- package/dist/{observational-memory-JX7VDONY-6J77R6HH.cjs → observational-memory-ZS2HJPUO-472SI4TK.cjs} +26 -26
- package/dist/{observational-memory-JX7VDONY-6J77R6HH.cjs.map → observational-memory-ZS2HJPUO-472SI4TK.cjs.map} +1 -1
- package/dist/server/auth/helpers.d.ts.map +1 -1
- package/dist/server/auth/index.cjs +14 -14
- package/dist/server/auth/index.js +1 -1
- package/dist/server/constants.d.ts +1 -0
- package/dist/server/constants.d.ts.map +1 -1
- package/dist/server/handlers/a2a.cjs +10 -10
- package/dist/server/handlers/a2a.js +1 -1
- package/dist/server/handlers/agent-builder.cjs +16 -16
- package/dist/server/handlers/agent-builder.js +1 -1
- package/dist/server/handlers/agents.cjs +41 -37
- package/dist/server/handlers/agents.d.ts +14 -2
- package/dist/server/handlers/agents.d.ts.map +1 -1
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/auth.cjs +11 -11
- package/dist/server/handlers/auth.js +1 -1
- package/dist/server/handlers/conversations.cjs +5 -5
- package/dist/server/handlers/conversations.js +1 -1
- package/dist/server/handlers/logs.cjs +4 -4
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/memory.cjs +27 -27
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/responses.cjs +4 -4
- package/dist/server/handlers/responses.js +1 -1
- package/dist/server/handlers/responses.storage.cjs +8 -8
- package/dist/server/handlers/responses.storage.js +1 -1
- package/dist/server/handlers/scores.cjs +7 -7
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/utils.cjs +9 -9
- package/dist/server/handlers/utils.js +1 -1
- package/dist/server/handlers/voice.cjs +8 -8
- package/dist/server/handlers/voice.js +1 -1
- package/dist/server/handlers/workflows.cjs +24 -24
- package/dist/server/handlers/workflows.d.ts +2 -0
- package/dist/server/handlers/workflows.d.ts.map +1 -1
- package/dist/server/handlers/workflows.js +1 -1
- package/dist/server/handlers.cjs +22 -22
- package/dist/server/handlers.js +11 -11
- package/dist/server/schemas/agents.d.ts +12 -0
- package/dist/server/schemas/agents.d.ts.map +1 -1
- package/dist/server/schemas/index.cjs +69 -61
- package/dist/server/schemas/index.js +3 -3
- package/dist/server/schemas/workflows.d.ts +8 -0
- package/dist/server/schemas/workflows.d.ts.map +1 -1
- package/dist/server/server-adapter/index.cjs +136 -131
- package/dist/server/server-adapter/index.cjs.map +1 -1
- package/dist/server/server-adapter/index.d.ts.map +1 -1
- package/dist/server/server-adapter/index.js +19 -14
- package/dist/server/server-adapter/index.js.map +1 -1
- package/dist/server/server-adapter/routes/agents.d.ts.map +1 -1
- package/dist/server/server-adapter/routes/workflows.d.ts +2 -0
- package/dist/server/server-adapter/routes/workflows.d.ts.map +1 -1
- package/package.json +5 -5
- package/dist/chunk-2Z5KJJDZ.js.map +0 -1
- package/dist/chunk-5BXP7S4P.cjs.map +0 -1
- package/dist/chunk-6SUTXWOK.cjs.map +0 -1
- package/dist/chunk-BR6MQNNL.js.map +0 -1
- package/dist/chunk-DIX6JWN4.cjs.map +0 -1
- package/dist/chunk-HYI4ZAV7.js.map +0 -1
- package/dist/chunk-I3BHHWHT.cjs.map +0 -1
- package/dist/chunk-IO7PPBD4.js.map +0 -1
- package/dist/chunk-JVQ5EXNJ.js.map +0 -1
- package/dist/chunk-R4DZSQYI.cjs.map +0 -1
- package/dist/chunk-RQXUPTUI.js.map +0 -1
- package/dist/chunk-VR623NIZ.cjs.map +0 -1
- package/dist/chunk-XT6GKIYW.cjs.map +0 -1
- package/dist/chunk-YGQNINW7.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/responses.storage.ts"],"names":["getEffectiveResourceId","validateThreadOwnership","HTTPException"],"mappings":"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","file":"chunk-B7SBAXEP.cjs","sourcesContent":["import type { Agent, MastraDBMessage } from '@mastra/core/agent';\nimport type { Mastra } from '@mastra/core/mastra';\nimport type { StorageThreadType } from '@mastra/core/memory';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type { MemoryStorage } from '@mastra/core/storage';\nimport { HTTPException } from '../http-exception';\nimport type { ResponseObject, ResponseTextConfig, ResponseTool, ResponseUsage } from '../schemas/responses';\nimport { getEffectiveResourceId, validateThreadOwnership } from './utils';\n\nexport type ThreadExecutionContext = {\n threadId: string;\n resourceId: string;\n};\n\nexport type UsageLike = {\n inputTokens?: number;\n outputTokens?: number;\n totalTokens?: number;\n promptTokens?: number;\n completionTokens?: number;\n} | null;\n\nexport type ProviderMetadataLike = Record<string, Record<string, unknown> | undefined> | undefined;\n\nexport type ResponseTurnRecordMetadata = {\n agentId: string;\n model: string;\n createdAt: number;\n completedAt: number | null;\n status: ResponseObject['status'];\n usage: ResponseUsage | null;\n instructions?: string;\n text?: ResponseTextConfig;\n previousResponseId?: string;\n providerOptions?: ProviderMetadataLike;\n tools: ResponseTool[];\n store: boolean;\n messageIds: string[];\n};\n\nexport type ResponseTurnRecord = {\n metadata: ResponseTurnRecordMetadata;\n message: MastraDBMessage;\n messages: MastraDBMessage[];\n thread: StorageThreadType;\n memoryStore: MemoryStorage;\n};\n\ntype ResponseResultLike = {\n response?:\n | Promise<{\n dbMessages?: MastraDBMessage[];\n }>\n | {\n dbMessages?: MastraDBMessage[];\n };\n};\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * Resolves the backing memory store for a specific agent.\n *\n * This follows the normal agent-memory path. `agent.getMemory()` injects Mastra\n * root storage when the memory has no own storage, so this naturally prefers\n * agent storage first and falls back to Mastra storage through the same codepath.\n */\nexport async function getAgentMemoryStore({\n agent,\n requestContext,\n}: {\n agent: Agent<any, any, any, any>;\n requestContext: RequestContext;\n}): Promise<MemoryStorage | null> {\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n return null;\n }\n\n try {\n return (await memory.storage.getStore('memory')) ?? null;\n } catch {\n return null;\n }\n}\n\n/**\n * Reads the response-turn record metadata attached to a stored assistant message.\n */\nfunction readResponseTurnRecordMetadata(message: MastraDBMessage): ResponseTurnRecordMetadata | null {\n const mastraMetadata = isPlainObject(message.content?.metadata?.mastra) ? message.content.metadata.mastra : null;\n const responseMetadata = mastraMetadata && isPlainObject(mastraMetadata.response) ? mastraMetadata.response : null;\n\n if (\n !responseMetadata ||\n typeof responseMetadata.agentId !== 'string' ||\n typeof responseMetadata.model !== 'string' ||\n typeof responseMetadata.createdAt !== 'number' ||\n (responseMetadata.completedAt !== null && typeof responseMetadata.completedAt !== 'number') ||\n (responseMetadata.instructions !== undefined && typeof responseMetadata.instructions !== 'string') ||\n (responseMetadata.text !== undefined &&\n (!isPlainObject(responseMetadata.text) || !isPlainObject(responseMetadata.text.format))) ||\n (responseMetadata.previousResponseId !== undefined && typeof responseMetadata.previousResponseId !== 'string') ||\n !Array.isArray(responseMetadata.tools) ||\n typeof responseMetadata.store !== 'boolean' ||\n !Array.isArray(responseMetadata.messageIds)\n ) {\n return null;\n }\n\n return {\n agentId: responseMetadata.agentId,\n model: responseMetadata.model,\n createdAt: responseMetadata.createdAt,\n completedAt: responseMetadata.completedAt,\n status: responseMetadata.status === 'completed' ? 'completed' : 'incomplete',\n usage: responseMetadata.usage as ResponseUsage | null,\n instructions: responseMetadata.instructions,\n text: responseMetadata.text as ResponseTextConfig | undefined,\n previousResponseId: responseMetadata.previousResponseId,\n providerOptions: responseMetadata.providerOptions as ProviderMetadataLike,\n tools: responseMetadata.tools as ResponseTool[],\n store: responseMetadata.store,\n messageIds: responseMetadata.messageIds.filter((value): value is string => typeof value === 'string'),\n };\n}\n\n/**\n * Writes response-turn record metadata onto a persisted assistant message.\n */\nfunction writeResponseTurnRecordMetadata(\n message: MastraDBMessage,\n metadata: ResponseTurnRecordMetadata,\n): MastraDBMessage {\n const contentMetadata = isPlainObject(message.content?.metadata) ? message.content.metadata : {};\n const mastraMetadata = isPlainObject(contentMetadata.mastra) ? contentMetadata.mastra : {};\n\n return {\n ...message,\n content: {\n ...message.content,\n metadata: {\n ...contentMetadata,\n mastra: {\n ...mastraMetadata,\n response: metadata,\n },\n },\n },\n };\n}\n\n/**\n * Looks up a stored response-turn record by response id.\n *\n * Response ids are assistant message ids, so this reconstructs the record by\n * loading that persisted assistant message, reading its response metadata, then\n * reloading the full set of stored turn messages referenced by the metadata.\n */\nexport async function findResponseTurnRecord({\n agent,\n responseId,\n requestContext,\n}: {\n agent: Agent<any, any, any, any>;\n responseId: string;\n requestContext: RequestContext;\n}): Promise<ResponseTurnRecord | null> {\n const memoryStore = await getAgentMemoryStore({ agent, requestContext });\n if (!memoryStore) {\n return null;\n }\n\n const effectiveResourceId = getEffectiveResourceId(requestContext, undefined);\n const { messages: matchedMessages } = await memoryStore.listMessagesById({ messageIds: [responseId] });\n const message = matchedMessages[0];\n if (!message || message.role !== 'assistant') {\n return null;\n }\n\n const metadata = readResponseTurnRecordMetadata(message);\n if (!metadata || metadata.agentId !== agent.id) {\n return null;\n }\n\n const thread = message.threadId ? await memoryStore.getThreadById({ threadId: message.threadId }) : null;\n if (!thread) {\n return null;\n }\n\n await validateThreadOwnership(thread, effectiveResourceId);\n const messageIds = metadata.messageIds.length > 0 ? metadata.messageIds : [message.id];\n const { messages: responseMessages } = await memoryStore.listMessagesById({ messageIds });\n const messagesById = new Map(responseMessages.map(storedMessage => [storedMessage.id, storedMessage] as const));\n const orderedMessages = messageIds\n .map(messageId => messagesById.get(messageId))\n .filter((storedMessage): storedMessage is MastraDBMessage => Boolean(storedMessage));\n\n return { metadata, message, messages: orderedMessages, thread, memoryStore };\n}\n\nexport async function findResponseTurnRecordAcrossAgents({\n mastra,\n responseId,\n requestContext,\n}: {\n mastra: Mastra | undefined;\n responseId: string;\n requestContext: RequestContext;\n}): Promise<ResponseTurnRecord | null> {\n if (!mastra) {\n return null;\n }\n\n const agents = Object.values(mastra.listAgents()) as Agent<any, any, any, any>[];\n for (const agent of agents) {\n const match = await findResponseTurnRecord({ agent, responseId, requestContext });\n if (match) {\n return match;\n }\n }\n\n return null;\n}\n\nexport type ConversationThreadRecord = {\n thread: StorageThreadType;\n memoryStore: MemoryStorage;\n};\n\nexport async function findConversationThreadAcrossAgents({\n mastra,\n conversationId,\n requestContext,\n}: {\n mastra: Mastra | undefined;\n conversationId: string;\n requestContext: RequestContext;\n}): Promise<ConversationThreadRecord | null> {\n if (!mastra) {\n return null;\n }\n\n const effectiveResourceId = getEffectiveResourceId(requestContext, undefined);\n const agents = Object.values(mastra.listAgents()) as Agent<any, any, any, any>[];\n\n for (const agent of agents) {\n const memoryStore = await getAgentMemoryStore({ agent, requestContext });\n if (!memoryStore) {\n continue;\n }\n\n const thread = await memoryStore.getThreadById({ threadId: conversationId });\n if (!thread) {\n continue;\n }\n\n await validateThreadOwnership(thread, effectiveResourceId);\n return { thread, memoryStore };\n }\n\n return null;\n}\n\n/**\n * Creates a synthetic assistant message for responses that did not emit any\n * persisted DB messages but still need a durable response-turn record.\n */\nfunction createSyntheticResponseMessage({\n responseId,\n text,\n threadContext,\n}: {\n responseId: string;\n text: string;\n threadContext: ThreadExecutionContext;\n}): MastraDBMessage {\n return {\n id: responseId,\n role: 'assistant',\n type: 'text',\n createdAt: new Date(),\n threadId: threadContext.threadId,\n resourceId: threadContext.resourceId,\n content: {\n format: 2 as const,\n parts: text ? [{ type: 'text', text }] : [],\n },\n };\n}\n\n/**\n * Resolves the Mastra messages that belong to the response turn being stored.\n */\nexport async function resolveResponseTurnMessagesForStorage({\n result,\n responseId,\n text,\n threadContext,\n}: {\n result: ResponseResultLike;\n responseId: string;\n text: string;\n threadContext: ThreadExecutionContext | null;\n}): Promise<MastraDBMessage[]> {\n const response = await result.response;\n const responseMessages = response?.dbMessages?.length ? response.dbMessages : [];\n\n if (!threadContext) {\n return responseMessages;\n }\n\n if (responseMessages.length === 0) {\n return [createSyntheticResponseMessage({ responseId, text, threadContext })];\n }\n\n return responseMessages;\n}\n\n/**\n * Persists a response-turn record by anchoring it on the final assistant\n * message in the stored turn.\n *\n * The response id becomes that assistant message id, and the response-specific\n * metadata is written onto the assistant message so later retrieval can rebuild\n * the Responses object from thread-backed storage.\n */\nexport async function persistResponseTurnRecord({\n memoryStore,\n responseId,\n metadata,\n threadContext,\n messages,\n}: {\n memoryStore: MemoryStorage | null;\n responseId: string;\n metadata: ResponseTurnRecordMetadata;\n threadContext: ThreadExecutionContext;\n messages: MastraDBMessage[];\n}): Promise<void> {\n if (!memoryStore) {\n throw new HTTPException(500, { message: 'Memory storage was not available while storing the response' });\n }\n\n const normalizedMessages: MastraDBMessage[] = messages.map(message => ({\n ...message,\n threadId: message.threadId ?? threadContext.threadId,\n resourceId: message.resourceId ?? threadContext.resourceId,\n }));\n\n const lastAssistantIndex = [...normalizedMessages].map(message => message.role).lastIndexOf('assistant');\n const lastAssistantMessage =\n lastAssistantIndex >= 0\n ? {\n ...normalizedMessages[lastAssistantIndex]!,\n id: responseId,\n }\n : ({\n id: responseId,\n role: 'assistant' as const,\n type: 'text' as const,\n createdAt: new Date(metadata.completedAt ? metadata.completedAt * 1000 : Date.now()),\n threadId: threadContext.threadId,\n resourceId: threadContext.resourceId,\n content: {\n format: 2 as const,\n parts: [],\n },\n } satisfies MastraDBMessage);\n\n if (lastAssistantIndex >= 0) {\n normalizedMessages[lastAssistantIndex] = lastAssistantMessage;\n } else {\n normalizedMessages.push(lastAssistantMessage);\n }\n\n const staleMessageIds =\n lastAssistantIndex >= 0 && messages[lastAssistantIndex]?.id && messages[lastAssistantIndex]?.id !== responseId\n ? [messages[lastAssistantIndex]!.id]\n : [];\n\n const storedMessage = writeResponseTurnRecordMetadata(lastAssistantMessage, {\n ...metadata,\n messageIds: normalizedMessages.map(message => message.id),\n });\n\n if (lastAssistantIndex >= 0) {\n normalizedMessages[lastAssistantIndex] = storedMessage;\n } else {\n normalizedMessages[normalizedMessages.length - 1] = storedMessage;\n }\n\n await memoryStore.saveMessages({ messages: normalizedMessages });\n\n if (staleMessageIds.length > 0) {\n await memoryStore.deleteMessages(staleMessageIds);\n }\n}\n\n/**\n * Removes all persisted messages for a stored response-turn record.\n */\nexport async function deleteResponseTurnRecord({\n responseTurnRecord,\n}: {\n responseTurnRecord: ResponseTurnRecord;\n}): Promise<void> {\n const messageIds =\n responseTurnRecord.messages.length > 0\n ? responseTurnRecord.messages.map(message => message.id)\n : [responseTurnRecord.message.id];\n\n await responseTurnRecord.memoryStore.deleteMessages(messageIds);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/responses.storage.ts"],"names":["getEffectiveResourceId","validateThreadOwnership","HTTPException"],"mappings":"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","file":"chunk-TKHLXCSZ.cjs","sourcesContent":["import type { Agent, MastraDBMessage } from '@mastra/core/agent';\nimport type { Mastra } from '@mastra/core/mastra';\nimport type { StorageThreadType } from '@mastra/core/memory';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type { MemoryStorage } from '@mastra/core/storage';\nimport { HTTPException } from '../http-exception';\nimport type { ResponseObject, ResponseTextConfig, ResponseTool, ResponseUsage } from '../schemas/responses';\nimport { getEffectiveResourceId, validateThreadOwnership } from './utils';\n\nexport type ThreadExecutionContext = {\n threadId: string;\n resourceId: string;\n};\n\nexport type UsageLike = {\n inputTokens?: number;\n outputTokens?: number;\n totalTokens?: number;\n promptTokens?: number;\n completionTokens?: number;\n} | null;\n\nexport type ProviderMetadataLike = Record<string, Record<string, unknown> | undefined> | undefined;\n\nexport type ResponseTurnRecordMetadata = {\n agentId: string;\n model: string;\n createdAt: number;\n completedAt: number | null;\n status: ResponseObject['status'];\n usage: ResponseUsage | null;\n instructions?: string;\n text?: ResponseTextConfig;\n previousResponseId?: string;\n providerOptions?: ProviderMetadataLike;\n tools: ResponseTool[];\n store: boolean;\n messageIds: string[];\n};\n\nexport type ResponseTurnRecord = {\n metadata: ResponseTurnRecordMetadata;\n message: MastraDBMessage;\n messages: MastraDBMessage[];\n thread: StorageThreadType;\n memoryStore: MemoryStorage;\n};\n\ntype ResponseResultLike = {\n response?:\n | Promise<{\n dbMessages?: MastraDBMessage[];\n }>\n | {\n dbMessages?: MastraDBMessage[];\n };\n};\n\nfunction isPlainObject(value: unknown): value is Record<string, unknown> {\n return typeof value === 'object' && value !== null && !Array.isArray(value);\n}\n\n/**\n * Resolves the backing memory store for a specific agent.\n *\n * This follows the normal agent-memory path. `agent.getMemory()` injects Mastra\n * root storage when the memory has no own storage, so this naturally prefers\n * agent storage first and falls back to Mastra storage through the same codepath.\n */\nexport async function getAgentMemoryStore({\n agent,\n requestContext,\n}: {\n agent: Agent<any, any, any, any>;\n requestContext: RequestContext;\n}): Promise<MemoryStorage | null> {\n const memory = await agent.getMemory({ requestContext });\n if (!memory) {\n return null;\n }\n\n try {\n return (await memory.storage.getStore('memory')) ?? null;\n } catch {\n return null;\n }\n}\n\n/**\n * Reads the response-turn record metadata attached to a stored assistant message.\n */\nfunction readResponseTurnRecordMetadata(message: MastraDBMessage): ResponseTurnRecordMetadata | null {\n const mastraMetadata = isPlainObject(message.content?.metadata?.mastra) ? message.content.metadata.mastra : null;\n const responseMetadata = mastraMetadata && isPlainObject(mastraMetadata.response) ? mastraMetadata.response : null;\n\n if (\n !responseMetadata ||\n typeof responseMetadata.agentId !== 'string' ||\n typeof responseMetadata.model !== 'string' ||\n typeof responseMetadata.createdAt !== 'number' ||\n (responseMetadata.completedAt !== null && typeof responseMetadata.completedAt !== 'number') ||\n (responseMetadata.instructions !== undefined && typeof responseMetadata.instructions !== 'string') ||\n (responseMetadata.text !== undefined &&\n (!isPlainObject(responseMetadata.text) || !isPlainObject(responseMetadata.text.format))) ||\n (responseMetadata.previousResponseId !== undefined && typeof responseMetadata.previousResponseId !== 'string') ||\n !Array.isArray(responseMetadata.tools) ||\n typeof responseMetadata.store !== 'boolean' ||\n !Array.isArray(responseMetadata.messageIds)\n ) {\n return null;\n }\n\n return {\n agentId: responseMetadata.agentId,\n model: responseMetadata.model,\n createdAt: responseMetadata.createdAt,\n completedAt: responseMetadata.completedAt,\n status: responseMetadata.status === 'completed' ? 'completed' : 'incomplete',\n usage: responseMetadata.usage as ResponseUsage | null,\n instructions: responseMetadata.instructions,\n text: responseMetadata.text as ResponseTextConfig | undefined,\n previousResponseId: responseMetadata.previousResponseId,\n providerOptions: responseMetadata.providerOptions as ProviderMetadataLike,\n tools: responseMetadata.tools as ResponseTool[],\n store: responseMetadata.store,\n messageIds: responseMetadata.messageIds.filter((value): value is string => typeof value === 'string'),\n };\n}\n\n/**\n * Writes response-turn record metadata onto a persisted assistant message.\n */\nfunction writeResponseTurnRecordMetadata(\n message: MastraDBMessage,\n metadata: ResponseTurnRecordMetadata,\n): MastraDBMessage {\n const contentMetadata = isPlainObject(message.content?.metadata) ? message.content.metadata : {};\n const mastraMetadata = isPlainObject(contentMetadata.mastra) ? contentMetadata.mastra : {};\n\n return {\n ...message,\n content: {\n ...message.content,\n metadata: {\n ...contentMetadata,\n mastra: {\n ...mastraMetadata,\n response: metadata,\n },\n },\n },\n };\n}\n\n/**\n * Looks up a stored response-turn record by response id.\n *\n * Response ids are assistant message ids, so this reconstructs the record by\n * loading that persisted assistant message, reading its response metadata, then\n * reloading the full set of stored turn messages referenced by the metadata.\n */\nexport async function findResponseTurnRecord({\n agent,\n responseId,\n requestContext,\n}: {\n agent: Agent<any, any, any, any>;\n responseId: string;\n requestContext: RequestContext;\n}): Promise<ResponseTurnRecord | null> {\n const memoryStore = await getAgentMemoryStore({ agent, requestContext });\n if (!memoryStore) {\n return null;\n }\n\n const effectiveResourceId = getEffectiveResourceId(requestContext, undefined);\n const { messages: matchedMessages } = await memoryStore.listMessagesById({ messageIds: [responseId] });\n const message = matchedMessages[0];\n if (!message || message.role !== 'assistant') {\n return null;\n }\n\n const metadata = readResponseTurnRecordMetadata(message);\n if (!metadata || metadata.agentId !== agent.id) {\n return null;\n }\n\n const thread = message.threadId ? await memoryStore.getThreadById({ threadId: message.threadId }) : null;\n if (!thread) {\n return null;\n }\n\n await validateThreadOwnership(thread, effectiveResourceId);\n const messageIds = metadata.messageIds.length > 0 ? metadata.messageIds : [message.id];\n const { messages: responseMessages } = await memoryStore.listMessagesById({ messageIds });\n const messagesById = new Map(responseMessages.map(storedMessage => [storedMessage.id, storedMessage] as const));\n const orderedMessages = messageIds\n .map(messageId => messagesById.get(messageId))\n .filter((storedMessage): storedMessage is MastraDBMessage => Boolean(storedMessage));\n\n return { metadata, message, messages: orderedMessages, thread, memoryStore };\n}\n\nexport async function findResponseTurnRecordAcrossAgents({\n mastra,\n responseId,\n requestContext,\n}: {\n mastra: Mastra | undefined;\n responseId: string;\n requestContext: RequestContext;\n}): Promise<ResponseTurnRecord | null> {\n if (!mastra) {\n return null;\n }\n\n const agents = Object.values(mastra.listAgents()) as Agent<any, any, any, any>[];\n for (const agent of agents) {\n const match = await findResponseTurnRecord({ agent, responseId, requestContext });\n if (match) {\n return match;\n }\n }\n\n return null;\n}\n\nexport type ConversationThreadRecord = {\n thread: StorageThreadType;\n memoryStore: MemoryStorage;\n};\n\nexport async function findConversationThreadAcrossAgents({\n mastra,\n conversationId,\n requestContext,\n}: {\n mastra: Mastra | undefined;\n conversationId: string;\n requestContext: RequestContext;\n}): Promise<ConversationThreadRecord | null> {\n if (!mastra) {\n return null;\n }\n\n const effectiveResourceId = getEffectiveResourceId(requestContext, undefined);\n const agents = Object.values(mastra.listAgents()) as Agent<any, any, any, any>[];\n\n for (const agent of agents) {\n const memoryStore = await getAgentMemoryStore({ agent, requestContext });\n if (!memoryStore) {\n continue;\n }\n\n const thread = await memoryStore.getThreadById({ threadId: conversationId });\n if (!thread) {\n continue;\n }\n\n await validateThreadOwnership(thread, effectiveResourceId);\n return { thread, memoryStore };\n }\n\n return null;\n}\n\n/**\n * Creates a synthetic assistant message for responses that did not emit any\n * persisted DB messages but still need a durable response-turn record.\n */\nfunction createSyntheticResponseMessage({\n responseId,\n text,\n threadContext,\n}: {\n responseId: string;\n text: string;\n threadContext: ThreadExecutionContext;\n}): MastraDBMessage {\n return {\n id: responseId,\n role: 'assistant',\n type: 'text',\n createdAt: new Date(),\n threadId: threadContext.threadId,\n resourceId: threadContext.resourceId,\n content: {\n format: 2 as const,\n parts: text ? [{ type: 'text', text }] : [],\n },\n };\n}\n\n/**\n * Resolves the Mastra messages that belong to the response turn being stored.\n */\nexport async function resolveResponseTurnMessagesForStorage({\n result,\n responseId,\n text,\n threadContext,\n}: {\n result: ResponseResultLike;\n responseId: string;\n text: string;\n threadContext: ThreadExecutionContext | null;\n}): Promise<MastraDBMessage[]> {\n const response = await result.response;\n const responseMessages = response?.dbMessages?.length ? response.dbMessages : [];\n\n if (!threadContext) {\n return responseMessages;\n }\n\n if (responseMessages.length === 0) {\n return [createSyntheticResponseMessage({ responseId, text, threadContext })];\n }\n\n return responseMessages;\n}\n\n/**\n * Persists a response-turn record by anchoring it on the final assistant\n * message in the stored turn.\n *\n * The response id becomes that assistant message id, and the response-specific\n * metadata is written onto the assistant message so later retrieval can rebuild\n * the Responses object from thread-backed storage.\n */\nexport async function persistResponseTurnRecord({\n memoryStore,\n responseId,\n metadata,\n threadContext,\n messages,\n}: {\n memoryStore: MemoryStorage | null;\n responseId: string;\n metadata: ResponseTurnRecordMetadata;\n threadContext: ThreadExecutionContext;\n messages: MastraDBMessage[];\n}): Promise<void> {\n if (!memoryStore) {\n throw new HTTPException(500, { message: 'Memory storage was not available while storing the response' });\n }\n\n const normalizedMessages: MastraDBMessage[] = messages.map(message => ({\n ...message,\n threadId: message.threadId ?? threadContext.threadId,\n resourceId: message.resourceId ?? threadContext.resourceId,\n }));\n\n const lastAssistantIndex = [...normalizedMessages].map(message => message.role).lastIndexOf('assistant');\n const lastAssistantMessage =\n lastAssistantIndex >= 0\n ? {\n ...normalizedMessages[lastAssistantIndex]!,\n id: responseId,\n }\n : ({\n id: responseId,\n role: 'assistant' as const,\n type: 'text' as const,\n createdAt: new Date(metadata.completedAt ? metadata.completedAt * 1000 : Date.now()),\n threadId: threadContext.threadId,\n resourceId: threadContext.resourceId,\n content: {\n format: 2 as const,\n parts: [],\n },\n } satisfies MastraDBMessage);\n\n if (lastAssistantIndex >= 0) {\n normalizedMessages[lastAssistantIndex] = lastAssistantMessage;\n } else {\n normalizedMessages.push(lastAssistantMessage);\n }\n\n const staleMessageIds =\n lastAssistantIndex >= 0 && messages[lastAssistantIndex]?.id && messages[lastAssistantIndex]?.id !== responseId\n ? [messages[lastAssistantIndex]!.id]\n : [];\n\n const storedMessage = writeResponseTurnRecordMetadata(lastAssistantMessage, {\n ...metadata,\n messageIds: normalizedMessages.map(message => message.id),\n });\n\n if (lastAssistantIndex >= 0) {\n normalizedMessages[lastAssistantIndex] = storedMessage;\n } else {\n normalizedMessages[normalizedMessages.length - 1] = storedMessage;\n }\n\n await memoryStore.saveMessages({ messages: normalizedMessages });\n\n if (staleMessageIds.length > 0) {\n await memoryStore.deleteMessages(staleMessageIds);\n }\n}\n\n/**\n * Removes all persisted messages for a stored response-turn record.\n */\nexport async function deleteResponseTurnRecord({\n responseTurnRecord,\n}: {\n responseTurnRecord: ResponseTurnRecord;\n}): Promise<void> {\n const messageIds =\n responseTurnRecord.messages.length > 0\n ? responseTurnRecord.messages.map(message => message.id)\n : [responseTurnRecord.message.id];\n\n await responseTurnRecord.memoryStore.deleteMessages(messageIds);\n}\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkDCDQNIYY_cjs = require('./chunk-DCDQNIYY.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkKI7TGMMV_cjs = require('./chunk-KI7TGMMV.cjs');
|
|
5
5
|
var chunkDIG2K5CV_cjs = require('./chunk-DIG2K5CV.cjs');
|
|
6
6
|
var chunk5UKYK7YK_cjs = require('./chunk-5UKYK7YK.cjs');
|
|
7
7
|
var chunkB34S64RC_cjs = require('./chunk-B34S64RC.cjs');
|
|
@@ -247,7 +247,7 @@ var LIST_SCORES_BY_ENTITY_ID_ROUTE = chunk5UKYK7YK_cjs.createRoute({
|
|
|
247
247
|
const { page, perPage } = params;
|
|
248
248
|
let entityIdToUse = entityId;
|
|
249
249
|
if (entityType === "AGENT") {
|
|
250
|
-
const agent = await
|
|
250
|
+
const agent = await chunkKI7TGMMV_cjs.getAgentFromSystem({ mastra, agentId: entityId });
|
|
251
251
|
entityIdToUse = agent.id;
|
|
252
252
|
} else if (entityType === "WORKFLOW") {
|
|
253
253
|
const workflow = mastra.getWorkflowById(entityId);
|
|
@@ -304,5 +304,5 @@ exports.LIST_SCORES_BY_RUN_ID_ROUTE = LIST_SCORES_BY_RUN_ID_ROUTE;
|
|
|
304
304
|
exports.LIST_SCORES_BY_SCORER_ID_ROUTE = LIST_SCORES_BY_SCORER_ID_ROUTE;
|
|
305
305
|
exports.SAVE_SCORE_ROUTE = SAVE_SCORE_ROUTE;
|
|
306
306
|
exports.scores_exports = scores_exports;
|
|
307
|
-
//# sourceMappingURL=chunk-
|
|
308
|
-
//# sourceMappingURL=chunk-
|
|
307
|
+
//# sourceMappingURL=chunk-UQLJDNXU.cjs.map
|
|
308
|
+
//# sourceMappingURL=chunk-UQLJDNXU.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/scores.ts"],"names":["__export","createRoute","listScorersResponseSchema","scorerIdPathParams","scorerEntrySchema","runIdSchema","listScoresByRunIdQuerySchema","scoresWithPaginationResponseSchema","handleError","listScoresByScorerIdQuerySchema","entityPathParams","listScoresByEntityIdQuerySchema","getAgentFromSystem","saveScoreBodySchema","saveScoreResponseSchema","HTTPException"],"mappings":"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","file":"chunk-JGHGC64S.cjs","sourcesContent":["import type { MastraScorerEntry, ScoreRowData } from '@mastra/core/evals';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type { StoragePagination } from '@mastra/core/storage';\nimport { HTTPException } from '../http-exception';\nimport { runIdSchema } from '../schemas/common';\nimport {\n listScorersResponseSchema,\n scorerEntrySchema,\n scorerIdPathParams,\n entityPathParams,\n listScoresByRunIdQuerySchema,\n listScoresByScorerIdQuerySchema,\n listScoresByEntityIdQuerySchema,\n saveScoreBodySchema,\n scoresWithPaginationResponseSchema,\n saveScoreResponseSchema,\n} from '../schemas/scores';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport type { Context } from '../types';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\n\nasync function listScorersFromSystem({\n mastra,\n requestContext,\n}: Context & {\n requestContext: RequestContext;\n}) {\n const agents = mastra.listAgents();\n const workflows = mastra.listWorkflows();\n\n const scorersMap = new Map<\n string,\n MastraScorerEntry & {\n agentIds: string[];\n agentNames: string[];\n workflowIds: string[];\n isRegistered: boolean;\n source: 'code' | 'stored';\n }\n >();\n\n // Helper function to process an agent's scorers\n const processAgentScorers = async (agent: {\n id: string;\n name: string;\n listScorers: (typeof agents)[string]['listScorers'];\n }) => {\n const scorers =\n (await agent.listScorers({\n requestContext,\n })) || {};\n\n if (Object.keys(scorers).length > 0) {\n for (const [_scorerId, scorer] of Object.entries(scorers)) {\n const scorerId = scorer.scorer.id;\n if (scorersMap.has(scorerId)) {\n scorersMap.get(scorerId)?.agentIds.push(agent.id);\n scorersMap.get(scorerId)?.agentNames.push(agent.name);\n } else {\n scorersMap.set(scorerId, {\n workflowIds: [],\n ...scorer,\n agentNames: [agent.name],\n agentIds: [agent.id],\n isRegistered: false,\n source: scorer.scorer.source ?? 'code',\n });\n }\n }\n }\n };\n\n // Process code-defined agents\n for (const [_, agent] of Object.entries(agents)) {\n await processAgentScorers(agent);\n }\n\n // Process stored agents (database-backed agents)\n try {\n const editor = mastra.getEditor();\n const storedAgentsResult = await editor?.agent.list();\n if (storedAgentsResult?.agents) {\n for (const storedAgentConfig of storedAgentsResult.agents) {\n try {\n const agent = await editor?.agent.getById(storedAgentConfig.id);\n if (agent) {\n await processAgentScorers(agent);\n }\n } catch {\n // Skip individual agents that fail to hydrate\n }\n }\n }\n } catch {\n // Silently ignore if storage is not configured - not all setups have storage\n }\n\n // Process stored scorers (standalone CMS-created scorers)\n try {\n const editor = mastra.getEditor();\n const storedScorersResult = await editor?.scorer.list();\n if (storedScorersResult?.scorerDefinitions) {\n for (const storedScorerConfig of storedScorersResult.scorerDefinitions) {\n try {\n await editor?.scorer.getById(storedScorerConfig.id);\n } catch {\n // Skip individual scorers that fail to hydrate\n }\n }\n }\n } catch {\n // Silently ignore if storage is not configured\n }\n\n for (const [workflowId, workflow] of Object.entries(workflows)) {\n const scorers =\n (await workflow.listScorers({\n requestContext,\n })) || {};\n\n if (Object.keys(scorers).length > 0) {\n for (const [_scorerId, scorer] of Object.entries(scorers)) {\n const scorerName = scorer.scorer.name;\n if (scorersMap.has(scorerName)) {\n scorersMap.get(scorerName)?.workflowIds.push(workflowId);\n } else {\n scorersMap.set(scorerName, {\n agentIds: [],\n agentNames: [],\n ...scorer,\n workflowIds: [workflowId],\n isRegistered: false,\n source: scorer.scorer.source ?? 'code',\n });\n }\n }\n }\n }\n\n const registeredScorers = await mastra.listScorers();\n for (const [_scorerId, scorer] of Object.entries(registeredScorers || {})) {\n const scorerId = scorer.id;\n if (scorersMap.has(scorerId)) {\n scorersMap.get(scorerId)!.isRegistered = true;\n } else {\n scorersMap.set(scorerId, {\n scorer: scorer,\n agentIds: [],\n agentNames: [],\n workflowIds: [],\n isRegistered: true,\n source: scorer.source ?? 'code',\n });\n }\n }\n\n return Object.fromEntries(scorersMap.entries());\n}\n\n// Legacy function to get trace and span details\nfunction getTraceDetails(traceIdWithSpanId?: string) {\n if (!traceIdWithSpanId) {\n return {};\n }\n\n const [traceId, spanId] = traceIdWithSpanId.split('-');\n\n return {\n ...(traceId ? { traceId } : {}),\n ...(spanId ? { spanId } : {}),\n };\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_SCORERS_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/scorers',\n responseType: 'json',\n responseSchema: listScorersResponseSchema,\n summary: 'List all scorers',\n description: 'Returns a list of all registered scorers with their configuration and associated agents and workflows',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: (async ({ mastra, requestContext }: any) => {\n const scorers = await listScorersFromSystem({\n mastra,\n requestContext,\n });\n return scorers;\n }) as any,\n});\n\nexport const GET_SCORER_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/scorers/:scorerId',\n responseType: 'json',\n pathParamSchema: scorerIdPathParams,\n responseSchema: scorerEntrySchema.nullable(),\n summary: 'Get scorer by ID',\n description: 'Returns details for a specific scorer including its configuration and associations',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: (async ({ mastra, scorerId, requestContext }: any) => {\n const scorers = await listScorersFromSystem({\n mastra,\n requestContext,\n });\n\n const scorer = scorers[scorerId];\n\n if (!scorer) {\n return null;\n }\n\n return scorer;\n }) as any,\n});\n\nexport const LIST_SCORES_BY_RUN_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/run/:runId',\n responseType: 'json',\n pathParamSchema: runIdSchema,\n queryParamSchema: listScoresByRunIdQuerySchema,\n responseSchema: scoresWithPaginationResponseSchema,\n summary: 'List scores by run ID',\n description: 'Returns all scores for a specific execution run',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, runId, ...params }) => {\n try {\n const { page, perPage } = params;\n const pagination: StoragePagination = {\n page: page ?? 0,\n perPage: perPage ?? 10,\n };\n const scores = await mastra.getStorage()?.getStore('scores');\n const scoreResults = (await scores?.listScoresByRunId?.({\n runId,\n pagination,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map((score: ScoreRowData) => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by run id');\n }\n },\n});\n\nexport const LIST_SCORES_BY_SCORER_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/scorer/:scorerId',\n responseType: 'json',\n pathParamSchema: scorerIdPathParams,\n queryParamSchema: listScoresByScorerIdQuerySchema,\n responseSchema: scoresWithPaginationResponseSchema,\n summary: 'List scores by scorer ID',\n description: 'Returns all scores generated by a specific scorer',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, scorerId, ...params }) => {\n try {\n const { page, perPage, entityId, entityType } = params;\n const filters = Object.fromEntries(Object.entries({ entityId, entityType }).filter(([_, v]) => v !== undefined));\n const scores = await mastra.getStorage()?.getStore('scores');\n const scoreResults = (await scores?.listScoresByScorerId?.({\n scorerId,\n pagination: { page: page ?? 0, perPage: perPage ?? 10 },\n ...filters,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map((score: ScoreRowData) => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by scorer id');\n }\n },\n});\n\nexport const LIST_SCORES_BY_ENTITY_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/entity/:entityType/:entityId',\n responseType: 'json',\n pathParamSchema: entityPathParams,\n queryParamSchema: listScoresByEntityIdQuerySchema,\n responseSchema: scoresWithPaginationResponseSchema,\n summary: 'List scores by entity ID',\n description: 'Returns all scores for a specific entity (agent or workflow)',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, entityId, entityType, ...params }) => {\n try {\n const { page, perPage } = params;\n let entityIdToUse = entityId;\n\n if (entityType === 'AGENT') {\n const agent = await getAgentFromSystem({ mastra, agentId: entityId });\n entityIdToUse = agent.id;\n } else if (entityType === 'WORKFLOW') {\n const workflow = mastra.getWorkflowById(entityId);\n entityIdToUse = workflow.id;\n }\n\n const pagination: StoragePagination = {\n page: page ?? 0,\n perPage: perPage ?? 10,\n };\n\n const scoresStore = await mastra.getStorage()?.getStore('scores');\n const scoreResults = (await scoresStore?.listScoresByEntityId?.({\n entityId: entityIdToUse,\n entityType,\n pagination,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map((score: ScoreRowData) => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by entity id');\n }\n },\n});\n\nexport const SAVE_SCORE_ROUTE = createRoute({\n method: 'POST',\n path: '/scores',\n responseType: 'json',\n bodySchema: saveScoreBodySchema,\n responseSchema: saveScoreResponseSchema,\n summary: 'Save score',\n description: 'Saves a new score record to storage',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const { score } = params as { score: ScoreRowData };\n const scoresStore = await mastra.getStorage()?.getStore('scores');\n const result = await scoresStore?.saveScore?.(score);\n if (!result) {\n throw new HTTPException(500, { message: 'Storage not configured' });\n }\n return result;\n } catch (error) {\n return handleError(error, 'Error saving score');\n }\n },\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/scores.ts"],"names":["__export","createRoute","listScorersResponseSchema","scorerIdPathParams","scorerEntrySchema","runIdSchema","listScoresByRunIdQuerySchema","scoresWithPaginationResponseSchema","handleError","listScoresByScorerIdQuerySchema","entityPathParams","listScoresByEntityIdQuerySchema","getAgentFromSystem","saveScoreBodySchema","saveScoreResponseSchema","HTTPException"],"mappings":"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","file":"chunk-UQLJDNXU.cjs","sourcesContent":["import type { MastraScorerEntry, ScoreRowData } from '@mastra/core/evals';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport type { StoragePagination } from '@mastra/core/storage';\nimport { HTTPException } from '../http-exception';\nimport { runIdSchema } from '../schemas/common';\nimport {\n listScorersResponseSchema,\n scorerEntrySchema,\n scorerIdPathParams,\n entityPathParams,\n listScoresByRunIdQuerySchema,\n listScoresByScorerIdQuerySchema,\n listScoresByEntityIdQuerySchema,\n saveScoreBodySchema,\n scoresWithPaginationResponseSchema,\n saveScoreResponseSchema,\n} from '../schemas/scores';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport type { Context } from '../types';\nimport { getAgentFromSystem } from './agents';\nimport { handleError } from './error';\n\nasync function listScorersFromSystem({\n mastra,\n requestContext,\n}: Context & {\n requestContext: RequestContext;\n}) {\n const agents = mastra.listAgents();\n const workflows = mastra.listWorkflows();\n\n const scorersMap = new Map<\n string,\n MastraScorerEntry & {\n agentIds: string[];\n agentNames: string[];\n workflowIds: string[];\n isRegistered: boolean;\n source: 'code' | 'stored';\n }\n >();\n\n // Helper function to process an agent's scorers\n const processAgentScorers = async (agent: {\n id: string;\n name: string;\n listScorers: (typeof agents)[string]['listScorers'];\n }) => {\n const scorers =\n (await agent.listScorers({\n requestContext,\n })) || {};\n\n if (Object.keys(scorers).length > 0) {\n for (const [_scorerId, scorer] of Object.entries(scorers)) {\n const scorerId = scorer.scorer.id;\n if (scorersMap.has(scorerId)) {\n scorersMap.get(scorerId)?.agentIds.push(agent.id);\n scorersMap.get(scorerId)?.agentNames.push(agent.name);\n } else {\n scorersMap.set(scorerId, {\n workflowIds: [],\n ...scorer,\n agentNames: [agent.name],\n agentIds: [agent.id],\n isRegistered: false,\n source: scorer.scorer.source ?? 'code',\n });\n }\n }\n }\n };\n\n // Process code-defined agents\n for (const [_, agent] of Object.entries(agents)) {\n await processAgentScorers(agent);\n }\n\n // Process stored agents (database-backed agents)\n try {\n const editor = mastra.getEditor();\n const storedAgentsResult = await editor?.agent.list();\n if (storedAgentsResult?.agents) {\n for (const storedAgentConfig of storedAgentsResult.agents) {\n try {\n const agent = await editor?.agent.getById(storedAgentConfig.id);\n if (agent) {\n await processAgentScorers(agent);\n }\n } catch {\n // Skip individual agents that fail to hydrate\n }\n }\n }\n } catch {\n // Silently ignore if storage is not configured - not all setups have storage\n }\n\n // Process stored scorers (standalone CMS-created scorers)\n try {\n const editor = mastra.getEditor();\n const storedScorersResult = await editor?.scorer.list();\n if (storedScorersResult?.scorerDefinitions) {\n for (const storedScorerConfig of storedScorersResult.scorerDefinitions) {\n try {\n await editor?.scorer.getById(storedScorerConfig.id);\n } catch {\n // Skip individual scorers that fail to hydrate\n }\n }\n }\n } catch {\n // Silently ignore if storage is not configured\n }\n\n for (const [workflowId, workflow] of Object.entries(workflows)) {\n const scorers =\n (await workflow.listScorers({\n requestContext,\n })) || {};\n\n if (Object.keys(scorers).length > 0) {\n for (const [_scorerId, scorer] of Object.entries(scorers)) {\n const scorerName = scorer.scorer.name;\n if (scorersMap.has(scorerName)) {\n scorersMap.get(scorerName)?.workflowIds.push(workflowId);\n } else {\n scorersMap.set(scorerName, {\n agentIds: [],\n agentNames: [],\n ...scorer,\n workflowIds: [workflowId],\n isRegistered: false,\n source: scorer.scorer.source ?? 'code',\n });\n }\n }\n }\n }\n\n const registeredScorers = await mastra.listScorers();\n for (const [_scorerId, scorer] of Object.entries(registeredScorers || {})) {\n const scorerId = scorer.id;\n if (scorersMap.has(scorerId)) {\n scorersMap.get(scorerId)!.isRegistered = true;\n } else {\n scorersMap.set(scorerId, {\n scorer: scorer,\n agentIds: [],\n agentNames: [],\n workflowIds: [],\n isRegistered: true,\n source: scorer.source ?? 'code',\n });\n }\n }\n\n return Object.fromEntries(scorersMap.entries());\n}\n\n// Legacy function to get trace and span details\nfunction getTraceDetails(traceIdWithSpanId?: string) {\n if (!traceIdWithSpanId) {\n return {};\n }\n\n const [traceId, spanId] = traceIdWithSpanId.split('-');\n\n return {\n ...(traceId ? { traceId } : {}),\n ...(spanId ? { spanId } : {}),\n };\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const LIST_SCORERS_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/scorers',\n responseType: 'json',\n responseSchema: listScorersResponseSchema,\n summary: 'List all scorers',\n description: 'Returns a list of all registered scorers with their configuration and associated agents and workflows',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: (async ({ mastra, requestContext }: any) => {\n const scorers = await listScorersFromSystem({\n mastra,\n requestContext,\n });\n return scorers;\n }) as any,\n});\n\nexport const GET_SCORER_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/scorers/:scorerId',\n responseType: 'json',\n pathParamSchema: scorerIdPathParams,\n responseSchema: scorerEntrySchema.nullable(),\n summary: 'Get scorer by ID',\n description: 'Returns details for a specific scorer including its configuration and associations',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: (async ({ mastra, scorerId, requestContext }: any) => {\n const scorers = await listScorersFromSystem({\n mastra,\n requestContext,\n });\n\n const scorer = scorers[scorerId];\n\n if (!scorer) {\n return null;\n }\n\n return scorer;\n }) as any,\n});\n\nexport const LIST_SCORES_BY_RUN_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/run/:runId',\n responseType: 'json',\n pathParamSchema: runIdSchema,\n queryParamSchema: listScoresByRunIdQuerySchema,\n responseSchema: scoresWithPaginationResponseSchema,\n summary: 'List scores by run ID',\n description: 'Returns all scores for a specific execution run',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, runId, ...params }) => {\n try {\n const { page, perPage } = params;\n const pagination: StoragePagination = {\n page: page ?? 0,\n perPage: perPage ?? 10,\n };\n const scores = await mastra.getStorage()?.getStore('scores');\n const scoreResults = (await scores?.listScoresByRunId?.({\n runId,\n pagination,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map((score: ScoreRowData) => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by run id');\n }\n },\n});\n\nexport const LIST_SCORES_BY_SCORER_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/scorer/:scorerId',\n responseType: 'json',\n pathParamSchema: scorerIdPathParams,\n queryParamSchema: listScoresByScorerIdQuerySchema,\n responseSchema: scoresWithPaginationResponseSchema,\n summary: 'List scores by scorer ID',\n description: 'Returns all scores generated by a specific scorer',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, scorerId, ...params }) => {\n try {\n const { page, perPage, entityId, entityType } = params;\n const filters = Object.fromEntries(Object.entries({ entityId, entityType }).filter(([_, v]) => v !== undefined));\n const scores = await mastra.getStorage()?.getStore('scores');\n const scoreResults = (await scores?.listScoresByScorerId?.({\n scorerId,\n pagination: { page: page ?? 0, perPage: perPage ?? 10 },\n ...filters,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map((score: ScoreRowData) => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by scorer id');\n }\n },\n});\n\nexport const LIST_SCORES_BY_ENTITY_ID_ROUTE = createRoute({\n method: 'GET',\n path: '/scores/entity/:entityType/:entityId',\n responseType: 'json',\n pathParamSchema: entityPathParams,\n queryParamSchema: listScoresByEntityIdQuerySchema,\n responseSchema: scoresWithPaginationResponseSchema,\n summary: 'List scores by entity ID',\n description: 'Returns all scores for a specific entity (agent or workflow)',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, entityId, entityType, ...params }) => {\n try {\n const { page, perPage } = params;\n let entityIdToUse = entityId;\n\n if (entityType === 'AGENT') {\n const agent = await getAgentFromSystem({ mastra, agentId: entityId });\n entityIdToUse = agent.id;\n } else if (entityType === 'WORKFLOW') {\n const workflow = mastra.getWorkflowById(entityId);\n entityIdToUse = workflow.id;\n }\n\n const pagination: StoragePagination = {\n page: page ?? 0,\n perPage: perPage ?? 10,\n };\n\n const scoresStore = await mastra.getStorage()?.getStore('scores');\n const scoreResults = (await scoresStore?.listScoresByEntityId?.({\n entityId: entityIdToUse,\n entityType,\n pagination,\n })) || { pagination: { total: 0, page: 0, perPage: 0, hasMore: false }, scores: [] };\n\n return {\n pagination: scoreResults.pagination,\n scores: scoreResults.scores.map((score: ScoreRowData) => ({ ...score, ...getTraceDetails(score.traceId) })),\n };\n } catch (error) {\n return handleError(error, 'Error getting scores by entity id');\n }\n },\n});\n\nexport const SAVE_SCORE_ROUTE = createRoute({\n method: 'POST',\n path: '/scores',\n responseType: 'json',\n bodySchema: saveScoreBodySchema,\n responseSchema: saveScoreResponseSchema,\n summary: 'Save score',\n description: 'Saves a new score record to storage',\n tags: ['Scoring'],\n requiresAuth: true,\n handler: async ({ mastra, ...params }) => {\n try {\n const { score } = params as { score: ScoreRowData };\n const scoresStore = await mastra.getStorage()?.getStore('scores');\n const result = await scoresStore?.saveScore?.(score);\n if (!result) {\n throw new HTTPException(500, { message: 'Storage not configured' });\n }\n return result;\n } catch (error) {\n return handleError(error, 'Error saving score');\n }\n },\n});\n"]}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
1
|
import { getAgentSkillResponseSchema, skillDisambiguationQuerySchema } from './chunk-ZHULRNJG.js';
|
|
2
|
-
import { listAgentsResponseSchema, serializedAgentSchema, agentVersionQuerySchema, agentIdPathParams, generateResponseSchema, agentExecutionBodySchema, agentExecutionLegacyBodySchema, streamResponseSchema, providersResponseSchema, streamUntilIdleBodySchema, toolCallResponseSchema, approveToolCallBodySchema, declineToolCallBodySchema, resumeStreamBodySchema, approveNetworkToolCallBodySchema, declineNetworkToolCallBodySchema, modelManagementResponseSchema, updateAgentModelBodySchema, reorderAgentModelListBodySchema, updateAgentModelInModelListBodySchema, modelConfigIdPathParams, enhanceInstructionsResponseSchema, enhanceInstructionsBodySchema, agentSkillPathParams } from './chunk-
|
|
2
|
+
import { listAgentsResponseSchema, serializedAgentSchema, agentVersionQuerySchema, agentIdPathParams, generateResponseSchema, agentExecutionBodySchema, agentExecutionLegacyBodySchema, streamResponseSchema, providersResponseSchema, streamUntilIdleBodySchema, observeAgentResponseSchema, observeAgentBodySchema, toolCallResponseSchema, approveToolCallBodySchema, declineToolCallBodySchema, resumeStreamBodySchema, approveNetworkToolCallBodySchema, declineNetworkToolCallBodySchema, modelManagementResponseSchema, updateAgentModelBodySchema, reorderAgentModelListBodySchema, updateAgentModelInModelListBodySchema, modelConfigIdPathParams, enhanceInstructionsResponseSchema, enhanceInstructionsBodySchema, agentSkillPathParams } from './chunk-43CWQ4M3.js';
|
|
3
3
|
import { stringify, toSlug } from './chunk-ERKUFMCT.js';
|
|
4
|
-
import { sanitizeBody, validateBody, getEffectiveResourceId, getEffectiveThreadId, validateThreadOwnership, validateRunOwnership } from './chunk-
|
|
5
|
-
import { WORKSPACE_TOOLS, resolveToolConfig } from './chunk-
|
|
4
|
+
import { sanitizeBody, validateBody, getEffectiveResourceId, getEffectiveThreadId, validateThreadOwnership, validateRunOwnership } from './chunk-JZNOIGOQ.js';
|
|
5
|
+
import { WORKSPACE_TOOLS, resolveToolConfig } from './chunk-OJRAH5VV.js';
|
|
6
6
|
import { createStoredAgentResponseSchema } from './chunk-AIRSK4QU.js';
|
|
7
7
|
import { createRoute, standardSchemaToJSONSchema, toStandardSchema5 } from './chunk-PA2BYLKF.js';
|
|
8
8
|
import { handleError } from './chunk-P23KBWKB.js';
|
|
9
9
|
import { HTTPException } from './chunk-6QWQZI4Q.js';
|
|
10
10
|
import { __export } from './chunk-PR4QN5HX.js';
|
|
11
|
-
import { Agent } from '@mastra/core/agent';
|
|
11
|
+
import { isDurableAgentLike, Agent } from '@mastra/core/agent';
|
|
12
|
+
import { AGENT_STREAM_TOPIC } from '@mastra/core/agent/durable';
|
|
12
13
|
import { mergeVersionOverrides } from '@mastra/core/di';
|
|
13
14
|
import { MastraError, ErrorDomain, ErrorCategory } from '@mastra/core/error';
|
|
14
15
|
import { PROVIDER_REGISTRY, parseModelString } from '@mastra/core/llm';
|
|
@@ -34,6 +35,7 @@ __export(agents_exports, {
|
|
|
34
35
|
GET_AGENT_SKILL_ROUTE: () => GET_AGENT_SKILL_ROUTE,
|
|
35
36
|
GET_PROVIDERS_ROUTE: () => GET_PROVIDERS_ROUTE,
|
|
36
37
|
LIST_AGENTS_ROUTE: () => LIST_AGENTS_ROUTE,
|
|
38
|
+
OBSERVE_AGENT_STREAM_ROUTE: () => OBSERVE_AGENT_STREAM_ROUTE,
|
|
37
39
|
REORDER_AGENT_MODEL_LIST_ROUTE: () => REORDER_AGENT_MODEL_LIST_ROUTE,
|
|
38
40
|
RESET_AGENT_MODEL_ROUTE: () => RESET_AGENT_MODEL_ROUTE,
|
|
39
41
|
RESUME_STREAM_ROUTE: () => RESUME_STREAM_ROUTE,
|
|
@@ -416,17 +418,22 @@ async function formatAgentList({
|
|
|
416
418
|
hasDraft: !!(agent.toRawConfig()?.resolvedVersionId && agent.toRawConfig()?.activeVersionId && agent.toRawConfig().resolvedVersionId !== agent.toRawConfig().activeVersionId)
|
|
417
419
|
};
|
|
418
420
|
}
|
|
419
|
-
function extractVersionOptions(requestContext) {
|
|
421
|
+
function extractVersionOptions(requestContext, bodyRequestContext) {
|
|
420
422
|
const agentVersionId = requestContext?.get("agentVersionId");
|
|
421
423
|
if (typeof agentVersionId === "string" && agentVersionId) {
|
|
422
424
|
return { versionId: agentVersionId };
|
|
423
425
|
}
|
|
426
|
+
const bodyVersionId = bodyRequestContext?.agentVersionId;
|
|
427
|
+
if (typeof bodyVersionId === "string" && bodyVersionId) {
|
|
428
|
+
return { versionId: bodyVersionId };
|
|
429
|
+
}
|
|
424
430
|
return void 0;
|
|
425
431
|
}
|
|
426
432
|
async function getAgentFromSystem({
|
|
427
433
|
mastra,
|
|
428
434
|
agentId,
|
|
429
|
-
versionOptions
|
|
435
|
+
versionOptions,
|
|
436
|
+
requestContext
|
|
430
437
|
}) {
|
|
431
438
|
const logger = mastra.getLogger();
|
|
432
439
|
if (!agentId) {
|
|
@@ -459,7 +466,11 @@ async function getAgentFromSystem({
|
|
|
459
466
|
try {
|
|
460
467
|
const editorAgent = mastra.getEditor()?.agent;
|
|
461
468
|
if (editorAgent) {
|
|
462
|
-
agent = await editorAgent.applyStoredOverrides(
|
|
469
|
+
agent = await editorAgent.applyStoredOverrides(
|
|
470
|
+
agent,
|
|
471
|
+
versionOptions ?? { status: "published" },
|
|
472
|
+
requestContext
|
|
473
|
+
);
|
|
463
474
|
}
|
|
464
475
|
} catch (error) {
|
|
465
476
|
logger.debug("Error applying stored overrides to code agent", error);
|
|
@@ -612,7 +623,7 @@ var LIST_AGENTS_ROUTE = createRoute({
|
|
|
612
623
|
let mergedAgent = agent;
|
|
613
624
|
if (editor) {
|
|
614
625
|
try {
|
|
615
|
-
mergedAgent = await editor.agent.applyStoredOverrides(agent);
|
|
626
|
+
mergedAgent = await editor.agent.applyStoredOverrides(agent, void 0, requestContext);
|
|
616
627
|
} catch {
|
|
617
628
|
}
|
|
618
629
|
}
|
|
@@ -685,7 +696,7 @@ var GET_AGENT_BY_ID_ROUTE = createRoute({
|
|
|
685
696
|
handler: async ({ agentId, mastra, requestContext, status, versionId }) => {
|
|
686
697
|
try {
|
|
687
698
|
const versionOptions = versionId ? { versionId } : status ? { status } : void 0;
|
|
688
|
-
const agent = await getAgentFromSystem({ mastra, agentId, versionOptions });
|
|
699
|
+
const agent = await getAgentFromSystem({ mastra, agentId, versionOptions, requestContext });
|
|
689
700
|
const isStudio = false;
|
|
690
701
|
const result = await formatAgent({
|
|
691
702
|
mastra,
|
|
@@ -754,14 +765,18 @@ var GENERATE_AGENT_ROUTE = createRoute({
|
|
|
754
765
|
requiresPermission: "agents:execute",
|
|
755
766
|
handler: async ({ agentId, mastra, abortSignal, requestContext: serverRequestContext, ...params }) => {
|
|
756
767
|
try {
|
|
768
|
+
sanitizeBody(params, ["tools"]);
|
|
769
|
+
const { messages, memory: memoryOption, requestContext: bodyRequestContext, versions, ...rest } = params;
|
|
770
|
+
validateBody({ messages });
|
|
757
771
|
const agent = await getAgentFromSystem({
|
|
758
772
|
mastra,
|
|
759
773
|
agentId,
|
|
760
|
-
versionOptions: extractVersionOptions(
|
|
774
|
+
versionOptions: extractVersionOptions(
|
|
775
|
+
serverRequestContext,
|
|
776
|
+
bodyRequestContext
|
|
777
|
+
),
|
|
778
|
+
requestContext: serverRequestContext
|
|
761
779
|
});
|
|
762
|
-
sanitizeBody(params, ["tools"]);
|
|
763
|
-
const { messages, memory: memoryOption, requestContext: bodyRequestContext, versions, ...rest } = params;
|
|
764
|
-
validateBody({ messages });
|
|
765
780
|
if (bodyRequestContext && typeof bodyRequestContext === "object") {
|
|
766
781
|
for (const [key, value] of Object.entries(bodyRequestContext)) {
|
|
767
782
|
if (serverRequestContext.get(key) === void 0) {
|
|
@@ -818,7 +833,8 @@ var GENERATE_LEGACY_ROUTE = createRoute({
|
|
|
818
833
|
const agent = await getAgentFromSystem({
|
|
819
834
|
mastra,
|
|
820
835
|
agentId,
|
|
821
|
-
versionOptions: extractVersionOptions(requestContext)
|
|
836
|
+
versionOptions: extractVersionOptions(requestContext),
|
|
837
|
+
requestContext
|
|
822
838
|
});
|
|
823
839
|
sanitizeBody(params, ["tools"]);
|
|
824
840
|
const { messages, resourceId, resourceid, threadId, ...rest } = params;
|
|
@@ -864,7 +880,8 @@ var STREAM_GENERATE_LEGACY_ROUTE = createRoute({
|
|
|
864
880
|
const agent = await getAgentFromSystem({
|
|
865
881
|
mastra,
|
|
866
882
|
agentId,
|
|
867
|
-
versionOptions: extractVersionOptions(requestContext)
|
|
883
|
+
versionOptions: extractVersionOptions(requestContext),
|
|
884
|
+
requestContext
|
|
868
885
|
});
|
|
869
886
|
sanitizeBody(params, ["tools"]);
|
|
870
887
|
const { messages, resourceId, resourceid, threadId, ...rest } = params;
|
|
@@ -979,14 +996,18 @@ var STREAM_GENERATE_ROUTE = createRoute({
|
|
|
979
996
|
requiresPermission: "agents:execute",
|
|
980
997
|
handler: async ({ mastra, agentId, abortSignal, requestContext: serverRequestContext, ...params }) => {
|
|
981
998
|
try {
|
|
999
|
+
sanitizeBody(params, ["tools"]);
|
|
1000
|
+
const { messages, memory: memoryOption, requestContext: bodyRequestContext, versions, ...rest } = params;
|
|
1001
|
+
validateBody({ messages });
|
|
982
1002
|
const agent = await getAgentFromSystem({
|
|
983
1003
|
mastra,
|
|
984
1004
|
agentId,
|
|
985
|
-
versionOptions: extractVersionOptions(
|
|
1005
|
+
versionOptions: extractVersionOptions(
|
|
1006
|
+
serverRequestContext,
|
|
1007
|
+
bodyRequestContext
|
|
1008
|
+
),
|
|
1009
|
+
requestContext: serverRequestContext
|
|
986
1010
|
});
|
|
987
|
-
sanitizeBody(params, ["tools"]);
|
|
988
|
-
const { messages, memory: memoryOption, requestContext: bodyRequestContext, versions, ...rest } = params;
|
|
989
|
-
validateBody({ messages });
|
|
990
1011
|
if (bodyRequestContext && typeof bodyRequestContext === "object") {
|
|
991
1012
|
for (const [key, value] of Object.entries(bodyRequestContext)) {
|
|
992
1013
|
if (serverRequestContext.get(key) === void 0) {
|
|
@@ -1042,14 +1063,18 @@ var STREAM_UNTIL_IDLE_GENERATE_ROUTE = createRoute({
|
|
|
1042
1063
|
requiresPermission: "agents:execute",
|
|
1043
1064
|
handler: async ({ mastra, agentId, abortSignal, requestContext: serverRequestContext, ...params }) => {
|
|
1044
1065
|
try {
|
|
1066
|
+
sanitizeBody(params, ["tools"]);
|
|
1067
|
+
const { messages, memory: memoryOption, requestContext: bodyRequestContext, ...rest } = params;
|
|
1068
|
+
validateBody({ messages });
|
|
1045
1069
|
const agent = await getAgentFromSystem({
|
|
1046
1070
|
mastra,
|
|
1047
1071
|
agentId,
|
|
1048
|
-
versionOptions: extractVersionOptions(
|
|
1072
|
+
versionOptions: extractVersionOptions(
|
|
1073
|
+
serverRequestContext,
|
|
1074
|
+
bodyRequestContext
|
|
1075
|
+
),
|
|
1076
|
+
requestContext: serverRequestContext
|
|
1049
1077
|
});
|
|
1050
|
-
sanitizeBody(params, ["tools"]);
|
|
1051
|
-
const { messages, memory: memoryOption, requestContext: bodyRequestContext, ...rest } = params;
|
|
1052
|
-
validateBody({ messages });
|
|
1053
1078
|
if (bodyRequestContext && typeof bodyRequestContext === "object") {
|
|
1054
1079
|
for (const [key, value] of Object.entries(bodyRequestContext)) {
|
|
1055
1080
|
if (serverRequestContext.get(key) === void 0) {
|
|
@@ -1103,6 +1128,93 @@ var STREAM_GENERATE_VNEXT_DEPRECATED_ROUTE = createRoute({
|
|
|
1103
1128
|
deprecated: true,
|
|
1104
1129
|
handler: STREAM_GENERATE_ROUTE.handler
|
|
1105
1130
|
});
|
|
1131
|
+
var OBSERVE_AGENT_STREAM_ROUTE = createRoute({
|
|
1132
|
+
method: "POST",
|
|
1133
|
+
path: "/agents/:agentId/observe",
|
|
1134
|
+
responseType: "stream",
|
|
1135
|
+
streamFormat: "sse",
|
|
1136
|
+
pathParamSchema: agentIdPathParams,
|
|
1137
|
+
bodySchema: observeAgentBodySchema,
|
|
1138
|
+
responseSchema: observeAgentResponseSchema,
|
|
1139
|
+
summary: "Observe agent stream",
|
|
1140
|
+
description: "Reconnect to an existing agent stream to receive missed events. Supports position-based resume with offset for efficient reconnection.",
|
|
1141
|
+
tags: ["Agents", "Streaming"],
|
|
1142
|
+
requiresAuth: true,
|
|
1143
|
+
handler: async ({ mastra, agentId, runId, offset, abortSignal }) => {
|
|
1144
|
+
try {
|
|
1145
|
+
let cleanup2 = function(controller) {
|
|
1146
|
+
if (idleTimer) {
|
|
1147
|
+
clearTimeout(idleTimer);
|
|
1148
|
+
idleTimer = null;
|
|
1149
|
+
}
|
|
1150
|
+
if (handleEvent) {
|
|
1151
|
+
void pubsub.unsubscribe(topic, handleEvent);
|
|
1152
|
+
handleEvent = null;
|
|
1153
|
+
}
|
|
1154
|
+
try {
|
|
1155
|
+
controller.close();
|
|
1156
|
+
} catch {
|
|
1157
|
+
}
|
|
1158
|
+
}, resetIdleTimer2 = function(controller) {
|
|
1159
|
+
if (idleTimer) clearTimeout(idleTimer);
|
|
1160
|
+
idleTimer = setTimeout(() => cleanup2(controller), IDLE_TIMEOUT_MS);
|
|
1161
|
+
};
|
|
1162
|
+
const agent = await getAgentFromSystem({ mastra, agentId });
|
|
1163
|
+
const agentPubsub = isDurableAgentLike(agent) ? agent.pubsub : void 0;
|
|
1164
|
+
const pubsub = agentPubsub ?? mastra.pubsub;
|
|
1165
|
+
const topic = AGENT_STREAM_TOPIC(runId);
|
|
1166
|
+
let handleEvent = null;
|
|
1167
|
+
let idleTimer = null;
|
|
1168
|
+
const IDLE_TIMEOUT_MS = 5 * 60 * 1e3;
|
|
1169
|
+
const stream = new ReadableStream({
|
|
1170
|
+
start(controller) {
|
|
1171
|
+
if (abortSignal) {
|
|
1172
|
+
if (abortSignal.aborted) {
|
|
1173
|
+
cleanup2(controller);
|
|
1174
|
+
return;
|
|
1175
|
+
}
|
|
1176
|
+
abortSignal.addEventListener("abort", () => cleanup2(controller), { once: true });
|
|
1177
|
+
}
|
|
1178
|
+
resetIdleTimer2(controller);
|
|
1179
|
+
handleEvent = (event) => {
|
|
1180
|
+
const isTerminal = event.type === "finish" || event.type === "error";
|
|
1181
|
+
try {
|
|
1182
|
+
controller.enqueue(event);
|
|
1183
|
+
} catch {
|
|
1184
|
+
}
|
|
1185
|
+
if (isTerminal) {
|
|
1186
|
+
cleanup2(controller);
|
|
1187
|
+
} else {
|
|
1188
|
+
resetIdleTimer2(controller);
|
|
1189
|
+
}
|
|
1190
|
+
};
|
|
1191
|
+
const subscribePromise = offset !== void 0 ? pubsub.subscribeFromOffset(topic, offset, handleEvent) : pubsub.subscribeWithReplay(topic, handleEvent);
|
|
1192
|
+
subscribePromise.catch((error) => {
|
|
1193
|
+
console.error(`[ObserveAgentStream] Failed to subscribe to ${topic}:`, error);
|
|
1194
|
+
if (idleTimer) {
|
|
1195
|
+
clearTimeout(idleTimer);
|
|
1196
|
+
idleTimer = null;
|
|
1197
|
+
}
|
|
1198
|
+
controller.error(error);
|
|
1199
|
+
});
|
|
1200
|
+
},
|
|
1201
|
+
cancel() {
|
|
1202
|
+
if (idleTimer) {
|
|
1203
|
+
clearTimeout(idleTimer);
|
|
1204
|
+
idleTimer = null;
|
|
1205
|
+
}
|
|
1206
|
+
if (handleEvent) {
|
|
1207
|
+
void pubsub.unsubscribe(topic, handleEvent);
|
|
1208
|
+
handleEvent = null;
|
|
1209
|
+
}
|
|
1210
|
+
}
|
|
1211
|
+
});
|
|
1212
|
+
return stream;
|
|
1213
|
+
} catch (error) {
|
|
1214
|
+
return handleError(error, "error observing agent stream");
|
|
1215
|
+
}
|
|
1216
|
+
}
|
|
1217
|
+
});
|
|
1106
1218
|
var APPROVE_TOOL_CALL_ROUTE = createRoute({
|
|
1107
1219
|
method: "POST",
|
|
1108
1220
|
path: "/agents/:agentId/approve-tool-call",
|
|
@@ -1192,11 +1304,6 @@ var RESUME_STREAM_ROUTE = createRoute({
|
|
|
1192
1304
|
requiresPermission: "agents:execute",
|
|
1193
1305
|
handler: async ({ mastra, agentId, abortSignal, requestContext: serverRequestContext, ...params }) => {
|
|
1194
1306
|
try {
|
|
1195
|
-
const agent = await getAgentFromSystem({
|
|
1196
|
-
mastra,
|
|
1197
|
-
agentId,
|
|
1198
|
-
versionOptions: extractVersionOptions(serverRequestContext)
|
|
1199
|
-
});
|
|
1200
1307
|
if (!params.runId) {
|
|
1201
1308
|
throw new HTTPException(400, { message: "Run id is required" });
|
|
1202
1309
|
}
|
|
@@ -1210,6 +1317,14 @@ var RESUME_STREAM_ROUTE = createRoute({
|
|
|
1210
1317
|
versions,
|
|
1211
1318
|
...rest
|
|
1212
1319
|
} = params;
|
|
1320
|
+
const agent = await getAgentFromSystem({
|
|
1321
|
+
mastra,
|
|
1322
|
+
agentId,
|
|
1323
|
+
versionOptions: extractVersionOptions(
|
|
1324
|
+
serverRequestContext,
|
|
1325
|
+
bodyRequestContext
|
|
1326
|
+
)
|
|
1327
|
+
});
|
|
1213
1328
|
if (bodyRequestContext && typeof bodyRequestContext === "object") {
|
|
1214
1329
|
for (const [key, value] of Object.entries(bodyRequestContext)) {
|
|
1215
1330
|
if (serverRequestContext.get(key) === void 0) {
|
|
@@ -1732,6 +1847,6 @@ var GET_AGENT_SKILL_ROUTE = createRoute({
|
|
|
1732
1847
|
}
|
|
1733
1848
|
});
|
|
1734
1849
|
|
|
1735
|
-
export { APPROVE_NETWORK_TOOL_CALL_ROUTE, APPROVE_TOOL_CALL_GENERATE_ROUTE, APPROVE_TOOL_CALL_ROUTE, CLONE_AGENT_ROUTE, DECLINE_NETWORK_TOOL_CALL_ROUTE, DECLINE_TOOL_CALL_GENERATE_ROUTE, DECLINE_TOOL_CALL_ROUTE, ENHANCE_INSTRUCTIONS_ROUTE, GENERATE_AGENT_ROUTE, GENERATE_AGENT_VNEXT_ROUTE, GENERATE_LEGACY_ROUTE, GET_AGENT_BY_ID_ROUTE, GET_AGENT_SKILL_ROUTE, GET_PROVIDERS_ROUTE, LIST_AGENTS_ROUTE, REORDER_AGENT_MODEL_LIST_ROUTE, RESET_AGENT_MODEL_ROUTE, RESUME_STREAM_ROUTE, STREAM_GENERATE_LEGACY_ROUTE, STREAM_GENERATE_ROUTE, STREAM_GENERATE_VNEXT_DEPRECATED_ROUTE, STREAM_NETWORK_ROUTE, STREAM_UI_MESSAGE_DEPRECATED_ROUTE, STREAM_UI_MESSAGE_VNEXT_DEPRECATED_ROUTE, STREAM_UNTIL_IDLE_GENERATE_ROUTE, STREAM_VNEXT_DEPRECATED_ROUTE, UPDATE_AGENT_MODEL_IN_MODEL_LIST_ROUTE, UPDATE_AGENT_MODEL_ROUTE, agents_exports, extractVersionOptions, getAgentFromSystem, getBrowserToolsFromAgent, getSerializedAgentTools, getSerializedProcessors, getSerializedSkillsFromAgent, getWorkspaceToolsFromAgent, isProviderConnected };
|
|
1736
|
-
//# sourceMappingURL=chunk-
|
|
1737
|
-
//# sourceMappingURL=chunk-
|
|
1850
|
+
export { APPROVE_NETWORK_TOOL_CALL_ROUTE, APPROVE_TOOL_CALL_GENERATE_ROUTE, APPROVE_TOOL_CALL_ROUTE, CLONE_AGENT_ROUTE, DECLINE_NETWORK_TOOL_CALL_ROUTE, DECLINE_TOOL_CALL_GENERATE_ROUTE, DECLINE_TOOL_CALL_ROUTE, ENHANCE_INSTRUCTIONS_ROUTE, GENERATE_AGENT_ROUTE, GENERATE_AGENT_VNEXT_ROUTE, GENERATE_LEGACY_ROUTE, GET_AGENT_BY_ID_ROUTE, GET_AGENT_SKILL_ROUTE, GET_PROVIDERS_ROUTE, LIST_AGENTS_ROUTE, OBSERVE_AGENT_STREAM_ROUTE, REORDER_AGENT_MODEL_LIST_ROUTE, RESET_AGENT_MODEL_ROUTE, RESUME_STREAM_ROUTE, STREAM_GENERATE_LEGACY_ROUTE, STREAM_GENERATE_ROUTE, STREAM_GENERATE_VNEXT_DEPRECATED_ROUTE, STREAM_NETWORK_ROUTE, STREAM_UI_MESSAGE_DEPRECATED_ROUTE, STREAM_UI_MESSAGE_VNEXT_DEPRECATED_ROUTE, STREAM_UNTIL_IDLE_GENERATE_ROUTE, STREAM_VNEXT_DEPRECATED_ROUTE, UPDATE_AGENT_MODEL_IN_MODEL_LIST_ROUTE, UPDATE_AGENT_MODEL_ROUTE, agents_exports, extractVersionOptions, getAgentFromSystem, getBrowserToolsFromAgent, getSerializedAgentTools, getSerializedProcessors, getSerializedSkillsFromAgent, getWorkspaceToolsFromAgent, isProviderConnected };
|
|
1851
|
+
//# sourceMappingURL=chunk-UZRD3SEA.js.map
|
|
1852
|
+
//# sourceMappingURL=chunk-UZRD3SEA.js.map
|