@mastra/server 1.0.0-beta.20 → 1.0.0-beta.21
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 +17 -0
- package/dist/{chunk-JQPDZZLI.js → chunk-2UAI7X5P.js} +3 -3
- package/dist/{chunk-JQPDZZLI.js.map → chunk-2UAI7X5P.js.map} +1 -1
- package/dist/{chunk-5NXQ6QXL.js → chunk-3FEYUHHJ.js} +3 -3
- package/dist/{chunk-5NXQ6QXL.js.map → chunk-3FEYUHHJ.js.map} +1 -1
- package/dist/{chunk-X5KAQFOV.js → chunk-3RAQVZUX.js} +3 -3
- package/dist/{chunk-X5KAQFOV.js.map → chunk-3RAQVZUX.js.map} +1 -1
- package/dist/{chunk-V3RILBZM.cjs → chunk-4DJ7EJRB.cjs} +13 -13
- package/dist/{chunk-V3RILBZM.cjs.map → chunk-4DJ7EJRB.cjs.map} +1 -1
- package/dist/{chunk-IQEVRCM6.cjs → chunk-4TRYHC5Z.cjs} +10 -10
- package/dist/{chunk-IQEVRCM6.cjs.map → chunk-4TRYHC5Z.cjs.map} +1 -1
- package/dist/{chunk-L7ZFPOGS.js → chunk-5VDI75UV.js} +3 -3
- package/dist/{chunk-L7ZFPOGS.js.map → chunk-5VDI75UV.js.map} +1 -1
- package/dist/{chunk-FEEM6QFN.js → chunk-7S7ALPCY.js} +12 -6
- package/dist/chunk-7S7ALPCY.js.map +1 -0
- package/dist/{chunk-3MN73W4B.cjs → chunk-AV3CN5ZR.cjs} +9 -9
- package/dist/{chunk-3MN73W4B.cjs.map → chunk-AV3CN5ZR.cjs.map} +1 -1
- package/dist/{chunk-UKRDDBXY.cjs → chunk-AVRO3FIN.cjs} +11 -5
- package/dist/chunk-AVRO3FIN.cjs.map +1 -0
- package/dist/{chunk-JXPRNYUC.js → chunk-CGIGPJRU.js} +3 -3
- package/dist/{chunk-JXPRNYUC.js.map → chunk-CGIGPJRU.js.map} +1 -1
- package/dist/{chunk-T3ZHTCEI.cjs → chunk-EZPXTOSM.cjs} +23 -23
- package/dist/{chunk-T3ZHTCEI.cjs.map → chunk-EZPXTOSM.cjs.map} +1 -1
- package/dist/{chunk-G3KUL3RL.cjs → chunk-F6CHEWZT.cjs} +8 -8
- package/dist/{chunk-G3KUL3RL.cjs.map → chunk-F6CHEWZT.cjs.map} +1 -1
- package/dist/{chunk-Q4BOUQ2O.js → chunk-FBB2QKRV.js} +3 -3
- package/dist/{chunk-Q4BOUQ2O.js.map → chunk-FBB2QKRV.js.map} +1 -1
- package/dist/{chunk-XAVPSRSG.cjs → chunk-FLLJIPD4.cjs} +4 -4
- package/dist/{chunk-XAVPSRSG.cjs.map → chunk-FLLJIPD4.cjs.map} +1 -1
- package/dist/{chunk-IMPZBQ5U.cjs → chunk-H27ZCWUX.cjs} +50 -50
- package/dist/{chunk-IMPZBQ5U.cjs.map → chunk-H27ZCWUX.cjs.map} +1 -1
- package/dist/{chunk-3OUPQHSX.js → chunk-KKY4MSZO.js} +3 -3
- package/dist/{chunk-3OUPQHSX.js.map → chunk-KKY4MSZO.js.map} +1 -1
- package/dist/{chunk-B35F4QEM.cjs → chunk-MPUVSOEU.cjs} +9 -9
- package/dist/{chunk-B35F4QEM.cjs.map → chunk-MPUVSOEU.cjs.map} +1 -1
- package/dist/{chunk-K3LMK4KU.js → chunk-N4EIZSG2.js} +3 -3
- package/dist/{chunk-K3LMK4KU.js.map → chunk-N4EIZSG2.js.map} +1 -1
- package/dist/{chunk-J6DCK7KG.js → chunk-NETDNGUZ.js} +3 -3
- package/dist/{chunk-J6DCK7KG.js.map → chunk-NETDNGUZ.js.map} +1 -1
- package/dist/{chunk-3PZVR6W3.cjs → chunk-NGPUSFSO.cjs} +26 -26
- package/dist/{chunk-3PZVR6W3.cjs.map → chunk-NGPUSFSO.cjs.map} +1 -1
- package/dist/{chunk-SEP5QUTR.js → chunk-OQVXRANI.js} +3 -3
- package/dist/{chunk-SEP5QUTR.js.map → chunk-OQVXRANI.js.map} +1 -1
- package/dist/{chunk-AVOFMAUS.cjs → chunk-QPFYN6B5.cjs} +6 -6
- package/dist/{chunk-AVOFMAUS.cjs.map → chunk-QPFYN6B5.cjs.map} +1 -1
- package/dist/{chunk-DUZRZLVR.js → chunk-TMS4LS2J.js} +3 -3
- package/dist/{chunk-DUZRZLVR.js.map → chunk-TMS4LS2J.js.map} +1 -1
- package/dist/{chunk-Y3VSCOCE.cjs → chunk-U7IJEAF4.cjs} +5 -5
- package/dist/{chunk-Y3VSCOCE.cjs.map → chunk-U7IJEAF4.cjs.map} +1 -1
- package/dist/{chunk-KXYDJIKD.cjs → chunk-UST3FS67.cjs} +26 -26
- package/dist/{chunk-KXYDJIKD.cjs.map → chunk-UST3FS67.cjs.map} +1 -1
- package/dist/{chunk-OKURLPIJ.js → chunk-V2BBRMP6.js} +4 -4
- package/dist/{chunk-OKURLPIJ.js.map → chunk-V2BBRMP6.js.map} +1 -1
- package/dist/{chunk-ZRBZESWG.js → chunk-VEHQCZFU.js} +3 -3
- package/dist/{chunk-ZRBZESWG.js.map → chunk-VEHQCZFU.js.map} +1 -1
- package/dist/{chunk-KEW7MXUS.cjs → chunk-WJ6DNHLW.cjs} +11 -11
- package/dist/{chunk-KEW7MXUS.cjs.map → chunk-WJ6DNHLW.cjs.map} +1 -1
- package/dist/{chunk-TOGG5Q45.js → chunk-XB27LCKO.js} +3 -3
- package/dist/{chunk-TOGG5Q45.js.map → chunk-XB27LCKO.js.map} +1 -1
- package/dist/{chunk-VJNZJAIO.cjs → chunk-XCEQ4GQW.cjs} +8 -8
- package/dist/{chunk-VJNZJAIO.cjs.map → chunk-XCEQ4GQW.cjs.map} +1 -1
- package/dist/docs/README.md +1 -1
- package/dist/docs/SKILL.md +1 -1
- package/dist/docs/SOURCE_MAP.json +1 -1
- package/dist/server/handlers/a2a.cjs +9 -9
- 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 +24 -24
- package/dist/server/handlers/agents.js +1 -1
- package/dist/server/handlers/logs.cjs +4 -4
- package/dist/server/handlers/logs.js +1 -1
- package/dist/server/handlers/mcp.cjs +9 -9
- package/dist/server/handlers/mcp.js +1 -1
- package/dist/server/handlers/memory.cjs +25 -25
- package/dist/server/handlers/memory.js +1 -1
- package/dist/server/handlers/observability.cjs +5 -5
- package/dist/server/handlers/observability.js +1 -1
- package/dist/server/handlers/scores.cjs +7 -7
- package/dist/server/handlers/scores.js +1 -1
- package/dist/server/handlers/stored-agents.cjs +6 -6
- package/dist/server/handlers/stored-agents.js +1 -1
- package/dist/server/handlers/system.cjs +2 -2
- package/dist/server/handlers/system.js +1 -1
- package/dist/server/handlers/tools.cjs +6 -6
- package/dist/server/handlers/tools.js +1 -1
- package/dist/server/handlers/vector.cjs +13 -13
- package/dist/server/handlers/vector.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.js +1 -1
- package/dist/server/handlers.cjs +24 -24
- package/dist/server/handlers.js +12 -12
- package/dist/server/server-adapter/index.cjs +146 -146
- package/dist/server/server-adapter/index.js +16 -16
- package/dist/server/server-adapter/routes/route-builder.d.ts +2 -2
- package/dist/server/server-adapter/routes/route-builder.d.ts.map +1 -1
- package/package.json +4 -4
- package/dist/chunk-FEEM6QFN.js.map +0 -1
- package/dist/chunk-UKRDDBXY.cjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/mcp.ts","../src/server/schemas/mcp.ts"],"names":[],"mappings":"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","file":"chunk-DUZRZLVR.js","sourcesContent":["import type { MCPServerBase as MastraMCPServerImplementation, ServerInfo } from '@mastra/core/mcp';\nimport { HTTPException } from '../http-exception';\nimport {\n mcpServerDetailPathParams,\n mcpServerToolPathParams,\n executeToolBodySchema,\n listMcpServersQuerySchema,\n getMcpServerDetailQuerySchema,\n listMcpServersResponseSchema,\n serverDetailSchema,\n mcpServerIdPathParams,\n listMcpServerToolsResponseSchema,\n mcpToolInfoSchema,\n executeToolResponseSchema,\n} from '../schemas/mcp';\nimport type { ServerContext } from '../server-adapter';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\n// ============================================================================\n// Route Definitions (createRoute pattern for server adapters)\n// ============================================================================\n\nexport const LIST_MCP_SERVERS_ROUTE = createRoute({\n method: 'GET',\n path: '/api/mcp/v0/servers',\n responseType: 'json',\n queryParamSchema: listMcpServersQuerySchema,\n responseSchema: listMcpServersResponseSchema,\n summary: 'List MCP servers',\n description: 'Returns a list of registered MCP servers with pagination support',\n tags: ['MCP'],\n handler: async ({\n mastra,\n page,\n perPage,\n limit,\n offset,\n }: ServerContext & { page?: number; perPage?: number; limit?: number; offset?: number }) => {\n if (!mastra || typeof mastra.listMCPServers !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or listMCPServers method not available' });\n }\n\n const servers = mastra.listMCPServers();\n\n if (!servers) {\n return { servers: [], total_count: 0, next: null };\n }\n\n const serverList = Object.values(servers) as MastraMCPServerImplementation[];\n const totalCount = serverList.length;\n\n // Support both page/perPage and limit/offset for backwards compatibility\n // Detect which format user is using - prefer page/perPage if both provided\n const useLegacyFormat =\n (limit !== undefined || offset !== undefined) && page === undefined && perPage === undefined;\n\n // If perPage provided, use it; otherwise fall back to limit\n const finalPerPage = perPage ?? limit;\n // If page provided, use it; otherwise convert from offset\n let finalPage = page;\n if (finalPage === undefined && offset !== undefined && finalPerPage !== undefined && finalPerPage > 0) {\n finalPage = Math.floor(offset / finalPerPage);\n }\n\n // Calculate offset from page/perPage\n const actualOffset = finalPage !== undefined && finalPerPage !== undefined ? finalPage * finalPerPage : 0;\n\n // Apply pagination\n let paginatedServers = serverList;\n let nextUrl: string | null = null;\n\n if (finalPerPage !== undefined) {\n paginatedServers = serverList.slice(actualOffset, actualOffset + finalPerPage);\n\n // Calculate next URL if there are more results\n if (actualOffset + finalPerPage < totalCount) {\n const nextPage = (finalPage ?? 0) + 1;\n // Return next URL in same format as request (legacy limit/offset or page/perPage)\n if (useLegacyFormat) {\n const nextOffset = actualOffset + finalPerPage;\n nextUrl = `/api/mcp/v0/servers?limit=${finalPerPage}&offset=${nextOffset}`;\n } else {\n nextUrl = `/api/mcp/v0/servers?perPage=${finalPerPage}&page=${nextPage}`;\n }\n }\n }\n\n // Get server info for each server\n const serverInfoList: ServerInfo[] = paginatedServers.map(server => server.getServerInfo());\n\n return {\n servers: serverInfoList,\n total_count: totalCount,\n next: nextUrl,\n };\n },\n});\n\nexport const GET_MCP_SERVER_DETAIL_ROUTE = createRoute({\n method: 'GET',\n path: '/api/mcp/v0/servers/:id',\n responseType: 'json',\n pathParamSchema: mcpServerDetailPathParams,\n queryParamSchema: getMcpServerDetailQuerySchema,\n responseSchema: serverDetailSchema,\n summary: 'Get MCP server details',\n description: 'Returns detailed information about a specific MCP server',\n tags: ['MCP'],\n handler: async ({ mastra, id, version }: ServerContext & { id: string; version?: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(id);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${id}' not found` });\n }\n\n const serverDetail = server.getServerDetail();\n\n // If a specific version was requested, check if it matches\n if (version && serverDetail.version_detail.version !== version) {\n throw new HTTPException(404, {\n message: `MCP server with ID '${id}' found, but not version '${version}'. Available version: ${serverDetail.version_detail.version}`,\n });\n }\n\n return serverDetail;\n },\n});\n\nexport const LIST_MCP_SERVER_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/api/mcp/:serverId/tools',\n responseType: 'json',\n pathParamSchema: mcpServerIdPathParams,\n responseSchema: listMcpServerToolsResponseSchema,\n summary: 'List MCP server tools',\n description: 'Returns a list of tools available on the specified MCP server',\n tags: ['MCP'],\n handler: async ({ mastra, serverId }: ServerContext & { serverId: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.getToolListInfo !== 'function') {\n throw new HTTPException(501, { message: `Server '${serverId}' cannot list tools in this way.` });\n }\n\n return server.getToolListInfo();\n },\n});\n\nexport const GET_MCP_SERVER_TOOL_DETAIL_ROUTE = createRoute({\n method: 'GET',\n path: '/api/mcp/:serverId/tools/:toolId',\n responseType: 'json',\n pathParamSchema: mcpServerToolPathParams,\n responseSchema: mcpToolInfoSchema,\n summary: 'Get MCP server tool details',\n description: 'Returns detailed information about a specific tool on the MCP server',\n tags: ['MCP'],\n handler: async ({ mastra, serverId, toolId }: ServerContext & { serverId: string; toolId: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.getToolInfo !== 'function') {\n throw new HTTPException(501, { message: `Server '${serverId}' cannot provide tool details in this way.` });\n }\n\n const toolInfo = server.getToolInfo(toolId);\n if (!toolInfo) {\n throw new HTTPException(404, { message: `Tool with ID '${toolId}' not found on MCP server '${serverId}'` });\n }\n\n return toolInfo;\n },\n});\n\nexport const EXECUTE_MCP_SERVER_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/api/mcp/:serverId/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: mcpServerToolPathParams,\n bodySchema: executeToolBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute MCP server tool',\n description: 'Executes a tool on the specified MCP server with the provided arguments',\n tags: ['MCP'],\n handler: async ({\n mastra,\n serverId,\n toolId,\n data,\n }: ServerContext & { serverId: string; toolId: string; data?: unknown }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.executeTool !== 'function') {\n throw new HTTPException(501, { message: `Server '${serverId}' cannot execute tools in this way.` });\n }\n\n const result = await server.executeTool(toolId, data);\n return { result };\n },\n});\n\n// ============================================================================\n// MCP Transport Routes (Streamable HTTP and SSE)\n// ============================================================================\n\n/**\n * MCP HTTP Transport response type.\n * Adapters use this to set up the HTTP transport via MCPServer.startHTTP()\n */\nexport interface MCPHttpTransportResult {\n server: MastraMCPServerImplementation;\n httpPath: string;\n}\n\n/**\n * MCP SSE Transport response type.\n * Adapters use this to set up the SSE transport via MCPServer.startSSE() or startHonoSSE()\n */\nexport interface MCPSseTransportResult {\n server: MastraMCPServerImplementation;\n ssePath: string;\n messagePath: string;\n}\n\nexport const MCP_HTTP_TRANSPORT_ROUTE = createRoute({\n method: 'ALL',\n path: '/api/mcp/:serverId/mcp',\n responseType: 'mcp-http',\n pathParamSchema: mcpServerIdPathParams,\n summary: 'MCP HTTP Transport',\n description: 'Streamable HTTP transport endpoint for MCP protocol communication',\n tags: ['MCP'],\n handler: async ({ mastra, serverId }: ServerContext & { serverId: string }): Promise<MCPHttpTransportResult> => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server '${serverId}' not found` });\n }\n\n return {\n server,\n httpPath: `/api/mcp/${serverId}/mcp`,\n };\n },\n});\n\nexport const MCP_SSE_TRANSPORT_ROUTE = createRoute({\n method: 'ALL',\n path: '/api/mcp/:serverId/sse',\n responseType: 'mcp-sse',\n pathParamSchema: mcpServerIdPathParams,\n summary: 'MCP SSE Transport',\n description: 'SSE transport endpoint for MCP protocol communication',\n tags: ['MCP'],\n handler: async ({ mastra, serverId }: ServerContext & { serverId: string }): Promise<MCPSseTransportResult> => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server '${serverId}' not found` });\n }\n\n return {\n server,\n ssePath: `/api/mcp/${serverId}/sse`,\n messagePath: `/api/mcp/${serverId}/messages`,\n };\n },\n});\n\nexport const MCP_SSE_MESSAGES_ROUTE = createRoute({\n method: 'POST',\n path: '/api/mcp/:serverId/messages',\n responseType: 'mcp-sse',\n pathParamSchema: mcpServerIdPathParams,\n summary: 'MCP SSE Messages',\n description: 'Message endpoint for SSE transport (posts messages to active SSE streams)',\n tags: ['MCP'],\n handler: MCP_SSE_TRANSPORT_ROUTE.handler,\n});\n","import { z } from 'zod';\nimport { createCombinedPaginationSchema } from './common';\n\n// Path parameters\nexport const mcpServerIdPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n});\n\nexport const mcpServerDetailPathParams = z.object({\n id: z.string().describe('MCP server ID'),\n});\n\nexport const mcpServerToolPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n toolId: z.string().describe('Tool ID'),\n});\n\nexport const executeToolBodySchema = z.object({\n data: z.unknown().optional(),\n});\n\n// Query parameters\n// Supports both page/perPage and limit/offset for backwards compatibility\nexport const listMcpServersQuerySchema = createCombinedPaginationSchema();\n\nexport const getMcpServerDetailQuerySchema = z.object({\n version: z.string().optional(),\n});\n\n// Response schemas\nexport const versionDetailSchema = z.object({\n version: z.string(),\n release_date: z.string(),\n is_latest: z.boolean(),\n});\n\nexport const serverInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n version_detail: versionDetailSchema,\n});\n\nexport const listMcpServersResponseSchema = z.object({\n servers: z.array(serverInfoSchema),\n total_count: z.number(),\n next: z.string().nullable(),\n});\n\nexport const serverDetailSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n version_detail: versionDetailSchema,\n package_canonical: z.string().optional(),\n packages: z.array(z.unknown()).optional(),\n remotes: z.array(z.unknown()).optional(),\n});\n\n// Tool schemas\nexport const mcpToolInfoSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n inputSchema: z.unknown(),\n outputSchema: z.unknown().optional(),\n toolType: z.string().optional(),\n});\n\nexport const listMcpServerToolsResponseSchema = z.object({\n tools: z.array(mcpToolInfoSchema),\n});\n\nexport const executeToolResponseSchema = z.object({\n result: z.unknown(),\n});\n\n// JSON-RPC error response schema\nexport const jsonRpcErrorSchema = z.object({\n jsonrpc: z.literal('2.0'),\n error: z.object({\n code: z.number(),\n message: z.string(),\n }),\n id: z.null(),\n});\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/mcp.ts","../src/server/schemas/mcp.ts"],"names":[],"mappings":"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","file":"chunk-TMS4LS2J.js","sourcesContent":["import type { MCPServerBase as MastraMCPServerImplementation, ServerInfo } from '@mastra/core/mcp';\nimport { HTTPException } from '../http-exception';\nimport {\n mcpServerDetailPathParams,\n mcpServerToolPathParams,\n executeToolBodySchema,\n listMcpServersQuerySchema,\n getMcpServerDetailQuerySchema,\n listMcpServersResponseSchema,\n serverDetailSchema,\n mcpServerIdPathParams,\n listMcpServerToolsResponseSchema,\n mcpToolInfoSchema,\n executeToolResponseSchema,\n} from '../schemas/mcp';\nimport type { ServerContext } from '../server-adapter';\nimport { createRoute } from '../server-adapter/routes/route-builder';\n\n// ============================================================================\n// Route Definitions (createRoute pattern for server adapters)\n// ============================================================================\n\nexport const LIST_MCP_SERVERS_ROUTE = createRoute({\n method: 'GET',\n path: '/api/mcp/v0/servers',\n responseType: 'json',\n queryParamSchema: listMcpServersQuerySchema,\n responseSchema: listMcpServersResponseSchema,\n summary: 'List MCP servers',\n description: 'Returns a list of registered MCP servers with pagination support',\n tags: ['MCP'],\n handler: async ({\n mastra,\n page,\n perPage,\n limit,\n offset,\n }: ServerContext & { page?: number; perPage?: number; limit?: number; offset?: number }) => {\n if (!mastra || typeof mastra.listMCPServers !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or listMCPServers method not available' });\n }\n\n const servers = mastra.listMCPServers();\n\n if (!servers) {\n return { servers: [], total_count: 0, next: null };\n }\n\n const serverList = Object.values(servers) as MastraMCPServerImplementation[];\n const totalCount = serverList.length;\n\n // Support both page/perPage and limit/offset for backwards compatibility\n // Detect which format user is using - prefer page/perPage if both provided\n const useLegacyFormat =\n (limit !== undefined || offset !== undefined) && page === undefined && perPage === undefined;\n\n // If perPage provided, use it; otherwise fall back to limit\n const finalPerPage = perPage ?? limit;\n // If page provided, use it; otherwise convert from offset\n let finalPage = page;\n if (finalPage === undefined && offset !== undefined && finalPerPage !== undefined && finalPerPage > 0) {\n finalPage = Math.floor(offset / finalPerPage);\n }\n\n // Calculate offset from page/perPage\n const actualOffset = finalPage !== undefined && finalPerPage !== undefined ? finalPage * finalPerPage : 0;\n\n // Apply pagination\n let paginatedServers = serverList;\n let nextUrl: string | null = null;\n\n if (finalPerPage !== undefined) {\n paginatedServers = serverList.slice(actualOffset, actualOffset + finalPerPage);\n\n // Calculate next URL if there are more results\n if (actualOffset + finalPerPage < totalCount) {\n const nextPage = (finalPage ?? 0) + 1;\n // Return next URL in same format as request (legacy limit/offset or page/perPage)\n if (useLegacyFormat) {\n const nextOffset = actualOffset + finalPerPage;\n nextUrl = `/api/mcp/v0/servers?limit=${finalPerPage}&offset=${nextOffset}`;\n } else {\n nextUrl = `/api/mcp/v0/servers?perPage=${finalPerPage}&page=${nextPage}`;\n }\n }\n }\n\n // Get server info for each server\n const serverInfoList: ServerInfo[] = paginatedServers.map(server => server.getServerInfo());\n\n return {\n servers: serverInfoList,\n total_count: totalCount,\n next: nextUrl,\n };\n },\n});\n\nexport const GET_MCP_SERVER_DETAIL_ROUTE = createRoute({\n method: 'GET',\n path: '/api/mcp/v0/servers/:id',\n responseType: 'json',\n pathParamSchema: mcpServerDetailPathParams,\n queryParamSchema: getMcpServerDetailQuerySchema,\n responseSchema: serverDetailSchema,\n summary: 'Get MCP server details',\n description: 'Returns detailed information about a specific MCP server',\n tags: ['MCP'],\n handler: async ({ mastra, id, version }: ServerContext & { id: string; version?: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(id);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${id}' not found` });\n }\n\n const serverDetail = server.getServerDetail();\n\n // If a specific version was requested, check if it matches\n if (version && serverDetail.version_detail.version !== version) {\n throw new HTTPException(404, {\n message: `MCP server with ID '${id}' found, but not version '${version}'. Available version: ${serverDetail.version_detail.version}`,\n });\n }\n\n return serverDetail;\n },\n});\n\nexport const LIST_MCP_SERVER_TOOLS_ROUTE = createRoute({\n method: 'GET',\n path: '/api/mcp/:serverId/tools',\n responseType: 'json',\n pathParamSchema: mcpServerIdPathParams,\n responseSchema: listMcpServerToolsResponseSchema,\n summary: 'List MCP server tools',\n description: 'Returns a list of tools available on the specified MCP server',\n tags: ['MCP'],\n handler: async ({ mastra, serverId }: ServerContext & { serverId: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.getToolListInfo !== 'function') {\n throw new HTTPException(501, { message: `Server '${serverId}' cannot list tools in this way.` });\n }\n\n return server.getToolListInfo();\n },\n});\n\nexport const GET_MCP_SERVER_TOOL_DETAIL_ROUTE = createRoute({\n method: 'GET',\n path: '/api/mcp/:serverId/tools/:toolId',\n responseType: 'json',\n pathParamSchema: mcpServerToolPathParams,\n responseSchema: mcpToolInfoSchema,\n summary: 'Get MCP server tool details',\n description: 'Returns detailed information about a specific tool on the MCP server',\n tags: ['MCP'],\n handler: async ({ mastra, serverId, toolId }: ServerContext & { serverId: string; toolId: string }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.getToolInfo !== 'function') {\n throw new HTTPException(501, { message: `Server '${serverId}' cannot provide tool details in this way.` });\n }\n\n const toolInfo = server.getToolInfo(toolId);\n if (!toolInfo) {\n throw new HTTPException(404, { message: `Tool with ID '${toolId}' not found on MCP server '${serverId}'` });\n }\n\n return toolInfo;\n },\n});\n\nexport const EXECUTE_MCP_SERVER_TOOL_ROUTE = createRoute({\n method: 'POST',\n path: '/api/mcp/:serverId/tools/:toolId/execute',\n responseType: 'json',\n pathParamSchema: mcpServerToolPathParams,\n bodySchema: executeToolBodySchema,\n responseSchema: executeToolResponseSchema,\n summary: 'Execute MCP server tool',\n description: 'Executes a tool on the specified MCP server with the provided arguments',\n tags: ['MCP'],\n handler: async ({\n mastra,\n serverId,\n toolId,\n data,\n }: ServerContext & { serverId: string; toolId: string; data?: unknown }) => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server with ID '${serverId}' not found` });\n }\n\n if (typeof server.executeTool !== 'function') {\n throw new HTTPException(501, { message: `Server '${serverId}' cannot execute tools in this way.` });\n }\n\n const result = await server.executeTool(toolId, data);\n return { result };\n },\n});\n\n// ============================================================================\n// MCP Transport Routes (Streamable HTTP and SSE)\n// ============================================================================\n\n/**\n * MCP HTTP Transport response type.\n * Adapters use this to set up the HTTP transport via MCPServer.startHTTP()\n */\nexport interface MCPHttpTransportResult {\n server: MastraMCPServerImplementation;\n httpPath: string;\n}\n\n/**\n * MCP SSE Transport response type.\n * Adapters use this to set up the SSE transport via MCPServer.startSSE() or startHonoSSE()\n */\nexport interface MCPSseTransportResult {\n server: MastraMCPServerImplementation;\n ssePath: string;\n messagePath: string;\n}\n\nexport const MCP_HTTP_TRANSPORT_ROUTE = createRoute({\n method: 'ALL',\n path: '/api/mcp/:serverId/mcp',\n responseType: 'mcp-http',\n pathParamSchema: mcpServerIdPathParams,\n summary: 'MCP HTTP Transport',\n description: 'Streamable HTTP transport endpoint for MCP protocol communication',\n tags: ['MCP'],\n handler: async ({ mastra, serverId }: ServerContext & { serverId: string }): Promise<MCPHttpTransportResult> => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server '${serverId}' not found` });\n }\n\n return {\n server,\n httpPath: `/api/mcp/${serverId}/mcp`,\n };\n },\n});\n\nexport const MCP_SSE_TRANSPORT_ROUTE = createRoute({\n method: 'ALL',\n path: '/api/mcp/:serverId/sse',\n responseType: 'mcp-sse',\n pathParamSchema: mcpServerIdPathParams,\n summary: 'MCP SSE Transport',\n description: 'SSE transport endpoint for MCP protocol communication',\n tags: ['MCP'],\n handler: async ({ mastra, serverId }: ServerContext & { serverId: string }): Promise<MCPSseTransportResult> => {\n if (!mastra || typeof mastra.getMCPServerById !== 'function') {\n throw new HTTPException(500, { message: 'Mastra instance or getMCPServerById method not available' });\n }\n\n const server = mastra.getMCPServerById(serverId);\n\n if (!server) {\n throw new HTTPException(404, { message: `MCP server '${serverId}' not found` });\n }\n\n return {\n server,\n ssePath: `/api/mcp/${serverId}/sse`,\n messagePath: `/api/mcp/${serverId}/messages`,\n };\n },\n});\n\nexport const MCP_SSE_MESSAGES_ROUTE = createRoute({\n method: 'POST',\n path: '/api/mcp/:serverId/messages',\n responseType: 'mcp-sse',\n pathParamSchema: mcpServerIdPathParams,\n summary: 'MCP SSE Messages',\n description: 'Message endpoint for SSE transport (posts messages to active SSE streams)',\n tags: ['MCP'],\n handler: MCP_SSE_TRANSPORT_ROUTE.handler,\n});\n","import { z } from 'zod';\nimport { createCombinedPaginationSchema } from './common';\n\n// Path parameters\nexport const mcpServerIdPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n});\n\nexport const mcpServerDetailPathParams = z.object({\n id: z.string().describe('MCP server ID'),\n});\n\nexport const mcpServerToolPathParams = z.object({\n serverId: z.string().describe('MCP server ID'),\n toolId: z.string().describe('Tool ID'),\n});\n\nexport const executeToolBodySchema = z.object({\n data: z.unknown().optional(),\n});\n\n// Query parameters\n// Supports both page/perPage and limit/offset for backwards compatibility\nexport const listMcpServersQuerySchema = createCombinedPaginationSchema();\n\nexport const getMcpServerDetailQuerySchema = z.object({\n version: z.string().optional(),\n});\n\n// Response schemas\nexport const versionDetailSchema = z.object({\n version: z.string(),\n release_date: z.string(),\n is_latest: z.boolean(),\n});\n\nexport const serverInfoSchema = z.object({\n id: z.string(),\n name: z.string(),\n version_detail: versionDetailSchema,\n});\n\nexport const listMcpServersResponseSchema = z.object({\n servers: z.array(serverInfoSchema),\n total_count: z.number(),\n next: z.string().nullable(),\n});\n\nexport const serverDetailSchema = z.object({\n id: z.string(),\n name: z.string(),\n description: z.string().optional(),\n version_detail: versionDetailSchema,\n package_canonical: z.string().optional(),\n packages: z.array(z.unknown()).optional(),\n remotes: z.array(z.unknown()).optional(),\n});\n\n// Tool schemas\nexport const mcpToolInfoSchema = z.object({\n name: z.string(),\n description: z.string().optional(),\n inputSchema: z.unknown(),\n outputSchema: z.unknown().optional(),\n toolType: z.string().optional(),\n});\n\nexport const listMcpServerToolsResponseSchema = z.object({\n tools: z.array(mcpToolInfoSchema),\n});\n\nexport const executeToolResponseSchema = z.object({\n result: z.unknown(),\n});\n\n// JSON-RPC error response schema\nexport const jsonRpcErrorSchema = z.object({\n jsonrpc: z.literal('2.0'),\n error: z.object({\n code: z.number(),\n message: z.string(),\n }),\n id: z.null(),\n});\n"]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var chunkGWLR6K3H_cjs = require('./chunk-GWLR6K3H.cjs');
|
|
4
|
-
var
|
|
4
|
+
var chunkAVRO3FIN_cjs = require('./chunk-AVRO3FIN.cjs');
|
|
5
5
|
var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
|
|
6
6
|
var a2a = require('@mastra/core/a2a');
|
|
7
7
|
var z = require('zod');
|
|
@@ -602,7 +602,7 @@ async function getAgentExecutionHandler({
|
|
|
602
602
|
return normalizeError(error, requestId, taskId, logger);
|
|
603
603
|
}
|
|
604
604
|
}
|
|
605
|
-
var GET_AGENT_CARD_ROUTE =
|
|
605
|
+
var GET_AGENT_CARD_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
606
606
|
method: "GET",
|
|
607
607
|
path: "/.well-known/:agentId/agent-card.json",
|
|
608
608
|
responseType: "json",
|
|
@@ -646,7 +646,7 @@ var GET_AGENT_CARD_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
646
646
|
return agentCard;
|
|
647
647
|
}
|
|
648
648
|
});
|
|
649
|
-
var AGENT_EXECUTION_ROUTE =
|
|
649
|
+
var AGENT_EXECUTION_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
650
650
|
method: "POST",
|
|
651
651
|
path: "/a2a/:agentId",
|
|
652
652
|
responseType: "json",
|
|
@@ -679,5 +679,5 @@ exports.handleMessageSend = handleMessageSend;
|
|
|
679
679
|
exports.handleMessageStream = handleMessageStream;
|
|
680
680
|
exports.handleTaskCancel = handleTaskCancel;
|
|
681
681
|
exports.handleTaskGet = handleTaskGet;
|
|
682
|
-
//# sourceMappingURL=chunk-
|
|
683
|
-
//# sourceMappingURL=chunk-
|
|
682
|
+
//# sourceMappingURL=chunk-U7IJEAF4.cjs.map
|
|
683
|
+
//# sourceMappingURL=chunk-U7IJEAF4.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/server/handlers/a2a.ts","../src/server/a2a/protocol.ts","../src/server/a2a/tasks.ts","../src/server/schemas/a2a.ts"],"names":["__export","MastraA2AError","z","messageSendParamsSchema","convertInstructionsToString","result","createRoute"],"mappings":";;;;;;;;;;;;;AAAA,IAAA,WAAA,GAAA;AAAAA,0BAAA,CAAA,WAAA,EAAA;AAAA,EAAA,qBAAA,EAAA,MAAA,qBAAA;AAAA,EAAA,oBAAA,EAAA,MAAA,oBAAA;AAAA,EAAA,uBAAA,EAAA,MAAA,uBAAA;AAAA,EAAA,wBAAA,EAAA,MAAA,wBAAA;AAAA,EAAA,iBAAA,EAAA,MAAA,iBAAA;AAAA,EAAA,mBAAA,EAAA,MAAA,mBAAA;AAAA,EAAA,gBAAA,EAAA,MAAA,gBAAA;AAAA,EAAA,aAAA,EAAA,MAAA;AAAA,CAAA,CAAA;ACMO,SAAS,cAAA,CACd,KAAA,EACA,KAAA,EACA,MAAA,EACA,MAAA,EACgC;AAChC,EAAA,IAAI,QAAA;AACJ,EAAA,IAAI,iBAAiBC,kBAAA,EAAgB;AACnC,IAAA,QAAA,GAAW,KAAA;AAAA,EACb,CAAA,MAAA,IAAW,iBAAiB,KAAA,EAAO;AAEjC,IAAA,QAAA,GAAWA,kBAAA,CAAe,cAAc,KAAA,CAAM,OAAA,EAAS,EAAE,KAAA,EAAO,KAAA,CAAM,OAAO,CAAA;AAAA,EAC/E,CAAA,MAAO;AAEL,IAAA,QAAA,GAAWA,kBAAA,CAAe,aAAA,CAAc,4BAAA,EAA8B,KAAK,CAAA;AAAA,EAC7E;AAGA,EAAA,IAAI,MAAA,IAAU,CAAC,QAAA,CAAS,MAAA,EAAQ;AAC9B,IAAA,QAAA,CAAS,MAAA,GAAS,MAAA;AAAA,EACpB;AAEA,EAAA,MAAA,EAAQ,KAAA,CAAM,mCAAmC,QAAA,CAAS,MAAA,IAAU,KAAK,CAAA,SAAA,EAAY,KAAA,IAAS,KAAK,CAAA,EAAA,CAAA,EAAM,QAAQ,CAAA;AAEjH,EAAA,OAAO,mBAAA,CAAoB,KAAA,EAAO,QAAA,CAAS,cAAA,EAAgB,CAAA;AAC7D;AAEO,SAAS,mBAAA,CACd,IACA,KAAA,EACgC;AAEhC,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,KAAA;AAAA,IACT,EAAA;AAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,SAAS,qBAAA,CAAyB,IAA4B,MAAA,EAA+B;AAClG,EAAA,IAAI,CAAC,EAAA,EAAI;AAEP,IAAA,MAAMA,kBAAA,CAAe,cAAc,6CAA6C,CAAA;AAAA,EAClF;AAEA,EAAA,OAAO;AAAA,IACL,OAAA,EAAS,KAAA;AAAA,IACT,EAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,SAAS,qBAAqB,OAAA,EAA+B;AAClE,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,OAAA,CAAQ,IAAA,KAAS,MAAA,GAAS,MAAA,GAAS,WAAA;AAAA,IACzC,SAAS,OAAA,CAAQ,KAAA,CAAM,IAAI,CAAA,GAAA,KAAO,wBAAA,CAAyB,GAAG,CAAC;AAAA,GACjE;AACF;AAEA,SAAS,yBAAyB,IAAA,EAAY;AAC5C,EAAA,QAAQ,KAAK,IAAA;AAAM,IACjB,KAAK,MAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,MAAA;AAAA,QACN,MAAM,IAAA,CAAK;AAAA,OACb;AAAA,IACF,KAAK,MAAA;AACH,MAAA,OAAO;AAAA,QACL,IAAA,EAAM,MAAA;AAAA,QACN,IAAA,EAAM,KAAA,IAAS,IAAA,CAAK,IAAA,GAAO,IAAI,GAAA,CAAI,IAAA,CAAK,IAAA,CAAK,GAAG,CAAA,GAAI,IAAA,CAAK,IAAA,CAAK,KAAA;AAAA,QAC9D,QAAA,EAAU,KAAK,IAAA,CAAK;AAAA,OACtB;AAAA,IACF,KAAK,MAAA;AACH,MAAA,MAAM,IAAI,MAAM,+CAA+C,CAAA;AAAA;AAErE;;;ACrEA,SAAS,mBAAmB,MAAA,EAAuF;AACjH,EAAA,OAAO,OAAA,IAAW,MAAA,IAAU,EAAE,OAAA,IAAW,MAAA,CAAA;AAC3C;AAEA,SAAS,iBAAiB,MAAA,EAAiF;AACzG,EAAA,OAAO,MAAA,IAAU,MAAA,IAAU,MAAA,CAAO,IAAA,KAAS,iBAAA;AAC7C;AAEO,SAAS,iBAAA,CACd,SACA,MAAA,EACM;AACN,EAAA,IAAI,OAAA,GAAU,gBAAgB,OAAO,CAAA;AAErC,EAAA,IAAI,kBAAA,CAAmB,MAAM,CAAA,EAAG;AAE9B,IAAA,OAAA,CAAQ,MAAA,GAAS;AAAA,MACf,GAAG,OAAA,CAAQ,MAAA;AAAA;AAAA,MACX,GAAG,MAAA;AAAA;AAAA,MACH,SAAA,EAAA,iBAAW,IAAI,IAAA,EAAK,EAAE,WAAA;AAAY,KACpC;AAAA,EACF,CAAA,MAAA,IAAW,gBAAA,CAAiB,MAAM,CAAA,EAAG;AAEnC,IAAA,IAAI,CAAC,QAAQ,SAAA,EAAW;AACtB,MAAA,OAAA,CAAQ,YAAY,EAAC;AAAA,IACvB,CAAA,MAAO;AAEL,MAAA,OAAA,CAAQ,SAAA,GAAY,CAAC,GAAG,OAAA,CAAQ,SAAS,CAAA;AAAA,IAC3C;AAEA,IAAA,MAAM,WAAW,MAAA,CAAO,QAAA;AACxB,IAAA,MAAM,aAAA,GAAgB,QAAQ,SAAA,CAAU,SAAA,CAAU,OAAK,CAAA,CAAE,IAAA,KAAS,SAAS,IAAI,CAAA;AAC/E,IAAA,MAAM,gBAAA,GAAmB,OAAA,CAAQ,SAAA,CAAU,aAAa,CAAA;AAExD,IAAA,IAAI,gBAAA,EAAkB;AACpB,MAAA,IAAI,OAAO,MAAA,EAAQ;AAEjB,QAAA,MAAM,mBAAmB,IAAA,CAAK,KAAA,CAAM,IAAA,CAAK,SAAA,CAAU,gBAAgB,CAAC,CAAA;AACpE,QAAA,gBAAA,CAAiB,KAAA,CAAM,IAAA,CAAK,GAAG,QAAA,CAAS,KAAK,CAAA;AAC7C,QAAA,IAAI,SAAS,QAAA,EAAU;AACrB,UAAA,gBAAA,CAAiB,QAAA,GAAW;AAAA,YAC1B,GAAI,gBAAA,CAAiB,QAAA,IAAY,EAAC;AAAA,YAClC,GAAG,QAAA,CAAS;AAAA,WACd;AAAA,QACF;AACA,QAAA,IAAI,QAAA,CAAS,WAAA,EAAa,gBAAA,CAAiB,WAAA,GAAc,QAAA,CAAS,WAAA;AAClE,QAAA,OAAA,CAAQ,SAAA,CAAU,aAAa,CAAA,GAAI,gBAAA;AAAA,MACrC,CAAA,MAAO;AAEL,QAAA,OAAA,CAAQ,SAAA,CAAU,aAAa,CAAA,GAAI,EAAE,GAAG,QAAA,EAAS;AAAA,MACnD;AAAA,IACF,CAAA,MAAO;AACL,MAAA,OAAA,CAAQ,SAAA,CAAU,IAAA,CAAK,EAAE,GAAG,UAAU,CAAA;AAAA,IACxC;AAAA,EACF;AAEA,EAAA,OAAO,OAAA;AACT;AAEA,eAAsB,gBAAA,CAAiB;AAAA,EACrC,OAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAQkB;AAChB,EAAA,MAAM,OAAO,MAAM,SAAA,CAAU,KAAK,EAAE,OAAA,EAAS,QAAQ,CAAA;AAGrD,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,MAAM,WAAA,GAAoB;AAAA,MACxB,EAAA,EAAI,MAAA;AAAA,MACJ,SAAA,EAAW,SAAA,IAAa,MAAA,CAAO,UAAA,EAAW;AAAA,MAC1C,MAAA,EAAQ;AAAA,QACN,KAAA,EAAO,WAAA;AAAA,QACP,SAAA,EAAA,iBAAW,IAAI,IAAA,EAAK,EAAE,WAAA,EAAY;AAAA,QAClC,OAAA,EAAS;AAAA,OACX;AAAA,MACA,WAAW,EAAC;AAAA,MACZ,OAAA,EAAS,CAAC,OAAO,CAAA;AAAA,MACjB,QAAA;AAAA,MACA,IAAA,EAAM;AAAA,KACR;AAEA,IAAA,MAAA,EAAQ,IAAA,CAAK,CAAA,MAAA,EAAS,MAAM,CAAA,mBAAA,CAAqB,CAAA;AACjD,IAAA,MAAM,UAAU,IAAA,CAAK,EAAE,OAAA,EAAS,IAAA,EAAM,aAAa,CAAA;AAEnD,IAAA,OAAO,WAAA;AAAA,EACT;AAGA,EAAA,MAAA,EAAQ,IAAA,CAAK,CAAA,MAAA,EAAS,MAAM,CAAA,uBAAA,CAAyB,CAAA;AAGrD,EAAA,IAAI,WAAA,GAAc,IAAA;AAClB,EAAA,WAAA,CAAY,UAAU,CAAC,GAAI,KAAK,OAAA,IAAW,IAAK,OAAO,CAAA;AAGvD,EAAA,MAAM,EAAE,QAAO,GAAI,IAAA;AACnB,EAAA,MAAM,WAAA,GAA2B,CAAC,WAAA,EAAa,QAAA,EAAU,UAAU,CAAA;AAEnE,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,MAAA,CAAO,KAAK,CAAA,EAAG;AACtC,IAAA,MAAA,EAAQ,KAAK,CAAA,MAAA,EAAS,MAAM,CAAA,2CAAA,EAA8C,MAAA,CAAO,KAAK,CAAA,aAAA,CAAe,CAAA;AACrG,IAAA,WAAA,GAAc,kBAAkB,WAAA,EAAa;AAAA,MAC3C,KAAA,EAAO,WAAA;AAAA,MACP,OAAA,EAAS;AAAA,KACV,CAAA;AAAA,EACH,CAAA,MAAA,IAAW,MAAA,CAAO,KAAA,KAAU,gBAAA,EAAkB;AAC5C,IAAA,MAAA,EAAQ,IAAA,CAAK,CAAA,MAAA,EAAS,MAAM,CAAA,oDAAA,CAAsD,CAAA;AAClF,IAAA,WAAA,GAAc,iBAAA,CAAkB,WAAA,EAAa,EAAE,KAAA,EAAO,WAAW,CAAA;AAAA,EACnE,CAAA,MAAA,IAAW,MAAA,CAAO,KAAA,KAAU,SAAA,EAAW;AACrC,IAAA,MAAA,EAAQ,IAAA,CAAK,CAAA,MAAA,EAAS,MAAM,CAAA,uDAAA,CAAyD,CAAA;AAAA,EACvF;AAEA,EAAA,MAAM,UAAU,IAAA,CAAK,EAAE,OAAA,EAAS,IAAA,EAAM,aAAa,CAAA;AAEnD,EAAA,OAAO,WAAA;AACT;AAEO,SAAS,iBAAA,CAAkB;AAAA,EAChC,IAAA;AAAA,EACA,WAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAKgB;AACd,EAAA,OAAO;AAAA,IACL,IAAA,EAAM,gBAAgB,IAAI,CAAA;AAAA,IAC1B,WAAA;AAAA,IACA,OAAA,EAAS,gBAAgB,OAAO,CAAA;AAAA,IAChC,WAAA,EAAa,MAAM,mBAAA,CAAoB,GAAA,CAAI,KAAK,EAAE;AAAA,GACpD;AACF;AC3JO,IAAM,oBAAA,GAAuBC,mBAAE,MAAA,CAAO;AAAA,EAC3C,OAAA,EAASA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,iCAAiC;AAChE,CAAC,CAAA;AAEgC,qBAAqB,MAAA,CAAO;AAAA,EAC3D,MAAA,EAAQA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,gCAAgC;AAC9D,CAAC;AAKD,IAAM,wCAAA,GAA2CA,mBAAE,MAAA,CAAO;AAAA,EACxD,OAAA,EAASA,mBAAE,KAAA,CAAMA,kBAAA,CAAE,QAAQ,CAAA,CAAE,SAAS,uDAAuD,CAAA;AAAA,EAC7F,aAAaA,kBAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,sBAAsB;AACpE,CAAC,CAAA;AAED,IAAM,4BAAA,GAA+BA,mBAAE,MAAA,CAAO;AAAA,EAC5C,GAAA,EAAKA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,wCAAwC,CAAA;AAAA,EACjE,IAAIA,kBAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,wEAAwE,CAAA;AAAA,EAC3G,OAAOA,kBAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,mCAAmC,CAAA;AAAA,EACzE,cAAA,EAAgB,yCAAyC,QAAA;AAC3D,CAAC,CAAA;AAED,IAAM,8BAAA,GAAiCA,mBAAE,MAAA,CAAO;AAAA,EAC9C,mBAAA,EAAqBA,mBAAE,KAAA,CAAMA,kBAAA,CAAE,QAAQ,CAAA,CAAE,SAAS,0CAA0C,CAAA;AAAA,EAC5F,UAAUA,kBAAA,CAAE,OAAA,GAAU,QAAA,EAAS,CAAE,SAAS,6DAA6D,CAAA;AAAA,EACvG,eAAeA,kBAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,2CAA2C,CAAA;AAAA,EACzF,sBAAA,EAAwB,6BAA6B,QAAA;AACvD,CAAC,CAAA;AAGD,IAAM,cAAA,GAAiBA,mBAAE,MAAA,CAAO;AAAA,EAC9B,MAAMA,kBAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,CAAE,SAAS,gCAAgC,CAAA;AAAA,EACjE,IAAA,EAAMA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,cAAc,CAAA;AAAA,EACxC,QAAA,EAAUA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,4CAA4C;AAClG,CAAC,CAAA;AAED,IAAM,mBAAA,GAAsBA,mBAAE,MAAA,CAAO;AAAA,EACnC,KAAA,EAAOA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,oCAAoC,CAAA;AAAA,EAC/D,UAAUA,kBAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gCAAgC,CAAA;AAAA,EACzE,MAAMA,kBAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,4BAA4B;AACnE,CAAC,CAAA;AAED,IAAM,iBAAA,GAAoBA,mBAAE,MAAA,CAAO;AAAA,EACjC,GAAA,EAAKA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,0BAA0B,CAAA;AAAA,EACnD,UAAUA,kBAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,gCAAgC,CAAA;AAAA,EACzE,MAAMA,kBAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,4BAA4B;AACnE,CAAC,CAAA;AAED,IAAM,cAAA,GAAiBA,mBAAE,MAAA,CAAO;AAAA,EAC9B,MAAMA,kBAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,CAAE,SAAS,gCAAgC,CAAA;AAAA,EACjE,IAAA,EAAMA,mBAAE,KAAA,CAAM,CAAC,qBAAqB,iBAAiB,CAAC,CAAA,CAAE,QAAA,CAAS,qCAAqC,CAAA;AAAA,EACtG,QAAA,EAAUA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,4CAA4C;AAClG,CAAC,CAAA;AAED,IAAM,cAAA,GAAiBA,mBAAE,MAAA,CAAO;AAAA,EAC9B,MAAMA,kBAAA,CAAE,OAAA,CAAQ,MAAM,CAAA,CAAE,SAAS,gCAAgC,CAAA;AAAA,EACjE,IAAA,EAAMA,mBAAE,MAAA,CAAOA,kBAAA,CAAE,SAAS,CAAA,CAAE,SAAS,yBAAyB,CAAA;AAAA,EAC9D,QAAA,EAAUA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,4CAA4C;AAClG,CAAC,CAAA;AAED,IAAM,aAAaA,kBAAA,CAAE,KAAA,CAAM,CAAC,cAAA,EAAgB,cAAA,EAAgB,cAAc,CAAC,CAAA;AAG3E,IAAM,aAAA,GAAgBA,mBAAE,MAAA,CAAO;AAAA,EAC7B,MAAMA,kBAAA,CAAE,OAAA,CAAQ,SAAS,CAAA,CAAE,SAAS,YAAY,CAAA;AAAA,EAChD,SAAA,EAAWA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,2CAA2C,CAAA;AAAA,EAC1E,IAAA,EAAMA,mBAAE,IAAA,CAAK,CAAC,QAAQ,OAAO,CAAC,CAAA,CAAE,QAAA,CAAS,uBAAuB,CAAA;AAAA,EAChE,OAAOA,kBAAA,CAAE,KAAA,CAAM,UAAU,CAAA,CAAE,SAAS,iBAAiB,CAAA;AAAA,EACrD,WAAWA,kBAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,4CAA4C,CAAA;AAAA,EACtF,QAAQA,kBAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,8CAA8C,CAAA;AAAA,EACrF,gBAAA,EAAkBA,kBAAA,CAAE,KAAA,CAAMA,kBAAA,CAAE,MAAA,EAAQ,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,qDAAqD,CAAA;AAAA,EAC/G,UAAA,EAAYA,kBAAA,CACT,KAAA,CAAMA,kBAAA,CAAE,MAAA,EAAQ,CAAA,CAChB,QAAA,EAAS,CACT,QAAA,CAAS,wEAAwE,CAAA;AAAA,EACpF,QAAA,EAAUA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,oBAAoB;AAC1E,CAAC,CAAA;AAGD,IAAM,uBAAA,GAA0BA,mBAAE,MAAA,CAAO;AAAA,EACvC,OAAA,EAAS,aAAA;AAAA,EACT,aAAA,EAAe,+BAA+B,QAAA,EAAS;AAAA,EACvD,QAAA,EAAUA,kBAAA,CAAE,MAAA,CAAOA,kBAAA,CAAE,OAAA,EAAS,CAAA,CAAE,QAAA,EAAS,CAAE,QAAA,CAAS,oBAAoB;AAC1E,CAAC,CAAA;AAGD,IAAM,qBAAA,GAAwBA,mBAAE,MAAA,CAAO;AAAA,EACrC,EAAA,EAAIA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,SAAS,CAAA;AAAA,EACjC,eAAeA,kBAAA,CAAE,MAAA,GAAS,QAAA,EAAS,CAAE,SAAS,2CAA2C,CAAA;AAAA,EACzF,UAAUA,kBAAA,CAAE,MAAA,CAAOA,mBAAE,OAAA,EAAS,EAAE,QAAA;AAClC,CAAC,CAAA;AAGD,IAAM,kBAAA,GAAqBA,mBAAE,MAAA,CAAO;AAAA,EAClC,EAAA,EAAIA,kBAAA,CAAE,MAAA,EAAO,CAAE,SAAS,SAAS,CAAA;AAAA,EACjC,UAAUA,kBAAA,CAAE,MAAA,CAAOA,mBAAE,OAAA,EAAS,EAAE,QAAA;AAClC,CAAC,CAAA;AAGoCA,mBAAE,MAAA,CAAO;AAAA,EAC5C,OAAA,EAAS,aAAA;AAAA,EACT,UAAUA,kBAAA,CAAE,MAAA,CAAOA,mBAAE,GAAA,EAAK,EAAE,QAAA;AAC9B,CAAC;AAEkCA,mBAAE,MAAA,CAAO;AAAA,EAC1C,EAAA,EAAIA,mBAAE,MAAA;AACR,CAAC;AAGD,IAAM,6BAA6BA,kBAAA,CAAE,KAAA,CAAM,CAAC,uBAAA,EAAyB,qBAAA,EAAuB,kBAAkB,CAAC,CAAA;AAExG,IAAM,wBAAA,GAA2BA,mBAAE,MAAA,CAAO;AAAA,EAC/C,OAAA,EAASA,kBAAA,CAAE,OAAA,CAAQ,KAAK,CAAA;AAAA,EACxB,EAAA,EAAIA,kBAAA,CAAE,KAAA,CAAM,CAACA,kBAAA,CAAE,QAAO,EAAGA,kBAAA,CAAE,MAAA,EAAQ,CAAC,CAAA;AAAA,EACpC,MAAA,EAAQA,mBAAE,IAAA,CAAK,CAAC,gBAAgB,gBAAA,EAAkB,WAAA,EAAa,cAAc,CAAC,CAAA;AAAA,EAC9E,MAAA,EAAQ;AACV,CAAC,CAAA;AAGM,IAAM,uBAAA,GAA0BA,mBAAE,MAAA,CAAO;AAAA,EAC9C,IAAA,EAAMA,mBAAE,MAAA,EAAO;AAAA,EACf,WAAA,EAAaA,mBAAE,MAAA,EAAO;AAAA,EACtB,GAAA,EAAKA,mBAAE,MAAA,EAAO;AAAA,EACd,QAAA,EAAUA,mBACP,MAAA,CAAO;AAAA,IACN,YAAA,EAAcA,mBAAE,MAAA,EAAO;AAAA,IACvB,GAAA,EAAKA,mBAAE,MAAA;AAAO,GACf,EACA,QAAA,EAAS;AAAA,EACZ,OAAA,EAASA,mBAAE,MAAA,EAAO;AAAA,EAClB,YAAA,EAAcA,mBAAE,MAAA,CAAO;AAAA,IACrB,SAAA,EAAWA,kBAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,IAChC,iBAAA,EAAmBA,kBAAA,CAAE,OAAA,EAAQ,CAAE,QAAA,EAAS;AAAA,IACxC,sBAAA,EAAwBA,kBAAA,CAAE,OAAA,EAAQ,CAAE,QAAA;AAAS,GAC9C,CAAA;AAAA,EACD,iBAAA,EAAmBA,kBAAA,CAAE,KAAA,CAAMA,kBAAA,CAAE,QAAQ,CAAA;AAAA,EACrC,kBAAA,EAAoBA,kBAAA,CAAE,KAAA,CAAMA,kBAAA,CAAE,QAAQ,CAAA;AAAA,EACtC,QAAQA,kBAAA,CAAE,KAAA;AAAA,IACRA,mBAAE,MAAA,CAAO;AAAA,MACP,EAAA,EAAIA,mBAAE,MAAA,EAAO;AAAA,MACb,IAAA,EAAMA,mBAAE,MAAA,EAAO;AAAA,MACf,WAAA,EAAaA,mBAAE,MAAA,EAAO;AAAA,MACtB,MAAMA,kBAAA,CAAE,KAAA,CAAMA,mBAAE,MAAA,EAAQ,EAAE,QAAA;AAAS,KACpC;AAAA;AAEL,CAAC,CAAA;AAEiCA,mBAAE,OAAA;AAE7B,IAAM,4BAAA,GAA+BA,mBAAE,OAAA,EAAQ;;;AH/HtD,IAAMC,wBAAAA,GAA0BD,IAAE,MAAA,CAAO;AAAA,EACvC,OAAA,EAASA,IAAE,MAAA,CAAO;AAAA,IAChB,MAAMA,GAAAA,CAAE,IAAA,CAAK,CAAC,MAAA,EAAQ,OAAO,CAAC,CAAA;AAAA,IAC9B,OAAOA,GAAAA,CAAE,KAAA;AAAA,MACPA,IAAE,MAAA,CAAO;AAAA,QACP,IAAA,EAAMA,GAAAA,CAAE,IAAA,CAAK,CAAC,MAAM,CAAC,CAAA;AAAA,QACrB,IAAA,EAAMA,IAAE,MAAA;AAAO,OAChB;AAAA,KACH;AAAA,IACA,IAAA,EAAMA,GAAAA,CAAE,OAAA,CAAQ,SAAS,CAAA;AAAA,IACzB,SAAA,EAAWA,IAAE,MAAA,EAAO;AAAA,IACpB,SAAA,EAAWA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC/B,MAAA,EAAQA,GAAAA,CAAE,MAAA,EAAO,CAAE,QAAA,EAAS;AAAA,IAC5B,kBAAkBA,GAAAA,CAAE,KAAA,CAAMA,IAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,IAC/C,YAAYA,GAAAA,CAAE,KAAA,CAAMA,IAAE,MAAA,EAAQ,EAAE,QAAA,EAAS;AAAA,IACzC,UAAUA,GAAAA,CAAE,MAAA,CAAOA,IAAE,GAAA,EAAK,EAAE,QAAA;AAAS,GACtC;AACH,CAAC,CAAA;AAED,eAAsB,uBAAA,CAAwB;AAAA,EAC5C,MAAA;AAAA,EACA,OAAA;AAAA,EACA,YAAA,GAAe,QAAQ,OAAO,CAAA,CAAA;AAAA,EAC9B,QAAA,GAAW;AAAA,IACT,YAAA,EAAc,QAAA;AAAA,IACd,GAAA,EAAK;AAAA,GACP;AAAA,EACA,OAAA,GAAU,KAAA;AAAA,EACV;AACF,CAAA,EASuB;AACrB,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,YAAA,CAAa,OAAO,CAAA;AAEzC,EAAA,IAAI,CAAC,KAAA,EAAO;AACV,IAAA,MAAM,IAAI,KAAA,CAAM,CAAA,cAAA,EAAiB,OAAO,CAAA,UAAA,CAAY,CAAA;AAAA,EACtD;AAEA,EAAA,MAAM,CAAC,cAAc,KAAK,CAAA,GAGtB,MAAM,OAAA,CAAQ,GAAA,CAAI,CAAC,KAAA,CAAM,eAAA,CAAgB,EAAE,cAAA,EAAgB,GAAG,KAAA,CAAM,SAAA,CAAU,EAAE,cAAA,EAAgB,CAAC,CAAC,CAAA;AAGtG,EAAA,MAAM,SAAA,GAAuB;AAAA,IAC3B,IAAA,EAAM,MAAM,EAAA,IAAM,OAAA;AAAA,IAClB,WAAA,EAAaE,8CAA4B,YAAY,CAAA;AAAA,IACrD,GAAA,EAAK,YAAA;AAAA,IACL,QAAA;AAAA,IACA,OAAA;AAAA,IACA,YAAA,EAAc;AAAA,MACZ,SAAA,EAAW,IAAA;AAAA;AAAA,MACX,iBAAA,EAAmB,KAAA;AAAA,MACnB,sBAAA,EAAwB;AAAA,KAC1B;AAAA,IACA,iBAAA,EAAmB,CAAC,MAAM,CAAA;AAAA,IAC1B,kBAAA,EAAoB,CAAC,MAAM,CAAA;AAAA;AAAA,IAE3B,MAAA,EAAQ,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,CAAE,IAAI,CAAC,CAAC,MAAA,EAAQ,IAAI,CAAA,MAAO;AAAA,MACrD,EAAA,EAAI,MAAA;AAAA,MACJ,IAAA,EAAM,MAAA;AAAA,MACN,WAAA,EAAa,IAAA,CAAK,WAAA,IAAe,CAAA,MAAA,EAAS,MAAM,CAAA,CAAA;AAAA;AAAA,MAEhD,IAAA,EAAM,CAAC,MAAM;AAAA,KACf,CAAE;AAAA,GACJ;AAEA,EAAA,OAAO,SAAA;AACT;AAEA,SAAS,0BAA0B,MAAA,EAA2B;AAC5D,EAAA,IAAI;AACF,IAAAD,wBAAAA,CAAwB,MAAM,MAAM,CAAA;AAAA,EACtC,SAAS,KAAA,EAAO;AACd,IAAA,IAAI,KAAA,YAAiBD,IAAE,QAAA,EAAU;AAC/B,MAAA,MAAMD,mBAAe,aAAA,CAAe,KAAA,CAAqB,MAAA,CAAO,CAAC,EAAG,OAAO,CAAA;AAAA,IAC7E;AAEA,IAAA,MAAM,KAAA;AAAA,EACR;AACF;AAEA,eAAsB,iBAAA,CAAkB;AAAA,EACtC,SAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAQG;AACD,EAAA,yBAAA,CAA0B,MAAM,CAAA;AAEhC,EAAA,MAAM,EAAE,OAAA,EAAS,QAAA,EAAS,GAAI,MAAA;AAC9B,EAAA,MAAM,EAAE,WAAU,GAAI,OAAA;AACtB,EAAA,MAAM,MAAA,GAAS,OAAA,CAAQ,MAAA,IAAU,MAAA,CAAO,UAAA,EAAW;AAGnD,EAAA,IAAI,WAAA,GAAc,MAAM,gBAAA,CAAiB;AAAA,IACvC,MAAA;AAAA,IACA,SAAA;AAAA,IACA,OAAA;AAAA,IACA,OAAA;AAAA,IACA,SAAA;AAAA,IACA;AAAA,GACD,CAAA;AAGD,EAAgB,iBAAA,CAAkB;AAAA,IAChC,IAAA,EAAM,WAAA;AAAA,IACN,WAAA,EAAa,OAAA;AAAA,IACb,OAAA,EAAS,WAAA,CAAY,OAAA,IAAW,EAAC;AAAA,IACjC,qBAAqB,SAAA,CAAU;AAAA,GAChC;AAED,EAAA,IAAI;AAGF,IAAA,MAAM,UAAA,GAAc,QAAA,EAAU,UAAA,IAA0B,OAAA,CAAQ,UAAU,UAAA,IAAyB,OAAA;AACnG,IAAA,MAAM,MAAA,GAAS,MAAM,KAAA,CAAM,QAAA,CAAS,CAAC,oBAAA,CAAqB,OAAO,CAAC,CAAA,EAAG;AAAA,MACnE,KAAA,EAAO,MAAA;AAAA,MACP,cAAA;AAAA,MACA,GAAI,SAAA,GAAY,EAAE,UAAU,SAAA,EAAW,UAAA,KAAe;AAAC,KACxD,CAAA;AAED,IAAA,WAAA,GAAc,kBAAkB,WAAA,EAAa;AAAA,MAC3C,KAAA,EAAO,WAAA;AAAA,MACP,OAAA,EAAS;AAAA,QACP,SAAA,EAAW,OAAO,UAAA,EAAW;AAAA,QAC7B,IAAA,EAAM,OAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL;AAAA,YACE,IAAA,EAAM,MAAA;AAAA,YACN,MAAM,MAAA,CAAO;AAAA;AACf,SACF;AAAA,QACA,IAAA,EAAM;AAAA;AACR,KACD,CAAA;AAGD,IAAA,WAAA,CAAY,QAAA,GAAW;AAAA,MACrB,GAAG,WAAA,CAAY,QAAA;AAAA,MACf,SAAA,EAAW;AAAA,QACT,WAAW,MAAA,CAAO,SAAA;AAAA,QAClB,aAAa,MAAA,CAAO,WAAA;AAAA,QACpB,OAAO,MAAA,CAAO,KAAA;AAAA,QACd,cAAc,MAAA,CAAO;AAAA;AACvB,KACF;AAEA,IAAA,MAAM,UAAU,IAAA,CAAK,EAAE,OAAA,EAAS,IAAA,EAAM,aAAa,CAAA;AACpC,EACjB,SAAS,YAAA,EAAc;AAErB,IAAA,MAAM,mBAAA,GAAqD;AAAA,MACzD,KAAA,EAAO,QAAA;AAAA,MACP,OAAA,EAAS;AAAA,QACP,SAAA,EAAW,OAAO,UAAA,EAAW;AAAA,QAC7B,IAAA,EAAM,OAAA;AAAA,QACN,KAAA,EAAO;AAAA,UACL;AAAA,YACE,IAAA,EAAM,MAAA;AAAA,YACN,IAAA,EAAM,mBAAmB,YAAA,YAAwB,KAAA,GAAQ,aAAa,OAAA,GAAU,MAAA,CAAO,YAAY,CAAC,CAAA;AAAA;AACtG,SACF;AAAA,QACA,IAAA,EAAM;AAAA;AACR,KACF;AACA,IAAA,WAAA,GAAc,iBAAA,CAAkB,aAAa,mBAAmB,CAAA;AAEhE,IAAA,IAAI;AACF,MAAA,MAAM,UAAU,IAAA,CAAK,EAAE,OAAA,EAAS,IAAA,EAAM,aAAa,CAAA;AAAA,IACrD,SAAS,SAAA,EAAW;AAElB,MAAA,MAAA,EAAQ,MAAM,CAAA,oBAAA,EAAuB,WAAA,CAAY,EAAE,CAAA,qBAAA,CAAA,EAAyB,WAAW,OAAO,CAAA;AAAA,IAChG;AAEA,IAAA,OAAO,cAAA,CAAe,YAAA,EAAc,SAAA,EAAW,WAAA,CAAY,IAAI,MAAM,CAAA;AAAA,EACvE;AAGA,EAAA,OAAO,qBAAA,CAAsB,WAAW,WAAW,CAAA;AACrD;AAEA,eAAsB,aAAA,CAAc;AAAA,EAClC,SAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA;AACF,CAAA,EAKG;AACD,EAAA,MAAM,OAAO,MAAM,SAAA,CAAU,KAAK,EAAE,OAAA,EAAS,QAAQ,CAAA;AAErD,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,MAAMA,kBAAAA,CAAe,aAAa,MAAM,CAAA;AAAA,EAC1C;AAEA,EAAA,OAAO,qBAAA,CAAsB,WAAW,IAAI,CAAA;AAC9C;AAEA,gBAAuB,mBAAA,CAAoB;AAAA,EACzC,SAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA,KAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAQG;AACD,EAAA,MAAM,sBAAsB,SAAA,EAAW;AAAA,IACrC,KAAA,EAAO,SAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP,SAAA,EAAW,OAAO,UAAA,EAAW;AAAA,MAC7B,IAAA,EAAM,SAAA;AAAA,MACN,IAAA,EAAM,OAAA;AAAA,MACN,OAAO,CAAC,EAAE,MAAM,MAAA,EAAQ,IAAA,EAAM,0BAA0B;AAAA;AAC1D,GACD,CAAA;AAED,EAAA,IAAI,MAAA;AACJ,EAAA,IAAI;AACF,IAAA,MAAA,GAAS,MAAM,iBAAA,CAAkB;AAAA,MAC/B,SAAA;AAAA,MACA,MAAA;AAAA,MACA,SAAA;AAAA,MACA,KAAA;AAAA,MACA,OAAA;AAAA,MACA,cAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,EACH,SAAS,GAAA,EAAK;AACZ,IAAA,IAAI,EAAE,eAAeA,kBAAAA,CAAAA,EAAiB;AACpC,MAAA,MAAM,GAAA;AAAA,IACR;AAEA,IAAA,MAAA,GAAS,mBAAA,CAAoB,SAAA,EAAW,GAAA,CAAI,cAAA,EAAgB,CAAA;AAAA,EAC9D;AAEA,EAAA,MAAM,MAAA;AACR;AAEA,eAAsB,gBAAA,CAAiB;AAAA,EACrC,SAAA;AAAA,EACA,SAAA;AAAA,EACA,OAAA;AAAA,EACA,MAAA;AAAA,EACA;AACF,CAAA,EAMG;AAED,EAAA,IAAI,IAAA,GAAO,MAAM,SAAA,CAAU,IAAA,CAAK;AAAA,IAC9B,OAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,IAAI,CAAC,IAAA,EAAM;AACT,IAAA,MAAMA,kBAAAA,CAAe,aAAa,MAAM,CAAA;AAAA,EAC1C;AAGA,EAAA,MAAM,WAAA,GAA2B,CAAC,WAAA,EAAa,QAAA,EAAU,UAAU,CAAA;AAEnE,EAAA,IAAI,WAAA,CAAY,QAAA,CAAS,IAAA,CAAK,MAAA,CAAO,KAAK,CAAA,EAAG;AAC3C,IAAA,MAAA,EAAQ,KAAK,CAAA,KAAA,EAAQ,MAAM,2BAA2B,IAAA,CAAK,MAAA,CAAO,KAAK,CAAA,gBAAA,CAAkB,CAAA;AACzF,IAAA,OAAO,qBAAA,CAAsB,WAAW,IAAI,CAAA;AAAA,EAC9C;AAGA,EAAA,SAAA,CAAU,mBAAA,CAAoB,IAAI,MAAM,CAAA;AAGxC,EAAA,MAAM,YAAA,GAA8C;AAAA,IAClD,KAAA,EAAO,UAAA;AAAA,IACP,OAAA,EAAS;AAAA,MACP,IAAA,EAAM,OAAA;AAAA,MACN,OAAO,CAAC,EAAE,MAAM,MAAA,EAAQ,IAAA,EAAM,8BAA8B,CAAA;AAAA,MAC5D,IAAA,EAAM,SAAA;AAAA,MACN,SAAA,EAAW,OAAO,UAAA;AAAW;AAC/B,GACF;AAEA,EAAA,IAAA,GAAO,iBAAA,CAAkB,MAAM,YAAY,CAAA;AAG3C,EAAA,MAAM,SAAA,CAAU,IAAA,CAAK,EAAE,OAAA,EAAS,MAAM,CAAA;AAGtC,EAAA,SAAA,CAAU,mBAAA,CAAoB,OAAO,MAAM,CAAA;AAG3C,EAAA,OAAO,qBAAA,CAAsB,WAAW,IAAI,CAAA;AAC9C;AAEA,eAAsB,wBAAA,CAAyB;AAAA,EAC7C,SAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,cAAA;AAAA,EACA,MAAA;AAAA,EACA,MAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAQiB;AACf,EAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,YAAA,CAAa,OAAO,CAAA;AAEzC,EAAA,IAAI,MAAA;AAEJ,EAAA,IAAI;AAGF,IAAA,MAAA,GAAS,QAAQ,MAAA,GAAS,MAAA,CAAO,EAAA,GAAK,MAAA,CAAO,SAAS,MAAA,IAAU,qBAAA;AAGhE,IAAA,QAAQ,MAAA;AAAQ,MACd,KAAK,cAAA,EAAgB;AACnB,QAAA,MAAMI,OAAAA,GAAS,MAAM,iBAAA,CAAkB;AAAA,UACrC,SAAA;AAAA,UACA,MAAA;AAAA,UACA,SAAA;AAAA,UACA,KAAA;AAAA,UACA,OAAA;AAAA,UACA;AAAA,SACD,CAAA;AACD,QAAA,OAAOA,OAAAA;AAAA,MACT;AAAA,MACA,KAAK,gBAAA;AACH,QAAA,MAAM,MAAA,GAAS,MAAM,mBAAA,CAAoB;AAAA,UACvC,SAAA;AAAA,UACA,SAAA;AAAA,UACA,MAAA;AAAA,UACA,KAAA;AAAA,UACA,OAAA;AAAA,UACA;AAAA,SACD,CAAA;AACD,QAAA,OAAO,MAAA;AAAA,MAET,KAAK,WAAA,EAAa;AAChB,QAAA,MAAMA,OAAAA,GAAS,MAAM,aAAA,CAAc;AAAA,UACjC,SAAA;AAAA,UACA,SAAA;AAAA,UACA,OAAA;AAAA,UACA;AAAA,SACD,CAAA;AAED,QAAA,OAAOA,OAAAA;AAAA,MACT;AAAA,MACA,KAAK,cAAA,EAAgB;AACnB,QAAA,MAAMA,OAAAA,GAAS,MAAM,gBAAA,CAAiB;AAAA,UACpC,SAAA;AAAA,UACA,SAAA;AAAA,UACA,OAAA;AAAA,UACA;AAAA,SACD,CAAA;AAED,QAAA,OAAOA,OAAAA;AAAA,MACT;AAAA,MACA;AACE,QAAA,MAAMJ,kBAAAA,CAAe,eAAe,MAAM,CAAA;AAAA;AAC9C,EACF,SAAS,KAAA,EAAO;AACd,IAAA,IAAI,KAAA,YAAiBA,kBAAAA,IAAkB,MAAA,IAAU,CAAC,MAAM,MAAA,EAAQ;AAC9D,MAAA,KAAA,CAAM,MAAA,GAAS,MAAA;AAAA,IACjB;AAEA,IAAA,OAAO,cAAA,CAAe,KAAA,EAAO,SAAA,EAAW,MAAA,EAAQ,MAAM,CAAA;AAAA,EACxD;AACF;AAMO,IAAM,uBAAuBK,6BAAA,CAAY;AAAA,EAC9C,MAAA,EAAQ,KAAA;AAAA,EACR,IAAA,EAAM,uCAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,oBAAA;AAAA,EACjB,cAAA,EAAgB,uBAAA;AAAA,EAChB,OAAA,EAAS,gBAAA;AAAA,EACT,WAAA,EAAa,+DAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,SAAS,OAAO,EAAE,MAAA,EAAQ,OAAA,EAAS,gBAAe,KAAM;AACtD,IAAA,MAAM,YAAA,GAAe,QAAQ,OAAO,CAAA,CAAA;AACpC,IAAA,MAAM,QAAA,GAAW;AAAA,MACf,YAAA,EAAc,QAAA;AAAA,MACd,GAAA,EAAK;AAAA,KACP;AACA,IAAA,MAAM,OAAA,GAAU,KAAA;AAEhB,IAAA,MAAM,KAAA,GAAQ,MAAA,CAAO,YAAA,CAAa,OAAiB,CAAA;AAEnD,IAAA,IAAI,CAAC,KAAA,EAAO;AACV,MAAA,MAAM,IAAI,KAAA,CAAM,CAAA,cAAA,EAAiB,OAAO,CAAA,UAAA,CAAY,CAAA;AAAA,IACtD;AAEA,IAAA,MAAM,CAAC,cAAc,KAAK,CAAA,GAGtB,MAAM,OAAA,CAAQ,GAAA,CAAI,CAAC,KAAA,CAAM,eAAA,CAAgB,EAAE,cAAA,EAAgB,GAAG,KAAA,CAAM,SAAA,CAAU,EAAE,cAAA,EAAgB,CAAC,CAAC,CAAA;AAEtG,IAAA,MAAM,SAAA,GAAuB;AAAA,MAC3B,IAAA,EAAM,MAAM,EAAA,IAAO,OAAA;AAAA,MACnB,WAAA,EAAaF,8CAA4B,YAAY,CAAA;AAAA,MACrD,GAAA,EAAK,YAAA;AAAA,MACL,QAAA;AAAA,MACA,OAAA;AAAA,MACA,YAAA,EAAc;AAAA,QACZ,SAAA,EAAW,IAAA;AAAA,QACX,iBAAA,EAAmB,KAAA;AAAA,QACnB,sBAAA,EAAwB;AAAA,OAC1B;AAAA,MACA,iBAAA,EAAmB,CAAC,MAAM,CAAA;AAAA,MAC1B,kBAAA,EAAoB,CAAC,MAAM,CAAA;AAAA,MAC3B,MAAA,EAAQ,MAAA,CAAO,OAAA,CAAQ,KAAK,CAAA,CAAE,IAAI,CAAC,CAAC,MAAA,EAAQ,IAAI,CAAA,MAAO;AAAA,QACrD,EAAA,EAAI,MAAA;AAAA,QACJ,IAAA,EAAM,MAAA;AAAA,QACN,WAAA,EAAa,IAAA,CAAK,WAAA,IAAe,CAAA,MAAA,EAAS,MAAM,CAAA,CAAA;AAAA,QAChD,IAAA,EAAM,CAAC,MAAM;AAAA,OACf,CAAE;AAAA,KACJ;AAEA,IAAA,OAAO,SAAA;AAAA,EACT;AACF,CAAC;AAEM,IAAM,wBAAwBE,6BAAA,CAAY;AAAA,EAC/C,MAAA,EAAQ,MAAA;AAAA,EACR,IAAA,EAAM,eAAA;AAAA,EACN,YAAA,EAAc,MAAA;AAAA,EACd,eAAA,EAAiB,oBAAA;AAAA,EACjB,UAAA,EAAY,wBAAA;AAAA,EACZ,cAAA,EAAgB,4BAAA;AAAA,EAChB,OAAA,EAAS,eAAA;AAAA,EACT,WAAA,EAAa,6DAAA;AAAA,EACb,IAAA,EAAM,CAAC,gBAAgB,CAAA;AAAA,EACvB,OAAA,EAAS,OAAO,EAAE,MAAA,EAAQ,SAAS,cAAA,EAAgB,SAAA,EAAW,GAAG,UAAA,EAAW,KAAM;AAChF,IAAA,MAAM,EAAE,EAAA,EAAI,SAAA,EAAW,MAAA,EAAQ,QAAO,GAAI,UAAA;AAE1C,IAAA,OAAO,MAAM,wBAAA,CAAyB;AAAA,MACpC,SAAA,EAAW,OAAO,SAAS,CAAA;AAAA,MAC3B,MAAA;AAAA,MACA,OAAA;AAAA,MACA,cAAA;AAAA,MACA,MAAA;AAAA,MACA,MAAA;AAAA,MACA;AAAA,KACD,CAAA;AAAA,EACH;AACF,CAAC","file":"chunk-Y3VSCOCE.cjs","sourcesContent":["import { MastraA2AError } from '@mastra/core/a2a';\nimport type {\n MessageSendParams,\n TaskQueryParams,\n TaskIdParams,\n AgentCard,\n TaskStatus,\n TaskState,\n} from '@mastra/core/a2a';\nimport type { Agent } from '@mastra/core/agent';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport { z } from 'zod';\nimport { convertToCoreMessage, normalizeError, createSuccessResponse, createErrorResponse } from '../a2a/protocol';\nimport type { InMemoryTaskStore } from '../a2a/store';\nimport { applyUpdateToTask, createTaskContext, loadOrCreateTask } from '../a2a/tasks';\nimport {\n a2aAgentIdPathParams,\n agentExecutionBodySchema,\n agentCardResponseSchema,\n agentExecutionResponseSchema,\n} from '../schemas/a2a';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport type { Context } from '../types';\nimport { convertInstructionsToString } from '../utils';\n\nconst messageSendParamsSchema = z.object({\n message: z.object({\n role: z.enum(['user', 'agent']),\n parts: z.array(\n z.object({\n kind: z.enum(['text']),\n text: z.string(),\n }),\n ),\n kind: z.literal('message'),\n messageId: z.string(),\n contextId: z.string().optional(),\n taskId: z.string().optional(),\n referenceTaskIds: z.array(z.string()).optional(),\n extensions: z.array(z.string()).optional(),\n metadata: z.record(z.any()).optional(),\n }),\n});\n\nexport async function getAgentCardByIdHandler({\n mastra,\n agentId,\n executionUrl = `/a2a/${agentId}`,\n provider = {\n organization: 'Mastra',\n url: 'https://mastra.ai',\n },\n version = '1.0',\n requestContext,\n}: Context & {\n requestContext: RequestContext;\n agentId: keyof ReturnType<typeof mastra.listAgents>;\n executionUrl?: string;\n version?: string;\n provider?: {\n organization: string;\n url: string;\n };\n}): Promise<AgentCard> {\n const agent = mastra.getAgentById(agentId);\n\n if (!agent) {\n throw new Error(`Agent with ID ${agentId} not found`);\n }\n\n const [instructions, tools]: [\n Awaited<ReturnType<typeof agent.getInstructions>>,\n Awaited<ReturnType<typeof agent.listTools>>,\n ] = await Promise.all([agent.getInstructions({ requestContext }), agent.listTools({ requestContext })]);\n\n // Extract agent information to create the AgentCard\n const agentCard: AgentCard = {\n name: agent.id || agentId,\n description: convertInstructionsToString(instructions),\n url: executionUrl,\n provider,\n version,\n capabilities: {\n streaming: true, // All agents support streaming\n pushNotifications: false,\n stateTransitionHistory: false,\n },\n defaultInputModes: ['text'],\n defaultOutputModes: ['text'],\n // Convert agent tools to skills format for A2A protocol\n skills: Object.entries(tools).map(([toolId, tool]) => ({\n id: toolId,\n name: toolId,\n description: tool.description || `Tool: ${toolId}`,\n // Optional fields\n tags: ['tool'],\n })),\n };\n\n return agentCard;\n}\n\nfunction validateMessageSendParams(params: MessageSendParams) {\n try {\n messageSendParamsSchema.parse(params);\n } catch (error) {\n if (error instanceof z.ZodError) {\n throw MastraA2AError.invalidParams((error as z.ZodError).errors[0]!.message);\n }\n\n throw error;\n }\n}\n\nexport async function handleMessageSend({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n logger,\n requestContext,\n}: {\n requestId: string;\n params: MessageSendParams;\n taskStore: InMemoryTaskStore;\n agent: Agent;\n agentId: string;\n logger?: IMastraLogger;\n requestContext: RequestContext;\n}) {\n validateMessageSendParams(params);\n\n const { message, metadata } = params;\n const { contextId } = message;\n const taskId = message.taskId || crypto.randomUUID();\n\n // Load or create task\n let currentData = await loadOrCreateTask({\n taskId,\n taskStore,\n agentId,\n message,\n contextId,\n metadata,\n });\n\n // Use the new TaskContext definition, passing history\n const context = createTaskContext({\n task: currentData,\n userMessage: message,\n history: currentData.history || [],\n activeCancellations: taskStore.activeCancellations,\n });\n\n try {\n // Pass contextId as threadId for memory persistence across A2A conversations\n // Allow user to pass resourceId via metadata, fall back to agentId\n const resourceId = (metadata?.resourceId as string) ?? (message.metadata?.resourceId as string) ?? agentId;\n const result = await agent.generate([convertToCoreMessage(message)], {\n runId: taskId,\n requestContext,\n ...(contextId ? { threadId: contextId, resourceId } : {}),\n });\n\n currentData = applyUpdateToTask(currentData, {\n state: 'completed',\n message: {\n messageId: crypto.randomUUID(),\n role: 'agent',\n parts: [\n {\n kind: 'text',\n text: result.text,\n },\n ],\n kind: 'message',\n },\n });\n\n // Store execution details in task metadata\n currentData.metadata = {\n ...currentData.metadata,\n execution: {\n toolCalls: result.toolCalls,\n toolResults: result.toolResults,\n usage: result.usage,\n finishReason: result.finishReason,\n },\n };\n\n await taskStore.save({ agentId, data: currentData });\n context.task = currentData;\n } catch (handlerError) {\n // If handler throws, apply 'failed' status, save, and rethrow\n const failureStatusUpdate: Omit<TaskStatus, 'timestamp'> = {\n state: 'failed',\n message: {\n messageId: crypto.randomUUID(),\n role: 'agent',\n parts: [\n {\n kind: 'text',\n text: `Handler failed: ${handlerError instanceof Error ? handlerError.message : String(handlerError)}`,\n },\n ],\n kind: 'message',\n },\n };\n currentData = applyUpdateToTask(currentData, failureStatusUpdate);\n\n try {\n await taskStore.save({ agentId, data: currentData });\n } catch (saveError) {\n // @ts-expect-error saveError is an unknown error\n logger?.error(`Failed to save task ${currentData.id} after handler error:`, saveError?.message);\n }\n\n return normalizeError(handlerError, requestId, currentData.id, logger); // Rethrow original error\n }\n\n // The loop finished, send the final task state\n return createSuccessResponse(requestId, currentData);\n}\n\nexport async function handleTaskGet({\n requestId,\n taskStore,\n agentId,\n taskId,\n}: {\n requestId: string;\n taskStore: InMemoryTaskStore;\n agentId: string;\n taskId: string;\n}) {\n const task = await taskStore.load({ agentId, taskId });\n\n if (!task) {\n throw MastraA2AError.taskNotFound(taskId);\n }\n\n return createSuccessResponse(requestId, task);\n}\n\nexport async function* handleMessageStream({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n logger,\n requestContext,\n}: {\n requestId: string;\n params: MessageSendParams;\n taskStore: InMemoryTaskStore;\n agent: Agent;\n agentId: string;\n logger?: IMastraLogger;\n requestContext: RequestContext;\n}) {\n yield createSuccessResponse(requestId, {\n state: 'working',\n message: {\n messageId: crypto.randomUUID(),\n kind: 'message',\n role: 'agent',\n parts: [{ kind: 'text', text: 'Generating response...' }],\n },\n });\n\n let result;\n try {\n result = await handleMessageSend({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n requestContext,\n logger,\n });\n } catch (err) {\n if (!(err instanceof MastraA2AError)) {\n throw err;\n }\n\n result = createErrorResponse(requestId, err.toJSONRPCError());\n }\n\n yield result;\n}\n\nexport async function handleTaskCancel({\n requestId,\n taskStore,\n agentId,\n taskId,\n logger,\n}: {\n requestId: string;\n taskStore: InMemoryTaskStore;\n agentId: string;\n taskId: string;\n logger?: IMastraLogger;\n}) {\n // Load task and history\n let data = await taskStore.load({\n agentId,\n taskId,\n });\n\n if (!data) {\n throw MastraA2AError.taskNotFound(taskId);\n }\n\n // Check if cancelable (not already in a final state)\n const finalStates: TaskState[] = ['completed', 'failed', 'canceled'];\n\n if (finalStates.includes(data.status.state)) {\n logger?.info(`Task ${taskId} already in final state ${data.status.state}, cannot cancel.`);\n return createSuccessResponse(requestId, data);\n }\n\n // Signal cancellation\n taskStore.activeCancellations.add(taskId);\n\n // Apply 'canceled' state update\n const cancelUpdate: Omit<TaskStatus, 'timestamp'> = {\n state: 'canceled',\n message: {\n role: 'agent',\n parts: [{ kind: 'text', text: 'Task cancelled by request.' }],\n kind: 'message',\n messageId: crypto.randomUUID(),\n },\n };\n\n data = applyUpdateToTask(data, cancelUpdate);\n\n // Save the updated state\n await taskStore.save({ agentId, data });\n\n // Remove from active cancellations *after* saving\n taskStore.activeCancellations.delete(taskId);\n\n // Return the updated task object\n return createSuccessResponse(requestId, data);\n}\n\nexport async function getAgentExecutionHandler({\n requestId,\n mastra,\n agentId,\n requestContext,\n method,\n params,\n taskStore,\n logger,\n}: Context & {\n requestId: string;\n requestContext: RequestContext;\n agentId: string;\n method: 'message/send' | 'message/stream' | 'tasks/get' | 'tasks/cancel';\n params: MessageSendParams | TaskQueryParams | TaskIdParams;\n taskStore: InMemoryTaskStore;\n logger?: IMastraLogger;\n}): Promise<any> {\n const agent = mastra.getAgentById(agentId);\n\n let taskId: string | undefined; // For error context\n\n try {\n // Attempt to get task ID early for error context. Cast params to any to access id.\n // Proper validation happens within specific handlers.\n taskId = 'id' in params ? params.id : params.message?.taskId || 'No task ID provided';\n\n // 2. Route based on method\n switch (method) {\n case 'message/send': {\n const result = await handleMessageSend({\n requestId,\n params: params as MessageSendParams,\n taskStore,\n agent,\n agentId,\n requestContext,\n });\n return result;\n }\n case 'message/stream':\n const result = await handleMessageStream({\n requestId,\n taskStore,\n params: params as MessageSendParams,\n agent,\n agentId,\n requestContext,\n });\n return result;\n\n case 'tasks/get': {\n const result = await handleTaskGet({\n requestId,\n taskStore,\n agentId,\n taskId,\n });\n\n return result;\n }\n case 'tasks/cancel': {\n const result = await handleTaskCancel({\n requestId,\n taskStore,\n agentId,\n taskId,\n });\n\n return result;\n }\n default:\n throw MastraA2AError.methodNotFound(method);\n }\n } catch (error) {\n if (error instanceof MastraA2AError && taskId && !error.taskId) {\n error.taskId = taskId; // Add task ID context if missing\n }\n\n return normalizeError(error, requestId, taskId, logger);\n }\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const GET_AGENT_CARD_ROUTE = createRoute({\n method: 'GET',\n path: '/.well-known/:agentId/agent-card.json',\n responseType: 'json',\n pathParamSchema: a2aAgentIdPathParams,\n responseSchema: agentCardResponseSchema,\n summary: 'Get agent card',\n description: 'Returns the agent card information for A2A protocol discovery',\n tags: ['Agent-to-Agent'],\n handler: async ({ mastra, agentId, requestContext }) => {\n const executionUrl = `/a2a/${agentId}`;\n const provider = {\n organization: 'Mastra',\n url: 'https://mastra.ai',\n };\n const version = '1.0';\n\n const agent = mastra.getAgentById(agentId as string);\n\n if (!agent) {\n throw new Error(`Agent with ID ${agentId} not found`);\n }\n\n const [instructions, tools]: [\n Awaited<ReturnType<typeof agent.getInstructions>>,\n Awaited<ReturnType<typeof agent.listTools>>,\n ] = await Promise.all([agent.getInstructions({ requestContext }), agent.listTools({ requestContext })]);\n\n const agentCard: AgentCard = {\n name: agent.id || (agentId as string),\n description: convertInstructionsToString(instructions),\n url: executionUrl,\n provider,\n version,\n capabilities: {\n streaming: true,\n pushNotifications: false,\n stateTransitionHistory: false,\n },\n defaultInputModes: ['text'],\n defaultOutputModes: ['text'],\n skills: Object.entries(tools).map(([toolId, tool]) => ({\n id: toolId,\n name: toolId,\n description: tool.description || `Tool: ${toolId}`,\n tags: ['tool'],\n })),\n };\n\n return agentCard;\n },\n});\n\nexport const AGENT_EXECUTION_ROUTE = createRoute({\n method: 'POST',\n path: '/a2a/:agentId',\n responseType: 'json',\n pathParamSchema: a2aAgentIdPathParams,\n bodySchema: agentExecutionBodySchema,\n responseSchema: agentExecutionResponseSchema,\n summary: 'Execute agent',\n description: 'Executes an agent action via JSON-RPC 2.0 over A2A protocol',\n tags: ['Agent-to-Agent'],\n handler: async ({ mastra, agentId, requestContext, taskStore, ...bodyParams }) => {\n const { id: requestId, method, params } = bodyParams;\n\n return await getAgentExecutionHandler({\n requestId: String(requestId),\n mastra,\n agentId: agentId as string,\n requestContext,\n method,\n params,\n taskStore: taskStore!,\n });\n },\n});\n","import { MastraA2AError } from '@mastra/core/a2a';\n\nimport type { JSONRPCError, JSONRPCResponse, Message, Part } from '@mastra/core/a2a';\nimport type { CoreMessage } from '@mastra/core/llm';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport function normalizeError(\n error: any,\n reqId: number | string | null,\n taskId?: string,\n logger?: IMastraLogger,\n): JSONRPCResponse<null, unknown> {\n let a2aError: MastraA2AError;\n if (error instanceof MastraA2AError) {\n a2aError = error;\n } else if (error instanceof Error) {\n // Generic JS error\n a2aError = MastraA2AError.internalError(error.message, { stack: error.stack });\n } else {\n // Unknown error type\n a2aError = MastraA2AError.internalError('An unknown error occurred.', error);\n }\n\n // Ensure Task ID context is present if possible\n if (taskId && !a2aError.taskId) {\n a2aError.taskId = taskId;\n }\n\n logger?.error(`Error processing request (Task: ${a2aError.taskId ?? 'N/A'}, ReqID: ${reqId ?? 'N/A'}):`, a2aError);\n\n return createErrorResponse(reqId, a2aError.toJSONRPCError());\n}\n\nexport function createErrorResponse(\n id: number | string | null,\n error: JSONRPCError<unknown>,\n): JSONRPCResponse<null, unknown> {\n // For errors, ID should be the same as request ID, or null if that couldn't be determined\n return {\n jsonrpc: '2.0',\n id: id, // Can be null if request ID was invalid/missing\n error: error,\n };\n}\n\nexport function createSuccessResponse<T>(id: number | string | null, result: T): JSONRPCResponse<T> {\n if (!id) {\n // This shouldn't happen for methods that expect a response, but safeguard\n throw MastraA2AError.internalError('Cannot create success response for null ID.');\n }\n\n return {\n jsonrpc: '2.0',\n id: id,\n result: result,\n };\n}\n\nexport function convertToCoreMessage(message: Message): CoreMessage {\n return {\n role: message.role === 'user' ? 'user' : 'assistant',\n content: message.parts.map(msg => convertToCoreMessagePart(msg)),\n };\n}\n\nfunction convertToCoreMessagePart(part: Part) {\n switch (part.kind) {\n case 'text':\n return {\n type: 'text',\n text: part.text,\n } as const;\n case 'file':\n return {\n type: 'file',\n data: 'uri' in part.file ? new URL(part.file.uri) : part.file.bytes,\n mimeType: part.file.mimeType!,\n } as const;\n case 'data':\n throw new Error('Data parts are not supported in core messages');\n }\n}\n","import type {\n Message,\n Task,\n TaskState,\n TaskStatus,\n TaskContext,\n TaskArtifactUpdateEvent,\n Artifact,\n} from '@mastra/core/a2a';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { InMemoryTaskStore } from './store';\n\nfunction isTaskStatusUpdate(update: TaskStatus | TaskArtifactUpdateEvent): update is Omit<TaskStatus, 'timestamp'> {\n return 'state' in update && !('parts' in update);\n}\n\nfunction isArtifactUpdate(update: TaskStatus | TaskArtifactUpdateEvent): update is TaskArtifactUpdateEvent {\n return 'kind' in update && update.kind === 'artifact-update';\n}\n\nexport function applyUpdateToTask(\n current: Task,\n update: Omit<TaskStatus, 'timestamp'> | TaskArtifactUpdateEvent,\n): Task {\n let newTask = structuredClone(current);\n\n if (isTaskStatusUpdate(update)) {\n // Merge status update\n newTask.status = {\n ...newTask.status, // Keep existing properties if not overwritten\n ...update, // Apply updates\n timestamp: new Date().toISOString(),\n };\n } else if (isArtifactUpdate(update)) {\n // Handle artifact update\n if (!newTask.artifacts) {\n newTask.artifacts = [];\n } else {\n // Ensure we're working with a copy of the artifacts array\n newTask.artifacts = [...newTask.artifacts];\n }\n\n const artifact = update.artifact;\n const existingIndex = newTask.artifacts.findIndex(a => a.name === artifact.name);\n const existingArtifact = newTask.artifacts[existingIndex];\n\n if (existingArtifact) {\n if (update.append) {\n // Create a deep copy for modification to avoid mutating original\n const appendedArtifact = JSON.parse(JSON.stringify(existingArtifact)) as Artifact;\n appendedArtifact.parts.push(...artifact.parts);\n if (artifact.metadata) {\n appendedArtifact.metadata = {\n ...(appendedArtifact.metadata || {}),\n ...artifact.metadata,\n };\n }\n if (artifact.description) appendedArtifact.description = artifact.description;\n newTask.artifacts[existingIndex] = appendedArtifact; // Replace with appended version\n } else {\n // Overwrite artifact at index (with a copy of the update)\n newTask.artifacts[existingIndex] = { ...artifact };\n }\n } else {\n newTask.artifacts.push({ ...artifact });\n }\n }\n\n return newTask;\n}\n\nexport async function loadOrCreateTask({\n agentId,\n taskId,\n taskStore,\n message,\n contextId,\n metadata,\n logger,\n}: {\n agentId: string;\n taskId: string;\n taskStore: InMemoryTaskStore;\n message: Message;\n contextId?: string;\n metadata?: Record<string, unknown>;\n logger?: IMastraLogger;\n}): Promise<Task> {\n const data = await taskStore.load({ agentId, taskId });\n\n // Create new task if none exists\n if (!data) {\n const initialTask: Task = {\n id: taskId,\n contextId: contextId || crypto.randomUUID(),\n status: {\n state: 'submitted',\n timestamp: new Date().toISOString(),\n message: undefined,\n },\n artifacts: [],\n history: [message],\n metadata: metadata,\n kind: 'task',\n };\n\n logger?.info(`[Task ${taskId}] Created new task.`);\n await taskStore.save({ agentId, data: initialTask });\n\n return initialTask;\n }\n\n // Handle existing task\n logger?.info(`[Task ${taskId}] Loaded existing task.`);\n\n // Add message to history and prepare updated data\n let updatedData = data;\n updatedData.history = [...(data.history || []), message];\n\n // Handle state transitions\n const { status } = data;\n const finalStates: TaskState[] = ['completed', 'failed', 'canceled'];\n\n if (finalStates.includes(status.state)) {\n logger?.warn(`[Task ${taskId}] Received message for task in final state ${status.state}. Restarting.`);\n updatedData = applyUpdateToTask(updatedData, {\n state: 'submitted',\n message: undefined,\n });\n } else if (status.state === 'input-required') {\n logger?.info(`[Task ${taskId}] Changing state from 'input-required' to 'working'.`);\n updatedData = applyUpdateToTask(updatedData, { state: 'working' });\n } else if (status.state === 'working') {\n logger?.warn(`[Task ${taskId}] Received message while already 'working'. Proceeding.`);\n }\n\n await taskStore.save({ agentId, data: updatedData });\n\n return updatedData;\n}\n\nexport function createTaskContext({\n task,\n userMessage,\n history,\n activeCancellations,\n}: {\n task: Task;\n userMessage: Message;\n history: Message[];\n activeCancellations: Set<string>;\n}): TaskContext {\n return {\n task: structuredClone(task),\n userMessage,\n history: structuredClone(history),\n isCancelled: () => activeCancellations.has(task.id),\n };\n}\n","import z from 'zod';\n\n// Path parameter schemas\nexport const a2aAgentIdPathParams = z.object({\n agentId: z.string().describe('Unique identifier for the agent'),\n});\n\nexport const a2aTaskPathParams = a2aAgentIdPathParams.extend({\n taskId: z.string().describe('Unique identifier for the task'),\n});\n\n// Body schemas for A2A protocol\n\n// Push notification schemas\nconst pushNotificationAuthenticationInfoSchema = z.object({\n schemes: z.array(z.string()).describe('Supported authentication schemes - e.g. Basic, Bearer'),\n credentials: z.string().optional().describe('Optional credentials'),\n});\n\nconst pushNotificationConfigSchema = z.object({\n url: z.string().describe('URL for sending the push notifications'),\n id: z.string().optional().describe('Push Notification ID - created by server to support multiple callbacks'),\n token: z.string().optional().describe('Token unique to this task/session'),\n authentication: pushNotificationAuthenticationInfoSchema.optional(),\n});\n\nconst messageSendConfigurationSchema = z.object({\n acceptedOutputModes: z.array(z.string()).describe('Accepted output modalities by the client'),\n blocking: z.boolean().optional().describe('If the server should treat the client as a blocking request'),\n historyLength: z.number().optional().describe('Number of recent messages to be retrieved'),\n pushNotificationConfig: pushNotificationConfigSchema.optional(),\n});\n\n// Part schemas\nconst textPartSchema = z.object({\n kind: z.literal('text').describe('Part type - text for TextParts'),\n text: z.string().describe('Text content'),\n metadata: z.record(z.unknown()).optional().describe('Optional metadata associated with the part'),\n});\n\nconst fileWithBytesSchema = z.object({\n bytes: z.string().describe('base64 encoded content of the file'),\n mimeType: z.string().optional().describe('Optional mimeType for the file'),\n name: z.string().optional().describe('Optional name for the file'),\n});\n\nconst fileWithUriSchema = z.object({\n uri: z.string().describe('URL for the File content'),\n mimeType: z.string().optional().describe('Optional mimeType for the file'),\n name: z.string().optional().describe('Optional name for the file'),\n});\n\nconst filePartSchema = z.object({\n kind: z.literal('file').describe('Part type - file for FileParts'),\n file: z.union([fileWithBytesSchema, fileWithUriSchema]).describe('File content either as url or bytes'),\n metadata: z.record(z.unknown()).optional().describe('Optional metadata associated with the part'),\n});\n\nconst dataPartSchema = z.object({\n kind: z.literal('data').describe('Part type - data for DataParts'),\n data: z.record(z.unknown()).describe('Structured data content'),\n metadata: z.record(z.unknown()).optional().describe('Optional metadata associated with the part'),\n});\n\nconst partSchema = z.union([textPartSchema, filePartSchema, dataPartSchema]);\n\n// Message schema\nconst messageSchema = z.object({\n kind: z.literal('message').describe('Event type'),\n messageId: z.string().describe('Identifier created by the message creator'),\n role: z.enum(['user', 'agent']).describe(\"Message sender's role\"),\n parts: z.array(partSchema).describe('Message content'),\n contextId: z.string().optional().describe('The context the message is associated with'),\n taskId: z.string().optional().describe('Identifier of task the message is related to'),\n referenceTaskIds: z.array(z.string()).optional().describe('List of tasks referenced as context by this message'),\n extensions: z\n .array(z.string())\n .optional()\n .describe('The URIs of extensions that are present or contributed to this Message'),\n metadata: z.record(z.unknown()).optional().describe('Extension metadata'),\n});\n\n// MessageSendParams schema\nconst messageSendParamsSchema = z.object({\n message: messageSchema,\n configuration: messageSendConfigurationSchema.optional(),\n metadata: z.record(z.unknown()).optional().describe('Extension metadata'),\n});\n\n// TaskQueryParams schema\nconst taskQueryParamsSchema = z.object({\n id: z.string().describe('Task id'),\n historyLength: z.number().optional().describe('Number of recent messages to be retrieved'),\n metadata: z.record(z.unknown()).optional(),\n});\n\n// TaskIdParams schema\nconst taskIdParamsSchema = z.object({\n id: z.string().describe('Task id'),\n metadata: z.record(z.unknown()).optional(),\n});\n\n// Legacy schema for backwards compatibility\nexport const messageSendBodySchema = z.object({\n message: messageSchema,\n metadata: z.record(z.any()).optional(),\n});\n\nexport const taskQueryBodySchema = z.object({\n id: z.string(),\n});\n\n// Union of all possible params types\nconst agentExecutionParamsSchema = z.union([messageSendParamsSchema, taskQueryParamsSchema, taskIdParamsSchema]);\n\nexport const agentExecutionBodySchema = z.object({\n jsonrpc: z.literal('2.0'),\n id: z.union([z.string(), z.number()]),\n method: z.enum(['message/send', 'message/stream', 'tasks/get', 'tasks/cancel']),\n params: agentExecutionParamsSchema,\n});\n\n// Response schemas\nexport const agentCardResponseSchema = z.object({\n name: z.string(),\n description: z.string(),\n url: z.string(),\n provider: z\n .object({\n organization: z.string(),\n url: z.string(),\n })\n .optional(),\n version: z.string(),\n capabilities: z.object({\n streaming: z.boolean().optional(),\n pushNotifications: z.boolean().optional(),\n stateTransitionHistory: z.boolean().optional(),\n }),\n defaultInputModes: z.array(z.string()),\n defaultOutputModes: z.array(z.string()),\n skills: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n tags: z.array(z.string()).optional(),\n }),\n ),\n});\n\nexport const taskResponseSchema = z.unknown(); // Complex task state structure\n\nexport const agentExecutionResponseSchema = z.unknown(); // JSON-RPC response\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/server/handlers/a2a.ts","../src/server/a2a/protocol.ts","../src/server/a2a/tasks.ts","../src/server/schemas/a2a.ts"],"names":["__export","MastraA2AError","z","messageSendParamsSchema","convertInstructionsToString","result","createRoute"],"mappings":"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","file":"chunk-U7IJEAF4.cjs","sourcesContent":["import { MastraA2AError } from '@mastra/core/a2a';\nimport type {\n MessageSendParams,\n TaskQueryParams,\n TaskIdParams,\n AgentCard,\n TaskStatus,\n TaskState,\n} from '@mastra/core/a2a';\nimport type { Agent } from '@mastra/core/agent';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { RequestContext } from '@mastra/core/request-context';\nimport { z } from 'zod';\nimport { convertToCoreMessage, normalizeError, createSuccessResponse, createErrorResponse } from '../a2a/protocol';\nimport type { InMemoryTaskStore } from '../a2a/store';\nimport { applyUpdateToTask, createTaskContext, loadOrCreateTask } from '../a2a/tasks';\nimport {\n a2aAgentIdPathParams,\n agentExecutionBodySchema,\n agentCardResponseSchema,\n agentExecutionResponseSchema,\n} from '../schemas/a2a';\nimport { createRoute } from '../server-adapter/routes/route-builder';\nimport type { Context } from '../types';\nimport { convertInstructionsToString } from '../utils';\n\nconst messageSendParamsSchema = z.object({\n message: z.object({\n role: z.enum(['user', 'agent']),\n parts: z.array(\n z.object({\n kind: z.enum(['text']),\n text: z.string(),\n }),\n ),\n kind: z.literal('message'),\n messageId: z.string(),\n contextId: z.string().optional(),\n taskId: z.string().optional(),\n referenceTaskIds: z.array(z.string()).optional(),\n extensions: z.array(z.string()).optional(),\n metadata: z.record(z.any()).optional(),\n }),\n});\n\nexport async function getAgentCardByIdHandler({\n mastra,\n agentId,\n executionUrl = `/a2a/${agentId}`,\n provider = {\n organization: 'Mastra',\n url: 'https://mastra.ai',\n },\n version = '1.0',\n requestContext,\n}: Context & {\n requestContext: RequestContext;\n agentId: keyof ReturnType<typeof mastra.listAgents>;\n executionUrl?: string;\n version?: string;\n provider?: {\n organization: string;\n url: string;\n };\n}): Promise<AgentCard> {\n const agent = mastra.getAgentById(agentId);\n\n if (!agent) {\n throw new Error(`Agent with ID ${agentId} not found`);\n }\n\n const [instructions, tools]: [\n Awaited<ReturnType<typeof agent.getInstructions>>,\n Awaited<ReturnType<typeof agent.listTools>>,\n ] = await Promise.all([agent.getInstructions({ requestContext }), agent.listTools({ requestContext })]);\n\n // Extract agent information to create the AgentCard\n const agentCard: AgentCard = {\n name: agent.id || agentId,\n description: convertInstructionsToString(instructions),\n url: executionUrl,\n provider,\n version,\n capabilities: {\n streaming: true, // All agents support streaming\n pushNotifications: false,\n stateTransitionHistory: false,\n },\n defaultInputModes: ['text'],\n defaultOutputModes: ['text'],\n // Convert agent tools to skills format for A2A protocol\n skills: Object.entries(tools).map(([toolId, tool]) => ({\n id: toolId,\n name: toolId,\n description: tool.description || `Tool: ${toolId}`,\n // Optional fields\n tags: ['tool'],\n })),\n };\n\n return agentCard;\n}\n\nfunction validateMessageSendParams(params: MessageSendParams) {\n try {\n messageSendParamsSchema.parse(params);\n } catch (error) {\n if (error instanceof z.ZodError) {\n throw MastraA2AError.invalidParams((error as z.ZodError).errors[0]!.message);\n }\n\n throw error;\n }\n}\n\nexport async function handleMessageSend({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n logger,\n requestContext,\n}: {\n requestId: string;\n params: MessageSendParams;\n taskStore: InMemoryTaskStore;\n agent: Agent;\n agentId: string;\n logger?: IMastraLogger;\n requestContext: RequestContext;\n}) {\n validateMessageSendParams(params);\n\n const { message, metadata } = params;\n const { contextId } = message;\n const taskId = message.taskId || crypto.randomUUID();\n\n // Load or create task\n let currentData = await loadOrCreateTask({\n taskId,\n taskStore,\n agentId,\n message,\n contextId,\n metadata,\n });\n\n // Use the new TaskContext definition, passing history\n const context = createTaskContext({\n task: currentData,\n userMessage: message,\n history: currentData.history || [],\n activeCancellations: taskStore.activeCancellations,\n });\n\n try {\n // Pass contextId as threadId for memory persistence across A2A conversations\n // Allow user to pass resourceId via metadata, fall back to agentId\n const resourceId = (metadata?.resourceId as string) ?? (message.metadata?.resourceId as string) ?? agentId;\n const result = await agent.generate([convertToCoreMessage(message)], {\n runId: taskId,\n requestContext,\n ...(contextId ? { threadId: contextId, resourceId } : {}),\n });\n\n currentData = applyUpdateToTask(currentData, {\n state: 'completed',\n message: {\n messageId: crypto.randomUUID(),\n role: 'agent',\n parts: [\n {\n kind: 'text',\n text: result.text,\n },\n ],\n kind: 'message',\n },\n });\n\n // Store execution details in task metadata\n currentData.metadata = {\n ...currentData.metadata,\n execution: {\n toolCalls: result.toolCalls,\n toolResults: result.toolResults,\n usage: result.usage,\n finishReason: result.finishReason,\n },\n };\n\n await taskStore.save({ agentId, data: currentData });\n context.task = currentData;\n } catch (handlerError) {\n // If handler throws, apply 'failed' status, save, and rethrow\n const failureStatusUpdate: Omit<TaskStatus, 'timestamp'> = {\n state: 'failed',\n message: {\n messageId: crypto.randomUUID(),\n role: 'agent',\n parts: [\n {\n kind: 'text',\n text: `Handler failed: ${handlerError instanceof Error ? handlerError.message : String(handlerError)}`,\n },\n ],\n kind: 'message',\n },\n };\n currentData = applyUpdateToTask(currentData, failureStatusUpdate);\n\n try {\n await taskStore.save({ agentId, data: currentData });\n } catch (saveError) {\n // @ts-expect-error saveError is an unknown error\n logger?.error(`Failed to save task ${currentData.id} after handler error:`, saveError?.message);\n }\n\n return normalizeError(handlerError, requestId, currentData.id, logger); // Rethrow original error\n }\n\n // The loop finished, send the final task state\n return createSuccessResponse(requestId, currentData);\n}\n\nexport async function handleTaskGet({\n requestId,\n taskStore,\n agentId,\n taskId,\n}: {\n requestId: string;\n taskStore: InMemoryTaskStore;\n agentId: string;\n taskId: string;\n}) {\n const task = await taskStore.load({ agentId, taskId });\n\n if (!task) {\n throw MastraA2AError.taskNotFound(taskId);\n }\n\n return createSuccessResponse(requestId, task);\n}\n\nexport async function* handleMessageStream({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n logger,\n requestContext,\n}: {\n requestId: string;\n params: MessageSendParams;\n taskStore: InMemoryTaskStore;\n agent: Agent;\n agentId: string;\n logger?: IMastraLogger;\n requestContext: RequestContext;\n}) {\n yield createSuccessResponse(requestId, {\n state: 'working',\n message: {\n messageId: crypto.randomUUID(),\n kind: 'message',\n role: 'agent',\n parts: [{ kind: 'text', text: 'Generating response...' }],\n },\n });\n\n let result;\n try {\n result = await handleMessageSend({\n requestId,\n params,\n taskStore,\n agent,\n agentId,\n requestContext,\n logger,\n });\n } catch (err) {\n if (!(err instanceof MastraA2AError)) {\n throw err;\n }\n\n result = createErrorResponse(requestId, err.toJSONRPCError());\n }\n\n yield result;\n}\n\nexport async function handleTaskCancel({\n requestId,\n taskStore,\n agentId,\n taskId,\n logger,\n}: {\n requestId: string;\n taskStore: InMemoryTaskStore;\n agentId: string;\n taskId: string;\n logger?: IMastraLogger;\n}) {\n // Load task and history\n let data = await taskStore.load({\n agentId,\n taskId,\n });\n\n if (!data) {\n throw MastraA2AError.taskNotFound(taskId);\n }\n\n // Check if cancelable (not already in a final state)\n const finalStates: TaskState[] = ['completed', 'failed', 'canceled'];\n\n if (finalStates.includes(data.status.state)) {\n logger?.info(`Task ${taskId} already in final state ${data.status.state}, cannot cancel.`);\n return createSuccessResponse(requestId, data);\n }\n\n // Signal cancellation\n taskStore.activeCancellations.add(taskId);\n\n // Apply 'canceled' state update\n const cancelUpdate: Omit<TaskStatus, 'timestamp'> = {\n state: 'canceled',\n message: {\n role: 'agent',\n parts: [{ kind: 'text', text: 'Task cancelled by request.' }],\n kind: 'message',\n messageId: crypto.randomUUID(),\n },\n };\n\n data = applyUpdateToTask(data, cancelUpdate);\n\n // Save the updated state\n await taskStore.save({ agentId, data });\n\n // Remove from active cancellations *after* saving\n taskStore.activeCancellations.delete(taskId);\n\n // Return the updated task object\n return createSuccessResponse(requestId, data);\n}\n\nexport async function getAgentExecutionHandler({\n requestId,\n mastra,\n agentId,\n requestContext,\n method,\n params,\n taskStore,\n logger,\n}: Context & {\n requestId: string;\n requestContext: RequestContext;\n agentId: string;\n method: 'message/send' | 'message/stream' | 'tasks/get' | 'tasks/cancel';\n params: MessageSendParams | TaskQueryParams | TaskIdParams;\n taskStore: InMemoryTaskStore;\n logger?: IMastraLogger;\n}): Promise<any> {\n const agent = mastra.getAgentById(agentId);\n\n let taskId: string | undefined; // For error context\n\n try {\n // Attempt to get task ID early for error context. Cast params to any to access id.\n // Proper validation happens within specific handlers.\n taskId = 'id' in params ? params.id : params.message?.taskId || 'No task ID provided';\n\n // 2. Route based on method\n switch (method) {\n case 'message/send': {\n const result = await handleMessageSend({\n requestId,\n params: params as MessageSendParams,\n taskStore,\n agent,\n agentId,\n requestContext,\n });\n return result;\n }\n case 'message/stream':\n const result = await handleMessageStream({\n requestId,\n taskStore,\n params: params as MessageSendParams,\n agent,\n agentId,\n requestContext,\n });\n return result;\n\n case 'tasks/get': {\n const result = await handleTaskGet({\n requestId,\n taskStore,\n agentId,\n taskId,\n });\n\n return result;\n }\n case 'tasks/cancel': {\n const result = await handleTaskCancel({\n requestId,\n taskStore,\n agentId,\n taskId,\n });\n\n return result;\n }\n default:\n throw MastraA2AError.methodNotFound(method);\n }\n } catch (error) {\n if (error instanceof MastraA2AError && taskId && !error.taskId) {\n error.taskId = taskId; // Add task ID context if missing\n }\n\n return normalizeError(error, requestId, taskId, logger);\n }\n}\n\n// ============================================================================\n// Route Definitions (new pattern - handlers defined inline with createRoute)\n// ============================================================================\n\nexport const GET_AGENT_CARD_ROUTE = createRoute({\n method: 'GET',\n path: '/.well-known/:agentId/agent-card.json',\n responseType: 'json',\n pathParamSchema: a2aAgentIdPathParams,\n responseSchema: agentCardResponseSchema,\n summary: 'Get agent card',\n description: 'Returns the agent card information for A2A protocol discovery',\n tags: ['Agent-to-Agent'],\n handler: async ({ mastra, agentId, requestContext }) => {\n const executionUrl = `/a2a/${agentId}`;\n const provider = {\n organization: 'Mastra',\n url: 'https://mastra.ai',\n };\n const version = '1.0';\n\n const agent = mastra.getAgentById(agentId as string);\n\n if (!agent) {\n throw new Error(`Agent with ID ${agentId} not found`);\n }\n\n const [instructions, tools]: [\n Awaited<ReturnType<typeof agent.getInstructions>>,\n Awaited<ReturnType<typeof agent.listTools>>,\n ] = await Promise.all([agent.getInstructions({ requestContext }), agent.listTools({ requestContext })]);\n\n const agentCard: AgentCard = {\n name: agent.id || (agentId as string),\n description: convertInstructionsToString(instructions),\n url: executionUrl,\n provider,\n version,\n capabilities: {\n streaming: true,\n pushNotifications: false,\n stateTransitionHistory: false,\n },\n defaultInputModes: ['text'],\n defaultOutputModes: ['text'],\n skills: Object.entries(tools).map(([toolId, tool]) => ({\n id: toolId,\n name: toolId,\n description: tool.description || `Tool: ${toolId}`,\n tags: ['tool'],\n })),\n };\n\n return agentCard;\n },\n});\n\nexport const AGENT_EXECUTION_ROUTE = createRoute({\n method: 'POST',\n path: '/a2a/:agentId',\n responseType: 'json',\n pathParamSchema: a2aAgentIdPathParams,\n bodySchema: agentExecutionBodySchema,\n responseSchema: agentExecutionResponseSchema,\n summary: 'Execute agent',\n description: 'Executes an agent action via JSON-RPC 2.0 over A2A protocol',\n tags: ['Agent-to-Agent'],\n handler: async ({ mastra, agentId, requestContext, taskStore, ...bodyParams }) => {\n const { id: requestId, method, params } = bodyParams;\n\n return await getAgentExecutionHandler({\n requestId: String(requestId),\n mastra,\n agentId: agentId as string,\n requestContext,\n method,\n params,\n taskStore: taskStore!,\n });\n },\n});\n","import { MastraA2AError } from '@mastra/core/a2a';\n\nimport type { JSONRPCError, JSONRPCResponse, Message, Part } from '@mastra/core/a2a';\nimport type { CoreMessage } from '@mastra/core/llm';\nimport type { IMastraLogger } from '@mastra/core/logger';\n\nexport function normalizeError(\n error: any,\n reqId: number | string | null,\n taskId?: string,\n logger?: IMastraLogger,\n): JSONRPCResponse<null, unknown> {\n let a2aError: MastraA2AError;\n if (error instanceof MastraA2AError) {\n a2aError = error;\n } else if (error instanceof Error) {\n // Generic JS error\n a2aError = MastraA2AError.internalError(error.message, { stack: error.stack });\n } else {\n // Unknown error type\n a2aError = MastraA2AError.internalError('An unknown error occurred.', error);\n }\n\n // Ensure Task ID context is present if possible\n if (taskId && !a2aError.taskId) {\n a2aError.taskId = taskId;\n }\n\n logger?.error(`Error processing request (Task: ${a2aError.taskId ?? 'N/A'}, ReqID: ${reqId ?? 'N/A'}):`, a2aError);\n\n return createErrorResponse(reqId, a2aError.toJSONRPCError());\n}\n\nexport function createErrorResponse(\n id: number | string | null,\n error: JSONRPCError<unknown>,\n): JSONRPCResponse<null, unknown> {\n // For errors, ID should be the same as request ID, or null if that couldn't be determined\n return {\n jsonrpc: '2.0',\n id: id, // Can be null if request ID was invalid/missing\n error: error,\n };\n}\n\nexport function createSuccessResponse<T>(id: number | string | null, result: T): JSONRPCResponse<T> {\n if (!id) {\n // This shouldn't happen for methods that expect a response, but safeguard\n throw MastraA2AError.internalError('Cannot create success response for null ID.');\n }\n\n return {\n jsonrpc: '2.0',\n id: id,\n result: result,\n };\n}\n\nexport function convertToCoreMessage(message: Message): CoreMessage {\n return {\n role: message.role === 'user' ? 'user' : 'assistant',\n content: message.parts.map(msg => convertToCoreMessagePart(msg)),\n };\n}\n\nfunction convertToCoreMessagePart(part: Part) {\n switch (part.kind) {\n case 'text':\n return {\n type: 'text',\n text: part.text,\n } as const;\n case 'file':\n return {\n type: 'file',\n data: 'uri' in part.file ? new URL(part.file.uri) : part.file.bytes,\n mimeType: part.file.mimeType!,\n } as const;\n case 'data':\n throw new Error('Data parts are not supported in core messages');\n }\n}\n","import type {\n Message,\n Task,\n TaskState,\n TaskStatus,\n TaskContext,\n TaskArtifactUpdateEvent,\n Artifact,\n} from '@mastra/core/a2a';\nimport type { IMastraLogger } from '@mastra/core/logger';\nimport type { InMemoryTaskStore } from './store';\n\nfunction isTaskStatusUpdate(update: TaskStatus | TaskArtifactUpdateEvent): update is Omit<TaskStatus, 'timestamp'> {\n return 'state' in update && !('parts' in update);\n}\n\nfunction isArtifactUpdate(update: TaskStatus | TaskArtifactUpdateEvent): update is TaskArtifactUpdateEvent {\n return 'kind' in update && update.kind === 'artifact-update';\n}\n\nexport function applyUpdateToTask(\n current: Task,\n update: Omit<TaskStatus, 'timestamp'> | TaskArtifactUpdateEvent,\n): Task {\n let newTask = structuredClone(current);\n\n if (isTaskStatusUpdate(update)) {\n // Merge status update\n newTask.status = {\n ...newTask.status, // Keep existing properties if not overwritten\n ...update, // Apply updates\n timestamp: new Date().toISOString(),\n };\n } else if (isArtifactUpdate(update)) {\n // Handle artifact update\n if (!newTask.artifacts) {\n newTask.artifacts = [];\n } else {\n // Ensure we're working with a copy of the artifacts array\n newTask.artifacts = [...newTask.artifacts];\n }\n\n const artifact = update.artifact;\n const existingIndex = newTask.artifacts.findIndex(a => a.name === artifact.name);\n const existingArtifact = newTask.artifacts[existingIndex];\n\n if (existingArtifact) {\n if (update.append) {\n // Create a deep copy for modification to avoid mutating original\n const appendedArtifact = JSON.parse(JSON.stringify(existingArtifact)) as Artifact;\n appendedArtifact.parts.push(...artifact.parts);\n if (artifact.metadata) {\n appendedArtifact.metadata = {\n ...(appendedArtifact.metadata || {}),\n ...artifact.metadata,\n };\n }\n if (artifact.description) appendedArtifact.description = artifact.description;\n newTask.artifacts[existingIndex] = appendedArtifact; // Replace with appended version\n } else {\n // Overwrite artifact at index (with a copy of the update)\n newTask.artifacts[existingIndex] = { ...artifact };\n }\n } else {\n newTask.artifacts.push({ ...artifact });\n }\n }\n\n return newTask;\n}\n\nexport async function loadOrCreateTask({\n agentId,\n taskId,\n taskStore,\n message,\n contextId,\n metadata,\n logger,\n}: {\n agentId: string;\n taskId: string;\n taskStore: InMemoryTaskStore;\n message: Message;\n contextId?: string;\n metadata?: Record<string, unknown>;\n logger?: IMastraLogger;\n}): Promise<Task> {\n const data = await taskStore.load({ agentId, taskId });\n\n // Create new task if none exists\n if (!data) {\n const initialTask: Task = {\n id: taskId,\n contextId: contextId || crypto.randomUUID(),\n status: {\n state: 'submitted',\n timestamp: new Date().toISOString(),\n message: undefined,\n },\n artifacts: [],\n history: [message],\n metadata: metadata,\n kind: 'task',\n };\n\n logger?.info(`[Task ${taskId}] Created new task.`);\n await taskStore.save({ agentId, data: initialTask });\n\n return initialTask;\n }\n\n // Handle existing task\n logger?.info(`[Task ${taskId}] Loaded existing task.`);\n\n // Add message to history and prepare updated data\n let updatedData = data;\n updatedData.history = [...(data.history || []), message];\n\n // Handle state transitions\n const { status } = data;\n const finalStates: TaskState[] = ['completed', 'failed', 'canceled'];\n\n if (finalStates.includes(status.state)) {\n logger?.warn(`[Task ${taskId}] Received message for task in final state ${status.state}. Restarting.`);\n updatedData = applyUpdateToTask(updatedData, {\n state: 'submitted',\n message: undefined,\n });\n } else if (status.state === 'input-required') {\n logger?.info(`[Task ${taskId}] Changing state from 'input-required' to 'working'.`);\n updatedData = applyUpdateToTask(updatedData, { state: 'working' });\n } else if (status.state === 'working') {\n logger?.warn(`[Task ${taskId}] Received message while already 'working'. Proceeding.`);\n }\n\n await taskStore.save({ agentId, data: updatedData });\n\n return updatedData;\n}\n\nexport function createTaskContext({\n task,\n userMessage,\n history,\n activeCancellations,\n}: {\n task: Task;\n userMessage: Message;\n history: Message[];\n activeCancellations: Set<string>;\n}): TaskContext {\n return {\n task: structuredClone(task),\n userMessage,\n history: structuredClone(history),\n isCancelled: () => activeCancellations.has(task.id),\n };\n}\n","import z from 'zod';\n\n// Path parameter schemas\nexport const a2aAgentIdPathParams = z.object({\n agentId: z.string().describe('Unique identifier for the agent'),\n});\n\nexport const a2aTaskPathParams = a2aAgentIdPathParams.extend({\n taskId: z.string().describe('Unique identifier for the task'),\n});\n\n// Body schemas for A2A protocol\n\n// Push notification schemas\nconst pushNotificationAuthenticationInfoSchema = z.object({\n schemes: z.array(z.string()).describe('Supported authentication schemes - e.g. Basic, Bearer'),\n credentials: z.string().optional().describe('Optional credentials'),\n});\n\nconst pushNotificationConfigSchema = z.object({\n url: z.string().describe('URL for sending the push notifications'),\n id: z.string().optional().describe('Push Notification ID - created by server to support multiple callbacks'),\n token: z.string().optional().describe('Token unique to this task/session'),\n authentication: pushNotificationAuthenticationInfoSchema.optional(),\n});\n\nconst messageSendConfigurationSchema = z.object({\n acceptedOutputModes: z.array(z.string()).describe('Accepted output modalities by the client'),\n blocking: z.boolean().optional().describe('If the server should treat the client as a blocking request'),\n historyLength: z.number().optional().describe('Number of recent messages to be retrieved'),\n pushNotificationConfig: pushNotificationConfigSchema.optional(),\n});\n\n// Part schemas\nconst textPartSchema = z.object({\n kind: z.literal('text').describe('Part type - text for TextParts'),\n text: z.string().describe('Text content'),\n metadata: z.record(z.unknown()).optional().describe('Optional metadata associated with the part'),\n});\n\nconst fileWithBytesSchema = z.object({\n bytes: z.string().describe('base64 encoded content of the file'),\n mimeType: z.string().optional().describe('Optional mimeType for the file'),\n name: z.string().optional().describe('Optional name for the file'),\n});\n\nconst fileWithUriSchema = z.object({\n uri: z.string().describe('URL for the File content'),\n mimeType: z.string().optional().describe('Optional mimeType for the file'),\n name: z.string().optional().describe('Optional name for the file'),\n});\n\nconst filePartSchema = z.object({\n kind: z.literal('file').describe('Part type - file for FileParts'),\n file: z.union([fileWithBytesSchema, fileWithUriSchema]).describe('File content either as url or bytes'),\n metadata: z.record(z.unknown()).optional().describe('Optional metadata associated with the part'),\n});\n\nconst dataPartSchema = z.object({\n kind: z.literal('data').describe('Part type - data for DataParts'),\n data: z.record(z.unknown()).describe('Structured data content'),\n metadata: z.record(z.unknown()).optional().describe('Optional metadata associated with the part'),\n});\n\nconst partSchema = z.union([textPartSchema, filePartSchema, dataPartSchema]);\n\n// Message schema\nconst messageSchema = z.object({\n kind: z.literal('message').describe('Event type'),\n messageId: z.string().describe('Identifier created by the message creator'),\n role: z.enum(['user', 'agent']).describe(\"Message sender's role\"),\n parts: z.array(partSchema).describe('Message content'),\n contextId: z.string().optional().describe('The context the message is associated with'),\n taskId: z.string().optional().describe('Identifier of task the message is related to'),\n referenceTaskIds: z.array(z.string()).optional().describe('List of tasks referenced as context by this message'),\n extensions: z\n .array(z.string())\n .optional()\n .describe('The URIs of extensions that are present or contributed to this Message'),\n metadata: z.record(z.unknown()).optional().describe('Extension metadata'),\n});\n\n// MessageSendParams schema\nconst messageSendParamsSchema = z.object({\n message: messageSchema,\n configuration: messageSendConfigurationSchema.optional(),\n metadata: z.record(z.unknown()).optional().describe('Extension metadata'),\n});\n\n// TaskQueryParams schema\nconst taskQueryParamsSchema = z.object({\n id: z.string().describe('Task id'),\n historyLength: z.number().optional().describe('Number of recent messages to be retrieved'),\n metadata: z.record(z.unknown()).optional(),\n});\n\n// TaskIdParams schema\nconst taskIdParamsSchema = z.object({\n id: z.string().describe('Task id'),\n metadata: z.record(z.unknown()).optional(),\n});\n\n// Legacy schema for backwards compatibility\nexport const messageSendBodySchema = z.object({\n message: messageSchema,\n metadata: z.record(z.any()).optional(),\n});\n\nexport const taskQueryBodySchema = z.object({\n id: z.string(),\n});\n\n// Union of all possible params types\nconst agentExecutionParamsSchema = z.union([messageSendParamsSchema, taskQueryParamsSchema, taskIdParamsSchema]);\n\nexport const agentExecutionBodySchema = z.object({\n jsonrpc: z.literal('2.0'),\n id: z.union([z.string(), z.number()]),\n method: z.enum(['message/send', 'message/stream', 'tasks/get', 'tasks/cancel']),\n params: agentExecutionParamsSchema,\n});\n\n// Response schemas\nexport const agentCardResponseSchema = z.object({\n name: z.string(),\n description: z.string(),\n url: z.string(),\n provider: z\n .object({\n organization: z.string(),\n url: z.string(),\n })\n .optional(),\n version: z.string(),\n capabilities: z.object({\n streaming: z.boolean().optional(),\n pushNotifications: z.boolean().optional(),\n stateTransitionHistory: z.boolean().optional(),\n }),\n defaultInputModes: z.array(z.string()),\n defaultOutputModes: z.array(z.string()),\n skills: z.array(\n z.object({\n id: z.string(),\n name: z.string(),\n description: z.string(),\n tags: z.array(z.string()).optional(),\n }),\n ),\n});\n\nexport const taskResponseSchema = z.unknown(); // Complex task state structure\n\nexport const agentExecutionResponseSchema = z.unknown(); // JSON-RPC response\n"]}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
var chunk5W4RPVTK_cjs = require('./chunk-5W4RPVTK.cjs');
|
|
4
4
|
var chunkMCYD5LW7_cjs = require('./chunk-MCYD5LW7.cjs');
|
|
5
|
-
var
|
|
5
|
+
var chunkAVRO3FIN_cjs = require('./chunk-AVRO3FIN.cjs');
|
|
6
6
|
var chunkSUKFO7UM_cjs = require('./chunk-SUKFO7UM.cjs');
|
|
7
7
|
var chunk64ITUOXI_cjs = require('./chunk-64ITUOXI.cjs');
|
|
8
8
|
var chunkO7I5CWRX_cjs = require('./chunk-O7I5CWRX.cjs');
|
|
@@ -306,7 +306,7 @@ async function getMemoryFromContext({
|
|
|
306
306
|
function getStorageFromContext({ mastra }) {
|
|
307
307
|
return mastra.getStorage();
|
|
308
308
|
}
|
|
309
|
-
var GET_MEMORY_STATUS_ROUTE =
|
|
309
|
+
var GET_MEMORY_STATUS_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
310
310
|
method: "GET",
|
|
311
311
|
path: "/api/memory/status",
|
|
312
312
|
responseType: "json",
|
|
@@ -333,7 +333,7 @@ var GET_MEMORY_STATUS_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
333
333
|
}
|
|
334
334
|
}
|
|
335
335
|
});
|
|
336
|
-
var GET_MEMORY_CONFIG_ROUTE =
|
|
336
|
+
var GET_MEMORY_CONFIG_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
337
337
|
method: "GET",
|
|
338
338
|
path: "/api/memory/config",
|
|
339
339
|
responseType: "json",
|
|
@@ -355,7 +355,7 @@ var GET_MEMORY_CONFIG_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
355
355
|
}
|
|
356
356
|
}
|
|
357
357
|
});
|
|
358
|
-
var LIST_THREADS_ROUTE =
|
|
358
|
+
var LIST_THREADS_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
359
359
|
method: "GET",
|
|
360
360
|
path: "/api/memory/threads",
|
|
361
361
|
responseType: "json",
|
|
@@ -398,7 +398,7 @@ var LIST_THREADS_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
398
398
|
}
|
|
399
399
|
}
|
|
400
400
|
});
|
|
401
|
-
var GET_THREAD_BY_ID_ROUTE =
|
|
401
|
+
var GET_THREAD_BY_ID_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
402
402
|
method: "GET",
|
|
403
403
|
path: "/api/memory/threads/:threadId",
|
|
404
404
|
responseType: "json",
|
|
@@ -438,7 +438,7 @@ var GET_THREAD_BY_ID_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
438
438
|
}
|
|
439
439
|
}
|
|
440
440
|
});
|
|
441
|
-
var LIST_MESSAGES_ROUTE =
|
|
441
|
+
var LIST_MESSAGES_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
442
442
|
method: "GET",
|
|
443
443
|
path: "/api/memory/threads/:threadId/messages",
|
|
444
444
|
responseType: "json",
|
|
@@ -510,7 +510,7 @@ var LIST_MESSAGES_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
510
510
|
}
|
|
511
511
|
}
|
|
512
512
|
});
|
|
513
|
-
var GET_WORKING_MEMORY_ROUTE =
|
|
513
|
+
var GET_WORKING_MEMORY_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
514
514
|
method: "GET",
|
|
515
515
|
path: "/api/memory/threads/:threadId/working-memory",
|
|
516
516
|
responseType: "json",
|
|
@@ -540,7 +540,7 @@ var GET_WORKING_MEMORY_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
540
540
|
}
|
|
541
541
|
}
|
|
542
542
|
});
|
|
543
|
-
var SAVE_MESSAGES_ROUTE =
|
|
543
|
+
var SAVE_MESSAGES_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
544
544
|
method: "POST",
|
|
545
545
|
path: "/api/memory/save-messages",
|
|
546
546
|
responseType: "json",
|
|
@@ -580,7 +580,7 @@ var SAVE_MESSAGES_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
580
580
|
}
|
|
581
581
|
}
|
|
582
582
|
});
|
|
583
|
-
var CREATE_THREAD_ROUTE =
|
|
583
|
+
var CREATE_THREAD_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
584
584
|
method: "POST",
|
|
585
585
|
path: "/api/memory/threads",
|
|
586
586
|
responseType: "json",
|
|
@@ -609,7 +609,7 @@ var CREATE_THREAD_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
609
609
|
}
|
|
610
610
|
}
|
|
611
611
|
});
|
|
612
|
-
var UPDATE_THREAD_ROUTE =
|
|
612
|
+
var UPDATE_THREAD_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
613
613
|
method: "PATCH",
|
|
614
614
|
path: "/api/memory/threads/:threadId",
|
|
615
615
|
responseType: "json",
|
|
@@ -650,7 +650,7 @@ var UPDATE_THREAD_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
650
650
|
}
|
|
651
651
|
}
|
|
652
652
|
});
|
|
653
|
-
var DELETE_THREAD_ROUTE =
|
|
653
|
+
var DELETE_THREAD_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
654
654
|
method: "DELETE",
|
|
655
655
|
path: "/api/memory/threads/:threadId",
|
|
656
656
|
responseType: "json",
|
|
@@ -678,7 +678,7 @@ var DELETE_THREAD_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
678
678
|
}
|
|
679
679
|
}
|
|
680
680
|
});
|
|
681
|
-
var CLONE_THREAD_ROUTE =
|
|
681
|
+
var CLONE_THREAD_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
682
682
|
method: "POST",
|
|
683
683
|
path: "/api/memory/threads/:threadId/clone",
|
|
684
684
|
responseType: "json",
|
|
@@ -710,7 +710,7 @@ var CLONE_THREAD_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
710
710
|
}
|
|
711
711
|
}
|
|
712
712
|
});
|
|
713
|
-
var UPDATE_WORKING_MEMORY_ROUTE =
|
|
713
|
+
var UPDATE_WORKING_MEMORY_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
714
714
|
method: "POST",
|
|
715
715
|
path: "/api/memory/threads/:threadId/working-memory",
|
|
716
716
|
responseType: "json",
|
|
@@ -739,7 +739,7 @@ var UPDATE_WORKING_MEMORY_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
739
739
|
}
|
|
740
740
|
}
|
|
741
741
|
});
|
|
742
|
-
var DELETE_MESSAGES_ROUTE =
|
|
742
|
+
var DELETE_MESSAGES_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
743
743
|
method: "POST",
|
|
744
744
|
path: "/api/memory/messages/delete",
|
|
745
745
|
responseType: "json",
|
|
@@ -788,7 +788,7 @@ var DELETE_MESSAGES_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
788
788
|
}
|
|
789
789
|
}
|
|
790
790
|
});
|
|
791
|
-
var SEARCH_MEMORY_ROUTE =
|
|
791
|
+
var SEARCH_MEMORY_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
792
792
|
method: "GET",
|
|
793
793
|
path: "/api/memory/search",
|
|
794
794
|
responseType: "json",
|
|
@@ -911,7 +911,7 @@ var SEARCH_MEMORY_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
911
911
|
}
|
|
912
912
|
}
|
|
913
913
|
});
|
|
914
|
-
var GET_MEMORY_STATUS_NETWORK_ROUTE =
|
|
914
|
+
var GET_MEMORY_STATUS_NETWORK_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
915
915
|
method: "GET",
|
|
916
916
|
path: "/api/memory/network/status",
|
|
917
917
|
responseType: "json",
|
|
@@ -922,7 +922,7 @@ var GET_MEMORY_STATUS_NETWORK_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
922
922
|
tags: ["Memory - Network"],
|
|
923
923
|
handler: GET_MEMORY_STATUS_ROUTE.handler
|
|
924
924
|
});
|
|
925
|
-
var LIST_THREADS_NETWORK_ROUTE =
|
|
925
|
+
var LIST_THREADS_NETWORK_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
926
926
|
method: "GET",
|
|
927
927
|
path: "/api/memory/network/threads",
|
|
928
928
|
responseType: "json",
|
|
@@ -933,7 +933,7 @@ var LIST_THREADS_NETWORK_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
933
933
|
tags: ["Memory - Network"],
|
|
934
934
|
handler: LIST_THREADS_ROUTE.handler
|
|
935
935
|
});
|
|
936
|
-
var GET_THREAD_BY_ID_NETWORK_ROUTE =
|
|
936
|
+
var GET_THREAD_BY_ID_NETWORK_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
937
937
|
method: "GET",
|
|
938
938
|
path: "/api/memory/network/threads/:threadId",
|
|
939
939
|
responseType: "json",
|
|
@@ -945,7 +945,7 @@ var GET_THREAD_BY_ID_NETWORK_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
945
945
|
tags: ["Memory - Network"],
|
|
946
946
|
handler: GET_THREAD_BY_ID_ROUTE.handler
|
|
947
947
|
});
|
|
948
|
-
var LIST_MESSAGES_NETWORK_ROUTE =
|
|
948
|
+
var LIST_MESSAGES_NETWORK_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
949
949
|
method: "GET",
|
|
950
950
|
path: "/api/memory/network/threads/:threadId/messages",
|
|
951
951
|
responseType: "json",
|
|
@@ -957,7 +957,7 @@ var LIST_MESSAGES_NETWORK_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
957
957
|
tags: ["Memory - Network"],
|
|
958
958
|
handler: LIST_MESSAGES_ROUTE.handler
|
|
959
959
|
});
|
|
960
|
-
var SAVE_MESSAGES_NETWORK_ROUTE =
|
|
960
|
+
var SAVE_MESSAGES_NETWORK_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
961
961
|
method: "POST",
|
|
962
962
|
path: "/api/memory/network/save-messages",
|
|
963
963
|
responseType: "json",
|
|
@@ -969,7 +969,7 @@ var SAVE_MESSAGES_NETWORK_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
969
969
|
tags: ["Memory - Network"],
|
|
970
970
|
handler: SAVE_MESSAGES_ROUTE.handler
|
|
971
971
|
});
|
|
972
|
-
var CREATE_THREAD_NETWORK_ROUTE =
|
|
972
|
+
var CREATE_THREAD_NETWORK_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
973
973
|
method: "POST",
|
|
974
974
|
path: "/api/memory/network/threads",
|
|
975
975
|
responseType: "json",
|
|
@@ -981,7 +981,7 @@ var CREATE_THREAD_NETWORK_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
981
981
|
tags: ["Memory - Network"],
|
|
982
982
|
handler: CREATE_THREAD_ROUTE.handler
|
|
983
983
|
});
|
|
984
|
-
var UPDATE_THREAD_NETWORK_ROUTE =
|
|
984
|
+
var UPDATE_THREAD_NETWORK_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
985
985
|
method: "PATCH",
|
|
986
986
|
path: "/api/memory/network/threads/:threadId",
|
|
987
987
|
responseType: "json",
|
|
@@ -994,7 +994,7 @@ var UPDATE_THREAD_NETWORK_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
994
994
|
tags: ["Memory - Network"],
|
|
995
995
|
handler: UPDATE_THREAD_ROUTE.handler
|
|
996
996
|
});
|
|
997
|
-
var DELETE_THREAD_NETWORK_ROUTE =
|
|
997
|
+
var DELETE_THREAD_NETWORK_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
998
998
|
method: "DELETE",
|
|
999
999
|
path: "/api/memory/network/threads/:threadId",
|
|
1000
1000
|
responseType: "json",
|
|
@@ -1006,7 +1006,7 @@ var DELETE_THREAD_NETWORK_ROUTE = chunkUKRDDBXY_cjs.createRoute({
|
|
|
1006
1006
|
tags: ["Memory - Network"],
|
|
1007
1007
|
handler: DELETE_THREAD_ROUTE.handler
|
|
1008
1008
|
});
|
|
1009
|
-
var DELETE_MESSAGES_NETWORK_ROUTE =
|
|
1009
|
+
var DELETE_MESSAGES_NETWORK_ROUTE = chunkAVRO3FIN_cjs.createRoute({
|
|
1010
1010
|
method: "POST",
|
|
1011
1011
|
path: "/api/memory/network/messages/delete",
|
|
1012
1012
|
responseType: "json",
|
|
@@ -1044,5 +1044,5 @@ exports.UPDATE_THREAD_ROUTE = UPDATE_THREAD_ROUTE;
|
|
|
1044
1044
|
exports.UPDATE_WORKING_MEMORY_ROUTE = UPDATE_WORKING_MEMORY_ROUTE;
|
|
1045
1045
|
exports.getTextContent = getTextContent;
|
|
1046
1046
|
exports.memory_exports = memory_exports;
|
|
1047
|
-
//# sourceMappingURL=chunk-
|
|
1048
|
-
//# sourceMappingURL=chunk-
|
|
1047
|
+
//# sourceMappingURL=chunk-UST3FS67.cjs.map
|
|
1048
|
+
//# sourceMappingURL=chunk-UST3FS67.cjs.map
|