Rocky_Mountain_Vending/.pnpm-store/v10/files/f4/258f82725262a1f8af77cf4fce04738aaa98658dfa458b37010aabdb72621e5619b892b2687f13276d5d677e11ad4eeeef58b4f649f75f3b01feb1361bfc86
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
11 KiB
Text

{"version":3,"file":"sessionExtraction.js","sources":["../../../../src/integrations/mcp-server/sessionExtraction.ts"],"sourcesContent":["/**\n * Session and party info extraction functions for MCP server instrumentation\n *\n * Handles extraction of client/server info and session data from MCP messages.\n */\n\nimport {\n CLIENT_ADDRESS_ATTRIBUTE,\n CLIENT_PORT_ATTRIBUTE,\n MCP_PROTOCOL_VERSION_ATTRIBUTE,\n MCP_SERVER_NAME_ATTRIBUTE,\n MCP_SERVER_TITLE_ATTRIBUTE,\n MCP_SERVER_VERSION_ATTRIBUTE,\n MCP_SESSION_ID_ATTRIBUTE,\n MCP_TRANSPORT_ATTRIBUTE,\n NETWORK_PROTOCOL_VERSION_ATTRIBUTE,\n NETWORK_TRANSPORT_ATTRIBUTE,\n} from './attributes';\nimport {\n getClientInfoForTransport,\n getProtocolVersionForTransport,\n getSessionDataForTransport,\n} from './sessionManagement';\nimport type { ExtraHandlerData, JsonRpcRequest, MCPTransport, PartyInfo, SessionData } from './types';\nimport { isValidContentItem } from './validation';\n\n/**\n * Extracts and validates PartyInfo from an unknown object\n * @param obj - Unknown object that might contain party info\n * @returns Validated PartyInfo object with only string properties\n */\nfunction extractPartyInfo(obj: unknown): PartyInfo {\n const partyInfo: PartyInfo = {};\n\n if (isValidContentItem(obj)) {\n if (typeof obj.name === 'string') {\n partyInfo.name = obj.name;\n }\n if (typeof obj.title === 'string') {\n partyInfo.title = obj.title;\n }\n if (typeof obj.version === 'string') {\n partyInfo.version = obj.version;\n }\n }\n\n return partyInfo;\n}\n\n/**\n * Extracts session data from \"initialize\" requests\n * @param request - JSON-RPC \"initialize\" request containing client info and protocol version\n * @returns Session data extracted from request parameters including protocol version and client info\n */\nexport function extractSessionDataFromInitializeRequest(request: JsonRpcRequest): SessionData {\n const sessionData: SessionData = {};\n if (isValidContentItem(request.params)) {\n if (typeof request.params.protocolVersion === 'string') {\n sessionData.protocolVersion = request.params.protocolVersion;\n }\n if (request.params.clientInfo) {\n sessionData.clientInfo = extractPartyInfo(request.params.clientInfo);\n }\n }\n return sessionData;\n}\n\n/**\n * Extracts session data from \"initialize\" response\n * @param result - \"initialize\" response result containing server info and protocol version\n * @returns Partial session data extracted from response including protocol version and server info\n */\nexport function extractSessionDataFromInitializeResponse(result: unknown): Partial<SessionData> {\n const sessionData: Partial<SessionData> = {};\n if (isValidContentItem(result)) {\n if (typeof result.protocolVersion === 'string') {\n sessionData.protocolVersion = result.protocolVersion;\n }\n if (result.serverInfo) {\n sessionData.serverInfo = extractPartyInfo(result.serverInfo);\n }\n }\n return sessionData;\n}\n\n/**\n * Build client attributes from stored client info\n * @param transport - MCP transport instance\n * @returns Client attributes for span instrumentation\n */\nexport function getClientAttributes(transport: MCPTransport): Record<string, string> {\n const clientInfo = getClientInfoForTransport(transport);\n const attributes: Record<string, string> = {};\n\n if (clientInfo?.name) {\n attributes['mcp.client.name'] = clientInfo.name;\n }\n if (clientInfo?.title) {\n attributes['mcp.client.title'] = clientInfo.title;\n }\n if (clientInfo?.version) {\n attributes['mcp.client.version'] = clientInfo.version;\n }\n\n return attributes;\n}\n\n/**\n * Build server attributes from stored server info\n * @param transport - MCP transport instance\n * @returns Server attributes for span instrumentation\n */\nexport function getServerAttributes(transport: MCPTransport): Record<string, string> {\n const serverInfo = getSessionDataForTransport(transport)?.serverInfo;\n const attributes: Record<string, string> = {};\n\n if (serverInfo?.name) {\n attributes[MCP_SERVER_NAME_ATTRIBUTE] = serverInfo.name;\n }\n if (serverInfo?.title) {\n attributes[MCP_SERVER_TITLE_ATTRIBUTE] = serverInfo.title;\n }\n if (serverInfo?.version) {\n attributes[MCP_SERVER_VERSION_ATTRIBUTE] = serverInfo.version;\n }\n\n return attributes;\n}\n\n/**\n * Extracts client connection info from extra handler data\n * @param extra - Extra handler data containing connection info\n * @returns Client address and port information\n */\nexport function extractClientInfo(extra: ExtraHandlerData): {\n address?: string;\n port?: number;\n} {\n return {\n address:\n extra?.requestInfo?.remoteAddress ||\n extra?.clientAddress ||\n extra?.request?.ip ||\n extra?.request?.connection?.remoteAddress,\n port: extra?.requestInfo?.remotePort || extra?.clientPort || extra?.request?.connection?.remotePort,\n };\n}\n\n/**\n * Extracts transport types based on transport constructor name\n * @param transport - MCP transport instance\n * @returns Transport type mapping for span attributes\n */\nexport function getTransportTypes(transport: MCPTransport): { mcpTransport: string; networkTransport: string } {\n const transportName = transport.constructor?.name?.toLowerCase() || '';\n\n if (transportName.includes('stdio')) {\n return { mcpTransport: 'stdio', networkTransport: 'pipe' };\n }\n\n if (transportName.includes('streamablehttp') || transportName.includes('streamable')) {\n return { mcpTransport: 'http', networkTransport: 'tcp' };\n }\n\n if (transportName.includes('sse')) {\n return { mcpTransport: 'sse', networkTransport: 'tcp' };\n }\n\n return { mcpTransport: 'unknown', networkTransport: 'unknown' };\n}\n\n/**\n * Build transport and network attributes\n * @param transport - MCP transport instance\n * @param extra - Optional extra handler data\n * @returns Transport attributes for span instrumentation\n */\nexport function buildTransportAttributes(\n transport: MCPTransport,\n extra?: ExtraHandlerData,\n): Record<string, string | number> {\n const sessionId = transport.sessionId;\n const clientInfo = extra ? extractClientInfo(extra) : {};\n const { mcpTransport, networkTransport } = getTransportTypes(transport);\n const clientAttributes = getClientAttributes(transport);\n const serverAttributes = getServerAttributes(transport);\n const protocolVersion = getProtocolVersionForTransport(transport);\n\n const attributes = {\n ...(sessionId && { [MCP_SESSION_ID_ATTRIBUTE]: sessionId }),\n ...(clientInfo.address && { [CLIENT_ADDRESS_ATTRIBUTE]: clientInfo.address }),\n ...(clientInfo.port && { [CLIENT_PORT_ATTRIBUTE]: clientInfo.port }),\n [MCP_TRANSPORT_ATTRIBUTE]: mcpTransport,\n [NETWORK_TRANSPORT_ATTRIBUTE]: networkTransport,\n [NETWORK_PROTOCOL_VERSION_ATTRIBUTE]: '2.0',\n ...(protocolVersion && { [MCP_PROTOCOL_VERSION_ATTRIBUTE]: protocolVersion }),\n ...clientAttributes,\n ...serverAttributes,\n };\n\n return attributes;\n}\n"],"names":[],"mappings":"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"}