From 52c54a479c51ea49ee8ae37bc30b9c4d8e46044b Mon Sep 17 00:00:00 2001 From: Abhishek Singh Date: Wed, 9 Apr 2025 09:28:59 -0400 Subject: [PATCH 01/30] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1e06e79..65e60e2 100644 --- a/README.md +++ b/README.md @@ -24,8 +24,8 @@ MCP Host is a complete end-to-end implementation of a Model Context Protocol (MC 1. Clone the repository: ```bash - git clone https://github.com/yourusername/mcp-host.git - cd mcp-host + git clone https://github.com/aidecentralized/canvas.git + cd canvas ``` 2. Start the application with Docker Compose: From 0352752f4c23042f551f9d8cea3995e433f012d4 Mon Sep 17 00:00:00 2001 From: AlyssaMiaTaliotis Date: Thu, 10 Apr 2025 00:27:25 -0400 Subject: [PATCH 02/30] Fix: Validate MCP server on registration and handle frontend error --- .DS_Store | Bin 0 -> 6148 bytes .env | 1 + alyssa-changes.txt | 21 ++++++ client/src/components/SettingsModal.tsx | 92 ++++++++++++++++-------- docker-compose.yml | 2 - server/src/mcp/manager.ts | 30 +++++--- server/src/routes.ts | 12 +++- 7 files changed, 114 insertions(+), 44 deletions(-) create mode 100644 .DS_Store create mode 100644 .env create mode 100644 alyssa-changes.txt diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..60b355f0e495e599ef11fc7446d8299e07079bde GIT binary patch literal 6148 zcmeHKJxc>Y5S>lVaA=cKu*j8Sp`;X>Gn}AxKx_of2Z@k)!Kn3tf50DLWoc<^DWn#x z{V%@R*(7_3XDOmHu>0=jiK;{tVlW1)n7%NM^H{Qy^Kh}@XAFAv zW;-2@mNM0$3aA3VQ33nn(>C?!g06G#Z{=YRgo9~pm?lYUkhb6pH{++1qxZ>vKHm8@ zKI(gGLl~o!D%7R{`gZAZp*OugF2?=-8{OK+q4du^W0=l46y@Z2n0w(d28S!U<=NMu z^n8qU4LrTL&*SBEXX12N$eHsf%JF%Wci*Nw`g9H^UF!Heh*oNj$1Lvi*t+xd7?YPX z=TVg7^N@Xjsi^$}1^B-W3)cj7Rs~c6RbZw7uMZIhW9%>!v`YsjdjtRma9hJQe^PKw zZ}T=0(k|> za$Dv7|DgE%pD)roRX`Q^Qwo?MX(kQ)B)7LN{W#uhBaAZ)HqOfgZ3!l~9oq}uiq|o$ ZAr|okFm{*;!UNL}0V{(}s=$vb@ChT = ({ isOpen, onClose }) => { setShowApiKey(!showApiKey); }; - const handleAddServer = () => { + const handleAddServer = async () => { // Validate server info if (!newServer.id || !newServer.name || !newServer.url) { toast({ @@ -87,45 +87,77 @@ const SettingsModal: React.FC = ({ isOpen, onClose }) => { return; } - // Validate URL - try { - new URL(newServer.url); - } catch (error) { + // Validate URL format + try { + new URL(newServer.url); + } catch (error) { + toast({ + title: "Invalid URL", + description: + "Please enter a valid URL (e.g., http://localhost:3001/sse)", + status: "error", + duration: 3000, + isClosable: true, + position: "top", + }); + return; + } + + // 🌐 Send request to backend to actually register the server + try { + const res = await fetch("/api/servers", { + method: "POST", + headers: { "Content-Type": "application/json" }, + body: JSON.stringify({ + id: newServer.id, + name: newServer.name, + url: newServer.url, + }), + }); + + const data = await res.json(); + + if (res.ok && data.success) { + // Register new server + registerNandaServer({ + id: newServer.id, + name: newServer.name, + url: newServer.url, + }); + + setNewServer({ id: "", name: "", url: "" }); + toast({ - title: "Invalid URL", - description: - "Please enter a valid URL (e.g., http://localhost:3001/sse)", - status: "error", + title: "Server Added", + description: `Server "${newServer.name}" was successfully registered.`, + status: "success", duration: 3000, isClosable: true, position: "top", }); - return; + } else { + // Backend responded with failure + toast({ + title: "Server Registration Failed", + description: data.message || "Failed to register server.", + status: "error", + duration: 4000, + isClosable: true, + position: "top", + }); } - - // Register new server - registerNandaServer({ - id: newServer.id, - name: newServer.name, - url: newServer.url, - }); - - // Reset form - setNewServer({ - id: "", - name: "", - url: "", - }); - + } catch (error) { + console.error("Error adding server:", error); toast({ - title: "Server Added", - description: `Server "${newServer.name}" has been added`, - status: "success", - duration: 3000, + title: "Network Error", + description: "Could not connect to server. Check the URL.", + status: "error", + duration: 4000, isClosable: true, position: "top", }); - }; + } +}; return ( diff --git a/docker-compose.yml b/docker-compose.yml index 6a42fcc..45606cf 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,5 +1,3 @@ -version: "3.8" - services: # Backend server server: diff --git a/server/src/mcp/manager.ts b/server/src/mcp/manager.ts index df89078..c9e284a 100644 --- a/server/src/mcp/manager.ts +++ b/server/src/mcp/manager.ts @@ -13,7 +13,7 @@ export interface McpManager { toolName: string, args: any ) => Promise; - registerServer: (serverConfig: ServerConfig) => Promise; + registerServer: (serverConfig: ServerConfig) => Promise; getAvailableServers: () => ServerConfig[]; cleanup: () => Promise; } @@ -37,9 +37,8 @@ export function setupMcpManager(io: SocketIoServer): McpManager { // Cache of connected clients const connectedClients: Map = new Map(); - const registerServer = async (serverConfig: ServerConfig): Promise => { - servers.push(serverConfig); + const registerServer = async (serverConfig: ServerConfig): Promise => { try { // Create MCP client for this server using SSE transport const sseUrl = new URL(serverConfig.url); @@ -50,34 +49,45 @@ export function setupMcpManager(io: SocketIoServer): McpManager { version: "1.0.0", }); - await client.connect(transport); + await client.connect(transport); // This will throw if the server is unreachable // Fetch available tools from the server const toolsResult = await client.listTools(); - // Register tools in our registry - if (toolsResult?.tools) { - toolRegistry.registerTools(serverConfig.id, client, toolsResult.tools); + // Ensure the server has tools + if (!toolsResult?.tools || toolsResult.tools.length === 0) { + throw new Error("No tools discovered on MCP server"); } + // Register tools in our registry + toolRegistry.registerTools(serverConfig.id, client, toolsResult.tools); + // Store the connected client for later use connectedClients.set(serverConfig.id, client); + servers.push(serverConfig); console.log( `Registered server ${serverConfig.name} with ${ - toolsResult?.tools?.length || 0 + toolsResult?.tools?.length } tools` ); + + // Successful Registration + return true; } catch (error) { console.error( - `Failed to connect to MCP server ${serverConfig.name}:`, + `Failed to register server ${serverConfig.name}:`, error ); - // Remove the server from our list since we couldn't connect + + // Clean up in-memory state const index = servers.findIndex((s) => s.id === serverConfig.id); if (index !== -1) { servers.splice(index, 1); } + + // Failed registration + return false; } }; diff --git a/server/src/routes.ts b/server/src/routes.ts index 1efb6b5..a1ebd54 100644 --- a/server/src/routes.ts +++ b/server/src/routes.ts @@ -199,8 +199,16 @@ export function setupRoutes(app: Express, mcpManager: McpManager): void { } try { - await mcpManager.registerServer({ id, name, url }); - res.json({ success: true }); + // await mcpManager.registerServer({ id, name, url }); + // res.json({ success: true }); + const success = await mcpManager.registerServer({ id, name, url }); + + if (success) { + res.json({ success: true }); + } else { + res.status(400).json({ success: false, message: "Failed to connect to server or discover tools" }); + } + } catch (error) { console.error("Error registering server:", error); res.status(500).json({ From ee89855f929a6bd78dc6aa03acd0e1eab086e5cb Mon Sep 17 00:00:00 2001 From: AlyssaMiaTaliotis Date: Fri, 11 Apr 2025 20:08:57 -0400 Subject: [PATCH 03/30] Updated readme, screesnhot placeholder remains --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 1e06e79..a0bf341 100644 --- a/README.md +++ b/README.md @@ -1,12 +1,12 @@ # MCP Host -MCP Host is a complete end-to-end implementation of a Model Context Protocol (MCP) host with an in-built MCP client. It provides a beautiful, polished chat interface with tool selection capabilities using MCP. +MCP Host is a complete end-to-end implementation of a Model Context Protocol (MCP) host with an in-built MCP client. It provides a polished chat interface with built-in tool selection via the Model Context Protocol (MCP). ![MCP Host Screenshot](/path/to/screenshot.png) ## Features -- **Beautiful Chat Interface**: A clean, modern UI with glassmorphism design and a crimson color theme +- **Chat Interface**: A modern UI with a glassmorphism design and crimson theme - **MCP Client Integration**: Discover and use tools from MCP servers - **Anthropic API Integration**: Powered by Claude, one of the most capable AI assistants - **Server-Side Processing**: Backend handles communication with Anthropic and MCP servers @@ -95,7 +95,7 @@ server.tool("my-tool", { param: z.string() }, async ({ param }) => ({ const app = express(); const port = 3001; -// To support multiple simultaneous connections, we use a lookup object +// To support multiple simultaneous connections, a session-based lookup object is used const transports: { [sessionId: string]: SSEServerTransport } = {}; // SSE endpoint From c92510a0091fbb675a6cec8a1db856a465670045 Mon Sep 17 00:00:00 2001 From: AlyssaMiaTaliotis Date: Fri, 11 Apr 2025 23:03:37 -0400 Subject: [PATCH 04/30] Added screenshot --- README.md | 2 +- host_screenshot.png | Bin 0 -> 458870 bytes 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 host_screenshot.png diff --git a/README.md b/README.md index a0bf341..3b1c152 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ MCP Host is a complete end-to-end implementation of a Model Context Protocol (MCP) host with an in-built MCP client. It provides a polished chat interface with built-in tool selection via the Model Context Protocol (MCP). -![MCP Host Screenshot](/path/to/screenshot.png) +![MCP Host Screenshot](host_screenshot.png) ## Features diff --git a/host_screenshot.png b/host_screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..d0ddee33e70b4c69d823246c534d497a29a84654 GIT binary patch literal 458870 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 $5p^0kY`T`3>RPhesOeXTt*# zm)r(sNnWNQ^J#dU{jyOMd^mYP?%|Wq+BCC?}(Y>T7fh_xAi8?&(EXm zQkhiN!~qRdlBsRaRMVXJMyK%3+>$yqrQf%>VZt|-|DZk(EP&;*S(Dm+pp*=^9vCXS z1%GXse9aE-L9G~GvC|tH_r?*Djg_OeZXf|-?6ZsLp3GU|6fOqT+Cx@o^k2}V z5x_rb<(Qv=#)hh2m=0BHq<^wvG6f4u1gU*2*B~!R2uLWGMsnoh?xvX5lnYFJz4DrFNy#pgAao4tw}!5 zOC9=0E5E{`WFd06(iqHLQJ%UyGbKxEJdCMLI)lWsG`M4+J1DtP3OTF+l(#ZXJKv2c{Rqh6RRG7Nm;L@ zcS#4$oG^D(hM^WqZ)WfY&;7Bs`3}K&0|p^rcQT=ZmFDCJm|eURF%-B4x0Rdgy%=zv zVx}feFHS$Z){$NpPCEKWEF~4NcuA;t4)O1Ci0gRzvHHjZ0Ib~~ABXHezfPXD?KxvM zB5=2F`hx~&dCvh#_tftbf`)60eUeIxhI>!UGI=@IWNvK`|8fD(M*tqp1Fbw+;@fy# zuNmD+8)Az&^2vA<<<~W9D?Q88NCQ zGkc(S1&FWv0|h3>HG*%1Yj2PUg~8vsBpRI%w5Iv5fG)tQSSnuX>Ex0%2z_^>BMO(f-o7W z?j0(gJt26YiQ;_$4qOIsnfH%oD-L3f=W_lkF4m@Qc1Fs-L=z#vTKe1xdrIs>`5mFj zeUJZb^x@xd{>SKJCz(qCBIECXGkvN54#caLIHzBc7TGM%PkQXuu@WY%X94d=KX`oY zM3V&q`iZvgC(UOa?wMB=v|MjgooNU?cb1}W3L}Ta?E--dt$qt?1O2#jN0Mh6H21=(@EcVx!D%oz)ms=l0F(W0lcwhhPKn$o!&8z6gFhYKv zwQE=A0SxF|%jv)AH)1{x97I`pbNeUh-j21}^kLAC&&Cn{ z>$Ag8g8`k+JEtz@ORWz}bD4l^qXZ`J8%P@l0TYOVMHCg|ET{be(k+KEORDt7-6Tq5 zB>B~oQLI|A8NT@Xcj~rK^AJBLD5xOAdj@(aQoYtpt1#hJn88u+;&Kkv)*dO=A7-Zx ztJZ9_%g&RlS`|7PiC2cm&sl%tY#M%HBuEwMx3WmXBxaEcYCYKOnaukpRq`|gF{2#y zeR8_besOKOPvE~*7N9y@QdP;K6hlTLG3#a;k%1^!g7JvhF zA#^V93ZwQk8YdCUFPv^F;P44rb5GS|*y{bR6d8sLO)C&@jZyR;lFaL>fl#g5vP
i*YZaRyM(>9BOR-dH<- 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

N69S@WYmQ2seh<3jtU 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

+ - - - {server.name} - {server.verified && ( - - Verified - - )} - - {server.rating && ( - - - - {server.rating.toFixed(1)} - - - )} - - - - ID: {server.id} - - - URL: {server.url} - - - {server.description && ( - - {server.description} - - )} - - {server.tags && server.tags.length > 0 && ( - - {server.tags.map( - (tag: string, index: number) => ( - - {tag} - - ) - )} - - )} - - - - - - )) - )} - - )} - + + {tool.toolName} + + + +

+ + + + + ))} + + )} diff --git a/client/src/contexts/SettingsContext.tsx b/client/src/contexts/SettingsContext.tsx index 0c3334d..5c3d14b 100644 --- a/client/src/contexts/SettingsContext.tsx +++ b/client/src/contexts/SettingsContext.tsx @@ -7,24 +7,53 @@ import React, { useCallback, } from "react"; +// Define the types locally instead of importing from a non-existent file interface ServerConfig { id: string; name: string; url: string; +} + +interface CredentialRequirement { + id: string; + name: string; description?: string; - types?: string[]; - tags?: string[]; - verified?: boolean; - rating?: number; + acquisition?: { + url?: string; + instructions?: string; + }; +} + +interface ToolCredentialInfo { + toolName: string; + serverName: string; + serverId: string; + credentials: CredentialRequirement[]; +} + +interface ToolCredentialRequest { + toolName: string; + serverId: string; + credentials: Record; } +// Fix for undefined environment variables +const API_BASE_URL = process.env.REACT_APP_API_BASE_URL || ""; + interface SettingsContextProps { apiKey: string | null; setApiKey: (key: string) => void; nandaServers: ServerConfig[]; registerNandaServer: (server: ServerConfig) => void; removeNandaServer: (id: string) => void; - refreshRegistry: () => Promise<{ servers: ServerConfig[] }>; + refreshRegistry: () => Promise; + getToolsWithCredentialRequirements: () => Promise; + setToolCredentials: ( + toolName: string, + serverId: string, + credentials: Record + ) => Promise; + sessionId: string | null; } const SettingsContext = createContext({ @@ -34,13 +63,17 @@ const SettingsContext = createContext({ registerNandaServer: () => {}, removeNandaServer: () => {}, refreshRegistry: async () => ({ servers: [] }), + getToolsWithCredentialRequirements: async () => [], + setToolCredentials: async () => false, + sessionId: null, }); export const useSettingsContext = () => useContext(SettingsContext); // Local storage keys -const API_KEY_STORAGE_KEY = "nanda_host_api_key"; -const NANDA_SERVERS_STORAGE_KEY = "nanda_host_servers"; +const API_KEY_STORAGE_KEY = "nanda_api_key"; +const NANDA_SERVERS_STORAGE_KEY = "nanda_servers"; +const SESSION_ID_STORAGE_KEY = "nanda_session_id"; interface SettingsProviderProps { children: React.ReactNode; @@ -48,9 +81,52 @@ interface SettingsProviderProps { export const SettingsProvider: React.FC = ({ children, -}) => { +}: SettingsProviderProps) => { const [apiKey, setApiKeyState] = useState(null); const [nandaServers, setNandaServers] = useState([]); + const [sessionId, setSessionId] = useState(null); + + // Initialize session on mount + useEffect(() => { + const initSession = async () => { + // First, check if we have a stored session ID + const storedSessionId = localStorage.getItem(SESSION_ID_STORAGE_KEY); + if (storedSessionId) { + console.log("Using stored session ID:", storedSessionId); + setSessionId(storedSessionId); + return; + } + + // If no stored session, create a new one + try { + const response = await fetch(`${API_BASE_URL}/api/session`, { + method: "POST", + headers: { + "Content-Type": "application/json", + }, + }); + + if (!response.ok) { + throw new Error("Failed to create session"); + } + + const data = await response.json(); + console.log("Created new session with ID:", data.sessionId); + // Store the new session ID in localStorage for future use + localStorage.setItem(SESSION_ID_STORAGE_KEY, data.sessionId); + setSessionId(data.sessionId); + } catch (error) { + console.error("Error creating session:", error); + // Fallback to a local session ID if needed + const fallbackId = "local-" + Math.random().toString(36).substring(2, 15); + console.log("Using fallback session ID:", fallbackId); + localStorage.setItem(SESSION_ID_STORAGE_KEY, fallbackId); + setSessionId(fallbackId); + } + }; + + initSession(); + }, []); // Load settings from local storage on mount useEffect(() => { @@ -82,9 +158,9 @@ export const SettingsProvider: React.FC = ({ // Register Nanda server const registerNandaServer = useCallback((server: ServerConfig) => { - setNandaServers((prevServers) => { + setNandaServers((prevServers: any) => { // Check if server with this ID already exists - const existingIndex = prevServers.findIndex((s) => s.id === server.id); + const existingIndex = prevServers.findIndex((s: any) => s.id === server.id); let newServers: ServerConfig[]; if (existingIndex >= 0) { @@ -102,14 +178,29 @@ export const SettingsProvider: React.FC = ({ JSON.stringify(newServers) ); - // Also register with backend - fetch(`${process.env.REACT_APP_API_BASE_URL}/api/servers`, { + // Also register with backend with increased timeout + const controller = new AbortController(); + const timeoutId = setTimeout(() => controller.abort(), 120000); // 120 second timeout + + fetch(`${API_BASE_URL}/api/servers`, { method: "POST", headers: { "Content-Type": "application/json", }, body: JSON.stringify(server), - }).catch((error) => { + signal: controller.signal + }) + .then(response => { + clearTimeout(timeoutId); + if (!response.ok) { + throw new Error(`Failed to register server: ${response.status} ${response.statusText}`); + } + return response.json(); + }) + .then(data => { + console.log(`Server ${server.id} registered successfully:`, data); + }) + .catch((error) => { console.error("Failed to register server with backend:", error); }); @@ -119,8 +210,8 @@ export const SettingsProvider: React.FC = ({ // Remove Nanda server const removeNandaServer = useCallback((id: string) => { - setNandaServers((prevServers) => { - const newServers = prevServers.filter((server) => server.id !== id); + setNandaServers((prevServers: any) => { + const newServers = prevServers.filter((server: any) => server.id !== id); localStorage.setItem( NANDA_SERVERS_STORAGE_KEY, JSON.stringify(newServers) @@ -131,18 +222,27 @@ export const SettingsProvider: React.FC = ({ // Register servers with backend on initial load useEffect(() => { - if (nandaServers.length > 0) { + if (nandaServers.length > 0 && sessionId) { // Register all servers with the backend const registerAllServers = async () => { + console.log("Registering servers with backend:", nandaServers); for (const server of nandaServers) { try { - await fetch(`${process.env.REACT_APP_API_BASE_URL}/api/servers`, { + const response = await fetch(`${API_BASE_URL}/api/servers`, { method: "POST", headers: { "Content-Type": "application/json", + "X-Session-ID": sessionId, }, body: JSON.stringify(server), }); + + if (!response.ok) { + throw new Error(`Failed to register server: ${response.status} ${response.statusText}`); + } + + const data = await response.json(); + console.log(`Server ${server.id} registered successfully:`, data); } catch (error) { console.error( `Failed to register server ${server.id} with backend:`, @@ -154,15 +254,100 @@ export const SettingsProvider: React.FC = ({ registerAllServers(); } - }, []); + }, [nandaServers, sessionId]); + + // Get tools that require credentials + const getToolsWithCredentialRequirements = useCallback(async (): Promise => { + if (!sessionId) { + console.warn("Cannot get tools: No session ID available"); + return []; + } + + console.log(`Fetching tools requiring credentials using session ID: ${sessionId}`); + console.log(`Using API base URL: ${API_BASE_URL}`); + + try { + const response = await fetch( + `${API_BASE_URL}/api/tools/credentials`, + { + method: "GET", + headers: { + "Content-Type": "application/json", + "X-Session-ID": sessionId, + }, + } + ); + + if (!response.ok) { + throw new Error(`Failed to get tools: ${response.status} ${response.statusText}`); + } + + const contentType = response.headers.get("content-type"); + if (!contentType || !contentType.includes("application/json")) { + console.error("Received non-JSON response:", contentType); + return []; + } + + const data = await response.json(); + console.log("Tools with credential requirements:", data); + return data.tools || []; + } catch (error) { + console.error("Error getting tools with credential requirements:", error); + return []; + } + }, [sessionId]); + + // Set credentials for a tool + const setToolCredentials = useCallback( + async ( + toolName: string, + serverId: string, + credentials: Record + ): Promise => { + if (!sessionId) { + console.warn("Cannot set credentials: No session ID available"); + return false; + } + + console.log(`Setting credentials for tool ${toolName} from server ${serverId}`); + + try { + const response = await fetch( + `${API_BASE_URL}/api/tools/credentials`, + { + method: "POST", + headers: { + "Content-Type": "application/json", + "X-Session-ID": sessionId, + }, + body: JSON.stringify({ + toolName, + serverId, + credentials, + } as ToolCredentialRequest), + } + ); + + if (!response.ok) { + throw new Error(`Failed to set credentials: ${response.status} ${response.statusText}`); + } + + const data = await response.json(); + console.log("Credentials set successfully:", data); + return data.success || false; + } catch (error) { + console.error(`Error setting credentials for tool ${toolName}:`, error); + return false; + } + }, + [sessionId] + ); // Refresh servers from registry const refreshRegistry = useCallback(async () => { try { const response = await fetch( - `${ - process.env.REACT_APP_API_BASE_URL ?? "http://localhost:3000" - }/api/registry/refresh`, + `${API_BASE_URL}/api/registry/refresh`, { method: "POST", headers: { @@ -195,6 +380,9 @@ export const SettingsProvider: React.FC = ({ registerNandaServer, removeNandaServer, refreshRegistry, + getToolsWithCredentialRequirements, + setToolCredentials, + sessionId, }} > {children} From 8aa10ccb8e243340673e418061320a243ddbbc0c Mon Sep 17 00:00:00 2001 From: Mihir Date: Sun, 13 Apr 2025 09:05:20 -0400 Subject: [PATCH 06/30] Enhanced API tooling with robust type system and improved credential management --- Dockerfile.client | 7 +- client/.env | 1 + client/src/App.tsx | 20 +- client/src/components/ChatInterface.tsx | 238 +- client/src/components/Header.tsx | 99 +- client/src/components/MessageContent.tsx | 290 +- client/src/components/MessageInput.tsx | 95 +- client/src/components/ToolCallDisplay.tsx | 150 +- client/src/contexts/ChatContext.tsx | 56 +- client/src/react-app-env.d.ts | 4 + client/src/theme.ts | 189 +- docker-compose.yml | 7 +- nginx.conf | 22 +- node_modules/.bin/mime | 1 + node_modules/.bin/node-which | 1 + node_modules/.package-lock.json | 1644 + .../@modelcontextprotocol/sdk/LICENSE | 21 + .../@modelcontextprotocol/sdk/README.md | 549 + .../sdk/dist/cjs/cli.d.ts | 2 + .../sdk/dist/cjs/cli.d.ts.map | 1 + .../@modelcontextprotocol/sdk/dist/cjs/cli.js | 131 + .../sdk/dist/cjs/cli.js.map | 1 + .../sdk/dist/cjs/client/auth.d.ts | 117 + .../sdk/dist/cjs/client/auth.d.ts.map | 1 + .../sdk/dist/cjs/client/auth.js | 253 + .../sdk/dist/cjs/client/auth.js.map | 1 + .../sdk/dist/cjs/client/index.d.ts | 832 + .../sdk/dist/cjs/client/index.d.ts.map | 1 + .../sdk/dist/cjs/client/index.js | 229 + .../sdk/dist/cjs/client/index.js.map | 1 + .../sdk/dist/cjs/client/sse.d.ts | 70 + .../sdk/dist/cjs/client/sse.d.ts.map | 1 + .../sdk/dist/cjs/client/sse.js | 173 + .../sdk/dist/cjs/client/sse.js.map | 1 + .../sdk/dist/cjs/client/stdio.d.ts | 69 + .../sdk/dist/cjs/client/stdio.d.ts.map | 1 + .../sdk/dist/cjs/client/stdio.js | 157 + .../sdk/dist/cjs/client/stdio.js.map | 1 + .../sdk/dist/cjs/client/websocket.d.ts | 17 + .../sdk/dist/cjs/client/websocket.d.ts.map | 1 + .../sdk/dist/cjs/client/websocket.js | 65 + .../sdk/dist/cjs/client/websocket.js.map | 1 + .../sdk/dist/cjs/inMemory.d.ts | 21 + .../sdk/dist/cjs/inMemory.d.ts.map | 1 + .../sdk/dist/cjs/inMemory.js | 51 + .../sdk/dist/cjs/inMemory.js.map | 1 + .../sdk/dist/cjs/package.json | 1 + .../sdk/dist/cjs/server/auth/clients.d.ts | 19 + .../sdk/dist/cjs/server/auth/clients.d.ts.map | 1 + .../sdk/dist/cjs/server/auth/clients.js | 3 + .../sdk/dist/cjs/server/auth/clients.js.map | 1 + .../sdk/dist/cjs/server/auth/errors.d.ts | 126 + .../sdk/dist/cjs/server/auth/errors.d.ts.map | 1 + .../sdk/dist/cjs/server/auth/errors.js | 189 + .../sdk/dist/cjs/server/auth/errors.js.map | 1 + .../cjs/server/auth/handlers/authorize.d.ts | 13 + .../server/auth/handlers/authorize.d.ts.map | 1 + .../cjs/server/auth/handlers/authorize.js | 149 + .../cjs/server/auth/handlers/authorize.js.map | 1 + .../cjs/server/auth/handlers/metadata.d.ts | 4 + .../server/auth/handlers/metadata.d.ts.map | 1 + .../dist/cjs/server/auth/handlers/metadata.js | 21 + .../cjs/server/auth/handlers/metadata.js.map | 1 + .../cjs/server/auth/handlers/register.d.ts | 23 + .../server/auth/handlers/register.d.ts.map | 1 + .../dist/cjs/server/auth/handlers/register.js | 79 + .../cjs/server/auth/handlers/register.js.map | 1 + .../dist/cjs/server/auth/handlers/revoke.d.ts | 13 + .../cjs/server/auth/handlers/revoke.d.ts.map | 1 + .../dist/cjs/server/auth/handlers/revoke.js | 67 + .../cjs/server/auth/handlers/revoke.js.map | 1 + .../dist/cjs/server/auth/handlers/token.d.ts | 13 + .../cjs/server/auth/handlers/token.d.ts.map | 1 + .../dist/cjs/server/auth/handlers/token.js | 112 + .../cjs/server/auth/handlers/token.js.map | 1 + .../auth/middleware/allowedMethods.d.ts | 9 + .../auth/middleware/allowedMethods.d.ts.map | 1 + .../server/auth/middleware/allowedMethods.js | 23 + .../auth/middleware/allowedMethods.js.map | 1 + .../server/auth/middleware/bearerAuth.d.ts | 28 + .../auth/middleware/bearerAuth.d.ts.map | 1 + .../cjs/server/auth/middleware/bearerAuth.js | 59 + .../server/auth/middleware/bearerAuth.js.map | 1 + .../server/auth/middleware/clientAuth.d.ts | 19 + .../auth/middleware/clientAuth.d.ts.map | 1 + .../cjs/server/auth/middleware/clientAuth.js | 53 + .../server/auth/middleware/clientAuth.js.map | 1 + .../sdk/dist/cjs/server/auth/provider.d.ts | 58 + .../dist/cjs/server/auth/provider.d.ts.map | 1 + .../sdk/dist/cjs/server/auth/provider.js | 3 + .../sdk/dist/cjs/server/auth/provider.js.map | 1 + .../server/auth/providers/proxyProvider.d.ts | 43 + .../auth/providers/proxyProvider.d.ts.map | 1 + .../server/auth/providers/proxyProvider.js | 145 + .../auth/providers/proxyProvider.js.map | 1 + .../sdk/dist/cjs/server/auth/router.d.ts | 42 + .../sdk/dist/cjs/server/auth/router.d.ts.map | 1 + .../sdk/dist/cjs/server/auth/router.js | 69 + .../sdk/dist/cjs/server/auth/router.js.map | 1 + .../sdk/dist/cjs/server/auth/types.d.ts | 22 + .../sdk/dist/cjs/server/auth/types.d.ts.map | 1 + .../sdk/dist/cjs/server/auth/types.js | 3 + .../sdk/dist/cjs/server/auth/types.js.map | 1 + .../sdk/dist/cjs/server/completable.d.ts | 22 + .../sdk/dist/cjs/server/completable.d.ts.map | 1 + .../sdk/dist/cjs/server/completable.js | 65 + .../sdk/dist/cjs/server/completable.js.map | 1 + .../sdk/dist/cjs/server/index.d.ts | 135 + .../sdk/dist/cjs/server/index.d.ts.map | 1 + .../sdk/dist/cjs/server/index.js | 200 + .../sdk/dist/cjs/server/index.js.map | 1 + .../sdk/dist/cjs/server/mcp.d.ts | 154 + .../sdk/dist/cjs/server/mcp.d.ts.map | 1 + .../sdk/dist/cjs/server/mcp.js | 387 + .../sdk/dist/cjs/server/mcp.js.map | 1 + .../sdk/dist/cjs/server/sse.d.ts | 46 + .../sdk/dist/cjs/server/sse.d.ts.map | 1 + .../sdk/dist/cjs/server/sse.js | 123 + .../sdk/dist/cjs/server/sse.js.map | 1 + .../sdk/dist/cjs/server/stdio.d.ts | 28 + .../sdk/dist/cjs/server/stdio.d.ts.map | 1 + .../sdk/dist/cjs/server/stdio.js | 85 + .../sdk/dist/cjs/server/stdio.js.map | 1 + .../sdk/dist/cjs/shared/auth.d.ts | 271 + .../sdk/dist/cjs/shared/auth.d.ts.map | 1 + .../sdk/dist/cjs/shared/auth.js | 106 + .../sdk/dist/cjs/shared/auth.js.map | 1 + .../sdk/dist/cjs/shared/protocol.d.ts | 182 + .../sdk/dist/cjs/shared/protocol.d.ts.map | 1 + .../sdk/dist/cjs/shared/protocol.js | 361 + .../sdk/dist/cjs/shared/protocol.js.map | 1 + .../sdk/dist/cjs/shared/stdio.d.ts | 13 + .../sdk/dist/cjs/shared/stdio.d.ts.map | 1 + .../sdk/dist/cjs/shared/stdio.js | 37 + .../sdk/dist/cjs/shared/stdio.js.map | 1 + .../sdk/dist/cjs/shared/transport.d.ts | 43 + .../sdk/dist/cjs/shared/transport.d.ts.map | 1 + .../sdk/dist/cjs/shared/transport.js | 3 + .../sdk/dist/cjs/shared/transport.js.map | 1 + .../sdk/dist/cjs/shared/uriTemplate.d.ts | 25 + .../sdk/dist/cjs/shared/uriTemplate.d.ts.map | 1 + .../sdk/dist/cjs/shared/uriTemplate.js | 245 + .../sdk/dist/cjs/shared/uriTemplate.js.map | 1 + .../sdk/dist/cjs/types.d.ts | 28416 ++++++++++++++++ .../sdk/dist/cjs/types.d.ts.map | 1 + .../sdk/dist/cjs/types.js | 1031 + .../sdk/dist/cjs/types.js.map | 1 + .../sdk/dist/esm/cli.d.ts | 2 + .../sdk/dist/esm/cli.d.ts.map | 1 + .../@modelcontextprotocol/sdk/dist/esm/cli.js | 126 + .../sdk/dist/esm/cli.js.map | 1 + .../sdk/dist/esm/client/auth.d.ts | 117 + .../sdk/dist/esm/client/auth.d.ts.map | 1 + .../sdk/dist/esm/client/auth.js | 240 + .../sdk/dist/esm/client/auth.js.map | 1 + .../sdk/dist/esm/client/index.d.ts | 832 + .../sdk/dist/esm/client/index.d.ts.map | 1 + .../sdk/dist/esm/client/index.js | 225 + .../sdk/dist/esm/client/index.js.map | 1 + .../sdk/dist/esm/client/sse.d.ts | 70 + .../sdk/dist/esm/client/sse.d.ts.map | 1 + .../sdk/dist/esm/client/sse.js | 168 + .../sdk/dist/esm/client/sse.js.map | 1 + .../sdk/dist/esm/client/stdio.d.ts | 69 + .../sdk/dist/esm/client/stdio.d.ts.map | 1 + .../sdk/dist/esm/client/stdio.js | 149 + .../sdk/dist/esm/client/stdio.js.map | 1 + .../sdk/dist/esm/client/websocket.d.ts | 17 + .../sdk/dist/esm/client/websocket.d.ts.map | 1 + .../sdk/dist/esm/client/websocket.js | 61 + .../sdk/dist/esm/client/websocket.js.map | 1 + .../sdk/dist/esm/inMemory.d.ts | 21 + .../sdk/dist/esm/inMemory.d.ts.map | 1 + .../sdk/dist/esm/inMemory.js | 47 + .../sdk/dist/esm/inMemory.js.map | 1 + .../sdk/dist/esm/package.json | 1 + .../sdk/dist/esm/server/auth/clients.d.ts | 19 + .../sdk/dist/esm/server/auth/clients.d.ts.map | 1 + .../sdk/dist/esm/server/auth/clients.js | 2 + .../sdk/dist/esm/server/auth/clients.js.map | 1 + .../sdk/dist/esm/server/auth/errors.d.ts | 126 + .../sdk/dist/esm/server/auth/errors.d.ts.map | 1 + .../sdk/dist/esm/server/auth/errors.js | 169 + .../sdk/dist/esm/server/auth/errors.js.map | 1 + .../esm/server/auth/handlers/authorize.d.ts | 13 + .../server/auth/handlers/authorize.d.ts.map | 1 + .../esm/server/auth/handlers/authorize.js | 143 + .../esm/server/auth/handlers/authorize.js.map | 1 + .../esm/server/auth/handlers/metadata.d.ts | 4 + .../server/auth/handlers/metadata.d.ts.map | 1 + .../dist/esm/server/auth/handlers/metadata.js | 15 + .../esm/server/auth/handlers/metadata.js.map | 1 + .../esm/server/auth/handlers/register.d.ts | 23 + .../server/auth/handlers/register.d.ts.map | 1 + .../dist/esm/server/auth/handlers/register.js | 73 + .../esm/server/auth/handlers/register.js.map | 1 + .../dist/esm/server/auth/handlers/revoke.d.ts | 13 + .../esm/server/auth/handlers/revoke.d.ts.map | 1 + .../dist/esm/server/auth/handlers/revoke.js | 61 + .../esm/server/auth/handlers/revoke.js.map | 1 + .../dist/esm/server/auth/handlers/token.d.ts | 13 + .../esm/server/auth/handlers/token.d.ts.map | 1 + .../dist/esm/server/auth/handlers/token.js | 106 + .../esm/server/auth/handlers/token.js.map | 1 + .../auth/middleware/allowedMethods.d.ts | 9 + .../auth/middleware/allowedMethods.d.ts.map | 1 + .../server/auth/middleware/allowedMethods.js | 20 + .../auth/middleware/allowedMethods.js.map | 1 + .../server/auth/middleware/bearerAuth.d.ts | 28 + .../auth/middleware/bearerAuth.d.ts.map | 1 + .../esm/server/auth/middleware/bearerAuth.js | 56 + .../server/auth/middleware/bearerAuth.js.map | 1 + .../server/auth/middleware/clientAuth.d.ts | 19 + .../auth/middleware/clientAuth.d.ts.map | 1 + .../esm/server/auth/middleware/clientAuth.js | 50 + .../server/auth/middleware/clientAuth.js.map | 1 + .../sdk/dist/esm/server/auth/provider.d.ts | 58 + .../dist/esm/server/auth/provider.d.ts.map | 1 + .../sdk/dist/esm/server/auth/provider.js | 2 + .../sdk/dist/esm/server/auth/provider.js.map | 1 + .../server/auth/providers/proxyProvider.d.ts | 43 + .../auth/providers/proxyProvider.d.ts.map | 1 + .../server/auth/providers/proxyProvider.js | 141 + .../auth/providers/proxyProvider.js.map | 1 + .../sdk/dist/esm/server/auth/router.d.ts | 42 + .../sdk/dist/esm/server/auth/router.d.ts.map | 1 + .../sdk/dist/esm/server/auth/router.js | 63 + .../sdk/dist/esm/server/auth/router.js.map | 1 + .../sdk/dist/esm/server/auth/types.d.ts | 22 + .../sdk/dist/esm/server/auth/types.d.ts.map | 1 + .../sdk/dist/esm/server/auth/types.js | 2 + .../sdk/dist/esm/server/auth/types.js.map | 1 + .../sdk/dist/esm/server/completable.d.ts | 22 + .../sdk/dist/esm/server/completable.d.ts.map | 1 + .../sdk/dist/esm/server/completable.js | 60 + .../sdk/dist/esm/server/completable.js.map | 1 + .../sdk/dist/esm/server/index.d.ts | 135 + .../sdk/dist/esm/server/index.d.ts.map | 1 + .../sdk/dist/esm/server/index.js | 196 + .../sdk/dist/esm/server/index.js.map | 1 + .../sdk/dist/esm/server/mcp.d.ts | 154 + .../sdk/dist/esm/server/mcp.d.ts.map | 1 + .../sdk/dist/esm/server/mcp.js | 382 + .../sdk/dist/esm/server/mcp.js.map | 1 + .../sdk/dist/esm/server/sse.d.ts | 46 + .../sdk/dist/esm/server/sse.d.ts.map | 1 + .../sdk/dist/esm/server/sse.js | 116 + .../sdk/dist/esm/server/sse.js.map | 1 + .../sdk/dist/esm/server/stdio.d.ts | 28 + .../sdk/dist/esm/server/stdio.d.ts.map | 1 + .../sdk/dist/esm/server/stdio.js | 78 + .../sdk/dist/esm/server/stdio.js.map | 1 + .../sdk/dist/esm/shared/auth.d.ts | 271 + .../sdk/dist/esm/shared/auth.d.ts.map | 1 + .../sdk/dist/esm/shared/auth.js | 103 + .../sdk/dist/esm/shared/auth.js.map | 1 + .../sdk/dist/esm/shared/protocol.d.ts | 182 + .../sdk/dist/esm/shared/protocol.d.ts.map | 1 + .../sdk/dist/esm/shared/protocol.js | 356 + .../sdk/dist/esm/shared/protocol.js.map | 1 + .../sdk/dist/esm/shared/stdio.d.ts | 13 + .../sdk/dist/esm/shared/stdio.d.ts.map | 1 + .../sdk/dist/esm/shared/stdio.js | 31 + .../sdk/dist/esm/shared/stdio.js.map | 1 + .../sdk/dist/esm/shared/transport.d.ts | 43 + .../sdk/dist/esm/shared/transport.d.ts.map | 1 + .../sdk/dist/esm/shared/transport.js | 2 + .../sdk/dist/esm/shared/transport.js.map | 1 + .../sdk/dist/esm/shared/uriTemplate.d.ts | 25 + .../sdk/dist/esm/shared/uriTemplate.d.ts.map | 1 + .../sdk/dist/esm/shared/uriTemplate.js | 241 + .../sdk/dist/esm/shared/uriTemplate.js.map | 1 + .../sdk/dist/esm/types.d.ts | 28416 ++++++++++++++++ .../sdk/dist/esm/types.d.ts.map | 1 + .../sdk/dist/esm/types.js | 1026 + .../sdk/dist/esm/types.js.map | 1 + .../sdk/node_modules/accepts/HISTORY.md | 250 + .../sdk/node_modules/accepts/LICENSE | 23 + .../sdk/node_modules/accepts/README.md | 140 + .../sdk/node_modules/accepts/index.js | 238 + .../sdk/node_modules/accepts/package.json | 47 + .../sdk/node_modules/body-parser/HISTORY.md | 731 + .../sdk/node_modules/body-parser/LICENSE | 23 + .../sdk/node_modules/body-parser/README.md | 491 + .../sdk/node_modules/body-parser/index.js | 80 + .../sdk/node_modules/body-parser/lib/read.js | 210 + .../body-parser/lib/types/json.js | 206 + .../node_modules/body-parser/lib/types/raw.js | 75 + .../body-parser/lib/types/text.js | 80 + .../body-parser/lib/types/urlencoded.js | 177 + .../sdk/node_modules/body-parser/lib/utils.js | 83 + .../sdk/node_modules/body-parser/package.json | 49 + .../content-disposition/HISTORY.md | 66 + .../node_modules/content-disposition/LICENSE | 22 + .../content-disposition/README.md | 142 + .../node_modules/content-disposition/index.js | 459 + .../content-disposition/package.json | 44 + .../node_modules/cookie-signature/History.md | 70 + .../sdk/node_modules/cookie-signature/LICENSE | 22 + .../node_modules/cookie-signature/Readme.md | 23 + .../node_modules/cookie-signature/index.js | 47 + .../cookie-signature/package.json | 24 + .../sdk/node_modules/debug/LICENSE | 20 + .../sdk/node_modules/debug/README.md | 481 + .../sdk/node_modules/debug/package.json | 65 + .../sdk/node_modules/debug/src/browser.js | 272 + .../sdk/node_modules/debug/src/common.js | 292 + .../sdk/node_modules/debug/src/index.js | 10 + .../sdk/node_modules/debug/src/node.js | 263 + .../sdk/node_modules/express/History.md | 3858 +++ .../sdk/node_modules/express/LICENSE | 24 + .../sdk/node_modules/express/Readme.md | 266 + .../sdk/node_modules/express/index.js | 11 + .../node_modules/express/lib/application.js | 631 + .../sdk/node_modules/express/lib/express.js | 81 + .../sdk/node_modules/express/lib/request.js | 515 + .../sdk/node_modules/express/lib/response.js | 1039 + .../sdk/node_modules/express/lib/utils.js | 269 + .../sdk/node_modules/express/lib/view.js | 205 + .../sdk/node_modules/express/package.json | 98 + .../sdk/node_modules/finalhandler/HISTORY.md | 233 + .../sdk/node_modules/finalhandler/LICENSE | 22 + .../sdk/node_modules/finalhandler/README.md | 147 + .../sdk/node_modules/finalhandler/index.js | 293 + .../node_modules/finalhandler/package.json | 43 + .../sdk/node_modules/fresh/HISTORY.md | 80 + .../sdk/node_modules/fresh/LICENSE | 23 + .../sdk/node_modules/fresh/README.md | 117 + .../sdk/node_modules/fresh/index.js | 136 + .../sdk/node_modules/fresh/package.json | 46 + .../iconv-lite/.github/dependabot.yml | 11 + .../iconv-lite/.idea/codeStyles/Project.xml | 47 + .../.idea/codeStyles/codeStyleConfig.xml | 5 + .../iconv-lite/.idea/iconv-lite.iml | 12 + .../inspectionProfiles/Project_Default.xml | 6 + .../node_modules/iconv-lite/.idea/modules.xml | 8 + .../sdk/node_modules/iconv-lite/.idea/vcs.xml | 6 + .../sdk/node_modules/iconv-lite/Changelog.md | 212 + .../sdk/node_modules/iconv-lite/LICENSE | 21 + .../sdk/node_modules/iconv-lite/README.md | 130 + .../iconv-lite/encodings/dbcs-codec.js | 597 + .../iconv-lite/encodings/dbcs-data.js | 188 + .../iconv-lite/encodings/index.js | 23 + .../iconv-lite/encodings/internal.js | 198 + .../iconv-lite/encodings/sbcs-codec.js | 72 + .../encodings/sbcs-data-generated.js | 451 + .../iconv-lite/encodings/sbcs-data.js | 179 + .../encodings/tables/big5-added.json | 122 + .../iconv-lite/encodings/tables/cp936.json | 264 + .../iconv-lite/encodings/tables/cp949.json | 273 + .../iconv-lite/encodings/tables/cp950.json | 177 + .../iconv-lite/encodings/tables/eucjp.json | 182 + .../encodings/tables/gb18030-ranges.json | 1 + .../encodings/tables/gbk-added.json | 56 + .../iconv-lite/encodings/tables/shiftjis.json | 125 + .../iconv-lite/encodings/utf16.js | 197 + .../iconv-lite/encodings/utf32.js | 319 + .../node_modules/iconv-lite/encodings/utf7.js | 290 + .../iconv-lite/lib/bom-handling.js | 52 + .../node_modules/iconv-lite/lib/index.d.ts | 41 + .../sdk/node_modules/iconv-lite/lib/index.js | 180 + .../node_modules/iconv-lite/lib/streams.js | 109 + .../sdk/node_modules/iconv-lite/package.json | 44 + .../sdk/node_modules/media-typer/HISTORY.md | 50 + .../sdk/node_modules/media-typer/LICENSE | 22 + .../sdk/node_modules/media-typer/README.md | 93 + .../sdk/node_modules/media-typer/index.js | 143 + .../sdk/node_modules/media-typer/package.json | 33 + .../node_modules/merge-descriptors/index.d.ts | 11 + .../node_modules/merge-descriptors/index.js | 26 + .../node_modules/merge-descriptors/license | 11 + .../merge-descriptors/package.json | 50 + .../node_modules/merge-descriptors/readme.md | 55 + .../sdk/node_modules/mime-db/HISTORY.md | 541 + .../sdk/node_modules/mime-db/LICENSE | 23 + .../sdk/node_modules/mime-db/README.md | 109 + .../sdk/node_modules/mime-db/db.json | 9342 +++++ .../sdk/node_modules/mime-db/index.js | 12 + .../sdk/node_modules/mime-db/package.json | 56 + .../sdk/node_modules/mime-types/HISTORY.md | 421 + .../sdk/node_modules/mime-types/LICENSE | 23 + .../sdk/node_modules/mime-types/README.md | 126 + .../sdk/node_modules/mime-types/index.js | 211 + .../sdk/node_modules/mime-types/mimeScore.js | 52 + .../sdk/node_modules/mime-types/package.json | 45 + .../sdk/node_modules/ms/index.js | 162 + .../sdk/node_modules/ms/license.md | 21 + .../sdk/node_modules/ms/package.json | 38 + .../sdk/node_modules/ms/readme.md | 59 + .../sdk/node_modules/negotiator/HISTORY.md | 114 + .../sdk/node_modules/negotiator/LICENSE | 24 + .../sdk/node_modules/negotiator/README.md | 212 + .../sdk/node_modules/negotiator/index.js | 83 + .../node_modules/negotiator/lib/charset.js | 169 + .../node_modules/negotiator/lib/encoding.js | 205 + .../node_modules/negotiator/lib/language.js | 179 + .../node_modules/negotiator/lib/mediaType.js | 294 + .../sdk/node_modules/negotiator/package.json | 43 + .../sdk/node_modules/qs/.editorconfig | 46 + .../sdk/node_modules/qs/.eslintrc | 39 + .../sdk/node_modules/qs/.github/FUNDING.yml | 12 + .../sdk/node_modules/qs/.nycrc | 13 + .../sdk/node_modules/qs/CHANGELOG.md | 622 + .../sdk/node_modules/qs/LICENSE.md | 29 + .../sdk/node_modules/qs/README.md | 733 + .../sdk/node_modules/qs/dist/qs.js | 141 + .../sdk/node_modules/qs/lib/formats.js | 23 + .../sdk/node_modules/qs/lib/index.js | 11 + .../sdk/node_modules/qs/lib/parse.js | 328 + .../sdk/node_modules/qs/lib/stringify.js | 356 + .../sdk/node_modules/qs/lib/utils.js | 268 + .../sdk/node_modules/qs/package.json | 93 + .../node_modules/qs/test/empty-keys-cases.js | 267 + .../sdk/node_modules/qs/test/parse.js | 1276 + .../sdk/node_modules/qs/test/stringify.js | 1306 + .../sdk/node_modules/qs/test/utils.js | 262 + .../sdk/node_modules/send/HISTORY.md | 580 + .../sdk/node_modules/send/LICENSE | 23 + .../sdk/node_modules/send/README.md | 317 + .../sdk/node_modules/send/index.js | 997 + .../sdk/node_modules/send/package.json | 60 + .../sdk/node_modules/serve-static/HISTORY.md | 516 + .../sdk/node_modules/serve-static/LICENSE | 25 + .../sdk/node_modules/serve-static/README.md | 253 + .../sdk/node_modules/serve-static/index.js | 208 + .../node_modules/serve-static/package.json | 41 + .../sdk/node_modules/type-is/HISTORY.md | 292 + .../sdk/node_modules/type-is/LICENSE | 23 + .../sdk/node_modules/type-is/README.md | 198 + .../sdk/node_modules/type-is/index.js | 250 + .../sdk/node_modules/type-is/package.json | 47 + .../@modelcontextprotocol/sdk/package.json | 85 + .../@socket.io/component-emitter/LICENSE | 24 + .../@socket.io/component-emitter/Readme.md | 79 + .../component-emitter/lib/cjs/index.d.ts | 179 + .../component-emitter/lib/cjs/index.js | 176 + .../component-emitter/lib/cjs/package.json | 4 + .../component-emitter/lib/esm/index.d.ts | 179 + .../component-emitter/lib/esm/index.js | 169 + .../component-emitter/lib/esm/package.json | 4 + .../@socket.io/component-emitter/package.json | 28 + node_modules/@types/cors/LICENSE | 21 + node_modules/@types/cors/README.md | 75 + node_modules/@types/cors/index.d.ts | 56 + node_modules/@types/cors/package.json | 32 + node_modules/@types/node/LICENSE | 21 + node_modules/@types/node/README.md | 15 + node_modules/@types/node/assert.d.ts | 1095 + node_modules/@types/node/assert/strict.d.ts | 8 + node_modules/@types/node/async_hooks.d.ts | 541 + node_modules/@types/node/buffer.buffer.d.ts | 460 + node_modules/@types/node/buffer.d.ts | 1926 ++ node_modules/@types/node/child_process.d.ts | 1549 + node_modules/@types/node/cluster.d.ts | 579 + .../@types/node/compatibility/disposable.d.ts | 16 + .../@types/node/compatibility/index.d.ts | 9 + .../@types/node/compatibility/indexable.d.ts | 23 + .../@types/node/compatibility/iterators.d.ts | 21 + node_modules/@types/node/console.d.ts | 452 + node_modules/@types/node/constants.d.ts | 21 + node_modules/@types/node/crypto.d.ts | 4510 +++ node_modules/@types/node/dgram.d.ts | 599 + .../@types/node/diagnostics_channel.d.ts | 554 + node_modules/@types/node/dns.d.ts | 865 + node_modules/@types/node/dns/promises.d.ts | 476 + node_modules/@types/node/dom-events.d.ts | 124 + node_modules/@types/node/domain.d.ts | 170 + node_modules/@types/node/events.d.ts | 931 + node_modules/@types/node/fs.d.ts | 4353 +++ node_modules/@types/node/fs/promises.d.ts | 1275 + node_modules/@types/node/globals.d.ts | 511 + .../@types/node/globals.typedarray.d.ts | 21 + node_modules/@types/node/http.d.ts | 1959 ++ node_modules/@types/node/http2.d.ts | 2558 ++ node_modules/@types/node/https.d.ts | 545 + node_modules/@types/node/index.d.ts | 92 + node_modules/@types/node/inspector.d.ts | 3966 +++ node_modules/@types/node/module.d.ts | 747 + node_modules/@types/node/net.d.ts | 1029 + node_modules/@types/node/os.d.ts | 495 + node_modules/@types/node/package.json | 220 + node_modules/@types/node/path.d.ts | 200 + node_modules/@types/node/perf_hooks.d.ts | 970 + node_modules/@types/node/process.d.ts | 2041 ++ node_modules/@types/node/punycode.d.ts | 117 + node_modules/@types/node/querystring.d.ts | 153 + node_modules/@types/node/readline.d.ts | 589 + .../@types/node/readline/promises.d.ts | 162 + node_modules/@types/node/repl.d.ts | 430 + node_modules/@types/node/sea.d.ts | 153 + node_modules/@types/node/sqlite.d.ts | 485 + node_modules/@types/node/stream.d.ts | 1662 + .../@types/node/stream/consumers.d.ts | 38 + node_modules/@types/node/stream/promises.d.ts | 90 + node_modules/@types/node/stream/web.d.ts | 614 + node_modules/@types/node/string_decoder.d.ts | 67 + node_modules/@types/node/test.d.ts | 2232 ++ node_modules/@types/node/timers.d.ts | 287 + node_modules/@types/node/timers/promises.d.ts | 108 + node_modules/@types/node/tls.d.ts | 1226 + node_modules/@types/node/trace_events.d.ts | 197 + .../@types/node/ts5.6/buffer.buffer.d.ts | 457 + .../@types/node/ts5.6/globals.typedarray.d.ts | 19 + node_modules/@types/node/ts5.6/index.d.ts | 92 + node_modules/@types/node/tty.d.ts | 208 + node_modules/@types/node/url.d.ts | 972 + node_modules/@types/node/util.d.ts | 2452 ++ node_modules/@types/node/v8.d.ts | 808 + node_modules/@types/node/vm.d.ts | 976 + node_modules/@types/node/wasi.d.ts | 181 + node_modules/@types/node/worker_threads.d.ts | 746 + node_modules/@types/node/zlib.d.ts | 539 + node_modules/@types/react/LICENSE | 21 + node_modules/@types/react/README.md | 15 + node_modules/@types/react/canary.d.ts | 35 + .../@types/react/compiler-runtime.d.ts | 4 + node_modules/@types/react/experimental.d.ts | 232 + node_modules/@types/react/global.d.ts | 160 + node_modules/@types/react/index.d.ts | 4227 +++ .../@types/react/jsx-dev-runtime.d.ts | 45 + node_modules/@types/react/jsx-runtime.d.ts | 36 + node_modules/@types/react/package.json | 210 + node_modules/@types/react/ts5.0/canary.d.ts | 35 + .../@types/react/ts5.0/experimental.d.ts | 232 + node_modules/@types/react/ts5.0/global.d.ts | 160 + node_modules/@types/react/ts5.0/index.d.ts | 4214 +++ .../@types/react/ts5.0/jsx-dev-runtime.d.ts | 44 + .../@types/react/ts5.0/jsx-runtime.d.ts | 35 + .../@types/react/ts5.0/v18/global.d.ts | 160 + .../@types/react/ts5.0/v18/index.d.ts | 4543 +++ .../react/ts5.0/v18/jsx-dev-runtime.d.ts | 45 + .../@types/react/ts5.0/v18/jsx-runtime.d.ts | 36 + .../@types/react/ts5.0/v18/ts5.0/global.d.ts | 160 + .../@types/react/ts5.0/v18/ts5.0/index.d.ts | 4530 +++ .../ts5.0/v18/ts5.0/jsx-dev-runtime.d.ts | 44 + .../react/ts5.0/v18/ts5.0/jsx-runtime.d.ts | 35 + node_modules/@types/socket.io/LICENSE | 21 + node_modules/@types/socket.io/README.md | 3 + node_modules/@types/socket.io/package.json | 13 + node_modules/accepts/HISTORY.md | 243 + node_modules/accepts/LICENSE | 23 + node_modules/accepts/README.md | 140 + node_modules/accepts/index.js | 238 + node_modules/accepts/package.json | 47 + node_modules/array-flatten/LICENSE | 21 + node_modules/array-flatten/README.md | 43 + node_modules/array-flatten/array-flatten.js | 64 + node_modules/array-flatten/package.json | 39 + node_modules/base64id/CHANGELOG.md | 16 + node_modules/base64id/LICENSE | 22 + node_modules/base64id/README.md | 18 + node_modules/base64id/lib/base64id.js | 103 + node_modules/base64id/package.json | 13 + node_modules/body-parser/HISTORY.md | 672 + node_modules/body-parser/LICENSE | 23 + node_modules/body-parser/README.md | 476 + node_modules/body-parser/SECURITY.md | 25 + node_modules/body-parser/index.js | 156 + node_modules/body-parser/lib/read.js | 205 + node_modules/body-parser/lib/types/json.js | 247 + node_modules/body-parser/lib/types/raw.js | 101 + node_modules/body-parser/lib/types/text.js | 121 + .../body-parser/lib/types/urlencoded.js | 307 + .../node_modules/raw-body/HISTORY.md | 308 + .../body-parser/node_modules/raw-body/LICENSE | 22 + .../node_modules/raw-body/README.md | 223 + .../node_modules/raw-body/SECURITY.md | 24 + .../node_modules/raw-body/index.d.ts | 87 + .../node_modules/raw-body/index.js | 336 + .../node_modules/raw-body/package.json | 49 + node_modules/body-parser/package.json | 56 + node_modules/bytes/History.md | 97 + node_modules/bytes/LICENSE | 23 + node_modules/bytes/Readme.md | 152 + node_modules/bytes/index.js | 170 + node_modules/bytes/package.json | 42 + .../call-bind-apply-helpers/.eslintrc | 17 + .../.github/FUNDING.yml | 12 + node_modules/call-bind-apply-helpers/.nycrc | 9 + .../call-bind-apply-helpers/CHANGELOG.md | 30 + node_modules/call-bind-apply-helpers/LICENSE | 21 + .../call-bind-apply-helpers/README.md | 62 + .../call-bind-apply-helpers/actualApply.d.ts | 1 + .../call-bind-apply-helpers/actualApply.js | 10 + .../call-bind-apply-helpers/applyBind.d.ts | 19 + .../call-bind-apply-helpers/applyBind.js | 10 + .../functionApply.d.ts | 1 + .../call-bind-apply-helpers/functionApply.js | 4 + .../call-bind-apply-helpers/functionCall.d.ts | 1 + .../call-bind-apply-helpers/functionCall.js | 4 + .../call-bind-apply-helpers/index.d.ts | 64 + node_modules/call-bind-apply-helpers/index.js | 15 + .../call-bind-apply-helpers/package.json | 85 + .../call-bind-apply-helpers/reflectApply.d.ts | 3 + .../call-bind-apply-helpers/reflectApply.js | 4 + .../call-bind-apply-helpers/test/index.js | 63 + .../call-bind-apply-helpers/tsconfig.json | 9 + node_modules/call-bound/.eslintrc | 13 + node_modules/call-bound/.github/FUNDING.yml | 12 + node_modules/call-bound/.nycrc | 9 + node_modules/call-bound/CHANGELOG.md | 42 + node_modules/call-bound/LICENSE | 21 + node_modules/call-bound/README.md | 53 + node_modules/call-bound/index.d.ts | 94 + node_modules/call-bound/index.js | 19 + node_modules/call-bound/package.json | 99 + node_modules/call-bound/test/index.js | 61 + node_modules/call-bound/tsconfig.json | 10 + node_modules/content-disposition/HISTORY.md | 60 + node_modules/content-disposition/LICENSE | 22 + node_modules/content-disposition/README.md | 142 + node_modules/content-disposition/index.js | 458 + node_modules/content-disposition/package.json | 44 + node_modules/content-type/HISTORY.md | 29 + node_modules/content-type/LICENSE | 22 + node_modules/content-type/README.md | 94 + node_modules/content-type/index.js | 225 + node_modules/content-type/package.json | 42 + node_modules/cookie-signature/.npmignore | 4 + node_modules/cookie-signature/History.md | 38 + node_modules/cookie-signature/Readme.md | 42 + node_modules/cookie-signature/index.js | 51 + node_modules/cookie-signature/package.json | 18 + node_modules/cookie/LICENSE | 24 + node_modules/cookie/README.md | 317 + node_modules/cookie/SECURITY.md | 25 + node_modules/cookie/index.js | 334 + node_modules/cookie/package.json | 44 + node_modules/cors/CONTRIBUTING.md | 33 + node_modules/cors/HISTORY.md | 58 + node_modules/cors/LICENSE | 22 + node_modules/cors/README.md | 243 + node_modules/cors/lib/index.js | 238 + node_modules/cors/package.json | 41 + node_modules/cross-spawn/LICENSE | 21 + node_modules/cross-spawn/README.md | 89 + node_modules/cross-spawn/index.js | 39 + node_modules/cross-spawn/lib/enoent.js | 59 + node_modules/cross-spawn/lib/parse.js | 91 + node_modules/cross-spawn/lib/util/escape.js | 47 + .../cross-spawn/lib/util/readShebang.js | 23 + .../cross-spawn/lib/util/resolveCommand.js | 52 + node_modules/cross-spawn/package.json | 73 + node_modules/csstype/LICENSE | 19 + node_modules/csstype/README.md | 277 + node_modules/csstype/index.d.ts | 21297 ++++++++++++ node_modules/csstype/index.js.flow | 6612 ++++ node_modules/csstype/package.json | 66 + node_modules/debug/.coveralls.yml | 1 + node_modules/debug/.eslintrc | 11 + node_modules/debug/.npmignore | 9 + node_modules/debug/.travis.yml | 14 + node_modules/debug/CHANGELOG.md | 362 + node_modules/debug/LICENSE | 19 + node_modules/debug/Makefile | 50 + node_modules/debug/README.md | 312 + node_modules/debug/component.json | 19 + node_modules/debug/karma.conf.js | 70 + node_modules/debug/node.js | 1 + node_modules/debug/package.json | 49 + node_modules/debug/src/browser.js | 185 + node_modules/debug/src/debug.js | 202 + node_modules/debug/src/index.js | 10 + node_modules/debug/src/inspector-log.js | 15 + node_modules/debug/src/node.js | 248 + node_modules/depd/History.md | 103 + node_modules/depd/LICENSE | 22 + node_modules/depd/Readme.md | 280 + node_modules/depd/index.js | 538 + node_modules/depd/lib/browser/index.js | 77 + node_modules/depd/package.json | 45 + node_modules/destroy/LICENSE | 23 + node_modules/destroy/README.md | 63 + node_modules/destroy/index.js | 209 + node_modules/destroy/package.json | 48 + node_modules/dunder-proto/.eslintrc | 5 + node_modules/dunder-proto/.github/FUNDING.yml | 12 + node_modules/dunder-proto/.nycrc | 13 + node_modules/dunder-proto/CHANGELOG.md | 24 + node_modules/dunder-proto/LICENSE | 21 + node_modules/dunder-proto/README.md | 54 + node_modules/dunder-proto/get.d.ts | 5 + node_modules/dunder-proto/get.js | 30 + node_modules/dunder-proto/package.json | 76 + node_modules/dunder-proto/set.d.ts | 5 + node_modules/dunder-proto/set.js | 35 + node_modules/dunder-proto/test/get.js | 34 + node_modules/dunder-proto/test/index.js | 4 + node_modules/dunder-proto/test/set.js | 50 + node_modules/dunder-proto/tsconfig.json | 9 + node_modules/ee-first/LICENSE | 22 + node_modules/ee-first/README.md | 80 + node_modules/ee-first/index.js | 95 + node_modules/ee-first/package.json | 29 + node_modules/encodeurl/LICENSE | 22 + node_modules/encodeurl/README.md | 109 + node_modules/encodeurl/index.js | 60 + node_modules/encodeurl/package.json | 40 + node_modules/engine.io-parser/LICENSE | 22 + node_modules/engine.io-parser/Readme.md | 158 + .../engine.io-parser/build/cjs/commons.d.ts | 14 + .../engine.io-parser/build/cjs/commons.js | 19 + .../build/cjs/contrib/base64-arraybuffer.d.ts | 2 + .../build/cjs/contrib/base64-arraybuffer.js | 48 + .../build/cjs/decodePacket.browser.d.ts | 2 + .../build/cjs/decodePacket.browser.js | 66 + .../build/cjs/decodePacket.d.ts | 2 + .../build/cjs/decodePacket.js | 59 + .../build/cjs/encodePacket.browser.d.ts | 4 + .../build/cjs/encodePacket.browser.js | 72 + .../build/cjs/encodePacket.d.ts | 3 + .../build/cjs/encodePacket.js | 38 + .../engine.io-parser/build/cjs/index.d.ts | 9 + .../engine.io-parser/build/cjs/index.js | 164 + .../engine.io-parser/build/cjs/package.json | 8 + .../engine.io-parser/build/esm/commons.d.ts | 14 + .../engine.io-parser/build/esm/commons.js | 14 + .../build/esm/contrib/base64-arraybuffer.d.ts | 2 + .../build/esm/contrib/base64-arraybuffer.js | 43 + .../build/esm/decodePacket.browser.d.ts | 2 + .../build/esm/decodePacket.browser.js | 62 + .../build/esm/decodePacket.d.ts | 2 + .../build/esm/decodePacket.js | 55 + .../build/esm/encodePacket.browser.d.ts | 4 + .../build/esm/encodePacket.browser.js | 68 + .../build/esm/encodePacket.d.ts | 3 + .../build/esm/encodePacket.js | 33 + .../engine.io-parser/build/esm/index.d.ts | 9 + .../engine.io-parser/build/esm/index.js | 156 + .../engine.io-parser/build/esm/package.json | 8 + node_modules/engine.io-parser/package.json | 46 + node_modules/engine.io/LICENSE | 19 + node_modules/engine.io/README.md | 603 + .../engine.io/build/contrib/types.cookie.d.ts | 113 + .../engine.io/build/contrib/types.cookie.js | 6 + node_modules/engine.io/build/engine.io.d.ts | 26 + node_modules/engine.io/build/engine.io.js | 54 + .../engine.io/build/parser-v3/index.d.ts | 94 + .../engine.io/build/parser-v3/index.js | 424 + .../engine.io/build/parser-v3/utf8.d.ts | 14 + .../engine.io/build/parser-v3/utf8.js | 187 + node_modules/engine.io/build/server.d.ts | 267 + node_modules/engine.io/build/server.js | 786 + node_modules/engine.io/build/socket.d.ts | 180 + node_modules/engine.io/build/socket.js | 460 + node_modules/engine.io/build/transport.d.ts | 124 + node_modules/engine.io/build/transport.js | 117 + .../engine.io/build/transports-uws/index.d.ts | 7 + .../engine.io/build/transports-uws/index.js | 8 + .../build/transports-uws/polling.d.ts | 99 + .../engine.io/build/transports-uws/polling.js | 364 + .../build/transports-uws/websocket.d.ts | 32 + .../build/transports-uws/websocket.js | 73 + .../engine.io/build/transports/index.d.ts | 16 + .../engine.io/build/transports/index.js | 23 + .../build/transports/polling-jsonp.d.ts | 12 + .../build/transports/polling-jsonp.js | 41 + .../engine.io/build/transports/polling.d.ts | 87 + .../engine.io/build/transports/polling.js | 332 + .../engine.io/build/transports/websocket.d.ts | 32 + .../engine.io/build/transports/websocket.js | 94 + .../build/transports/webtransport.d.ts | 12 + .../build/transports/webtransport.js | 63 + node_modules/engine.io/build/userver.d.ts | 42 + node_modules/engine.io/build/userver.js | 279 + .../engine.io/node_modules/cookie/LICENSE | 24 + .../engine.io/node_modules/cookie/README.md | 317 + .../engine.io/node_modules/cookie/SECURITY.md | 25 + .../engine.io/node_modules/cookie/index.js | 335 + .../node_modules/cookie/package.json | 44 + .../engine.io/node_modules/debug/LICENSE | 20 + .../engine.io/node_modules/debug/README.md | 481 + .../engine.io/node_modules/debug/package.json | 60 + .../node_modules/debug/src/browser.js | 271 + .../node_modules/debug/src/common.js | 274 + .../engine.io/node_modules/debug/src/index.js | 10 + .../engine.io/node_modules/debug/src/node.js | 263 + .../engine.io/node_modules/ms/index.js | 162 + .../engine.io/node_modules/ms/license.md | 21 + .../engine.io/node_modules/ms/package.json | 38 + .../engine.io/node_modules/ms/readme.md | 59 + node_modules/engine.io/package.json | 70 + node_modules/engine.io/wrapper.mjs | 10 + node_modules/es-define-property/.eslintrc | 13 + .../es-define-property/.github/FUNDING.yml | 12 + node_modules/es-define-property/.nycrc | 9 + node_modules/es-define-property/CHANGELOG.md | 29 + node_modules/es-define-property/LICENSE | 21 + node_modules/es-define-property/README.md | 49 + node_modules/es-define-property/index.d.ts | 3 + node_modules/es-define-property/index.js | 14 + node_modules/es-define-property/package.json | 81 + node_modules/es-define-property/test/index.js | 56 + node_modules/es-define-property/tsconfig.json | 10 + node_modules/es-errors/.eslintrc | 5 + node_modules/es-errors/.github/FUNDING.yml | 12 + node_modules/es-errors/CHANGELOG.md | 40 + node_modules/es-errors/LICENSE | 21 + node_modules/es-errors/README.md | 55 + node_modules/es-errors/eval.d.ts | 3 + node_modules/es-errors/eval.js | 4 + node_modules/es-errors/index.d.ts | 3 + node_modules/es-errors/index.js | 4 + node_modules/es-errors/package.json | 80 + node_modules/es-errors/range.d.ts | 3 + node_modules/es-errors/range.js | 4 + node_modules/es-errors/ref.d.ts | 3 + node_modules/es-errors/ref.js | 4 + node_modules/es-errors/syntax.d.ts | 3 + node_modules/es-errors/syntax.js | 4 + node_modules/es-errors/test/index.js | 19 + node_modules/es-errors/tsconfig.json | 49 + node_modules/es-errors/type.d.ts | 3 + node_modules/es-errors/type.js | 4 + node_modules/es-errors/uri.d.ts | 3 + node_modules/es-errors/uri.js | 4 + node_modules/es-object-atoms/.eslintrc | 16 + .../es-object-atoms/.github/FUNDING.yml | 12 + node_modules/es-object-atoms/CHANGELOG.md | 37 + node_modules/es-object-atoms/LICENSE | 21 + node_modules/es-object-atoms/README.md | 63 + .../RequireObjectCoercible.d.ts | 3 + .../es-object-atoms/RequireObjectCoercible.js | 11 + node_modules/es-object-atoms/ToObject.d.ts | 7 + node_modules/es-object-atoms/ToObject.js | 10 + node_modules/es-object-atoms/index.d.ts | 3 + node_modules/es-object-atoms/index.js | 4 + node_modules/es-object-atoms/isObject.d.ts | 3 + node_modules/es-object-atoms/isObject.js | 6 + node_modules/es-object-atoms/package.json | 80 + node_modules/es-object-atoms/test/index.js | 38 + node_modules/es-object-atoms/tsconfig.json | 6 + node_modules/escape-html/LICENSE | 24 + node_modules/escape-html/Readme.md | 43 + node_modules/escape-html/index.js | 78 + node_modules/escape-html/package.json | 24 + node_modules/etag/HISTORY.md | 83 + node_modules/etag/LICENSE | 22 + node_modules/etag/README.md | 159 + node_modules/etag/index.js | 131 + node_modules/etag/package.json | 47 + node_modules/eventsource-parser/LICENSE | 21 + node_modules/eventsource-parser/README.md | 126 + .../eventsource-parser/dist/index.cjs | 106 + .../eventsource-parser/dist/index.cjs.map | 1 + .../eventsource-parser/dist/index.d.cts | 144 + .../eventsource-parser/dist/index.d.ts | 144 + .../eventsource-parser/dist/index.esm.js | 106 + .../eventsource-parser/dist/index.esm.js.map | 1 + node_modules/eventsource-parser/dist/index.js | 106 + .../eventsource-parser/dist/index.js.map | 1 + .../eventsource-parser/dist/stats.html | 4842 +++ .../eventsource-parser/dist/stream.cjs | 28 + .../eventsource-parser/dist/stream.cjs.map | 1 + .../eventsource-parser/dist/stream.d.cts | 118 + .../eventsource-parser/dist/stream.d.ts | 118 + .../eventsource-parser/dist/stream.esm.js | 29 + .../eventsource-parser/dist/stream.esm.js.map | 1 + .../eventsource-parser/dist/stream.js | 29 + .../eventsource-parser/dist/stream.js.map | 1 + node_modules/eventsource-parser/package.json | 114 + node_modules/eventsource-parser/src/errors.ts | 44 + node_modules/eventsource-parser/src/index.ts | 3 + node_modules/eventsource-parser/src/parse.ts | 226 + node_modules/eventsource-parser/src/stream.ts | 88 + node_modules/eventsource-parser/src/types.ts | 97 + node_modules/eventsource-parser/stream.js | 2 + node_modules/eventsource/LICENSE | 22 + node_modules/eventsource/README.md | 167 + node_modules/eventsource/dist/index.cjs | 273 + node_modules/eventsource/dist/index.cjs.map | 1 + node_modules/eventsource/dist/index.d.cts | 320 + node_modules/eventsource/dist/index.d.ts | 320 + node_modules/eventsource/dist/index.js | 273 + node_modules/eventsource/dist/index.js.map | 1 + node_modules/eventsource/package.json | 130 + node_modules/eventsource/src/EventSource.ts | 597 + node_modules/eventsource/src/errors.ts | 141 + node_modules/eventsource/src/index.ts | 3 + node_modules/eventsource/src/types.ts | 137 + .../express-rate-limit/dist/index.cjs | 838 + .../express-rate-limit/dist/index.d.cts | 584 + .../express-rate-limit/dist/index.d.mts | 584 + .../express-rate-limit/dist/index.d.ts | 584 + .../express-rate-limit/dist/index.mjs | 809 + node_modules/express-rate-limit/license.md | 20 + node_modules/express-rate-limit/package.json | 133 + node_modules/express-rate-limit/readme.md | 147 + node_modules/express-rate-limit/tsconfig.json | 8 + node_modules/express/History.md | 3656 ++ node_modules/express/LICENSE | 24 + node_modules/express/Readme.md | 260 + node_modules/express/index.js | 11 + node_modules/express/lib/application.js | 661 + node_modules/express/lib/express.js | 116 + node_modules/express/lib/middleware/init.js | 43 + node_modules/express/lib/middleware/query.js | 47 + node_modules/express/lib/request.js | 525 + node_modules/express/lib/response.js | 1179 + node_modules/express/lib/router/index.js | 673 + node_modules/express/lib/router/layer.js | 181 + node_modules/express/lib/router/route.js | 230 + node_modules/express/lib/utils.js | 303 + node_modules/express/lib/view.js | 182 + node_modules/express/package.json | 102 + node_modules/finalhandler/HISTORY.md | 210 + node_modules/finalhandler/LICENSE | 22 + node_modules/finalhandler/README.md | 147 + node_modules/finalhandler/SECURITY.md | 25 + node_modules/finalhandler/index.js | 341 + node_modules/finalhandler/package.json | 47 + node_modules/forwarded/HISTORY.md | 21 + node_modules/forwarded/LICENSE | 22 + node_modules/forwarded/README.md | 57 + node_modules/forwarded/index.js | 90 + node_modules/forwarded/package.json | 45 + node_modules/fresh/HISTORY.md | 70 + node_modules/fresh/LICENSE | 23 + node_modules/fresh/README.md | 119 + node_modules/fresh/index.js | 137 + node_modules/fresh/package.json | 46 + node_modules/function-bind/.eslintrc | 21 + .../function-bind/.github/FUNDING.yml | 12 + .../function-bind/.github/SECURITY.md | 3 + node_modules/function-bind/.nycrc | 13 + node_modules/function-bind/CHANGELOG.md | 136 + node_modules/function-bind/LICENSE | 20 + node_modules/function-bind/README.md | 46 + node_modules/function-bind/implementation.js | 84 + node_modules/function-bind/index.js | 5 + node_modules/function-bind/package.json | 87 + node_modules/function-bind/test/.eslintrc | 9 + node_modules/function-bind/test/index.js | 252 + node_modules/get-intrinsic/.eslintrc | 42 + .../get-intrinsic/.github/FUNDING.yml | 12 + node_modules/get-intrinsic/.nycrc | 9 + node_modules/get-intrinsic/CHANGELOG.md | 186 + node_modules/get-intrinsic/LICENSE | 21 + node_modules/get-intrinsic/README.md | 71 + node_modules/get-intrinsic/index.js | 378 + node_modules/get-intrinsic/package.json | 97 + .../get-intrinsic/test/GetIntrinsic.js | 274 + node_modules/get-proto/.eslintrc | 10 + node_modules/get-proto/.github/FUNDING.yml | 12 + node_modules/get-proto/.nycrc | 9 + node_modules/get-proto/CHANGELOG.md | 21 + node_modules/get-proto/LICENSE | 21 + .../get-proto/Object.getPrototypeOf.d.ts | 5 + .../get-proto/Object.getPrototypeOf.js | 6 + node_modules/get-proto/README.md | 50 + .../get-proto/Reflect.getPrototypeOf.d.ts | 3 + .../get-proto/Reflect.getPrototypeOf.js | 4 + node_modules/get-proto/index.d.ts | 5 + node_modules/get-proto/index.js | 27 + node_modules/get-proto/package.json | 81 + node_modules/get-proto/test/index.js | 68 + node_modules/get-proto/tsconfig.json | 9 + node_modules/gopd/.eslintrc | 16 + node_modules/gopd/.github/FUNDING.yml | 12 + node_modules/gopd/CHANGELOG.md | 45 + node_modules/gopd/LICENSE | 21 + node_modules/gopd/README.md | 40 + node_modules/gopd/gOPD.d.ts | 1 + node_modules/gopd/gOPD.js | 4 + node_modules/gopd/index.d.ts | 5 + node_modules/gopd/index.js | 15 + node_modules/gopd/package.json | 77 + node_modules/gopd/test/index.js | 36 + node_modules/gopd/tsconfig.json | 9 + node_modules/has-symbols/.eslintrc | 11 + node_modules/has-symbols/.github/FUNDING.yml | 12 + node_modules/has-symbols/.nycrc | 9 + node_modules/has-symbols/CHANGELOG.md | 91 + node_modules/has-symbols/LICENSE | 21 + node_modules/has-symbols/README.md | 46 + node_modules/has-symbols/index.d.ts | 3 + node_modules/has-symbols/index.js | 14 + node_modules/has-symbols/package.json | 111 + node_modules/has-symbols/shams.d.ts | 3 + node_modules/has-symbols/shams.js | 45 + node_modules/has-symbols/test/index.js | 22 + .../has-symbols/test/shams/core-js.js | 29 + .../test/shams/get-own-property-symbols.js | 29 + node_modules/has-symbols/test/tests.js | 58 + node_modules/has-symbols/tsconfig.json | 10 + node_modules/hasown/.eslintrc | 5 + node_modules/hasown/.github/FUNDING.yml | 12 + node_modules/hasown/.nycrc | 13 + node_modules/hasown/CHANGELOG.md | 40 + node_modules/hasown/LICENSE | 21 + node_modules/hasown/README.md | 40 + node_modules/hasown/index.d.ts | 3 + node_modules/hasown/index.js | 8 + node_modules/hasown/package.json | 92 + node_modules/hasown/tsconfig.json | 6 + node_modules/http-errors/HISTORY.md | 180 + node_modules/http-errors/LICENSE | 23 + node_modules/http-errors/README.md | 169 + node_modules/http-errors/index.js | 289 + node_modules/http-errors/package.json | 50 + node_modules/iconv-lite/Changelog.md | 162 + node_modules/iconv-lite/LICENSE | 21 + node_modules/iconv-lite/README.md | 156 + .../iconv-lite/encodings/dbcs-codec.js | 555 + .../iconv-lite/encodings/dbcs-data.js | 176 + node_modules/iconv-lite/encodings/index.js | 22 + node_modules/iconv-lite/encodings/internal.js | 188 + .../iconv-lite/encodings/sbcs-codec.js | 72 + .../encodings/sbcs-data-generated.js | 451 + .../iconv-lite/encodings/sbcs-data.js | 174 + .../encodings/tables/big5-added.json | 122 + .../iconv-lite/encodings/tables/cp936.json | 264 + .../iconv-lite/encodings/tables/cp949.json | 273 + .../iconv-lite/encodings/tables/cp950.json | 177 + .../iconv-lite/encodings/tables/eucjp.json | 182 + .../encodings/tables/gb18030-ranges.json | 1 + .../encodings/tables/gbk-added.json | 55 + .../iconv-lite/encodings/tables/shiftjis.json | 125 + node_modules/iconv-lite/encodings/utf16.js | 177 + node_modules/iconv-lite/encodings/utf7.js | 290 + node_modules/iconv-lite/lib/bom-handling.js | 52 + node_modules/iconv-lite/lib/extend-node.js | 217 + node_modules/iconv-lite/lib/index.d.ts | 24 + node_modules/iconv-lite/lib/index.js | 153 + node_modules/iconv-lite/lib/streams.js | 121 + node_modules/iconv-lite/package.json | 46 + node_modules/inherits/LICENSE | 16 + node_modules/inherits/README.md | 42 + node_modules/inherits/inherits.js | 9 + node_modules/inherits/inherits_browser.js | 27 + node_modules/inherits/package.json | 29 + node_modules/ipaddr.js/LICENSE | 19 + node_modules/ipaddr.js/README.md | 233 + node_modules/ipaddr.js/ipaddr.min.js | 1 + node_modules/ipaddr.js/lib/ipaddr.js | 673 + node_modules/ipaddr.js/lib/ipaddr.js.d.ts | 68 + node_modules/ipaddr.js/package.json | 35 + node_modules/is-promise/LICENSE | 19 + node_modules/is-promise/index.d.ts | 2 + node_modules/is-promise/index.js | 6 + node_modules/is-promise/index.mjs | 3 + node_modules/is-promise/package.json | 30 + node_modules/is-promise/readme.md | 33 + node_modules/isexe/.npmignore | 2 + node_modules/isexe/LICENSE | 15 + node_modules/isexe/README.md | 51 + node_modules/isexe/index.js | 57 + node_modules/isexe/mode.js | 41 + node_modules/isexe/package.json | 31 + node_modules/isexe/test/basic.js | 221 + node_modules/isexe/windows.js | 42 + node_modules/math-intrinsics/.eslintrc | 16 + .../math-intrinsics/.github/FUNDING.yml | 12 + node_modules/math-intrinsics/CHANGELOG.md | 24 + node_modules/math-intrinsics/LICENSE | 21 + node_modules/math-intrinsics/README.md | 50 + node_modules/math-intrinsics/abs.d.ts | 1 + node_modules/math-intrinsics/abs.js | 4 + .../constants/maxArrayLength.d.ts | 3 + .../constants/maxArrayLength.js | 4 + .../constants/maxSafeInteger.d.ts | 3 + .../constants/maxSafeInteger.js | 5 + .../math-intrinsics/constants/maxValue.d.ts | 3 + .../math-intrinsics/constants/maxValue.js | 5 + node_modules/math-intrinsics/floor.d.ts | 1 + node_modules/math-intrinsics/floor.js | 4 + node_modules/math-intrinsics/isFinite.d.ts | 3 + node_modules/math-intrinsics/isFinite.js | 12 + node_modules/math-intrinsics/isInteger.d.ts | 3 + node_modules/math-intrinsics/isInteger.js | 16 + node_modules/math-intrinsics/isNaN.d.ts | 1 + node_modules/math-intrinsics/isNaN.js | 6 + .../math-intrinsics/isNegativeZero.d.ts | 3 + .../math-intrinsics/isNegativeZero.js | 6 + node_modules/math-intrinsics/max.d.ts | 1 + node_modules/math-intrinsics/max.js | 4 + node_modules/math-intrinsics/min.d.ts | 1 + node_modules/math-intrinsics/min.js | 4 + node_modules/math-intrinsics/mod.d.ts | 3 + node_modules/math-intrinsics/mod.js | 9 + node_modules/math-intrinsics/package.json | 86 + node_modules/math-intrinsics/pow.d.ts | 1 + node_modules/math-intrinsics/pow.js | 4 + node_modules/math-intrinsics/round.d.ts | 1 + node_modules/math-intrinsics/round.js | 4 + node_modules/math-intrinsics/sign.d.ts | 3 + node_modules/math-intrinsics/sign.js | 11 + node_modules/math-intrinsics/test/index.js | 192 + node_modules/math-intrinsics/tsconfig.json | 3 + node_modules/media-typer/HISTORY.md | 22 + node_modules/media-typer/LICENSE | 22 + node_modules/media-typer/README.md | 81 + node_modules/media-typer/index.js | 270 + node_modules/media-typer/package.json | 26 + node_modules/merge-descriptors/HISTORY.md | 21 + node_modules/merge-descriptors/LICENSE | 23 + node_modules/merge-descriptors/README.md | 49 + node_modules/merge-descriptors/index.js | 60 + node_modules/merge-descriptors/package.json | 39 + node_modules/methods/HISTORY.md | 29 + node_modules/methods/LICENSE | 24 + node_modules/methods/README.md | 51 + node_modules/methods/index.js | 69 + node_modules/methods/package.json | 36 + node_modules/mime-db/HISTORY.md | 507 + node_modules/mime-db/LICENSE | 23 + node_modules/mime-db/README.md | 100 + node_modules/mime-db/db.json | 8519 +++++ node_modules/mime-db/index.js | 12 + node_modules/mime-db/package.json | 60 + node_modules/mime-types/HISTORY.md | 397 + node_modules/mime-types/LICENSE | 23 + node_modules/mime-types/README.md | 113 + node_modules/mime-types/index.js | 188 + node_modules/mime-types/package.json | 44 + node_modules/mime/.npmignore | 0 node_modules/mime/CHANGELOG.md | 164 + node_modules/mime/LICENSE | 21 + node_modules/mime/README.md | 90 + node_modules/mime/cli.js | 8 + node_modules/mime/mime.js | 108 + node_modules/mime/package.json | 44 + node_modules/mime/src/build.js | 53 + node_modules/mime/src/test.js | 60 + node_modules/mime/types.json | 1 + node_modules/ms/index.js | 152 + node_modules/ms/license.md | 21 + node_modules/ms/package.json | 37 + node_modules/ms/readme.md | 51 + node_modules/negotiator/HISTORY.md | 108 + node_modules/negotiator/LICENSE | 24 + node_modules/negotiator/README.md | 203 + node_modules/negotiator/index.js | 82 + node_modules/negotiator/lib/charset.js | 169 + node_modules/negotiator/lib/encoding.js | 184 + node_modules/negotiator/lib/language.js | 179 + node_modules/negotiator/lib/mediaType.js | 294 + node_modules/negotiator/package.json | 42 + node_modules/object-assign/index.js | 90 + node_modules/object-assign/license | 21 + node_modules/object-assign/package.json | 42 + node_modules/object-assign/readme.md | 61 + node_modules/object-inspect/.eslintrc | 53 + .../object-inspect/.github/FUNDING.yml | 12 + node_modules/object-inspect/.nycrc | 13 + node_modules/object-inspect/CHANGELOG.md | 424 + node_modules/object-inspect/LICENSE | 21 + node_modules/object-inspect/example/all.js | 23 + .../object-inspect/example/circular.js | 6 + node_modules/object-inspect/example/fn.js | 5 + .../object-inspect/example/inspect.js | 10 + node_modules/object-inspect/index.js | 544 + .../object-inspect/package-support.json | 20 + node_modules/object-inspect/package.json | 105 + node_modules/object-inspect/readme.markdown | 84 + node_modules/object-inspect/test-core-js.js | 26 + node_modules/object-inspect/test/bigint.js | 58 + .../object-inspect/test/browser/dom.js | 15 + node_modules/object-inspect/test/circular.js | 16 + node_modules/object-inspect/test/deep.js | 12 + node_modules/object-inspect/test/element.js | 53 + node_modules/object-inspect/test/err.js | 48 + node_modules/object-inspect/test/fakes.js | 29 + node_modules/object-inspect/test/fn.js | 76 + node_modules/object-inspect/test/global.js | 17 + node_modules/object-inspect/test/has.js | 15 + node_modules/object-inspect/test/holes.js | 15 + .../object-inspect/test/indent-option.js | 271 + node_modules/object-inspect/test/inspect.js | 139 + node_modules/object-inspect/test/lowbyte.js | 12 + node_modules/object-inspect/test/number.js | 58 + .../object-inspect/test/quoteStyle.js | 26 + .../object-inspect/test/toStringTag.js | 40 + node_modules/object-inspect/test/undef.js | 12 + node_modules/object-inspect/test/values.js | 261 + node_modules/object-inspect/util.inspect.js | 1 + node_modules/on-finished/HISTORY.md | 98 + node_modules/on-finished/LICENSE | 23 + node_modules/on-finished/README.md | 162 + node_modules/on-finished/index.js | 234 + node_modules/on-finished/package.json | 39 + node_modules/once/LICENSE | 15 + node_modules/once/README.md | 79 + node_modules/once/once.js | 42 + node_modules/once/package.json | 33 + node_modules/parseurl/HISTORY.md | 58 + node_modules/parseurl/LICENSE | 24 + node_modules/parseurl/README.md | 133 + node_modules/parseurl/index.js | 158 + node_modules/parseurl/package.json | 40 + node_modules/path-key/index.d.ts | 40 + node_modules/path-key/index.js | 16 + node_modules/path-key/license | 9 + node_modules/path-key/package.json | 39 + node_modules/path-key/readme.md | 61 + node_modules/path-to-regexp/LICENSE | 21 + node_modules/path-to-regexp/Readme.md | 35 + node_modules/path-to-regexp/index.js | 156 + node_modules/path-to-regexp/package.json | 30 + node_modules/pkce-challenge/LICENSE | 21 + node_modules/pkce-challenge/README.md | 55 + .../pkce-challenge/dist/index.browser.d.ts | 19 + .../pkce-challenge/dist/index.browser.js | 72 + .../pkce-challenge/dist/index.node.cjs | 80 + .../pkce-challenge/dist/index.node.d.cts | 19 + .../pkce-challenge/dist/index.node.d.ts | 19 + .../pkce-challenge/dist/index.node.js | 75 + node_modules/pkce-challenge/package.json | 58 + node_modules/proxy-addr/HISTORY.md | 161 + node_modules/proxy-addr/LICENSE | 22 + node_modules/proxy-addr/README.md | 139 + node_modules/proxy-addr/index.js | 327 + node_modules/proxy-addr/package.json | 47 + node_modules/qs/.editorconfig | 46 + node_modules/qs/.eslintrc | 38 + node_modules/qs/.github/FUNDING.yml | 12 + node_modules/qs/.nycrc | 13 + node_modules/qs/CHANGELOG.md | 600 + node_modules/qs/LICENSE.md | 29 + node_modules/qs/README.md | 709 + node_modules/qs/dist/qs.js | 90 + node_modules/qs/lib/formats.js | 23 + node_modules/qs/lib/index.js | 11 + node_modules/qs/lib/parse.js | 296 + node_modules/qs/lib/stringify.js | 351 + node_modules/qs/lib/utils.js | 265 + node_modules/qs/package.json | 91 + node_modules/qs/test/empty-keys-cases.js | 267 + node_modules/qs/test/parse.js | 1170 + node_modules/qs/test/stringify.js | 1298 + node_modules/qs/test/utils.js | 136 + node_modules/range-parser/HISTORY.md | 56 + node_modules/range-parser/LICENSE | 23 + node_modules/range-parser/README.md | 84 + node_modules/range-parser/index.js | 162 + node_modules/range-parser/package.json | 44 + node_modules/raw-body/HISTORY.md | 325 + node_modules/raw-body/LICENSE | 22 + node_modules/raw-body/README.md | 223 + node_modules/raw-body/SECURITY.md | 24 + node_modules/raw-body/index.d.ts | 85 + node_modules/raw-body/index.js | 336 + .../iconv-lite/.github/dependabot.yml | 11 + .../iconv-lite/.idea/codeStyles/Project.xml | 47 + .../.idea/codeStyles/codeStyleConfig.xml | 5 + .../iconv-lite/.idea/iconv-lite.iml | 12 + .../inspectionProfiles/Project_Default.xml | 6 + .../node_modules/iconv-lite/.idea/modules.xml | 8 + .../node_modules/iconv-lite/.idea/vcs.xml | 6 + .../node_modules/iconv-lite/Changelog.md | 212 + .../raw-body/node_modules/iconv-lite/LICENSE | 21 + .../node_modules/iconv-lite/README.md | 130 + .../iconv-lite/encodings/dbcs-codec.js | 597 + .../iconv-lite/encodings/dbcs-data.js | 188 + .../iconv-lite/encodings/index.js | 23 + .../iconv-lite/encodings/internal.js | 198 + .../iconv-lite/encodings/sbcs-codec.js | 72 + .../encodings/sbcs-data-generated.js | 451 + .../iconv-lite/encodings/sbcs-data.js | 179 + .../encodings/tables/big5-added.json | 122 + .../iconv-lite/encodings/tables/cp936.json | 264 + .../iconv-lite/encodings/tables/cp949.json | 273 + .../iconv-lite/encodings/tables/cp950.json | 177 + .../iconv-lite/encodings/tables/eucjp.json | 182 + .../encodings/tables/gb18030-ranges.json | 1 + .../encodings/tables/gbk-added.json | 56 + .../iconv-lite/encodings/tables/shiftjis.json | 125 + .../iconv-lite/encodings/utf16.js | 197 + .../iconv-lite/encodings/utf32.js | 319 + .../node_modules/iconv-lite/encodings/utf7.js | 290 + .../iconv-lite/lib/bom-handling.js | 52 + .../node_modules/iconv-lite/lib/index.d.ts | 41 + .../node_modules/iconv-lite/lib/index.js | 180 + .../node_modules/iconv-lite/lib/streams.js | 109 + .../node_modules/iconv-lite/package.json | 44 + node_modules/raw-body/package.json | 50 + node_modules/router/HISTORY.md | 228 + node_modules/router/LICENSE | 23 + node_modules/router/README.md | 416 + node_modules/router/index.js | 748 + node_modules/router/lib/layer.js | 247 + node_modules/router/lib/route.js | 242 + .../router/node_modules/debug/LICENSE | 20 + .../router/node_modules/debug/README.md | 481 + .../router/node_modules/debug/package.json | 65 + .../router/node_modules/debug/src/browser.js | 272 + .../router/node_modules/debug/src/common.js | 292 + .../router/node_modules/debug/src/index.js | 10 + .../router/node_modules/debug/src/node.js | 263 + node_modules/router/node_modules/ms/index.js | 162 + .../router/node_modules/ms/license.md | 21 + .../router/node_modules/ms/package.json | 38 + node_modules/router/node_modules/ms/readme.md | 59 + .../node_modules/path-to-regexp/LICENSE | 21 + .../node_modules/path-to-regexp/Readme.md | 216 + .../path-to-regexp/dist/index.d.ts | 136 + .../node_modules/path-to-regexp/dist/index.js | 403 + .../path-to-regexp/dist/index.js.map | 1 + .../node_modules/path-to-regexp/package.json | 62 + node_modules/router/package.json | 44 + node_modules/safe-buffer/LICENSE | 21 + node_modules/safe-buffer/README.md | 584 + node_modules/safe-buffer/index.d.ts | 187 + node_modules/safe-buffer/index.js | 65 + node_modules/safe-buffer/package.json | 51 + node_modules/safer-buffer/LICENSE | 21 + node_modules/safer-buffer/Porting-Buffer.md | 268 + node_modules/safer-buffer/Readme.md | 156 + node_modules/safer-buffer/dangerous.js | 58 + node_modules/safer-buffer/package.json | 34 + node_modules/safer-buffer/safer.js | 77 + node_modules/safer-buffer/tests.js | 406 + node_modules/send/HISTORY.md | 526 + node_modules/send/LICENSE | 23 + node_modules/send/README.md | 327 + node_modules/send/SECURITY.md | 24 + node_modules/send/index.js | 1142 + .../send/node_modules/encodeurl/HISTORY.md | 14 + .../send/node_modules/encodeurl/LICENSE | 22 + .../send/node_modules/encodeurl/README.md | 128 + .../send/node_modules/encodeurl/index.js | 60 + .../send/node_modules/encodeurl/package.json | 40 + node_modules/send/node_modules/ms/index.js | 162 + node_modules/send/node_modules/ms/license.md | 21 + .../send/node_modules/ms/package.json | 38 + node_modules/send/node_modules/ms/readme.md | 59 + node_modules/send/package.json | 62 + node_modules/serve-static/HISTORY.md | 487 + node_modules/serve-static/LICENSE | 25 + node_modules/serve-static/README.md | 257 + node_modules/serve-static/index.js | 209 + node_modules/serve-static/package.json | 42 + node_modules/setprototypeof/LICENSE | 13 + node_modules/setprototypeof/README.md | 31 + node_modules/setprototypeof/index.d.ts | 2 + node_modules/setprototypeof/index.js | 17 + node_modules/setprototypeof/package.json | 38 + node_modules/setprototypeof/test/index.js | 24 + node_modules/shebang-command/index.js | 19 + node_modules/shebang-command/license | 9 + node_modules/shebang-command/package.json | 34 + node_modules/shebang-command/readme.md | 34 + node_modules/shebang-regex/index.d.ts | 22 + node_modules/shebang-regex/index.js | 2 + node_modules/shebang-regex/license | 9 + node_modules/shebang-regex/package.json | 35 + node_modules/shebang-regex/readme.md | 33 + node_modules/side-channel-list/.editorconfig | 9 + node_modules/side-channel-list/.eslintrc | 11 + .../side-channel-list/.github/FUNDING.yml | 12 + node_modules/side-channel-list/.nycrc | 13 + node_modules/side-channel-list/CHANGELOG.md | 15 + node_modules/side-channel-list/LICENSE | 21 + node_modules/side-channel-list/README.md | 62 + node_modules/side-channel-list/index.d.ts | 13 + node_modules/side-channel-list/index.js | 113 + node_modules/side-channel-list/list.d.ts | 14 + node_modules/side-channel-list/package.json | 77 + node_modules/side-channel-list/test/index.js | 104 + node_modules/side-channel-list/tsconfig.json | 9 + node_modules/side-channel-map/.editorconfig | 9 + node_modules/side-channel-map/.eslintrc | 11 + .../side-channel-map/.github/FUNDING.yml | 12 + node_modules/side-channel-map/.nycrc | 13 + node_modules/side-channel-map/CHANGELOG.md | 22 + node_modules/side-channel-map/LICENSE | 21 + node_modules/side-channel-map/README.md | 62 + node_modules/side-channel-map/index.d.ts | 15 + node_modules/side-channel-map/index.js | 68 + node_modules/side-channel-map/package.json | 80 + node_modules/side-channel-map/test/index.js | 114 + node_modules/side-channel-map/tsconfig.json | 9 + .../side-channel-weakmap/.editorconfig | 9 + node_modules/side-channel-weakmap/.eslintrc | 12 + .../side-channel-weakmap/.github/FUNDING.yml | 12 + node_modules/side-channel-weakmap/.nycrc | 13 + .../side-channel-weakmap/CHANGELOG.md | 28 + node_modules/side-channel-weakmap/LICENSE | 21 + node_modules/side-channel-weakmap/README.md | 62 + node_modules/side-channel-weakmap/index.d.ts | 15 + node_modules/side-channel-weakmap/index.js | 84 + .../side-channel-weakmap/package.json | 87 + .../side-channel-weakmap/test/index.js | 114 + .../side-channel-weakmap/tsconfig.json | 9 + node_modules/side-channel/.editorconfig | 9 + node_modules/side-channel/.eslintrc | 12 + node_modules/side-channel/.github/FUNDING.yml | 12 + node_modules/side-channel/.nycrc | 13 + node_modules/side-channel/CHANGELOG.md | 110 + node_modules/side-channel/LICENSE | 21 + node_modules/side-channel/README.md | 61 + node_modules/side-channel/index.d.ts | 14 + node_modules/side-channel/index.js | 43 + node_modules/side-channel/package.json | 85 + node_modules/side-channel/test/index.js | 104 + node_modules/side-channel/tsconfig.json | 9 + node_modules/socket.io-adapter/LICENSE | 20 + node_modules/socket.io-adapter/Readme.md | 23 + .../dist/cluster-adapter.d.ts | 201 + .../socket.io-adapter/dist/cluster-adapter.js | 674 + .../socket.io-adapter/dist/contrib/yeast.d.ts | 23 + .../socket.io-adapter/dist/contrib/yeast.js | 55 + .../dist/in-memory-adapter.d.ts | 179 + .../dist/in-memory-adapter.js | 394 + .../socket.io-adapter/dist/index.d.ts | 2 + node_modules/socket.io-adapter/dist/index.js | 10 + .../node_modules/debug/LICENSE | 20 + .../node_modules/debug/README.md | 481 + .../node_modules/debug/package.json | 60 + .../node_modules/debug/src/browser.js | 271 + .../node_modules/debug/src/common.js | 274 + .../node_modules/debug/src/index.js | 10 + .../node_modules/debug/src/node.js | 263 + .../node_modules/ms/index.js | 162 + .../node_modules/ms/license.md | 21 + .../node_modules/ms/package.json | 38 + .../node_modules/ms/readme.md | 59 + node_modules/socket.io-adapter/package.json | 39 + node_modules/socket.io-parser/LICENSE | 20 + node_modules/socket.io-parser/Readme.md | 81 + .../socket.io-parser/build/cjs/binary.d.ts | 20 + .../socket.io-parser/build/cjs/binary.js | 88 + .../socket.io-parser/build/cjs/index.d.ts | 90 + .../socket.io-parser/build/cjs/index.js | 321 + .../socket.io-parser/build/cjs/is-binary.d.ts | 7 + .../socket.io-parser/build/cjs/is-binary.js | 55 + .../socket.io-parser/build/cjs/package.json | 3 + .../build/esm-debug/binary.d.ts | 20 + .../build/esm-debug/binary.js | 83 + .../build/esm-debug/index.d.ts | 90 + .../socket.io-parser/build/esm-debug/index.js | 316 + .../build/esm-debug/is-binary.d.ts | 7 + .../build/esm-debug/is-binary.js | 50 + .../build/esm-debug/package.json | 3 + .../socket.io-parser/build/esm/binary.d.ts | 20 + .../socket.io-parser/build/esm/binary.js | 83 + .../socket.io-parser/build/esm/index.d.ts | 90 + .../socket.io-parser/build/esm/index.js | 311 + .../socket.io-parser/build/esm/is-binary.d.ts | 7 + .../socket.io-parser/build/esm/is-binary.js | 50 + .../socket.io-parser/build/esm/package.json | 3 + .../node_modules/debug/LICENSE | 20 + .../node_modules/debug/README.md | 481 + .../node_modules/debug/package.json | 60 + .../node_modules/debug/src/browser.js | 271 + .../node_modules/debug/src/common.js | 274 + .../node_modules/debug/src/index.js | 10 + .../node_modules/debug/src/node.js | 263 + .../socket.io-parser/node_modules/ms/index.js | 162 + .../node_modules/ms/license.md | 21 + .../node_modules/ms/package.json | 38 + .../node_modules/ms/readme.md | 59 + node_modules/socket.io-parser/package.json | 58 + node_modules/socket.io/LICENSE | 22 + node_modules/socket.io/Readme.md | 273 + .../client-dist/socket.io.esm.min.js | 7 + .../client-dist/socket.io.esm.min.js.map | 1 + .../socket.io/client-dist/socket.io.js | 4908 +++ .../socket.io/client-dist/socket.io.js.map | 1 + .../socket.io/client-dist/socket.io.min.js | 7 + .../client-dist/socket.io.min.js.map | 1 + .../client-dist/socket.io.msgpack.min.js | 7 + .../client-dist/socket.io.msgpack.min.js.map | 1 + .../socket.io/dist/broadcast-operator.d.ts | 283 + .../socket.io/dist/broadcast-operator.js | 436 + node_modules/socket.io/dist/client.d.ts | 119 + node_modules/socket.io/dist/client.js | 268 + node_modules/socket.io/dist/index.d.ts | 593 + node_modules/socket.io/dist/index.js | 804 + node_modules/socket.io/dist/namespace.d.ts | 432 + node_modules/socket.io/dist/namespace.js | 581 + .../socket.io/dist/parent-namespace.d.ts | 30 + .../socket.io/dist/parent-namespace.js | 88 + node_modules/socket.io/dist/socket-types.d.ts | 56 + node_modules/socket.io/dist/socket-types.js | 11 + node_modules/socket.io/dist/socket.d.ts | 613 + node_modules/socket.io/dist/socket.js | 977 + node_modules/socket.io/dist/typed-events.d.ts | 203 + node_modules/socket.io/dist/typed-events.js | 81 + node_modules/socket.io/dist/uws.d.ts | 3 + node_modules/socket.io/dist/uws.js | 136 + .../socket.io/node_modules/debug/LICENSE | 20 + .../socket.io/node_modules/debug/README.md | 481 + .../socket.io/node_modules/debug/package.json | 60 + .../node_modules/debug/src/browser.js | 271 + .../node_modules/debug/src/common.js | 274 + .../socket.io/node_modules/debug/src/index.js | 10 + .../socket.io/node_modules/debug/src/node.js | 263 + .../socket.io/node_modules/ms/index.js | 162 + .../socket.io/node_modules/ms/license.md | 21 + .../socket.io/node_modules/ms/package.json | 38 + .../socket.io/node_modules/ms/readme.md | 59 + node_modules/socket.io/package.json | 85 + node_modules/socket.io/wrapper.mjs | 3 + node_modules/statuses/HISTORY.md | 82 + node_modules/statuses/LICENSE | 23 + node_modules/statuses/README.md | 136 + node_modules/statuses/codes.json | 65 + node_modules/statuses/index.js | 146 + node_modules/statuses/package.json | 49 + node_modules/toidentifier/HISTORY.md | 9 + node_modules/toidentifier/LICENSE | 21 + node_modules/toidentifier/README.md | 61 + node_modules/toidentifier/index.js | 32 + node_modules/toidentifier/package.json | 38 + node_modules/type-is/HISTORY.md | 259 + node_modules/type-is/LICENSE | 23 + node_modules/type-is/README.md | 170 + node_modules/type-is/index.js | 266 + node_modules/type-is/package.json | 45 + node_modules/undici-types/LICENSE | 21 + node_modules/undici-types/README.md | 6 + node_modules/undici-types/agent.d.ts | 31 + node_modules/undici-types/api.d.ts | 43 + node_modules/undici-types/balanced-pool.d.ts | 29 + node_modules/undici-types/cache.d.ts | 36 + node_modules/undici-types/client.d.ts | 108 + node_modules/undici-types/connector.d.ts | 34 + node_modules/undici-types/content-type.d.ts | 21 + node_modules/undici-types/cookies.d.ts | 28 + .../undici-types/diagnostics-channel.d.ts | 66 + node_modules/undici-types/dispatcher.d.ts | 256 + .../undici-types/env-http-proxy-agent.d.ts | 21 + node_modules/undici-types/errors.d.ts | 149 + node_modules/undici-types/eventsource.d.ts | 61 + node_modules/undici-types/fetch.d.ts | 209 + node_modules/undici-types/file.d.ts | 39 + node_modules/undici-types/filereader.d.ts | 54 + node_modules/undici-types/formdata.d.ts | 108 + .../undici-types/global-dispatcher.d.ts | 9 + node_modules/undici-types/global-origin.d.ts | 7 + node_modules/undici-types/handlers.d.ts | 15 + node_modules/undici-types/header.d.ts | 4 + node_modules/undici-types/index.d.ts | 71 + node_modules/undici-types/interceptors.d.ts | 17 + node_modules/undici-types/mock-agent.d.ts | 50 + node_modules/undici-types/mock-client.d.ts | 25 + node_modules/undici-types/mock-errors.d.ts | 12 + .../undici-types/mock-interceptor.d.ts | 93 + node_modules/undici-types/mock-pool.d.ts | 25 + node_modules/undici-types/package.json | 55 + node_modules/undici-types/patch.d.ts | 33 + node_modules/undici-types/pool-stats.d.ts | 19 + node_modules/undici-types/pool.d.ts | 39 + node_modules/undici-types/proxy-agent.d.ts | 28 + node_modules/undici-types/readable.d.ts | 65 + node_modules/undici-types/retry-agent.d.ts | 8 + node_modules/undici-types/retry-handler.d.ts | 116 + node_modules/undici-types/util.d.ts | 18 + node_modules/undici-types/webidl.d.ts | 228 + node_modules/undici-types/websocket.d.ts | 150 + node_modules/unpipe/HISTORY.md | 4 + node_modules/unpipe/LICENSE | 22 + node_modules/unpipe/README.md | 43 + node_modules/unpipe/index.js | 69 + node_modules/unpipe/package.json | 27 + node_modules/utils-merge/.npmignore | 9 + node_modules/utils-merge/LICENSE | 20 + node_modules/utils-merge/README.md | 34 + node_modules/utils-merge/index.js | 23 + node_modules/utils-merge/package.json | 40 + node_modules/vary/HISTORY.md | 39 + node_modules/vary/LICENSE | 22 + node_modules/vary/README.md | 101 + node_modules/vary/index.js | 149 + node_modules/vary/package.json | 43 + node_modules/which/CHANGELOG.md | 166 + node_modules/which/LICENSE | 15 + node_modules/which/README.md | 54 + node_modules/which/bin/node-which | 52 + node_modules/which/package.json | 43 + node_modules/which/which.js | 125 + node_modules/wrappy/LICENSE | 15 + node_modules/wrappy/README.md | 36 + node_modules/wrappy/package.json | 29 + node_modules/wrappy/wrappy.js | 33 + node_modules/ws/LICENSE | 20 + node_modules/ws/README.md | 548 + node_modules/ws/browser.js | 8 + node_modules/ws/index.js | 13 + node_modules/ws/lib/buffer-util.js | 131 + node_modules/ws/lib/constants.js | 12 + node_modules/ws/lib/event-target.js | 292 + node_modules/ws/lib/extension.js | 203 + node_modules/ws/lib/limiter.js | 55 + node_modules/ws/lib/permessage-deflate.js | 514 + node_modules/ws/lib/receiver.js | 704 + node_modules/ws/lib/sender.js | 497 + node_modules/ws/lib/stream.js | 159 + node_modules/ws/lib/subprotocol.js | 62 + node_modules/ws/lib/validation.js | 130 + node_modules/ws/lib/websocket-server.js | 540 + node_modules/ws/lib/websocket.js | 1338 + node_modules/ws/package.json | 69 + node_modules/ws/wrapper.mjs | 8 + .../.github/CR_logotype-full-color.png | Bin 0 -> 11047 bytes .../zod-to-json-schema/.github/FUNDING.yml | 1 + .../zod-to-json-schema/.prettierrc.json | 1 + node_modules/zod-to-json-schema/LICENSE | 15 + node_modules/zod-to-json-schema/README.md | 398 + node_modules/zod-to-json-schema/SECURITY.md | 12 + node_modules/zod-to-json-schema/changelog.md | 79 + .../zod-to-json-schema/contributing.md | 9 + .../zod-to-json-schema/createIndex.ts | 32 + .../zod-to-json-schema/dist/cjs/Options.js | 50 + .../zod-to-json-schema/dist/cjs/Refs.js | 25 + .../dist/cjs/errorMessages.js | 19 + .../zod-to-json-schema/dist/cjs/index.js | 55 + .../zod-to-json-schema/dist/cjs/package.json | 1 + .../zod-to-json-schema/dist/cjs/parseDef.js | 72 + .../zod-to-json-schema/dist/cjs/parseTypes.js | 2 + .../dist/cjs/parsers/any.js | 7 + .../dist/cjs/parsers/array.js | 30 + .../dist/cjs/parsers/bigint.js | 53 + .../dist/cjs/parsers/boolean.js | 9 + .../dist/cjs/parsers/branded.js | 8 + .../dist/cjs/parsers/catch.js | 8 + .../dist/cjs/parsers/date.js | 50 + .../dist/cjs/parsers/default.js | 11 + .../dist/cjs/parsers/effects.js | 10 + .../dist/cjs/parsers/enum.js | 10 + .../dist/cjs/parsers/intersection.js | 56 + .../dist/cjs/parsers/literal.js | 25 + .../dist/cjs/parsers/map.js | 29 + .../dist/cjs/parsers/nativeEnum.js | 20 + .../dist/cjs/parsers/never.js | 9 + .../dist/cjs/parsers/null.js | 14 + .../dist/cjs/parsers/nullable.js | 37 + .../dist/cjs/parsers/number.js | 56 + .../dist/cjs/parsers/object.js | 77 + .../dist/cjs/parsers/optional.js | 24 + .../dist/cjs/parsers/pipeline.js | 24 + .../dist/cjs/parsers/promise.js | 8 + .../dist/cjs/parsers/readonly.js | 8 + .../dist/cjs/parsers/record.js | 64 + .../dist/cjs/parsers/set.js | 24 + .../dist/cjs/parsers/string.js | 357 + .../dist/cjs/parsers/tuple.js | 36 + .../dist/cjs/parsers/undefined.js | 9 + .../dist/cjs/parsers/union.js | 84 + .../dist/cjs/parsers/unknown.js | 7 + .../dist/cjs/selectParser.js | 110 + .../dist/cjs/zodToJsonSchema.js | 69 + .../zod-to-json-schema/dist/esm/Options.js | 45 + .../zod-to-json-schema/dist/esm/Refs.js | 21 + .../dist/esm/errorMessages.js | 14 + .../zod-to-json-schema/dist/esm/index.js | 39 + .../zod-to-json-schema/dist/esm/package.json | 1 + .../zod-to-json-schema/dist/esm/parseDef.js | 68 + .../zod-to-json-schema/dist/esm/parseTypes.js | 1 + .../dist/esm/parsers/any.js | 3 + .../dist/esm/parsers/array.js | 26 + .../dist/esm/parsers/bigint.js | 49 + .../dist/esm/parsers/boolean.js | 5 + .../dist/esm/parsers/branded.js | 4 + .../dist/esm/parsers/catch.js | 4 + .../dist/esm/parsers/date.js | 46 + .../dist/esm/parsers/default.js | 7 + .../dist/esm/parsers/effects.js | 6 + .../dist/esm/parsers/enum.js | 6 + .../dist/esm/parsers/intersection.js | 52 + .../dist/esm/parsers/literal.js | 21 + .../dist/esm/parsers/map.js | 25 + .../dist/esm/parsers/nativeEnum.js | 16 + .../dist/esm/parsers/never.js | 5 + .../dist/esm/parsers/null.js | 10 + .../dist/esm/parsers/nullable.js | 33 + .../dist/esm/parsers/number.js | 52 + .../dist/esm/parsers/object.js | 73 + .../dist/esm/parsers/optional.js | 20 + .../dist/esm/parsers/pipeline.js | 20 + .../dist/esm/parsers/promise.js | 4 + .../dist/esm/parsers/readonly.js | 4 + .../dist/esm/parsers/record.js | 60 + .../dist/esm/parsers/set.js | 20 + .../dist/esm/parsers/string.js | 353 + .../dist/esm/parsers/tuple.js | 32 + .../dist/esm/parsers/undefined.js | 5 + .../dist/esm/parsers/union.js | 80 + .../dist/esm/parsers/unknown.js | 3 + .../dist/esm/selectParser.js | 106 + .../dist/esm/zodToJsonSchema.js | 66 + .../dist/types/Options.d.ts | 36 + .../zod-to-json-schema/dist/types/Refs.d.ts | 14 + .../dist/types/errorMessages.d.ts | 11 + .../zod-to-json-schema/dist/types/index.d.ts | 39 + .../dist/types/parseDef.d.ts | 4 + .../dist/types/parseTypes.d.ts | 34 + .../dist/types/parsers/any.d.ts | 2 + .../dist/types/parsers/array.d.ts | 12 + .../dist/types/parsers/bigint.d.ts | 14 + .../dist/types/parsers/boolean.d.ts | 4 + .../dist/types/parsers/branded.d.ts | 3 + .../dist/types/parsers/catch.d.ts | 3 + .../dist/types/parsers/date.d.ts | 15 + .../dist/types/parsers/default.d.ts | 6 + .../dist/types/parsers/effects.d.ts | 4 + .../dist/types/parsers/enum.d.ts | 6 + .../dist/types/parsers/intersection.d.ts | 8 + .../dist/types/parsers/literal.d.ts | 9 + .../dist/types/parsers/map.d.ts | 15 + .../dist/types/parsers/nativeEnum.d.ts | 6 + .../dist/types/parsers/never.d.ts | 4 + .../dist/types/parsers/null.d.ts | 5 + .../dist/types/parsers/nullable.d.ts | 10 + .../dist/types/parsers/number.d.ts | 13 + .../dist/types/parsers/object.d.ts | 10 + .../dist/types/parsers/optional.d.ts | 4 + .../dist/types/parsers/pipeline.d.ts | 5 + .../dist/types/parsers/promise.d.ts | 4 + .../dist/types/parsers/readonly.d.ts | 3 + .../dist/types/parsers/record.d.ts | 13 + .../dist/types/parsers/set.d.ts | 13 + .../dist/types/parsers/string.d.ts | 73 + .../dist/types/parsers/tuple.d.ts | 13 + .../dist/types/parsers/undefined.d.ts | 4 + .../dist/types/parsers/union.d.ts | 23 + .../dist/types/parsers/unknown.d.ts | 2 + .../dist/types/selectParser.d.ts | 5 + .../dist/types/zodToJsonSchema.d.ts | 10 + node_modules/zod-to-json-schema/package.json | 79 + node_modules/zod-to-json-schema/postcjs.ts | 3 + node_modules/zod-to-json-schema/postesm.ts | 3 + node_modules/zod/LICENSE | 21 + node_modules/zod/README.md | 3074 ++ node_modules/zod/index.d.ts | 2 + node_modules/zod/lib/ZodError.d.ts | 164 + node_modules/zod/lib/ZodError.js | 137 + node_modules/zod/lib/__tests__/Mocker.d.ts | 17 + node_modules/zod/lib/__tests__/Mocker.js | 57 + node_modules/zod/lib/benchmarks/datetime.d.ts | 5 + node_modules/zod/lib/benchmarks/datetime.js | 54 + .../lib/benchmarks/discriminatedUnion.d.ts | 5 + .../zod/lib/benchmarks/discriminatedUnion.js | 79 + node_modules/zod/lib/benchmarks/index.d.ts | 1 + node_modules/zod/lib/benchmarks/index.js | 59 + node_modules/zod/lib/benchmarks/ipv4.d.ts | 5 + node_modules/zod/lib/benchmarks/ipv4.js | 54 + node_modules/zod/lib/benchmarks/object.d.ts | 5 + node_modules/zod/lib/benchmarks/object.js | 70 + .../zod/lib/benchmarks/primitives.d.ts | 5 + node_modules/zod/lib/benchmarks/primitives.js | 170 + .../zod/lib/benchmarks/realworld.d.ts | 5 + node_modules/zod/lib/benchmarks/realworld.js | 56 + node_modules/zod/lib/benchmarks/string.d.ts | 5 + node_modules/zod/lib/benchmarks/string.js | 55 + node_modules/zod/lib/benchmarks/union.d.ts | 5 + node_modules/zod/lib/benchmarks/union.js | 79 + node_modules/zod/lib/errors.d.ts | 5 + node_modules/zod/lib/errors.js | 17 + node_modules/zod/lib/external.d.ts | 6 + node_modules/zod/lib/external.js | 22 + node_modules/zod/lib/helpers/enumUtil.d.ts | 8 + node_modules/zod/lib/helpers/enumUtil.js | 2 + node_modules/zod/lib/helpers/errorUtil.d.ts | 9 + node_modules/zod/lib/helpers/errorUtil.js | 8 + node_modules/zod/lib/helpers/parseUtil.d.ts | 78 + node_modules/zod/lib/helpers/parseUtil.js | 125 + node_modules/zod/lib/helpers/partialUtil.d.ts | 8 + node_modules/zod/lib/helpers/partialUtil.js | 2 + node_modules/zod/lib/helpers/typeAliases.d.ts | 2 + node_modules/zod/lib/helpers/typeAliases.js | 2 + node_modules/zod/lib/helpers/util.d.ts | 82 + node_modules/zod/lib/helpers/util.js | 142 + node_modules/zod/lib/index.d.ts | 4 + node_modules/zod/lib/index.js | 33 + node_modules/zod/lib/index.mjs | 4405 +++ node_modules/zod/lib/index.umd.js | 4520 +++ node_modules/zod/lib/locales/en.d.ts | 3 + node_modules/zod/lib/locales/en.js | 129 + node_modules/zod/lib/standard-schema.d.ts | 102 + node_modules/zod/lib/standard-schema.js | 2 + node_modules/zod/lib/types.d.ts | 1062 + node_modules/zod/lib/types.js | 3846 +++ node_modules/zod/package.json | 122 + package-lock.json | 1658 + package.json | 22 + server/src/mcp/manager.ts | 405 +- server/src/mcp/sessionManager.ts | 163 +- server/src/mcp/toolRegistry.ts | 110 +- server/src/routes.ts | 150 +- shared/types.ts | 42 +- 1782 files changed, 368409 insertions(+), 585 deletions(-) create mode 100644 client/.env create mode 100644 client/src/react-app-env.d.ts create mode 120000 node_modules/.bin/mime create mode 120000 node_modules/.bin/node-which create mode 100644 node_modules/.package-lock.json create mode 100644 node_modules/@modelcontextprotocol/sdk/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/cli.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/cli.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/cli.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/cli.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/auth.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/index.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/index.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/index.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/sse.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/sse.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/sse.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/sse.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/stdio.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/websocket.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/websocket.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/websocket.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/client/websocket.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/inMemory.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/inMemory.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/inMemory.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/inMemory.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/clients.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/clients.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/clients.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/clients.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/errors.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/errors.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/errors.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/errors.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/authorize.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/authorize.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/authorize.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/authorize.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/metadata.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/metadata.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/metadata.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/metadata.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/register.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/register.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/register.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/register.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/revoke.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/revoke.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/revoke.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/revoke.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/token.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/token.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/token.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/handlers/token.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/allowedMethods.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/allowedMethods.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/allowedMethods.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/allowedMethods.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/bearerAuth.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/bearerAuth.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/bearerAuth.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/bearerAuth.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/clientAuth.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/clientAuth.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/clientAuth.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/middleware/clientAuth.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/provider.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/provider.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/provider.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/provider.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/providers/proxyProvider.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/providers/proxyProvider.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/providers/proxyProvider.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/providers/proxyProvider.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/router.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/router.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/router.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/router.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/types.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/types.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/types.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/auth/types.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/completable.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/completable.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/completable.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/completable.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/index.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/index.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/index.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/mcp.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/sse.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/sse.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/sse.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/sse.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/stdio.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/stdio.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/stdio.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/server/stdio.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/auth.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/protocol.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/protocol.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/protocol.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/protocol.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/stdio.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/stdio.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/stdio.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/stdio.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/transport.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/transport.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/transport.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/transport.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/uriTemplate.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/uriTemplate.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/uriTemplate.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/shared/uriTemplate.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/types.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/types.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/types.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/cjs/types.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/cli.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/cli.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/cli.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/cli.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/auth.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/index.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/sse.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/sse.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/sse.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/sse.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/stdio.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/websocket.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/websocket.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/websocket.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/client/websocket.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/inMemory.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/inMemory.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/inMemory.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/inMemory.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/clients.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/clients.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/clients.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/clients.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/errors.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/errors.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/errors.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/errors.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/authorize.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/authorize.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/authorize.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/authorize.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/metadata.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/metadata.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/metadata.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/metadata.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/register.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/register.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/register.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/register.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/revoke.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/revoke.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/revoke.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/revoke.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/token.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/token.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/token.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/handlers/token.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/allowedMethods.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/allowedMethods.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/allowedMethods.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/allowedMethods.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/bearerAuth.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/bearerAuth.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/bearerAuth.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/bearerAuth.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/clientAuth.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/clientAuth.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/clientAuth.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/middleware/clientAuth.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/provider.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/provider.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/provider.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/provider.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/providers/proxyProvider.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/providers/proxyProvider.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/providers/proxyProvider.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/providers/proxyProvider.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/router.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/router.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/router.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/router.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/types.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/types.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/types.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/auth/types.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/completable.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/index.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/mcp.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/sse.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/sse.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/sse.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/sse.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/server/stdio.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/auth.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/protocol.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/stdio.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/transport.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/uriTemplate.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/uriTemplate.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/uriTemplate.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/shared/uriTemplate.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/types.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/types.d.ts.map create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/types.js create mode 100644 node_modules/@modelcontextprotocol/sdk/dist/esm/types.js.map create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/accepts/HISTORY.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/accepts/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/accepts/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/accepts/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/accepts/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/body-parser/HISTORY.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/body-parser/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/body-parser/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/body-parser/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/body-parser/lib/read.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/body-parser/lib/types/json.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/body-parser/lib/types/raw.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/body-parser/lib/types/text.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/body-parser/lib/types/urlencoded.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/body-parser/lib/utils.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/body-parser/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/content-disposition/HISTORY.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/content-disposition/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/content-disposition/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/content-disposition/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/content-disposition/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/cookie-signature/History.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/cookie-signature/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/cookie-signature/Readme.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/cookie-signature/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/cookie-signature/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/debug/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/debug/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/debug/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/debug/src/browser.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/debug/src/common.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/debug/src/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/debug/src/node.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/express/History.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/express/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/express/Readme.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/express/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/express/lib/application.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/express/lib/express.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/express/lib/request.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/express/lib/response.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/express/lib/utils.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/express/lib/view.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/express/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/finalhandler/HISTORY.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/finalhandler/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/finalhandler/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/finalhandler/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/finalhandler/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/fresh/HISTORY.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/fresh/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/fresh/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/fresh/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/fresh/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/.github/dependabot.yml create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/.idea/codeStyles/Project.xml create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/.idea/codeStyles/codeStyleConfig.xml create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/.idea/iconv-lite.iml create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/.idea/inspectionProfiles/Project_Default.xml create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/.idea/modules.xml create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/.idea/vcs.xml create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/Changelog.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/dbcs-codec.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/dbcs-data.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/internal.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/sbcs-codec.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/sbcs-data-generated.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/sbcs-data.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/tables/big5-added.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/tables/cp936.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/tables/cp949.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/tables/cp950.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/tables/eucjp.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/tables/gbk-added.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/tables/shiftjis.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/utf16.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/utf32.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/encodings/utf7.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/lib/bom-handling.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/lib/index.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/lib/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/lib/streams.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/iconv-lite/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/media-typer/HISTORY.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/media-typer/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/media-typer/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/media-typer/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/media-typer/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/merge-descriptors/index.d.ts create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/merge-descriptors/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/merge-descriptors/license create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/merge-descriptors/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/merge-descriptors/readme.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/mime-db/HISTORY.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/mime-db/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/mime-db/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/mime-db/db.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/mime-db/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/mime-db/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/mime-types/HISTORY.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/mime-types/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/mime-types/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/mime-types/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/mime-types/mimeScore.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/mime-types/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/ms/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/ms/license.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/ms/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/ms/readme.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/HISTORY.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/lib/charset.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/lib/encoding.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/lib/language.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/lib/mediaType.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/negotiator/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/.editorconfig create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/.eslintrc create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/.github/FUNDING.yml create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/.nycrc create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/CHANGELOG.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/LICENSE.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/dist/qs.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/lib/formats.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/lib/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/lib/parse.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/lib/stringify.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/lib/utils.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/test/empty-keys-cases.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/test/parse.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/test/stringify.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/qs/test/utils.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/send/HISTORY.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/send/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/send/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/send/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/send/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/serve-static/HISTORY.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/serve-static/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/serve-static/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/serve-static/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/serve-static/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/type-is/HISTORY.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/type-is/LICENSE create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/type-is/README.md create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/type-is/index.js create mode 100644 node_modules/@modelcontextprotocol/sdk/node_modules/type-is/package.json create mode 100644 node_modules/@modelcontextprotocol/sdk/package.json create mode 100644 node_modules/@socket.io/component-emitter/LICENSE create mode 100644 node_modules/@socket.io/component-emitter/Readme.md create mode 100644 node_modules/@socket.io/component-emitter/lib/cjs/index.d.ts create mode 100644 node_modules/@socket.io/component-emitter/lib/cjs/index.js create mode 100644 node_modules/@socket.io/component-emitter/lib/cjs/package.json create mode 100644 node_modules/@socket.io/component-emitter/lib/esm/index.d.ts create mode 100644 node_modules/@socket.io/component-emitter/lib/esm/index.js create mode 100644 node_modules/@socket.io/component-emitter/lib/esm/package.json create mode 100644 node_modules/@socket.io/component-emitter/package.json create mode 100644 node_modules/@types/cors/LICENSE create mode 100644 node_modules/@types/cors/README.md create mode 100644 node_modules/@types/cors/index.d.ts create mode 100644 node_modules/@types/cors/package.json create mode 100644 node_modules/@types/node/LICENSE create mode 100644 node_modules/@types/node/README.md create mode 100644 node_modules/@types/node/assert.d.ts create mode 100644 node_modules/@types/node/assert/strict.d.ts create mode 100644 node_modules/@types/node/async_hooks.d.ts create mode 100644 node_modules/@types/node/buffer.buffer.d.ts create mode 100644 node_modules/@types/node/buffer.d.ts create mode 100644 node_modules/@types/node/child_process.d.ts create mode 100644 node_modules/@types/node/cluster.d.ts create mode 100644 node_modules/@types/node/compatibility/disposable.d.ts create mode 100644 node_modules/@types/node/compatibility/index.d.ts create mode 100644 node_modules/@types/node/compatibility/indexable.d.ts create mode 100644 node_modules/@types/node/compatibility/iterators.d.ts create mode 100644 node_modules/@types/node/console.d.ts create mode 100644 node_modules/@types/node/constants.d.ts create mode 100644 node_modules/@types/node/crypto.d.ts create mode 100644 node_modules/@types/node/dgram.d.ts create mode 100644 node_modules/@types/node/diagnostics_channel.d.ts create mode 100644 node_modules/@types/node/dns.d.ts create mode 100644 node_modules/@types/node/dns/promises.d.ts create mode 100644 node_modules/@types/node/dom-events.d.ts create mode 100644 node_modules/@types/node/domain.d.ts create mode 100644 node_modules/@types/node/events.d.ts create mode 100644 node_modules/@types/node/fs.d.ts create mode 100644 node_modules/@types/node/fs/promises.d.ts create mode 100644 node_modules/@types/node/globals.d.ts create mode 100644 node_modules/@types/node/globals.typedarray.d.ts create mode 100644 node_modules/@types/node/http.d.ts create mode 100644 node_modules/@types/node/http2.d.ts create mode 100644 node_modules/@types/node/https.d.ts create mode 100644 node_modules/@types/node/index.d.ts create mode 100644 node_modules/@types/node/inspector.d.ts create mode 100644 node_modules/@types/node/module.d.ts create mode 100644 node_modules/@types/node/net.d.ts create mode 100644 node_modules/@types/node/os.d.ts create mode 100644 node_modules/@types/node/package.json create mode 100644 node_modules/@types/node/path.d.ts create mode 100644 node_modules/@types/node/perf_hooks.d.ts create mode 100644 node_modules/@types/node/process.d.ts create mode 100644 node_modules/@types/node/punycode.d.ts create mode 100644 node_modules/@types/node/querystring.d.ts create mode 100644 node_modules/@types/node/readline.d.ts create mode 100644 node_modules/@types/node/readline/promises.d.ts create mode 100644 node_modules/@types/node/repl.d.ts create mode 100644 node_modules/@types/node/sea.d.ts create mode 100644 node_modules/@types/node/sqlite.d.ts create mode 100644 node_modules/@types/node/stream.d.ts create mode 100644 node_modules/@types/node/stream/consumers.d.ts create mode 100644 node_modules/@types/node/stream/promises.d.ts create mode 100644 node_modules/@types/node/stream/web.d.ts create mode 100644 node_modules/@types/node/string_decoder.d.ts create mode 100644 node_modules/@types/node/test.d.ts create mode 100644 node_modules/@types/node/timers.d.ts create mode 100644 node_modules/@types/node/timers/promises.d.ts create mode 100644 node_modules/@types/node/tls.d.ts create mode 100644 node_modules/@types/node/trace_events.d.ts create mode 100644 node_modules/@types/node/ts5.6/buffer.buffer.d.ts create mode 100644 node_modules/@types/node/ts5.6/globals.typedarray.d.ts create mode 100644 node_modules/@types/node/ts5.6/index.d.ts create mode 100644 node_modules/@types/node/tty.d.ts create mode 100644 node_modules/@types/node/url.d.ts create mode 100644 node_modules/@types/node/util.d.ts create mode 100644 node_modules/@types/node/v8.d.ts create mode 100644 node_modules/@types/node/vm.d.ts create mode 100644 node_modules/@types/node/wasi.d.ts create mode 100644 node_modules/@types/node/worker_threads.d.ts create mode 100644 node_modules/@types/node/zlib.d.ts create mode 100644 node_modules/@types/react/LICENSE create mode 100644 node_modules/@types/react/README.md create mode 100644 node_modules/@types/react/canary.d.ts create mode 100644 node_modules/@types/react/compiler-runtime.d.ts create mode 100644 node_modules/@types/react/experimental.d.ts create mode 100644 node_modules/@types/react/global.d.ts create mode 100644 node_modules/@types/react/index.d.ts create mode 100644 node_modules/@types/react/jsx-dev-runtime.d.ts create mode 100644 node_modules/@types/react/jsx-runtime.d.ts create mode 100644 node_modules/@types/react/package.json create mode 100644 node_modules/@types/react/ts5.0/canary.d.ts create mode 100644 node_modules/@types/react/ts5.0/experimental.d.ts create mode 100644 node_modules/@types/react/ts5.0/global.d.ts create mode 100644 node_modules/@types/react/ts5.0/index.d.ts create mode 100644 node_modules/@types/react/ts5.0/jsx-dev-runtime.d.ts create mode 100644 node_modules/@types/react/ts5.0/jsx-runtime.d.ts create mode 100644 node_modules/@types/react/ts5.0/v18/global.d.ts create mode 100644 node_modules/@types/react/ts5.0/v18/index.d.ts create mode 100644 node_modules/@types/react/ts5.0/v18/jsx-dev-runtime.d.ts create mode 100644 node_modules/@types/react/ts5.0/v18/jsx-runtime.d.ts create mode 100644 node_modules/@types/react/ts5.0/v18/ts5.0/global.d.ts create mode 100644 node_modules/@types/react/ts5.0/v18/ts5.0/index.d.ts create mode 100644 node_modules/@types/react/ts5.0/v18/ts5.0/jsx-dev-runtime.d.ts create mode 100644 node_modules/@types/react/ts5.0/v18/ts5.0/jsx-runtime.d.ts create mode 100755 node_modules/@types/socket.io/LICENSE create mode 100755 node_modules/@types/socket.io/README.md create mode 100755 node_modules/@types/socket.io/package.json create mode 100644 node_modules/accepts/HISTORY.md create mode 100644 node_modules/accepts/LICENSE create mode 100644 node_modules/accepts/README.md create mode 100644 node_modules/accepts/index.js create mode 100644 node_modules/accepts/package.json create mode 100644 node_modules/array-flatten/LICENSE create mode 100644 node_modules/array-flatten/README.md create mode 100644 node_modules/array-flatten/array-flatten.js create mode 100644 node_modules/array-flatten/package.json create mode 100644 node_modules/base64id/CHANGELOG.md create mode 100644 node_modules/base64id/LICENSE create mode 100644 node_modules/base64id/README.md create mode 100644 node_modules/base64id/lib/base64id.js create mode 100644 node_modules/base64id/package.json create mode 100644 node_modules/body-parser/HISTORY.md create mode 100644 node_modules/body-parser/LICENSE create mode 100644 node_modules/body-parser/README.md create mode 100644 node_modules/body-parser/SECURITY.md create mode 100644 node_modules/body-parser/index.js create mode 100644 node_modules/body-parser/lib/read.js create mode 100644 node_modules/body-parser/lib/types/json.js create mode 100644 node_modules/body-parser/lib/types/raw.js create mode 100644 node_modules/body-parser/lib/types/text.js create mode 100644 node_modules/body-parser/lib/types/urlencoded.js create mode 100644 node_modules/body-parser/node_modules/raw-body/HISTORY.md create mode 100644 node_modules/body-parser/node_modules/raw-body/LICENSE create mode 100644 node_modules/body-parser/node_modules/raw-body/README.md create mode 100644 node_modules/body-parser/node_modules/raw-body/SECURITY.md create mode 100644 node_modules/body-parser/node_modules/raw-body/index.d.ts create mode 100644 node_modules/body-parser/node_modules/raw-body/index.js create mode 100644 node_modules/body-parser/node_modules/raw-body/package.json create mode 100644 node_modules/body-parser/package.json create mode 100644 node_modules/bytes/History.md create mode 100644 node_modules/bytes/LICENSE create mode 100644 node_modules/bytes/Readme.md create mode 100644 node_modules/bytes/index.js create mode 100644 node_modules/bytes/package.json create mode 100644 node_modules/call-bind-apply-helpers/.eslintrc create mode 100644 node_modules/call-bind-apply-helpers/.github/FUNDING.yml create mode 100644 node_modules/call-bind-apply-helpers/.nycrc create mode 100644 node_modules/call-bind-apply-helpers/CHANGELOG.md create mode 100644 node_modules/call-bind-apply-helpers/LICENSE create mode 100644 node_modules/call-bind-apply-helpers/README.md create mode 100644 node_modules/call-bind-apply-helpers/actualApply.d.ts create mode 100644 node_modules/call-bind-apply-helpers/actualApply.js create mode 100644 node_modules/call-bind-apply-helpers/applyBind.d.ts create mode 100644 node_modules/call-bind-apply-helpers/applyBind.js create mode 100644 node_modules/call-bind-apply-helpers/functionApply.d.ts create mode 100644 node_modules/call-bind-apply-helpers/functionApply.js create mode 100644 node_modules/call-bind-apply-helpers/functionCall.d.ts create mode 100644 node_modules/call-bind-apply-helpers/functionCall.js create mode 100644 node_modules/call-bind-apply-helpers/index.d.ts create mode 100644 node_modules/call-bind-apply-helpers/index.js create mode 100644 node_modules/call-bind-apply-helpers/package.json create mode 100644 node_modules/call-bind-apply-helpers/reflectApply.d.ts create mode 100644 node_modules/call-bind-apply-helpers/reflectApply.js create mode 100644 node_modules/call-bind-apply-helpers/test/index.js create mode 100644 node_modules/call-bind-apply-helpers/tsconfig.json create mode 100644 node_modules/call-bound/.eslintrc create mode 100644 node_modules/call-bound/.github/FUNDING.yml create mode 100644 node_modules/call-bound/.nycrc create mode 100644 node_modules/call-bound/CHANGELOG.md create mode 100644 node_modules/call-bound/LICENSE create mode 100644 node_modules/call-bound/README.md create mode 100644 node_modules/call-bound/index.d.ts create mode 100644 node_modules/call-bound/index.js create mode 100644 node_modules/call-bound/package.json create mode 100644 node_modules/call-bound/test/index.js create mode 100644 node_modules/call-bound/tsconfig.json create mode 100644 node_modules/content-disposition/HISTORY.md create mode 100644 node_modules/content-disposition/LICENSE create mode 100644 node_modules/content-disposition/README.md create mode 100644 node_modules/content-disposition/index.js create mode 100644 node_modules/content-disposition/package.json create mode 100644 node_modules/content-type/HISTORY.md create mode 100644 node_modules/content-type/LICENSE create mode 100644 node_modules/content-type/README.md create mode 100644 node_modules/content-type/index.js create mode 100644 node_modules/content-type/package.json create mode 100644 node_modules/cookie-signature/.npmignore create mode 100644 node_modules/cookie-signature/History.md create mode 100644 node_modules/cookie-signature/Readme.md create mode 100644 node_modules/cookie-signature/index.js create mode 100644 node_modules/cookie-signature/package.json create mode 100644 node_modules/cookie/LICENSE create mode 100644 node_modules/cookie/README.md create mode 100644 node_modules/cookie/SECURITY.md create mode 100644 node_modules/cookie/index.js create mode 100644 node_modules/cookie/package.json create mode 100644 node_modules/cors/CONTRIBUTING.md create mode 100644 node_modules/cors/HISTORY.md create mode 100644 node_modules/cors/LICENSE create mode 100644 node_modules/cors/README.md create mode 100644 node_modules/cors/lib/index.js create mode 100644 node_modules/cors/package.json create mode 100644 node_modules/cross-spawn/LICENSE create mode 100644 node_modules/cross-spawn/README.md create mode 100644 node_modules/cross-spawn/index.js create mode 100644 node_modules/cross-spawn/lib/enoent.js create mode 100644 node_modules/cross-spawn/lib/parse.js create mode 100644 node_modules/cross-spawn/lib/util/escape.js create mode 100644 node_modules/cross-spawn/lib/util/readShebang.js create mode 100644 node_modules/cross-spawn/lib/util/resolveCommand.js create mode 100644 node_modules/cross-spawn/package.json create mode 100644 node_modules/csstype/LICENSE create mode 100644 node_modules/csstype/README.md create mode 100644 node_modules/csstype/index.d.ts create mode 100644 node_modules/csstype/index.js.flow create mode 100644 node_modules/csstype/package.json create mode 100644 node_modules/debug/.coveralls.yml create mode 100644 node_modules/debug/.eslintrc create mode 100644 node_modules/debug/.npmignore create mode 100644 node_modules/debug/.travis.yml create mode 100644 node_modules/debug/CHANGELOG.md create mode 100644 node_modules/debug/LICENSE create mode 100644 node_modules/debug/Makefile create mode 100644 node_modules/debug/README.md create mode 100644 node_modules/debug/component.json create mode 100644 node_modules/debug/karma.conf.js create mode 100644 node_modules/debug/node.js create mode 100644 node_modules/debug/package.json create mode 100644 node_modules/debug/src/browser.js create mode 100644 node_modules/debug/src/debug.js create mode 100644 node_modules/debug/src/index.js create mode 100644 node_modules/debug/src/inspector-log.js create mode 100644 node_modules/debug/src/node.js create mode 100644 node_modules/depd/History.md create mode 100644 node_modules/depd/LICENSE create mode 100644 node_modules/depd/Readme.md create mode 100644 node_modules/depd/index.js create mode 100644 node_modules/depd/lib/browser/index.js create mode 100644 node_modules/depd/package.json create mode 100644 node_modules/destroy/LICENSE create mode 100644 node_modules/destroy/README.md create mode 100644 node_modules/destroy/index.js create mode 100644 node_modules/destroy/package.json create mode 100644 node_modules/dunder-proto/.eslintrc create mode 100644 node_modules/dunder-proto/.github/FUNDING.yml create mode 100644 node_modules/dunder-proto/.nycrc create mode 100644 node_modules/dunder-proto/CHANGELOG.md create mode 100644 node_modules/dunder-proto/LICENSE create mode 100644 node_modules/dunder-proto/README.md create mode 100644 node_modules/dunder-proto/get.d.ts create mode 100644 node_modules/dunder-proto/get.js create mode 100644 node_modules/dunder-proto/package.json create mode 100644 node_modules/dunder-proto/set.d.ts create mode 100644 node_modules/dunder-proto/set.js create mode 100644 node_modules/dunder-proto/test/get.js create mode 100644 node_modules/dunder-proto/test/index.js create mode 100644 node_modules/dunder-proto/test/set.js create mode 100644 node_modules/dunder-proto/tsconfig.json create mode 100644 node_modules/ee-first/LICENSE create mode 100644 node_modules/ee-first/README.md create mode 100644 node_modules/ee-first/index.js create mode 100644 node_modules/ee-first/package.json create mode 100644 node_modules/encodeurl/LICENSE create mode 100644 node_modules/encodeurl/README.md create mode 100644 node_modules/encodeurl/index.js create mode 100644 node_modules/encodeurl/package.json create mode 100644 node_modules/engine.io-parser/LICENSE create mode 100644 node_modules/engine.io-parser/Readme.md create mode 100644 node_modules/engine.io-parser/build/cjs/commons.d.ts create mode 100644 node_modules/engine.io-parser/build/cjs/commons.js create mode 100644 node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.d.ts create mode 100644 node_modules/engine.io-parser/build/cjs/contrib/base64-arraybuffer.js create mode 100644 node_modules/engine.io-parser/build/cjs/decodePacket.browser.d.ts create mode 100644 node_modules/engine.io-parser/build/cjs/decodePacket.browser.js create mode 100644 node_modules/engine.io-parser/build/cjs/decodePacket.d.ts create mode 100644 node_modules/engine.io-parser/build/cjs/decodePacket.js create mode 100644 node_modules/engine.io-parser/build/cjs/encodePacket.browser.d.ts create mode 100644 node_modules/engine.io-parser/build/cjs/encodePacket.browser.js create mode 100644 node_modules/engine.io-parser/build/cjs/encodePacket.d.ts create mode 100644 node_modules/engine.io-parser/build/cjs/encodePacket.js create mode 100644 node_modules/engine.io-parser/build/cjs/index.d.ts create mode 100644 node_modules/engine.io-parser/build/cjs/index.js create mode 100644 node_modules/engine.io-parser/build/cjs/package.json create mode 100644 node_modules/engine.io-parser/build/esm/commons.d.ts create mode 100644 node_modules/engine.io-parser/build/esm/commons.js create mode 100644 node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.d.ts create mode 100644 node_modules/engine.io-parser/build/esm/contrib/base64-arraybuffer.js create mode 100644 node_modules/engine.io-parser/build/esm/decodePacket.browser.d.ts create mode 100644 node_modules/engine.io-parser/build/esm/decodePacket.browser.js create mode 100644 node_modules/engine.io-parser/build/esm/decodePacket.d.ts create mode 100644 node_modules/engine.io-parser/build/esm/decodePacket.js create mode 100644 node_modules/engine.io-parser/build/esm/encodePacket.browser.d.ts create mode 100644 node_modules/engine.io-parser/build/esm/encodePacket.browser.js create mode 100644 node_modules/engine.io-parser/build/esm/encodePacket.d.ts create mode 100644 node_modules/engine.io-parser/build/esm/encodePacket.js create mode 100644 node_modules/engine.io-parser/build/esm/index.d.ts create mode 100644 node_modules/engine.io-parser/build/esm/index.js create mode 100644 node_modules/engine.io-parser/build/esm/package.json create mode 100644 node_modules/engine.io-parser/package.json create mode 100644 node_modules/engine.io/LICENSE create mode 100644 node_modules/engine.io/README.md create mode 100644 node_modules/engine.io/build/contrib/types.cookie.d.ts create mode 100644 node_modules/engine.io/build/contrib/types.cookie.js create mode 100644 node_modules/engine.io/build/engine.io.d.ts create mode 100644 node_modules/engine.io/build/engine.io.js create mode 100644 node_modules/engine.io/build/parser-v3/index.d.ts create mode 100644 node_modules/engine.io/build/parser-v3/index.js create mode 100644 node_modules/engine.io/build/parser-v3/utf8.d.ts create mode 100644 node_modules/engine.io/build/parser-v3/utf8.js create mode 100644 node_modules/engine.io/build/server.d.ts create mode 100644 node_modules/engine.io/build/server.js create mode 100644 node_modules/engine.io/build/socket.d.ts create mode 100644 node_modules/engine.io/build/socket.js create mode 100644 node_modules/engine.io/build/transport.d.ts create mode 100644 node_modules/engine.io/build/transport.js create mode 100644 node_modules/engine.io/build/transports-uws/index.d.ts create mode 100644 node_modules/engine.io/build/transports-uws/index.js create mode 100644 node_modules/engine.io/build/transports-uws/polling.d.ts create mode 100644 node_modules/engine.io/build/transports-uws/polling.js create mode 100644 node_modules/engine.io/build/transports-uws/websocket.d.ts create mode 100644 node_modules/engine.io/build/transports-uws/websocket.js create mode 100644 node_modules/engine.io/build/transports/index.d.ts create mode 100644 node_modules/engine.io/build/transports/index.js create mode 100644 node_modules/engine.io/build/transports/polling-jsonp.d.ts create mode 100644 node_modules/engine.io/build/transports/polling-jsonp.js create mode 100644 node_modules/engine.io/build/transports/polling.d.ts create mode 100644 node_modules/engine.io/build/transports/polling.js create mode 100644 node_modules/engine.io/build/transports/websocket.d.ts create mode 100644 node_modules/engine.io/build/transports/websocket.js create mode 100644 node_modules/engine.io/build/transports/webtransport.d.ts create mode 100644 node_modules/engine.io/build/transports/webtransport.js create mode 100644 node_modules/engine.io/build/userver.d.ts create mode 100644 node_modules/engine.io/build/userver.js create mode 100644 node_modules/engine.io/node_modules/cookie/LICENSE create mode 100644 node_modules/engine.io/node_modules/cookie/README.md create mode 100644 node_modules/engine.io/node_modules/cookie/SECURITY.md create mode 100644 node_modules/engine.io/node_modules/cookie/index.js create mode 100644 node_modules/engine.io/node_modules/cookie/package.json create mode 100644 node_modules/engine.io/node_modules/debug/LICENSE create mode 100644 node_modules/engine.io/node_modules/debug/README.md create mode 100644 node_modules/engine.io/node_modules/debug/package.json create mode 100644 node_modules/engine.io/node_modules/debug/src/browser.js create mode 100644 node_modules/engine.io/node_modules/debug/src/common.js create mode 100644 node_modules/engine.io/node_modules/debug/src/index.js create mode 100644 node_modules/engine.io/node_modules/debug/src/node.js create mode 100644 node_modules/engine.io/node_modules/ms/index.js create mode 100644 node_modules/engine.io/node_modules/ms/license.md create mode 100644 node_modules/engine.io/node_modules/ms/package.json create mode 100644 node_modules/engine.io/node_modules/ms/readme.md create mode 100644 node_modules/engine.io/package.json create mode 100644 node_modules/engine.io/wrapper.mjs create mode 100644 node_modules/es-define-property/.eslintrc create mode 100644 node_modules/es-define-property/.github/FUNDING.yml create mode 100644 node_modules/es-define-property/.nycrc create mode 100644 node_modules/es-define-property/CHANGELOG.md create mode 100644 node_modules/es-define-property/LICENSE create mode 100644 node_modules/es-define-property/README.md create mode 100644 node_modules/es-define-property/index.d.ts create mode 100644 node_modules/es-define-property/index.js create mode 100644 node_modules/es-define-property/package.json create mode 100644 node_modules/es-define-property/test/index.js create mode 100644 node_modules/es-define-property/tsconfig.json create mode 100644 node_modules/es-errors/.eslintrc create mode 100644 node_modules/es-errors/.github/FUNDING.yml create mode 100644 node_modules/es-errors/CHANGELOG.md create mode 100644 node_modules/es-errors/LICENSE create mode 100644 node_modules/es-errors/README.md create mode 100644 node_modules/es-errors/eval.d.ts create mode 100644 node_modules/es-errors/eval.js create mode 100644 node_modules/es-errors/index.d.ts create mode 100644 node_modules/es-errors/index.js create mode 100644 node_modules/es-errors/package.json create mode 100644 node_modules/es-errors/range.d.ts create mode 100644 node_modules/es-errors/range.js create mode 100644 node_modules/es-errors/ref.d.ts create mode 100644 node_modules/es-errors/ref.js create mode 100644 node_modules/es-errors/syntax.d.ts create mode 100644 node_modules/es-errors/syntax.js create mode 100644 node_modules/es-errors/test/index.js create mode 100644 node_modules/es-errors/tsconfig.json create mode 100644 node_modules/es-errors/type.d.ts create mode 100644 node_modules/es-errors/type.js create mode 100644 node_modules/es-errors/uri.d.ts create mode 100644 node_modules/es-errors/uri.js create mode 100644 node_modules/es-object-atoms/.eslintrc create mode 100644 node_modules/es-object-atoms/.github/FUNDING.yml create mode 100644 node_modules/es-object-atoms/CHANGELOG.md create mode 100644 node_modules/es-object-atoms/LICENSE create mode 100644 node_modules/es-object-atoms/README.md create mode 100644 node_modules/es-object-atoms/RequireObjectCoercible.d.ts create mode 100644 node_modules/es-object-atoms/RequireObjectCoercible.js create mode 100644 node_modules/es-object-atoms/ToObject.d.ts create mode 100644 node_modules/es-object-atoms/ToObject.js create mode 100644 node_modules/es-object-atoms/index.d.ts create mode 100644 node_modules/es-object-atoms/index.js create mode 100644 node_modules/es-object-atoms/isObject.d.ts create mode 100644 node_modules/es-object-atoms/isObject.js create mode 100644 node_modules/es-object-atoms/package.json create mode 100644 node_modules/es-object-atoms/test/index.js create mode 100644 node_modules/es-object-atoms/tsconfig.json create mode 100644 node_modules/escape-html/LICENSE create mode 100644 node_modules/escape-html/Readme.md create mode 100644 node_modules/escape-html/index.js create mode 100644 node_modules/escape-html/package.json create mode 100644 node_modules/etag/HISTORY.md create mode 100644 node_modules/etag/LICENSE create mode 100644 node_modules/etag/README.md create mode 100644 node_modules/etag/index.js create mode 100644 node_modules/etag/package.json create mode 100644 node_modules/eventsource-parser/LICENSE create mode 100644 node_modules/eventsource-parser/README.md create mode 100644 node_modules/eventsource-parser/dist/index.cjs create mode 100644 node_modules/eventsource-parser/dist/index.cjs.map create mode 100644 node_modules/eventsource-parser/dist/index.d.cts create mode 100644 node_modules/eventsource-parser/dist/index.d.ts create mode 100644 node_modules/eventsource-parser/dist/index.esm.js create mode 100644 node_modules/eventsource-parser/dist/index.esm.js.map create mode 100644 node_modules/eventsource-parser/dist/index.js create mode 100644 node_modules/eventsource-parser/dist/index.js.map create mode 100644 node_modules/eventsource-parser/dist/stats.html create mode 100644 node_modules/eventsource-parser/dist/stream.cjs create mode 100644 node_modules/eventsource-parser/dist/stream.cjs.map create mode 100644 node_modules/eventsource-parser/dist/stream.d.cts create mode 100644 node_modules/eventsource-parser/dist/stream.d.ts create mode 100644 node_modules/eventsource-parser/dist/stream.esm.js create mode 100644 node_modules/eventsource-parser/dist/stream.esm.js.map create mode 100644 node_modules/eventsource-parser/dist/stream.js create mode 100644 node_modules/eventsource-parser/dist/stream.js.map create mode 100644 node_modules/eventsource-parser/package.json create mode 100644 node_modules/eventsource-parser/src/errors.ts create mode 100644 node_modules/eventsource-parser/src/index.ts create mode 100644 node_modules/eventsource-parser/src/parse.ts create mode 100644 node_modules/eventsource-parser/src/stream.ts create mode 100644 node_modules/eventsource-parser/src/types.ts create mode 100644 node_modules/eventsource-parser/stream.js create mode 100644 node_modules/eventsource/LICENSE create mode 100644 node_modules/eventsource/README.md create mode 100644 node_modules/eventsource/dist/index.cjs create mode 100644 node_modules/eventsource/dist/index.cjs.map create mode 100644 node_modules/eventsource/dist/index.d.cts create mode 100644 node_modules/eventsource/dist/index.d.ts create mode 100644 node_modules/eventsource/dist/index.js create mode 100644 node_modules/eventsource/dist/index.js.map create mode 100644 node_modules/eventsource/package.json create mode 100644 node_modules/eventsource/src/EventSource.ts create mode 100644 node_modules/eventsource/src/errors.ts create mode 100644 node_modules/eventsource/src/index.ts create mode 100644 node_modules/eventsource/src/types.ts create mode 100644 node_modules/express-rate-limit/dist/index.cjs create mode 100644 node_modules/express-rate-limit/dist/index.d.cts create mode 100644 node_modules/express-rate-limit/dist/index.d.mts create mode 100644 node_modules/express-rate-limit/dist/index.d.ts create mode 100644 node_modules/express-rate-limit/dist/index.mjs create mode 100644 node_modules/express-rate-limit/license.md create mode 100644 node_modules/express-rate-limit/package.json create mode 100644 node_modules/express-rate-limit/readme.md create mode 100644 node_modules/express-rate-limit/tsconfig.json create mode 100644 node_modules/express/History.md create mode 100644 node_modules/express/LICENSE create mode 100644 node_modules/express/Readme.md create mode 100644 node_modules/express/index.js create mode 100644 node_modules/express/lib/application.js create mode 100644 node_modules/express/lib/express.js create mode 100644 node_modules/express/lib/middleware/init.js create mode 100644 node_modules/express/lib/middleware/query.js create mode 100644 node_modules/express/lib/request.js create mode 100644 node_modules/express/lib/response.js create mode 100644 node_modules/express/lib/router/index.js create mode 100644 node_modules/express/lib/router/layer.js create mode 100644 node_modules/express/lib/router/route.js create mode 100644 node_modules/express/lib/utils.js create mode 100644 node_modules/express/lib/view.js create mode 100644 node_modules/express/package.json create mode 100644 node_modules/finalhandler/HISTORY.md create mode 100644 node_modules/finalhandler/LICENSE create mode 100644 node_modules/finalhandler/README.md create mode 100644 node_modules/finalhandler/SECURITY.md create mode 100644 node_modules/finalhandler/index.js create mode 100644 node_modules/finalhandler/package.json create mode 100644 node_modules/forwarded/HISTORY.md create mode 100644 node_modules/forwarded/LICENSE create mode 100644 node_modules/forwarded/README.md create mode 100644 node_modules/forwarded/index.js create mode 100644 node_modules/forwarded/package.json create mode 100644 node_modules/fresh/HISTORY.md create mode 100644 node_modules/fresh/LICENSE create mode 100644 node_modules/fresh/README.md create mode 100644 node_modules/fresh/index.js create mode 100644 node_modules/fresh/package.json create mode 100644 node_modules/function-bind/.eslintrc create mode 100644 node_modules/function-bind/.github/FUNDING.yml create mode 100644 node_modules/function-bind/.github/SECURITY.md create mode 100644 node_modules/function-bind/.nycrc create mode 100644 node_modules/function-bind/CHANGELOG.md create mode 100644 node_modules/function-bind/LICENSE create mode 100644 node_modules/function-bind/README.md create mode 100644 node_modules/function-bind/implementation.js create mode 100644 node_modules/function-bind/index.js create mode 100644 node_modules/function-bind/package.json create mode 100644 node_modules/function-bind/test/.eslintrc create mode 100644 node_modules/function-bind/test/index.js create mode 100644 node_modules/get-intrinsic/.eslintrc create mode 100644 node_modules/get-intrinsic/.github/FUNDING.yml create mode 100644 node_modules/get-intrinsic/.nycrc create mode 100644 node_modules/get-intrinsic/CHANGELOG.md create mode 100644 node_modules/get-intrinsic/LICENSE create mode 100644 node_modules/get-intrinsic/README.md create mode 100644 node_modules/get-intrinsic/index.js create mode 100644 node_modules/get-intrinsic/package.json create mode 100644 node_modules/get-intrinsic/test/GetIntrinsic.js create mode 100644 node_modules/get-proto/.eslintrc create mode 100644 node_modules/get-proto/.github/FUNDING.yml create mode 100644 node_modules/get-proto/.nycrc create mode 100644 node_modules/get-proto/CHANGELOG.md create mode 100644 node_modules/get-proto/LICENSE create mode 100644 node_modules/get-proto/Object.getPrototypeOf.d.ts create mode 100644 node_modules/get-proto/Object.getPrototypeOf.js create mode 100644 node_modules/get-proto/README.md create mode 100644 node_modules/get-proto/Reflect.getPrototypeOf.d.ts create mode 100644 node_modules/get-proto/Reflect.getPrototypeOf.js create mode 100644 node_modules/get-proto/index.d.ts create mode 100644 node_modules/get-proto/index.js create mode 100644 node_modules/get-proto/package.json create mode 100644 node_modules/get-proto/test/index.js create mode 100644 node_modules/get-proto/tsconfig.json create mode 100644 node_modules/gopd/.eslintrc create mode 100644 node_modules/gopd/.github/FUNDING.yml create mode 100644 node_modules/gopd/CHANGELOG.md create mode 100644 node_modules/gopd/LICENSE create mode 100644 node_modules/gopd/README.md create mode 100644 node_modules/gopd/gOPD.d.ts create mode 100644 node_modules/gopd/gOPD.js create mode 100644 node_modules/gopd/index.d.ts create mode 100644 node_modules/gopd/index.js create mode 100644 node_modules/gopd/package.json create mode 100644 node_modules/gopd/test/index.js create mode 100644 node_modules/gopd/tsconfig.json create mode 100644 node_modules/has-symbols/.eslintrc create mode 100644 node_modules/has-symbols/.github/FUNDING.yml create mode 100644 node_modules/has-symbols/.nycrc create mode 100644 node_modules/has-symbols/CHANGELOG.md create mode 100644 node_modules/has-symbols/LICENSE create mode 100644 node_modules/has-symbols/README.md create mode 100644 node_modules/has-symbols/index.d.ts create mode 100644 node_modules/has-symbols/index.js create mode 100644 node_modules/has-symbols/package.json create mode 100644 node_modules/has-symbols/shams.d.ts create mode 100644 node_modules/has-symbols/shams.js create mode 100644 node_modules/has-symbols/test/index.js create mode 100644 node_modules/has-symbols/test/shams/core-js.js create mode 100644 node_modules/has-symbols/test/shams/get-own-property-symbols.js create mode 100644 node_modules/has-symbols/test/tests.js create mode 100644 node_modules/has-symbols/tsconfig.json create mode 100644 node_modules/hasown/.eslintrc create mode 100644 node_modules/hasown/.github/FUNDING.yml create mode 100644 node_modules/hasown/.nycrc create mode 100644 node_modules/hasown/CHANGELOG.md create mode 100644 node_modules/hasown/LICENSE create mode 100644 node_modules/hasown/README.md create mode 100644 node_modules/hasown/index.d.ts create mode 100644 node_modules/hasown/index.js create mode 100644 node_modules/hasown/package.json create mode 100644 node_modules/hasown/tsconfig.json create mode 100644 node_modules/http-errors/HISTORY.md create mode 100644 node_modules/http-errors/LICENSE create mode 100644 node_modules/http-errors/README.md create mode 100644 node_modules/http-errors/index.js create mode 100644 node_modules/http-errors/package.json create mode 100644 node_modules/iconv-lite/Changelog.md create mode 100644 node_modules/iconv-lite/LICENSE create mode 100644 node_modules/iconv-lite/README.md create mode 100644 node_modules/iconv-lite/encodings/dbcs-codec.js create mode 100644 node_modules/iconv-lite/encodings/dbcs-data.js create mode 100644 node_modules/iconv-lite/encodings/index.js create mode 100644 node_modules/iconv-lite/encodings/internal.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-codec.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-data-generated.js create mode 100644 node_modules/iconv-lite/encodings/sbcs-data.js create mode 100644 node_modules/iconv-lite/encodings/tables/big5-added.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp936.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp949.json create mode 100644 node_modules/iconv-lite/encodings/tables/cp950.json create mode 100644 node_modules/iconv-lite/encodings/tables/eucjp.json create mode 100644 node_modules/iconv-lite/encodings/tables/gb18030-ranges.json create mode 100644 node_modules/iconv-lite/encodings/tables/gbk-added.json create mode 100644 node_modules/iconv-lite/encodings/tables/shiftjis.json create mode 100644 node_modules/iconv-lite/encodings/utf16.js create mode 100644 node_modules/iconv-lite/encodings/utf7.js create mode 100644 node_modules/iconv-lite/lib/bom-handling.js create mode 100644 node_modules/iconv-lite/lib/extend-node.js create mode 100644 node_modules/iconv-lite/lib/index.d.ts create mode 100644 node_modules/iconv-lite/lib/index.js create mode 100644 node_modules/iconv-lite/lib/streams.js create mode 100644 node_modules/iconv-lite/package.json create mode 100644 node_modules/inherits/LICENSE create mode 100644 node_modules/inherits/README.md create mode 100644 node_modules/inherits/inherits.js create mode 100644 node_modules/inherits/inherits_browser.js create mode 100644 node_modules/inherits/package.json create mode 100644 node_modules/ipaddr.js/LICENSE create mode 100644 node_modules/ipaddr.js/README.md create mode 100644 node_modules/ipaddr.js/ipaddr.min.js create mode 100644 node_modules/ipaddr.js/lib/ipaddr.js create mode 100644 node_modules/ipaddr.js/lib/ipaddr.js.d.ts create mode 100644 node_modules/ipaddr.js/package.json create mode 100644 node_modules/is-promise/LICENSE create mode 100644 node_modules/is-promise/index.d.ts create mode 100644 node_modules/is-promise/index.js create mode 100644 node_modules/is-promise/index.mjs create mode 100644 node_modules/is-promise/package.json create mode 100644 node_modules/is-promise/readme.md create mode 100644 node_modules/isexe/.npmignore create mode 100644 node_modules/isexe/LICENSE create mode 100644 node_modules/isexe/README.md create mode 100644 node_modules/isexe/index.js create mode 100644 node_modules/isexe/mode.js create mode 100644 node_modules/isexe/package.json create mode 100644 node_modules/isexe/test/basic.js create mode 100644 node_modules/isexe/windows.js create mode 100644 node_modules/math-intrinsics/.eslintrc create mode 100644 node_modules/math-intrinsics/.github/FUNDING.yml create mode 100644 node_modules/math-intrinsics/CHANGELOG.md create mode 100644 node_modules/math-intrinsics/LICENSE create mode 100644 node_modules/math-intrinsics/README.md create mode 100644 node_modules/math-intrinsics/abs.d.ts create mode 100644 node_modules/math-intrinsics/abs.js create mode 100644 node_modules/math-intrinsics/constants/maxArrayLength.d.ts create mode 100644 node_modules/math-intrinsics/constants/maxArrayLength.js create mode 100644 node_modules/math-intrinsics/constants/maxSafeInteger.d.ts create mode 100644 node_modules/math-intrinsics/constants/maxSafeInteger.js create mode 100644 node_modules/math-intrinsics/constants/maxValue.d.ts create mode 100644 node_modules/math-intrinsics/constants/maxValue.js create mode 100644 node_modules/math-intrinsics/floor.d.ts create mode 100644 node_modules/math-intrinsics/floor.js create mode 100644 node_modules/math-intrinsics/isFinite.d.ts create mode 100644 node_modules/math-intrinsics/isFinite.js create mode 100644 node_modules/math-intrinsics/isInteger.d.ts create mode 100644 node_modules/math-intrinsics/isInteger.js create mode 100644 node_modules/math-intrinsics/isNaN.d.ts create mode 100644 node_modules/math-intrinsics/isNaN.js create mode 100644 node_modules/math-intrinsics/isNegativeZero.d.ts create mode 100644 node_modules/math-intrinsics/isNegativeZero.js create mode 100644 node_modules/math-intrinsics/max.d.ts create mode 100644 node_modules/math-intrinsics/max.js create mode 100644 node_modules/math-intrinsics/min.d.ts create mode 100644 node_modules/math-intrinsics/min.js create mode 100644 node_modules/math-intrinsics/mod.d.ts create mode 100644 node_modules/math-intrinsics/mod.js create mode 100644 node_modules/math-intrinsics/package.json create mode 100644 node_modules/math-intrinsics/pow.d.ts create mode 100644 node_modules/math-intrinsics/pow.js create mode 100644 node_modules/math-intrinsics/round.d.ts create mode 100644 node_modules/math-intrinsics/round.js create mode 100644 node_modules/math-intrinsics/sign.d.ts create mode 100644 node_modules/math-intrinsics/sign.js create mode 100644 node_modules/math-intrinsics/test/index.js create mode 100644 node_modules/math-intrinsics/tsconfig.json create mode 100644 node_modules/media-typer/HISTORY.md create mode 100644 node_modules/media-typer/LICENSE create mode 100644 node_modules/media-typer/README.md create mode 100644 node_modules/media-typer/index.js create mode 100644 node_modules/media-typer/package.json create mode 100644 node_modules/merge-descriptors/HISTORY.md create mode 100644 node_modules/merge-descriptors/LICENSE create mode 100644 node_modules/merge-descriptors/README.md create mode 100644 node_modules/merge-descriptors/index.js create mode 100644 node_modules/merge-descriptors/package.json create mode 100644 node_modules/methods/HISTORY.md create mode 100644 node_modules/methods/LICENSE create mode 100644 node_modules/methods/README.md create mode 100644 node_modules/methods/index.js create mode 100644 node_modules/methods/package.json create mode 100644 node_modules/mime-db/HISTORY.md create mode 100644 node_modules/mime-db/LICENSE create mode 100644 node_modules/mime-db/README.md create mode 100644 node_modules/mime-db/db.json create mode 100644 node_modules/mime-db/index.js create mode 100644 node_modules/mime-db/package.json create mode 100644 node_modules/mime-types/HISTORY.md create mode 100644 node_modules/mime-types/LICENSE create mode 100644 node_modules/mime-types/README.md create mode 100644 node_modules/mime-types/index.js create mode 100644 node_modules/mime-types/package.json create mode 100644 node_modules/mime/.npmignore create mode 100644 node_modules/mime/CHANGELOG.md create mode 100644 node_modules/mime/LICENSE create mode 100644 node_modules/mime/README.md create mode 100755 node_modules/mime/cli.js create mode 100644 node_modules/mime/mime.js create mode 100644 node_modules/mime/package.json create mode 100755 node_modules/mime/src/build.js create mode 100644 node_modules/mime/src/test.js create mode 100644 node_modules/mime/types.json create mode 100644 node_modules/ms/index.js create mode 100644 node_modules/ms/license.md create mode 100644 node_modules/ms/package.json create mode 100644 node_modules/ms/readme.md create mode 100644 node_modules/negotiator/HISTORY.md create mode 100644 node_modules/negotiator/LICENSE create mode 100644 node_modules/negotiator/README.md create mode 100644 node_modules/negotiator/index.js create mode 100644 node_modules/negotiator/lib/charset.js create mode 100644 node_modules/negotiator/lib/encoding.js create mode 100644 node_modules/negotiator/lib/language.js create mode 100644 node_modules/negotiator/lib/mediaType.js create mode 100644 node_modules/negotiator/package.json create mode 100644 node_modules/object-assign/index.js create mode 100644 node_modules/object-assign/license create mode 100644 node_modules/object-assign/package.json create mode 100644 node_modules/object-assign/readme.md create mode 100644 node_modules/object-inspect/.eslintrc create mode 100644 node_modules/object-inspect/.github/FUNDING.yml create mode 100644 node_modules/object-inspect/.nycrc create mode 100644 node_modules/object-inspect/CHANGELOG.md create mode 100644 node_modules/object-inspect/LICENSE create mode 100644 node_modules/object-inspect/example/all.js create mode 100644 node_modules/object-inspect/example/circular.js create mode 100644 node_modules/object-inspect/example/fn.js create mode 100644 node_modules/object-inspect/example/inspect.js create mode 100644 node_modules/object-inspect/index.js create mode 100644 node_modules/object-inspect/package-support.json create mode 100644 node_modules/object-inspect/package.json create mode 100644 node_modules/object-inspect/readme.markdown create mode 100644 node_modules/object-inspect/test-core-js.js create mode 100644 node_modules/object-inspect/test/bigint.js create mode 100644 node_modules/object-inspect/test/browser/dom.js create mode 100644 node_modules/object-inspect/test/circular.js create mode 100644 node_modules/object-inspect/test/deep.js create mode 100644 node_modules/object-inspect/test/element.js create mode 100644 node_modules/object-inspect/test/err.js create mode 100644 node_modules/object-inspect/test/fakes.js create mode 100644 node_modules/object-inspect/test/fn.js create mode 100644 node_modules/object-inspect/test/global.js create mode 100644 node_modules/object-inspect/test/has.js create mode 100644 node_modules/object-inspect/test/holes.js create mode 100644 node_modules/object-inspect/test/indent-option.js create mode 100644 node_modules/object-inspect/test/inspect.js create mode 100644 node_modules/object-inspect/test/lowbyte.js create mode 100644 node_modules/object-inspect/test/number.js create mode 100644 node_modules/object-inspect/test/quoteStyle.js create mode 100644 node_modules/object-inspect/test/toStringTag.js create mode 100644 node_modules/object-inspect/test/undef.js create mode 100644 node_modules/object-inspect/test/values.js create mode 100644 node_modules/object-inspect/util.inspect.js create mode 100644 node_modules/on-finished/HISTORY.md create mode 100644 node_modules/on-finished/LICENSE create mode 100644 node_modules/on-finished/README.md create mode 100644 node_modules/on-finished/index.js create mode 100644 node_modules/on-finished/package.json create mode 100644 node_modules/once/LICENSE create mode 100644 node_modules/once/README.md create mode 100644 node_modules/once/once.js create mode 100644 node_modules/once/package.json create mode 100644 node_modules/parseurl/HISTORY.md create mode 100644 node_modules/parseurl/LICENSE create mode 100644 node_modules/parseurl/README.md create mode 100644 node_modules/parseurl/index.js create mode 100644 node_modules/parseurl/package.json create mode 100644 node_modules/path-key/index.d.ts create mode 100644 node_modules/path-key/index.js create mode 100644 node_modules/path-key/license create mode 100644 node_modules/path-key/package.json create mode 100644 node_modules/path-key/readme.md create mode 100644 node_modules/path-to-regexp/LICENSE create mode 100644 node_modules/path-to-regexp/Readme.md create mode 100644 node_modules/path-to-regexp/index.js create mode 100644 node_modules/path-to-regexp/package.json create mode 100644 node_modules/pkce-challenge/LICENSE create mode 100644 node_modules/pkce-challenge/README.md create mode 100644 node_modules/pkce-challenge/dist/index.browser.d.ts create mode 100644 node_modules/pkce-challenge/dist/index.browser.js create mode 100644 node_modules/pkce-challenge/dist/index.node.cjs create mode 100644 node_modules/pkce-challenge/dist/index.node.d.cts create mode 100644 node_modules/pkce-challenge/dist/index.node.d.ts create mode 100644 node_modules/pkce-challenge/dist/index.node.js create mode 100644 node_modules/pkce-challenge/package.json create mode 100644 node_modules/proxy-addr/HISTORY.md create mode 100644 node_modules/proxy-addr/LICENSE create mode 100644 node_modules/proxy-addr/README.md create mode 100644 node_modules/proxy-addr/index.js create mode 100644 node_modules/proxy-addr/package.json create mode 100644 node_modules/qs/.editorconfig create mode 100644 node_modules/qs/.eslintrc create mode 100644 node_modules/qs/.github/FUNDING.yml create mode 100644 node_modules/qs/.nycrc create mode 100644 node_modules/qs/CHANGELOG.md create mode 100644 node_modules/qs/LICENSE.md create mode 100644 node_modules/qs/README.md create mode 100644 node_modules/qs/dist/qs.js create mode 100644 node_modules/qs/lib/formats.js create mode 100644 node_modules/qs/lib/index.js create mode 100644 node_modules/qs/lib/parse.js create mode 100644 node_modules/qs/lib/stringify.js create mode 100644 node_modules/qs/lib/utils.js create mode 100644 node_modules/qs/package.json create mode 100644 node_modules/qs/test/empty-keys-cases.js create mode 100644 node_modules/qs/test/parse.js create mode 100644 node_modules/qs/test/stringify.js create mode 100644 node_modules/qs/test/utils.js create mode 100644 node_modules/range-parser/HISTORY.md create mode 100644 node_modules/range-parser/LICENSE create mode 100644 node_modules/range-parser/README.md create mode 100644 node_modules/range-parser/index.js create mode 100644 node_modules/range-parser/package.json create mode 100644 node_modules/raw-body/HISTORY.md create mode 100644 node_modules/raw-body/LICENSE create mode 100644 node_modules/raw-body/README.md create mode 100644 node_modules/raw-body/SECURITY.md create mode 100644 node_modules/raw-body/index.d.ts create mode 100644 node_modules/raw-body/index.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/.github/dependabot.yml create mode 100644 node_modules/raw-body/node_modules/iconv-lite/.idea/codeStyles/Project.xml create mode 100644 node_modules/raw-body/node_modules/iconv-lite/.idea/codeStyles/codeStyleConfig.xml create mode 100644 node_modules/raw-body/node_modules/iconv-lite/.idea/iconv-lite.iml create mode 100644 node_modules/raw-body/node_modules/iconv-lite/.idea/inspectionProfiles/Project_Default.xml create mode 100644 node_modules/raw-body/node_modules/iconv-lite/.idea/modules.xml create mode 100644 node_modules/raw-body/node_modules/iconv-lite/.idea/vcs.xml create mode 100644 node_modules/raw-body/node_modules/iconv-lite/Changelog.md create mode 100644 node_modules/raw-body/node_modules/iconv-lite/LICENSE create mode 100644 node_modules/raw-body/node_modules/iconv-lite/README.md create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/dbcs-codec.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/dbcs-data.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/index.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/internal.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/sbcs-codec.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/sbcs-data-generated.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/sbcs-data.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/big5-added.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/cp936.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/cp949.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/cp950.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/eucjp.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/gb18030-ranges.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/gbk-added.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/tables/shiftjis.json create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/utf16.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/utf32.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/encodings/utf7.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/lib/bom-handling.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/lib/index.d.ts create mode 100644 node_modules/raw-body/node_modules/iconv-lite/lib/index.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/lib/streams.js create mode 100644 node_modules/raw-body/node_modules/iconv-lite/package.json create mode 100644 node_modules/raw-body/package.json create mode 100644 node_modules/router/HISTORY.md create mode 100644 node_modules/router/LICENSE create mode 100644 node_modules/router/README.md create mode 100644 node_modules/router/index.js create mode 100644 node_modules/router/lib/layer.js create mode 100644 node_modules/router/lib/route.js create mode 100644 node_modules/router/node_modules/debug/LICENSE create mode 100644 node_modules/router/node_modules/debug/README.md create mode 100644 node_modules/router/node_modules/debug/package.json create mode 100644 node_modules/router/node_modules/debug/src/browser.js create mode 100644 node_modules/router/node_modules/debug/src/common.js create mode 100644 node_modules/router/node_modules/debug/src/index.js create mode 100644 node_modules/router/node_modules/debug/src/node.js create mode 100644 node_modules/router/node_modules/ms/index.js create mode 100644 node_modules/router/node_modules/ms/license.md create mode 100644 node_modules/router/node_modules/ms/package.json create mode 100644 node_modules/router/node_modules/ms/readme.md create mode 100644 node_modules/router/node_modules/path-to-regexp/LICENSE create mode 100644 node_modules/router/node_modules/path-to-regexp/Readme.md create mode 100644 node_modules/router/node_modules/path-to-regexp/dist/index.d.ts create mode 100644 node_modules/router/node_modules/path-to-regexp/dist/index.js create mode 100644 node_modules/router/node_modules/path-to-regexp/dist/index.js.map create mode 100644 node_modules/router/node_modules/path-to-regexp/package.json create mode 100644 node_modules/router/package.json create mode 100644 node_modules/safe-buffer/LICENSE create mode 100644 node_modules/safe-buffer/README.md create mode 100644 node_modules/safe-buffer/index.d.ts create mode 100644 node_modules/safe-buffer/index.js create mode 100644 node_modules/safe-buffer/package.json create mode 100644 node_modules/safer-buffer/LICENSE create mode 100644 node_modules/safer-buffer/Porting-Buffer.md create mode 100644 node_modules/safer-buffer/Readme.md create mode 100644 node_modules/safer-buffer/dangerous.js create mode 100644 node_modules/safer-buffer/package.json create mode 100644 node_modules/safer-buffer/safer.js create mode 100644 node_modules/safer-buffer/tests.js create mode 100644 node_modules/send/HISTORY.md create mode 100644 node_modules/send/LICENSE create mode 100644 node_modules/send/README.md create mode 100644 node_modules/send/SECURITY.md create mode 100644 node_modules/send/index.js create mode 100644 node_modules/send/node_modules/encodeurl/HISTORY.md create mode 100644 node_modules/send/node_modules/encodeurl/LICENSE create mode 100644 node_modules/send/node_modules/encodeurl/README.md create mode 100644 node_modules/send/node_modules/encodeurl/index.js create mode 100644 node_modules/send/node_modules/encodeurl/package.json create mode 100644 node_modules/send/node_modules/ms/index.js create mode 100644 node_modules/send/node_modules/ms/license.md create mode 100644 node_modules/send/node_modules/ms/package.json create mode 100644 node_modules/send/node_modules/ms/readme.md create mode 100644 node_modules/send/package.json create mode 100644 node_modules/serve-static/HISTORY.md create mode 100644 node_modules/serve-static/LICENSE create mode 100644 node_modules/serve-static/README.md create mode 100644 node_modules/serve-static/index.js create mode 100644 node_modules/serve-static/package.json create mode 100644 node_modules/setprototypeof/LICENSE create mode 100644 node_modules/setprototypeof/README.md create mode 100644 node_modules/setprototypeof/index.d.ts create mode 100644 node_modules/setprototypeof/index.js create mode 100644 node_modules/setprototypeof/package.json create mode 100644 node_modules/setprototypeof/test/index.js create mode 100644 node_modules/shebang-command/index.js create mode 100644 node_modules/shebang-command/license create mode 100644 node_modules/shebang-command/package.json create mode 100644 node_modules/shebang-command/readme.md create mode 100644 node_modules/shebang-regex/index.d.ts create mode 100644 node_modules/shebang-regex/index.js create mode 100644 node_modules/shebang-regex/license create mode 100644 node_modules/shebang-regex/package.json create mode 100644 node_modules/shebang-regex/readme.md create mode 100644 node_modules/side-channel-list/.editorconfig create mode 100644 node_modules/side-channel-list/.eslintrc create mode 100644 node_modules/side-channel-list/.github/FUNDING.yml create mode 100644 node_modules/side-channel-list/.nycrc create mode 100644 node_modules/side-channel-list/CHANGELOG.md create mode 100644 node_modules/side-channel-list/LICENSE create mode 100644 node_modules/side-channel-list/README.md create mode 100644 node_modules/side-channel-list/index.d.ts create mode 100644 node_modules/side-channel-list/index.js create mode 100644 node_modules/side-channel-list/list.d.ts create mode 100644 node_modules/side-channel-list/package.json create mode 100644 node_modules/side-channel-list/test/index.js create mode 100644 node_modules/side-channel-list/tsconfig.json create mode 100644 node_modules/side-channel-map/.editorconfig create mode 100644 node_modules/side-channel-map/.eslintrc create mode 100644 node_modules/side-channel-map/.github/FUNDING.yml create mode 100644 node_modules/side-channel-map/.nycrc create mode 100644 node_modules/side-channel-map/CHANGELOG.md create mode 100644 node_modules/side-channel-map/LICENSE create mode 100644 node_modules/side-channel-map/README.md create mode 100644 node_modules/side-channel-map/index.d.ts create mode 100644 node_modules/side-channel-map/index.js create mode 100644 node_modules/side-channel-map/package.json create mode 100644 node_modules/side-channel-map/test/index.js create mode 100644 node_modules/side-channel-map/tsconfig.json create mode 100644 node_modules/side-channel-weakmap/.editorconfig create mode 100644 node_modules/side-channel-weakmap/.eslintrc create mode 100644 node_modules/side-channel-weakmap/.github/FUNDING.yml create mode 100644 node_modules/side-channel-weakmap/.nycrc create mode 100644 node_modules/side-channel-weakmap/CHANGELOG.md create mode 100644 node_modules/side-channel-weakmap/LICENSE create mode 100644 node_modules/side-channel-weakmap/README.md create mode 100644 node_modules/side-channel-weakmap/index.d.ts create mode 100644 node_modules/side-channel-weakmap/index.js create mode 100644 node_modules/side-channel-weakmap/package.json create mode 100644 node_modules/side-channel-weakmap/test/index.js create mode 100644 node_modules/side-channel-weakmap/tsconfig.json create mode 100644 node_modules/side-channel/.editorconfig create mode 100644 node_modules/side-channel/.eslintrc create mode 100644 node_modules/side-channel/.github/FUNDING.yml create mode 100644 node_modules/side-channel/.nycrc create mode 100644 node_modules/side-channel/CHANGELOG.md create mode 100644 node_modules/side-channel/LICENSE create mode 100644 node_modules/side-channel/README.md create mode 100644 node_modules/side-channel/index.d.ts create mode 100644 node_modules/side-channel/index.js create mode 100644 node_modules/side-channel/package.json create mode 100644 node_modules/side-channel/test/index.js create mode 100644 node_modules/side-channel/tsconfig.json create mode 100644 node_modules/socket.io-adapter/LICENSE create mode 100644 node_modules/socket.io-adapter/Readme.md create mode 100644 node_modules/socket.io-adapter/dist/cluster-adapter.d.ts create mode 100644 node_modules/socket.io-adapter/dist/cluster-adapter.js create mode 100644 node_modules/socket.io-adapter/dist/contrib/yeast.d.ts create mode 100644 node_modules/socket.io-adapter/dist/contrib/yeast.js create mode 100644 node_modules/socket.io-adapter/dist/in-memory-adapter.d.ts create mode 100644 node_modules/socket.io-adapter/dist/in-memory-adapter.js create mode 100644 node_modules/socket.io-adapter/dist/index.d.ts create mode 100644 node_modules/socket.io-adapter/dist/index.js create mode 100644 node_modules/socket.io-adapter/node_modules/debug/LICENSE create mode 100644 node_modules/socket.io-adapter/node_modules/debug/README.md create mode 100644 node_modules/socket.io-adapter/node_modules/debug/package.json create mode 100644 node_modules/socket.io-adapter/node_modules/debug/src/browser.js create mode 100644 node_modules/socket.io-adapter/node_modules/debug/src/common.js create mode 100644 node_modules/socket.io-adapter/node_modules/debug/src/index.js create mode 100644 node_modules/socket.io-adapter/node_modules/debug/src/node.js create mode 100644 node_modules/socket.io-adapter/node_modules/ms/index.js create mode 100644 node_modules/socket.io-adapter/node_modules/ms/license.md create mode 100644 node_modules/socket.io-adapter/node_modules/ms/package.json create mode 100644 node_modules/socket.io-adapter/node_modules/ms/readme.md create mode 100644 node_modules/socket.io-adapter/package.json create mode 100644 node_modules/socket.io-parser/LICENSE create mode 100644 node_modules/socket.io-parser/Readme.md create mode 100644 node_modules/socket.io-parser/build/cjs/binary.d.ts create mode 100644 node_modules/socket.io-parser/build/cjs/binary.js create mode 100644 node_modules/socket.io-parser/build/cjs/index.d.ts create mode 100644 node_modules/socket.io-parser/build/cjs/index.js create mode 100644 node_modules/socket.io-parser/build/cjs/is-binary.d.ts create mode 100644 node_modules/socket.io-parser/build/cjs/is-binary.js create mode 100644 node_modules/socket.io-parser/build/cjs/package.json create mode 100644 node_modules/socket.io-parser/build/esm-debug/binary.d.ts create mode 100644 node_modules/socket.io-parser/build/esm-debug/binary.js create mode 100644 node_modules/socket.io-parser/build/esm-debug/index.d.ts create mode 100644 node_modules/socket.io-parser/build/esm-debug/index.js create mode 100644 node_modules/socket.io-parser/build/esm-debug/is-binary.d.ts create mode 100644 node_modules/socket.io-parser/build/esm-debug/is-binary.js create mode 100644 node_modules/socket.io-parser/build/esm-debug/package.json create mode 100644 node_modules/socket.io-parser/build/esm/binary.d.ts create mode 100644 node_modules/socket.io-parser/build/esm/binary.js create mode 100644 node_modules/socket.io-parser/build/esm/index.d.ts create mode 100644 node_modules/socket.io-parser/build/esm/index.js create mode 100644 node_modules/socket.io-parser/build/esm/is-binary.d.ts create mode 100644 node_modules/socket.io-parser/build/esm/is-binary.js create mode 100644 node_modules/socket.io-parser/build/esm/package.json create mode 100644 node_modules/socket.io-parser/node_modules/debug/LICENSE create mode 100644 node_modules/socket.io-parser/node_modules/debug/README.md create mode 100644 node_modules/socket.io-parser/node_modules/debug/package.json create mode 100644 node_modules/socket.io-parser/node_modules/debug/src/browser.js create mode 100644 node_modules/socket.io-parser/node_modules/debug/src/common.js create mode 100644 node_modules/socket.io-parser/node_modules/debug/src/index.js create mode 100644 node_modules/socket.io-parser/node_modules/debug/src/node.js create mode 100644 node_modules/socket.io-parser/node_modules/ms/index.js create mode 100644 node_modules/socket.io-parser/node_modules/ms/license.md create mode 100644 node_modules/socket.io-parser/node_modules/ms/package.json create mode 100644 node_modules/socket.io-parser/node_modules/ms/readme.md create mode 100644 node_modules/socket.io-parser/package.json create mode 100644 node_modules/socket.io/LICENSE create mode 100644 node_modules/socket.io/Readme.md create mode 100644 node_modules/socket.io/client-dist/socket.io.esm.min.js create mode 100644 node_modules/socket.io/client-dist/socket.io.esm.min.js.map create mode 100644 node_modules/socket.io/client-dist/socket.io.js create mode 100644 node_modules/socket.io/client-dist/socket.io.js.map create mode 100644 node_modules/socket.io/client-dist/socket.io.min.js create mode 100644 node_modules/socket.io/client-dist/socket.io.min.js.map create mode 100644 node_modules/socket.io/client-dist/socket.io.msgpack.min.js create mode 100644 node_modules/socket.io/client-dist/socket.io.msgpack.min.js.map create mode 100644 node_modules/socket.io/dist/broadcast-operator.d.ts create mode 100644 node_modules/socket.io/dist/broadcast-operator.js create mode 100644 node_modules/socket.io/dist/client.d.ts create mode 100644 node_modules/socket.io/dist/client.js create mode 100644 node_modules/socket.io/dist/index.d.ts create mode 100644 node_modules/socket.io/dist/index.js create mode 100644 node_modules/socket.io/dist/namespace.d.ts create mode 100644 node_modules/socket.io/dist/namespace.js create mode 100644 node_modules/socket.io/dist/parent-namespace.d.ts create mode 100644 node_modules/socket.io/dist/parent-namespace.js create mode 100644 node_modules/socket.io/dist/socket-types.d.ts create mode 100644 node_modules/socket.io/dist/socket-types.js create mode 100644 node_modules/socket.io/dist/socket.d.ts create mode 100644 node_modules/socket.io/dist/socket.js create mode 100644 node_modules/socket.io/dist/typed-events.d.ts create mode 100644 node_modules/socket.io/dist/typed-events.js create mode 100644 node_modules/socket.io/dist/uws.d.ts create mode 100644 node_modules/socket.io/dist/uws.js create mode 100644 node_modules/socket.io/node_modules/debug/LICENSE create mode 100644 node_modules/socket.io/node_modules/debug/README.md create mode 100644 node_modules/socket.io/node_modules/debug/package.json create mode 100644 node_modules/socket.io/node_modules/debug/src/browser.js create mode 100644 node_modules/socket.io/node_modules/debug/src/common.js create mode 100644 node_modules/socket.io/node_modules/debug/src/index.js create mode 100644 node_modules/socket.io/node_modules/debug/src/node.js create mode 100644 node_modules/socket.io/node_modules/ms/index.js create mode 100644 node_modules/socket.io/node_modules/ms/license.md create mode 100644 node_modules/socket.io/node_modules/ms/package.json create mode 100644 node_modules/socket.io/node_modules/ms/readme.md create mode 100644 node_modules/socket.io/package.json create mode 100644 node_modules/socket.io/wrapper.mjs create mode 100644 node_modules/statuses/HISTORY.md create mode 100644 node_modules/statuses/LICENSE create mode 100644 node_modules/statuses/README.md create mode 100644 node_modules/statuses/codes.json create mode 100644 node_modules/statuses/index.js create mode 100644 node_modules/statuses/package.json create mode 100644 node_modules/toidentifier/HISTORY.md create mode 100644 node_modules/toidentifier/LICENSE create mode 100644 node_modules/toidentifier/README.md create mode 100644 node_modules/toidentifier/index.js create mode 100644 node_modules/toidentifier/package.json create mode 100644 node_modules/type-is/HISTORY.md create mode 100644 node_modules/type-is/LICENSE create mode 100644 node_modules/type-is/README.md create mode 100644 node_modules/type-is/index.js create mode 100644 node_modules/type-is/package.json create mode 100644 node_modules/undici-types/LICENSE create mode 100644 node_modules/undici-types/README.md create mode 100644 node_modules/undici-types/agent.d.ts create mode 100644 node_modules/undici-types/api.d.ts create mode 100644 node_modules/undici-types/balanced-pool.d.ts create mode 100644 node_modules/undici-types/cache.d.ts create mode 100644 node_modules/undici-types/client.d.ts create mode 100644 node_modules/undici-types/connector.d.ts create mode 100644 node_modules/undici-types/content-type.d.ts create mode 100644 node_modules/undici-types/cookies.d.ts create mode 100644 node_modules/undici-types/diagnostics-channel.d.ts create mode 100644 node_modules/undici-types/dispatcher.d.ts create mode 100644 node_modules/undici-types/env-http-proxy-agent.d.ts create mode 100644 node_modules/undici-types/errors.d.ts create mode 100644 node_modules/undici-types/eventsource.d.ts create mode 100644 node_modules/undici-types/fetch.d.ts create mode 100644 node_modules/undici-types/file.d.ts create mode 100644 node_modules/undici-types/filereader.d.ts create mode 100644 node_modules/undici-types/formdata.d.ts create mode 100644 node_modules/undici-types/global-dispatcher.d.ts create mode 100644 node_modules/undici-types/global-origin.d.ts create mode 100644 node_modules/undici-types/handlers.d.ts create mode 100644 node_modules/undici-types/header.d.ts create mode 100644 node_modules/undici-types/index.d.ts create mode 100644 node_modules/undici-types/interceptors.d.ts create mode 100644 node_modules/undici-types/mock-agent.d.ts create mode 100644 node_modules/undici-types/mock-client.d.ts create mode 100644 node_modules/undici-types/mock-errors.d.ts create mode 100644 node_modules/undici-types/mock-interceptor.d.ts create mode 100644 node_modules/undici-types/mock-pool.d.ts create mode 100644 node_modules/undici-types/package.json create mode 100644 node_modules/undici-types/patch.d.ts create mode 100644 node_modules/undici-types/pool-stats.d.ts create mode 100644 node_modules/undici-types/pool.d.ts create mode 100644 node_modules/undici-types/proxy-agent.d.ts create mode 100644 node_modules/undici-types/readable.d.ts create mode 100644 node_modules/undici-types/retry-agent.d.ts create mode 100644 node_modules/undici-types/retry-handler.d.ts create mode 100644 node_modules/undici-types/util.d.ts create mode 100644 node_modules/undici-types/webidl.d.ts create mode 100644 node_modules/undici-types/websocket.d.ts create mode 100644 node_modules/unpipe/HISTORY.md create mode 100644 node_modules/unpipe/LICENSE create mode 100644 node_modules/unpipe/README.md create mode 100644 node_modules/unpipe/index.js create mode 100644 node_modules/unpipe/package.json create mode 100644 node_modules/utils-merge/.npmignore create mode 100644 node_modules/utils-merge/LICENSE create mode 100644 node_modules/utils-merge/README.md create mode 100644 node_modules/utils-merge/index.js create mode 100644 node_modules/utils-merge/package.json create mode 100644 node_modules/vary/HISTORY.md create mode 100644 node_modules/vary/LICENSE create mode 100644 node_modules/vary/README.md create mode 100644 node_modules/vary/index.js create mode 100644 node_modules/vary/package.json create mode 100644 node_modules/which/CHANGELOG.md create mode 100644 node_modules/which/LICENSE create mode 100644 node_modules/which/README.md create mode 100755 node_modules/which/bin/node-which create mode 100644 node_modules/which/package.json create mode 100644 node_modules/which/which.js create mode 100644 node_modules/wrappy/LICENSE create mode 100644 node_modules/wrappy/README.md create mode 100644 node_modules/wrappy/package.json create mode 100644 node_modules/wrappy/wrappy.js create mode 100644 node_modules/ws/LICENSE create mode 100644 node_modules/ws/README.md create mode 100644 node_modules/ws/browser.js create mode 100644 node_modules/ws/index.js create mode 100644 node_modules/ws/lib/buffer-util.js create mode 100644 node_modules/ws/lib/constants.js create mode 100644 node_modules/ws/lib/event-target.js create mode 100644 node_modules/ws/lib/extension.js create mode 100644 node_modules/ws/lib/limiter.js create mode 100644 node_modules/ws/lib/permessage-deflate.js create mode 100644 node_modules/ws/lib/receiver.js create mode 100644 node_modules/ws/lib/sender.js create mode 100644 node_modules/ws/lib/stream.js create mode 100644 node_modules/ws/lib/subprotocol.js create mode 100644 node_modules/ws/lib/validation.js create mode 100644 node_modules/ws/lib/websocket-server.js create mode 100644 node_modules/ws/lib/websocket.js create mode 100644 node_modules/ws/package.json create mode 100644 node_modules/ws/wrapper.mjs create mode 100644 node_modules/zod-to-json-schema/.github/CR_logotype-full-color.png create mode 100644 node_modules/zod-to-json-schema/.github/FUNDING.yml create mode 100644 node_modules/zod-to-json-schema/.prettierrc.json create mode 100644 node_modules/zod-to-json-schema/LICENSE create mode 100644 node_modules/zod-to-json-schema/README.md create mode 100644 node_modules/zod-to-json-schema/SECURITY.md create mode 100644 node_modules/zod-to-json-schema/changelog.md create mode 100644 node_modules/zod-to-json-schema/contributing.md create mode 100644 node_modules/zod-to-json-schema/createIndex.ts create mode 100644 node_modules/zod-to-json-schema/dist/cjs/Options.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/Refs.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/errorMessages.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/index.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/package.json create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parseDef.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parseTypes.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/any.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/array.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/bigint.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/boolean.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/branded.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/catch.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/date.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/default.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/effects.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/enum.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/intersection.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/literal.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/map.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/nativeEnum.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/never.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/null.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/nullable.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/number.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/object.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/optional.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/pipeline.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/promise.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/readonly.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/record.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/set.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/string.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/tuple.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/undefined.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/union.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/parsers/unknown.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/selectParser.js create mode 100644 node_modules/zod-to-json-schema/dist/cjs/zodToJsonSchema.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/Options.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/Refs.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/errorMessages.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/index.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/package.json create mode 100644 node_modules/zod-to-json-schema/dist/esm/parseDef.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parseTypes.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/any.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/array.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/bigint.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/boolean.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/branded.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/catch.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/date.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/default.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/effects.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/enum.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/intersection.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/literal.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/map.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/nativeEnum.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/never.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/null.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/nullable.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/number.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/object.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/optional.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/pipeline.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/promise.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/readonly.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/record.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/set.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/string.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/tuple.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/undefined.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/union.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/parsers/unknown.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/selectParser.js create mode 100644 node_modules/zod-to-json-schema/dist/esm/zodToJsonSchema.js create mode 100644 node_modules/zod-to-json-schema/dist/types/Options.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/Refs.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/errorMessages.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/index.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parseDef.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parseTypes.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/any.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/array.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/bigint.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/boolean.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/branded.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/catch.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/date.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/default.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/effects.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/enum.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/intersection.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/literal.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/map.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/nativeEnum.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/never.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/null.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/nullable.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/number.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/object.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/optional.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/pipeline.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/promise.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/readonly.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/record.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/set.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/string.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/tuple.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/undefined.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/union.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/parsers/unknown.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/selectParser.d.ts create mode 100644 node_modules/zod-to-json-schema/dist/types/zodToJsonSchema.d.ts create mode 100644 node_modules/zod-to-json-schema/package.json create mode 100644 node_modules/zod-to-json-schema/postcjs.ts create mode 100644 node_modules/zod-to-json-schema/postesm.ts create mode 100644 node_modules/zod/LICENSE create mode 100644 node_modules/zod/README.md create mode 100644 node_modules/zod/index.d.ts create mode 100644 node_modules/zod/lib/ZodError.d.ts create mode 100644 node_modules/zod/lib/ZodError.js create mode 100644 node_modules/zod/lib/__tests__/Mocker.d.ts create mode 100644 node_modules/zod/lib/__tests__/Mocker.js create mode 100644 node_modules/zod/lib/benchmarks/datetime.d.ts create mode 100644 node_modules/zod/lib/benchmarks/datetime.js create mode 100644 node_modules/zod/lib/benchmarks/discriminatedUnion.d.ts create mode 100644 node_modules/zod/lib/benchmarks/discriminatedUnion.js create mode 100644 node_modules/zod/lib/benchmarks/index.d.ts create mode 100644 node_modules/zod/lib/benchmarks/index.js create mode 100644 node_modules/zod/lib/benchmarks/ipv4.d.ts create mode 100644 node_modules/zod/lib/benchmarks/ipv4.js create mode 100644 node_modules/zod/lib/benchmarks/object.d.ts create mode 100644 node_modules/zod/lib/benchmarks/object.js create mode 100644 node_modules/zod/lib/benchmarks/primitives.d.ts create mode 100644 node_modules/zod/lib/benchmarks/primitives.js create mode 100644 node_modules/zod/lib/benchmarks/realworld.d.ts create mode 100644 node_modules/zod/lib/benchmarks/realworld.js create mode 100644 node_modules/zod/lib/benchmarks/string.d.ts create mode 100644 node_modules/zod/lib/benchmarks/string.js create mode 100644 node_modules/zod/lib/benchmarks/union.d.ts create mode 100644 node_modules/zod/lib/benchmarks/union.js create mode 100644 node_modules/zod/lib/errors.d.ts create mode 100644 node_modules/zod/lib/errors.js create mode 100644 node_modules/zod/lib/external.d.ts create mode 100644 node_modules/zod/lib/external.js create mode 100644 node_modules/zod/lib/helpers/enumUtil.d.ts create mode 100644 node_modules/zod/lib/helpers/enumUtil.js create mode 100644 node_modules/zod/lib/helpers/errorUtil.d.ts create mode 100644 node_modules/zod/lib/helpers/errorUtil.js create mode 100644 node_modules/zod/lib/helpers/parseUtil.d.ts create mode 100644 node_modules/zod/lib/helpers/parseUtil.js create mode 100644 node_modules/zod/lib/helpers/partialUtil.d.ts create mode 100644 node_modules/zod/lib/helpers/partialUtil.js create mode 100644 node_modules/zod/lib/helpers/typeAliases.d.ts create mode 100644 node_modules/zod/lib/helpers/typeAliases.js create mode 100644 node_modules/zod/lib/helpers/util.d.ts create mode 100644 node_modules/zod/lib/helpers/util.js create mode 100644 node_modules/zod/lib/index.d.ts create mode 100644 node_modules/zod/lib/index.js create mode 100644 node_modules/zod/lib/index.mjs create mode 100644 node_modules/zod/lib/index.umd.js create mode 100644 node_modules/zod/lib/locales/en.d.ts create mode 100644 node_modules/zod/lib/locales/en.js create mode 100644 node_modules/zod/lib/standard-schema.d.ts create mode 100644 node_modules/zod/lib/standard-schema.js create mode 100644 node_modules/zod/lib/types.d.ts create mode 100644 node_modules/zod/lib/types.js create mode 100644 node_modules/zod/package.json create mode 100644 package-lock.json create mode 100644 package.json diff --git a/Dockerfile.client b/Dockerfile.client index 6302ea2..fe5cba4 100644 --- a/Dockerfile.client +++ b/Dockerfile.client @@ -11,6 +11,10 @@ RUN npm install COPY client/ ./ COPY shared/ ./shared/ +# Set API base URL as an ARG that can be passed during build +ARG REACT_APP_API_BASE_URL=http://localhost:4000 +ENV REACT_APP_API_BASE_URL=${REACT_APP_API_BASE_URL} + # Build the application RUN npm run build @@ -23,9 +27,6 @@ COPY --from=build /app/build /usr/share/nginx/html # Copy nginx configuration COPY nginx.conf /etc/nginx/conf.d/default.conf -# Set environment variables -ENV API_BASE_URL=http://localhost:4000 - # Expose port EXPOSE 3000 diff --git a/client/.env b/client/.env new file mode 100644 index 0000000..66f49f9 --- /dev/null +++ b/client/.env @@ -0,0 +1 @@ +REACT_APP_API_BASE_URL=http://localhost:4000 \ No newline at end of file diff --git a/client/src/App.tsx b/client/src/App.tsx index 558fecd..c4c84ed 100644 --- a/client/src/App.tsx +++ b/client/src/App.tsx @@ -25,9 +25,25 @@ function App() {
@@ -37,6 +53,8 @@ function App() { align="center" justify="center" p={4} + position="relative" + zIndex={1} > diff --git a/client/src/components/ChatInterface.tsx b/client/src/components/ChatInterface.tsx index 80c5a75..ecbd71e 100644 --- a/client/src/components/ChatInterface.tsx +++ b/client/src/components/ChatInterface.tsx @@ -8,9 +8,12 @@ import { useTheme, Icon, Button, + Badge, + Tooltip, } from "@chakra-ui/react"; -import { FaRobot, FaUser, FaTools } from "react-icons/fa"; +import { FaRobot, FaUser, FaTools, FaRegLightbulb } from "react-icons/fa"; import { useChatContext } from "../contexts/ChatContext"; +import { useSettingsContext } from "../contexts/SettingsContext"; import MessageInput from "./MessageInput"; import MessageContent from "./MessageContent"; import ToolCallDisplay from "./ToolCallDisplay"; @@ -18,8 +21,14 @@ import ToolCallDisplay from "./ToolCallDisplay"; const ChatInterface: React.FC = () => { const theme = useTheme(); const { messages, isLoading } = useChatContext(); + const settingsContext = useSettingsContext(); const messagesEndRef = useRef(null); + // Log the session ID to help debug + useEffect(() => { + console.log("ChatInterface using session ID:", settingsContext.sessionId); + }, [settingsContext.sessionId]); + // Scroll to bottom when messages change useEffect(() => { if (messagesEndRef.current) { @@ -27,29 +36,57 @@ const ChatInterface: React.FC = () => { } }, [messages]); + const getMessageGradient = (isUser: boolean) => { + return isUser + ? "linear-gradient(135deg, var(--chakra-colors-primary-500) 0%, var(--chakra-colors-primary-600) 100%)" + : "linear-gradient(135deg, var(--chakra-colors-dark-200) 0%, var(--chakra-colors-dark-300) 100%)"; + }; + return ( {/* Chat header */} - - - Nanda Chat Interface - + + + + + + Nanda Chat Interface [v2] + + + AI Powered + + {/* Messages container */} @@ -59,16 +96,21 @@ const ChatInterface: React.FC = () => { spacing={4} p={4} align="stretch" + bg="linear-gradient(135deg, var(--chakra-colors-dark-300) 0%, var(--chakra-colors-dark-400) 100%)" css={{ "&::-webkit-scrollbar": { - width: "4px", + width: "6px", }, "&::-webkit-scrollbar-track": { background: "rgba(0, 0, 0, 0.1)", + borderRadius: "3px", }, "&::-webkit-scrollbar-thumb": { - background: "rgba(255, 255, 255, 0.2)", - borderRadius: "2px", + background: "rgba(255, 255, 255, 0.15)", + borderRadius: "3px", + "&:hover": { + background: "rgba(255, 255, 255, 0.25)", + }, }, }} > @@ -80,32 +122,42 @@ const ChatInterface: React.FC = () => { height="100%" px={8} textAlign="center" - color="whiteAlpha.700" + color="whiteAlpha.800" > - - + + + + Welcome to Nanda Chat Interface - + This AI uses the Nanda Protocol to enhance capabilities with tools. Ask me anything, and I'll try to help by using my intelligence and other tools and knowledge. - - - Try asking: + + + Try asking: - + ) : ( messages.map((message, index) => ( @@ -113,28 +165,61 @@ const ChatInterface: React.FC = () => { key={index} alignSelf={message.role === "user" ? "flex-end" : "flex-start"} maxWidth="80%" - bg={ - message.role === "user" ? "crimson.600" : "rgba(0, 0, 0, 0.3)" - } + bg={getMessageGradient(message.role === "user")} color="white" - p={3} - borderRadius="lg" - borderTopRightRadius={message.role === "user" ? "0" : "lg"} - borderTopLeftRadius={message.role === "user" ? "lg" : "0"} - // wordBreak="break-word" // Ensures text wraps within the box - // boxShadow="md" // Adds a subtle shadow for better visibility + p={4} + borderRadius="2xl" + borderTopRightRadius={message.role === "user" ? "0" : "2xl"} + borderTopLeftRadius={message.role === "user" ? "2xl" : "0"} + boxShadow="0 3px 10px rgba(0, 0, 0, 0.1)" + position="relative" + _after={message.role === "user" ? { + content: '""', + position: "absolute", + top: 0, + right: "-12px", + width: 0, + height: 0, + borderTop: "12px solid var(--chakra-colors-primary-500)", + borderRight: "12px solid transparent", + } : { + content: '""', + position: "absolute", + top: 0, + left: "-12px", + width: 0, + height: 0, + borderTop: "12px solid var(--chakra-colors-dark-200)", + borderLeft: "12px solid transparent", + }} > - + + + + + - {" "} {message.role === "user" ? "You" : "Assistant"} + + {new Date(message.timestamp).toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' })} + {/* Handle different content types */} @@ -159,17 +244,76 @@ const ChatInterface: React.FC = () => { - + + + Assistant - Thinking... + + + + + + Thinking... + )} @@ -180,8 +324,8 @@ const ChatInterface: React.FC = () => { {/* Input area */} diff --git a/client/src/components/Header.tsx b/client/src/components/Header.tsx index a03c20c..98c5ac2 100644 --- a/client/src/components/Header.tsx +++ b/client/src/components/Header.tsx @@ -1,81 +1,60 @@ // client/src/components/Header.tsx import React from "react"; -import { - Flex, - Box, - Heading, - IconButton, - useColorMode, - Icon, - Tooltip, -} from "@chakra-ui/react"; -import { FaCog, FaMoon, FaSun } from "react-icons/fa"; +import { Box, Flex, IconButton, Heading, Icon } from "@chakra-ui/react"; +import { FaCog, FaCode } from "react-icons/fa"; interface HeaderProps { onOpenSettings: () => void; } const Header: React.FC = ({ onOpenSettings }) => { - const { colorMode, toggleColorMode } = useColorMode(); - return ( - - - - - - MCP Host - - - - - - } - variant="ghost" - colorScheme="whiteAlpha" - fontSize="xl" - mr={2} - onClick={onOpenSettings} - /> - - - + - : } - variant="ghost" - colorScheme="whiteAlpha" - fontSize="xl" - onClick={toggleColorMode} - /> - + + + + Nanda Host + + } + onClick={onOpenSettings} + variant="ghost" + size="md" + color="whiteAlpha.800" + _hover={{ + bg: "rgba(255, 255, 255, 0.1)", + transform: "rotate(30deg)", + }} + transition="all 0.3s ease" + /> ); }; diff --git a/client/src/components/MessageContent.tsx b/client/src/components/MessageContent.tsx index c38609a..fb1942a 100644 --- a/client/src/components/MessageContent.tsx +++ b/client/src/components/MessageContent.tsx @@ -1,143 +1,173 @@ // client/src/components/MessageContent.tsx import React from "react"; -import { Box, Text, Image, Flex, Icon } from "@chakra-ui/react"; -import { FaInfoCircle, FaTools } from "react-icons/fa"; -import ReactMarkdown from "react-markdown"; +import { + Box, + Text, + Code, + Image, + Flex, + Icon, + Divider, +} from "@chakra-ui/react"; +import { FaTools, FaCode, FaImage, FaInfoCircle } from "react-icons/fa"; import { Prism as SyntaxHighlighter } from "react-syntax-highlighter"; -import { atomDark } from "react-syntax-highlighter/dist/esm/styles/prism"; - -interface ContentItem { - type: string; - text?: string; - id?: string; - name?: string; - input?: any; - data?: string; // Added data property for image content type -} +import { vscDarkPlus } from "react-syntax-highlighter/dist/esm/styles/prism"; interface MessageContentProps { - content: ContentItem | ContentItem[]; -} - -// Define types for ReactMarkdown components -interface CodeProps { - node?: any; - inline?: boolean; - className?: string; - children?: React.ReactNode; + content: any; } const MessageContent: React.FC = ({ content }) => { - // If content is not an array, convert it to array for consistent handling - const contentArray = Array.isArray(content) ? content : [content]; + // Debug log to help identify unhandled content types + console.log("MessageContent received:", content); + + // If content is null or undefined, show a placeholder + if (content == null) { + return No content available; + } + + // If content is already a string, return it wrapped in a Text component + if (typeof content === "string") { + return {content}; + } + + // If content has a "text" property, return it wrapped in a Text component + if (content && typeof content.text === "string") { + return {content.text}; + } + + // Handle Claude's response format with type property at the top level + if (content && content.type === "text" && typeof content.text === "string") { + return {content.text}; + } + + // If content is an array, map through and display each item + if (Array.isArray(content)) { + // If it's an empty array, show a placeholder + if (content.length === 0) { + return No content available; + } + + return ( + + {content.map((item, index) => { + // Handle string items + if (typeof item === "string") { + return {item}; + } + + // Handle null or undefined items + if (item == null) { + return null; + } + + // Handle object items + if (typeof item === "object") { + // Handle text type + if (item.type === "text" && item.text) { + return {item.text}; + } + // Handle code type + else if (item.type === "code" && item.code) { + return ( + + + + + {item.language || "Code"} + + + + {item.code} + + + ); + } + + // For any object with text property but no type + else if (typeof item.text === 'string') { + return {item.text}; + } + + // For any other object, convert to string if possible + else if (item.toString && item.toString() !== '[object Object]') { + return {item.toString()}; + } + + // For remaining objects, show as JSON + else { + return ( + + {JSON.stringify(item, null, 2)} + + ); + } + } + + // For primitive values (number, boolean) + return {String(item)}; + })} + + ); + } + + // Handle the Claude response format directly - if content has a role and content properties + if (content && content.role && content.content) { + // The content field could be an array or an object + return ; + } + // If we got here, it's an object that didn't match our known patterns + // Show it as JSON for debugging return ( - - {contentArray.map((item, index) => { - if (item.type === "text" && item.text) { - return ( - - { - const match = /language-(\w+)/.exec(className || ""); - return !inline && match ? ( - - {String(children).replace(/\n$/, "")} - - ) : ( - - {children} - - ); - }, - p({ children }) { - return {children}; - }, - a({ node, children, ...props }) { - return ( - - {children} - - ); - }, - }} - > - {item.text} - - - ); - } else if (item.type === "image") { - return ( - - Image - - ); - } else if (item.type === "tool_use") { - return ( - - - - Using tool: {item.name} - - - {JSON.stringify(item.input, null, 2)} - - - ); - } else { - // Default case for unknown content types - return ( - - - - - Unsupported content type: {item.type} - - - - ); - } - })} + + + Content received in unknown format + + + {JSON.stringify(content, null, 2)} + ); }; diff --git a/client/src/components/MessageInput.tsx b/client/src/components/MessageInput.tsx index 2a01d12..e388fd6 100644 --- a/client/src/components/MessageInput.tsx +++ b/client/src/components/MessageInput.tsx @@ -1,7 +1,15 @@ // client/src/components/MessageInput.tsx import React, { useState, useRef } from "react"; -import { Flex, Textarea, Button, Icon, useToast, Box } from "@chakra-ui/react"; -import { FaPaperPlane, FaSpinner } from "react-icons/fa"; +import { + Flex, + Textarea, + Button, + Icon, + useToast, + Box, + Tooltip +} from "@chakra-ui/react"; +import { FaPaperPlane, FaSpinner, FaMicrophone } from "react-icons/fa"; import { useChatContext } from "../contexts/ChatContext"; import { useSettingsContext } from "../contexts/SettingsContext"; @@ -23,6 +31,7 @@ const MessageInput: React.FC = () => { duration: 5000, isClosable: true, position: "top", + variant: "solid", }); return; } @@ -54,7 +63,17 @@ const MessageInput: React.FC = () => { }; return ( - + +

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:X1%B!9HkVsKj%vsSa#Z(Q$qD+m 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 literal 0 HcmV?d00001 From 151be78eaaf130a51048ed5df7cbb3e693779559 Mon Sep 17 00:00:00 2001 From: Mihir Date: Sun, 13 Apr 2025 08:52:59 -0400 Subject: [PATCH 05/30] Enhanced API tooling with robust type system and credential management --- client/src/components/SettingsModal.tsx | 682 ++++++++++++++++-------- client/src/contexts/SettingsContext.tsx | 230 +++++++- 2 files changed, 670 insertions(+), 242 deletions(-) diff --git a/client/src/components/SettingsModal.tsx b/client/src/components/SettingsModal.tsx index f97b963..22e6b40 100644 --- a/client/src/components/SettingsModal.tsx +++ b/client/src/components/SettingsModal.tsx @@ -1,5 +1,5 @@ // client/src/components/SettingsModal.tsx -import React, { useState, useEffect } from "react"; +import React, { useState, useEffect, useRef } from "react"; import { Modal, ModalOverlay, @@ -24,37 +24,213 @@ import { Text, Divider, Flex, - Switch, + Link, useToast, IconButton, InputGroup, InputRightElement, + Accordion, + AccordionItem, + AccordionButton, + AccordionPanel, + AccordionIcon, Spinner, - Badge, } from "@chakra-ui/react"; -import { - FaEye, - FaEyeSlash, - FaPlus, - FaSync, - FaCheck, - FaStar, -} from "react-icons/fa"; +import { FaEye, FaEyeSlash, FaPlus, FaExternalLinkAlt, FaSync } from "react-icons/fa"; import { useSettingsContext } from "../contexts/SettingsContext"; +// Define the types locally instead of importing from a non-existent file +interface CredentialRequirement { + id: string; + name: string; + description?: string; + acquisition?: { + url?: string; + instructions?: string; + }; +} + +interface ToolCredentialInfo { + toolName: string; + serverName: string; + serverId: string; + credentials: CredentialRequirement[]; +} + interface SettingsModalProps { isOpen: boolean; onClose: () => void; } +// Component for a single tool credential form +interface ToolCredentialFormProps { + tool: ToolCredentialInfo; + onSave: ( + toolName: string, + serverId: string, + credentials: Record + ) => Promise; +} + +const ToolCredentialForm: React.FC = ({ + tool, + onSave +}) => { + const [credentials, setCredentials] = useState>({}); + const [showPasswords, setShowPasswords] = useState>({}); + const [isSaving, setIsSaving] = useState(false); + const toast = useToast(); + + const handleInputChange = (id: string, value: string) => { + setCredentials((prev) => ({ + ...prev, + [id]: value, + })); + }; + + const togglePasswordVisibility = (id: string) => { + setShowPasswords((prev) => ({ + ...prev, + [id]: !prev[id], + })); + }; + + const handleSave = async () => { + // Check that all required fields are filled + const missingFields = tool.credentials + .map(cred => cred.id) + .filter(id => !credentials[id]); + + if (missingFields.length > 0) { + toast({ + title: "Missing credentials", + description: `Please fill in all required fields: ${missingFields.join(", ")}`, + status: "error", + duration: 3000, + isClosable: true, + }); + return; + } + + setIsSaving(true); + try { + const success = await onSave(tool.toolName, tool.serverId, credentials); + + if (success) { + toast({ + title: "Credentials saved", + description: `Credentials for ${tool.toolName} have been saved`, + status: "success", + duration: 3000, + isClosable: true, + }); + } else { + throw new Error("Failed to save credentials"); + } + } catch (error) { + toast({ + title: "Error saving credentials", + description: error instanceof Error ? error.message : "Unknown error", + status: "error", + duration: 3000, + isClosable: true, + }); + } finally { + setIsSaving(false); + } + }; + + return ( + + + {tool.toolName} + + + Server: {tool.serverName} + + + + {tool.credentials.map((cred) => ( + + {cred.name || cred.id} + + handleInputChange(cred.id, e.target.value)} + placeholder={`Enter ${cred.name || cred.id}`} + /> + + : } + size="sm" + variant="ghost" + onClick={() => togglePasswordVisibility(cred.id)} + /> + + + {cred.description && ( + {cred.description} + )} + + ))} + + {tool.credentials.some(cred => cred.acquisition?.url) && ( + + + Where to get credentials: + + {tool.credentials + .filter(cred => cred.acquisition?.url) + .map(cred => ( + + + {cred.name} credentials + + + + ))} + + )} + + + + + ); +}; + const SettingsModal: React.FC = ({ isOpen, onClose }) => { - const { - apiKey, - setApiKey, - nandaServers, + const { + apiKey, + setApiKey, + nandaServers, registerNandaServer, - refreshRegistry, + getToolsWithCredentialRequirements, + setToolCredentials } = useSettingsContext(); + const [tempApiKey, setTempApiKey] = useState(""); const [showApiKey, setShowApiKey] = useState(false); const [newServer, setNewServer] = useState({ @@ -62,18 +238,100 @@ const SettingsModal: React.FC = ({ isOpen, onClose }) => { name: "", url: "", }); - const [registryServers, setRegistryServers] = useState([]); - const [isRefreshing, setIsRefreshing] = useState(false); + const [toolsWithCredentials, setToolsWithCredentials] = useState([]); + const [isLoadingTools, setIsLoadingTools] = useState(false); + const [loadAttempts, setLoadAttempts] = useState(0); + const retryTimerRef = useRef(null); const toast = useToast(); + // Clear any existing timers on unmount + useEffect(() => { + return () => { + if (retryTimerRef.current) { + clearTimeout(retryTimerRef.current); + } + }; + }, []); + // Reset temp values when modal opens useEffect(() => { if (isOpen) { setTempApiKey(apiKey || ""); setShowApiKey(false); + loadToolsWithCredentials(); + } else { + // Cancel loading and clear timer if modal closes + if (retryTimerRef.current) { + clearTimeout(retryTimerRef.current); + retryTimerRef.current = null; + } + setIsLoadingTools(false); } }, [isOpen, apiKey]); + // Reload tools when servers change + useEffect(() => { + if (isOpen && nandaServers.length > 0) { + // Reset load attempts when server list changes + setLoadAttempts(0); + loadToolsWithCredentials(); + } + }, [nandaServers, isOpen]); + + const loadToolsWithCredentials = async () => { + // Clear any existing retry timers + if (retryTimerRef.current) { + clearTimeout(retryTimerRef.current); + retryTimerRef.current = null; + } + + setIsLoadingTools(true); + + try { + const tools = await getToolsWithCredentialRequirements(); + + if (tools.length > 0) { + console.log("Found tools with credentials:", tools); + setToolsWithCredentials(tools); + setLoadAttempts(0); // Reset load attempts on success + setIsLoadingTools(false); + } else if (loadAttempts < 3 && nandaServers.length > 0) { + // If no tools found but servers exist, try again after delay + console.log(`No tools found on attempt ${loadAttempts + 1}, retrying...`); + setLoadAttempts(prev => prev + 1); + + // Use reference to store timeout ID + retryTimerRef.current = setTimeout(() => { + loadToolsWithCredentials(); + }, 2000); // Wait 2 seconds before retrying + } else { + // If max attempts reached or no servers, just set empty array + console.log("Max retry attempts reached or no servers configured"); + setToolsWithCredentials([]); + setIsLoadingTools(false); + } + } catch (error) { + console.error("Failed to load tools with credential requirements:", error); + toast({ + title: "Error", + description: "Failed to load tools that require credentials", + status: "error", + duration: 3000, + isClosable: true, + }); + setToolsWithCredentials([]); + setIsLoadingTools(false); + } + + // Safety mechanism: ensure loading state is reset after 10 seconds at most + setTimeout(() => { + if (isLoadingTools) { + console.log("Safety timeout triggered - forcing loading state to false"); + setIsLoadingTools(false); + } + }, 10000); + }; + const handleSaveApiKey = () => { setApiKey(tempApiKey); toast({ @@ -143,72 +401,95 @@ const SettingsModal: React.FC = ({ isOpen, onClose }) => { }); }; - const handleRefreshRegistry = async () => { - setIsRefreshing(true); - try { - const result = await refreshRegistry(); - setRegistryServers(result.servers || []); - - toast({ - title: "Registry Refreshed", - description: `Found ${result.servers.length} servers from the registry`, - status: "success", - duration: 3000, - isClosable: true, - position: "top", - }); - } catch (error) { - toast({ - title: "Refresh Failed", - description: - error instanceof Error - ? error.message - : "Failed to refresh registry servers", - status: "error", - duration: 3000, - isClosable: true, - position: "top", - }); - } finally { - setIsRefreshing(false); - } - }; - - const handleAddRegistryServer = (server: any) => { - registerNandaServer({ - id: server.id, - name: server.name, - url: server.url, - }); - - toast({ - title: "Server Added", - description: `Registry server "${server.name}" has been added`, - status: "success", - duration: 3000, - isClosable: true, - position: "top", - }); - }; - - // Check if a registry server is already registered - const isServerRegistered = (serverId: string) => { - return nandaServers.some((server) => server.id === serverId); - }; - return ( - - - Settings - + + + + Settings + + + + - - - API - Nanda Servers - Registry - About + + + + API + + + Nanda Servers + + + Tool Credentials + + + About + @@ -216,7 +497,7 @@ const SettingsModal: React.FC = ({ isOpen, onClose }) => { - Anthropic API Key + Anthropic API Key = ({ isOpen, onClose }) => { onChange={(e) => setTempApiKey(e.target.value)} placeholder="sk-ant-api03-..." autoComplete="off" + variant="filled" + bg="rgba(0, 0, 0, 0.2)" + borderColor="rgba(255, 255, 255, 0.1)" + _hover={{ + borderColor: "primary.400", + }} + _focus={{ + borderColor: "primary.500", + bg: "rgba(0, 0, 0, 0.3)", + }} /> = ({ isOpen, onClose }) => { size="sm" variant="ghost" onClick={toggleShowApiKey} + color="whiteAlpha.700" + _hover={{ color: "white", bg: "rgba(255, 255, 255, 0.1)" }} /> - + You can get your API key from the{" "} - Anthropic Console - + - @@ -260,27 +564,32 @@ const SettingsModal: React.FC = ({ isOpen, onClose }) => { - + Registered Nanda Servers {nandaServers.length === 0 ? ( - No servers registered yet + No servers registered yet ) : ( nandaServers.map((server) => ( - {server.name} - + {server.name} + ID: {server.id} - + URL: {server.url} @@ -288,16 +597,16 @@ const SettingsModal: React.FC = ({ isOpen, onClose }) => { )} - + - + Add New Server - Server ID + Server ID @@ -350,136 +659,67 @@ const SettingsModal: React.FC = ({ isOpen, onClose }) => { - {/* Registry Tab */} + {/* Tool Credentials Tab */} - - + + Tool API Credentials + + + Refresh + + + + Some tools require API keys or other credentials to function. + Configure them here. + + + {isLoadingTools ? ( + + - - {!isRefreshing && registryServers.length === 0 ? ( - - No registry servers loaded. Click the refresh button to - load servers from the registry. + ) : toolsWithCredentials.length === 0 ? ( + + + No tools requiring credentials found. - ) : ( - <> - {isRefreshing ? ( - - - - ) : ( - registryServers.map((server) => ( - + Make sure you've added a server with tools that need API keys. +
After adding a server, click the Refresh button above. +
+
+ ) : ( + + {toolsWithCredentials.map((tool, index) => ( + +