Rocky_Mountain_Vending/.pnpm-store/v10/files/ed/3f2dfd877ae66664d2845856bbb5bea61a67dac4d13ad60883c42ac68207a031754a4603237fb20a0e547ed7bef698bc428a87cb7acf2b9878166b998b3902
DMleadgen 46d973904b
Initial commit: Rocky Mountain Vending website
Next.js website for Rocky Mountain Vending company featuring:
- Product catalog with Stripe integration
- Service areas and parts pages
- Admin dashboard with Clerk authentication
- SEO optimized pages with JSON-LD structured data

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-02-12 16:22:15 -07:00

1 line
No EOL
6.1 KiB
Text

{"version":3,"file":"correlation.js","sources":["../../../../src/integrations/mcp-server/correlation.ts"],"sourcesContent":["/**\n * Request-span correlation system for MCP server instrumentation\n *\n * Handles mapping requestId to span data for correlation with handler execution.\n * Uses WeakMap to scope correlation maps per transport instance, preventing\n * request ID collisions between different MCP sessions.\n */\n\nimport { getClient } from '../../currentScopes';\nimport { SPAN_STATUS_ERROR } from '../../tracing';\nimport type { Span } from '../../types-hoist/span';\nimport { filterMcpPiiFromSpanData } from './piiFiltering';\nimport { extractPromptResultAttributes, extractToolResultAttributes } from './resultExtraction';\nimport type { MCPTransport, RequestId, RequestSpanMapValue } from './types';\n\n/**\n * Transport-scoped correlation system that prevents collisions between different MCP sessions\n * @internal Each transport instance gets its own correlation map, eliminating request ID conflicts\n */\nconst transportToSpanMap = new WeakMap<MCPTransport, Map<RequestId, RequestSpanMapValue>>();\n\n/**\n * Gets or creates the span map for a specific transport instance\n * @internal\n * @param transport - MCP transport instance\n * @returns Span map for the transport\n */\nfunction getOrCreateSpanMap(transport: MCPTransport): Map<RequestId, RequestSpanMapValue> {\n let spanMap = transportToSpanMap.get(transport);\n if (!spanMap) {\n spanMap = new Map();\n transportToSpanMap.set(transport, spanMap);\n }\n return spanMap;\n}\n\n/**\n * Stores span context for later correlation with handler execution\n * @param transport - MCP transport instance\n * @param requestId - Request identifier\n * @param span - Active span to correlate\n * @param method - MCP method name\n */\nexport function storeSpanForRequest(transport: MCPTransport, requestId: RequestId, span: Span, method: string): void {\n const spanMap = getOrCreateSpanMap(transport);\n spanMap.set(requestId, {\n span,\n method,\n startTime: Date.now(),\n });\n}\n\n/**\n * Completes span with tool results and cleans up correlation\n * @param transport - MCP transport instance\n * @param requestId - Request identifier\n * @param result - Tool execution result for attribute extraction\n */\nexport function completeSpanWithResults(transport: MCPTransport, requestId: RequestId, result: unknown): void {\n const spanMap = getOrCreateSpanMap(transport);\n const spanData = spanMap.get(requestId);\n if (spanData) {\n const { span, method } = spanData;\n\n if (method === 'tools/call') {\n const rawToolAttributes = extractToolResultAttributes(result);\n const client = getClient();\n const sendDefaultPii = Boolean(client?.getOptions().sendDefaultPii);\n const toolAttributes = filterMcpPiiFromSpanData(rawToolAttributes, sendDefaultPii);\n\n span.setAttributes(toolAttributes);\n } else if (method === 'prompts/get') {\n const rawPromptAttributes = extractPromptResultAttributes(result);\n const client = getClient();\n const sendDefaultPii = Boolean(client?.getOptions().sendDefaultPii);\n const promptAttributes = filterMcpPiiFromSpanData(rawPromptAttributes, sendDefaultPii);\n\n span.setAttributes(promptAttributes);\n }\n\n span.end();\n spanMap.delete(requestId);\n }\n}\n\n/**\n * Cleans up pending spans for a specific transport (when that transport closes)\n * @param transport - MCP transport instance\n * @returns Number of pending spans that were cleaned up\n */\nexport function cleanupPendingSpansForTransport(transport: MCPTransport): number {\n const spanMap = transportToSpanMap.get(transport);\n if (!spanMap) {\n return 0;\n }\n\n const pendingCount = spanMap.size;\n\n for (const [, spanData] of spanMap) {\n spanData.span.setStatus({\n code: SPAN_STATUS_ERROR,\n message: 'cancelled',\n });\n spanData.span.end();\n }\n\n spanMap.clear();\n return pendingCount;\n}\n"],"names":["extractToolResultAttributes","getClient","filterMcpPiiFromSpanData","extractPromptResultAttributes","SPAN_STATUS_ERROR"],"mappings":"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"}