()
| 171 | } |
| 172 | |
| 173 | async function ensureMcpRuntimeLoaded(): Promise<void> { |
| 174 | if (mcpRuntimeReady) { |
| 175 | return; |
| 176 | } |
| 177 | |
| 178 | mcpRuntimePromise ??= (async () => { |
| 179 | const [factoryModule, httpModule, configModule, stdioModule, sdkTypesModule] = |
| 180 | await Promise.all([ |
| 181 | import('./server/factory.js'), |
| 182 | import('./server/http.js'), |
| 183 | import('./server/config.js'), |
| 184 | import('@modelcontextprotocol/sdk/server/stdio.js'), |
| 185 | import('@modelcontextprotocol/sdk/types.js') |
| 186 | ]); |
| 187 | |
| 188 | createServer = factoryModule.createServer; |
| 189 | startHttpServer = httpModule.startHttpServer; |
| 190 | loadServerConfig = configModule.loadServerConfig; |
| 191 | StdioServerTransport = stdioModule.StdioServerTransport; |
| 192 | CallToolRequestSchema = sdkTypesModule.CallToolRequestSchema; |
| 193 | ListToolsRequestSchema = sdkTypesModule.ListToolsRequestSchema; |
| 194 | ListResourcesRequestSchema = sdkTypesModule.ListResourcesRequestSchema; |
| 195 | ReadResourceRequestSchema = sdkTypesModule.ReadResourceRequestSchema; |
| 196 | RootsListChangedNotificationSchema = sdkTypesModule.RootsListChangedNotificationSchema; |
| 197 | server = createServer({ name: 'codebase-context', version: PKG_VERSION }, registerHandlers); |
| 198 | mcpRuntimeReady = true; |
| 199 | })(); |
| 200 | |
| 201 | await mcpRuntimePromise; |
| 202 | } |
| 203 | |
| 204 | type ProjectResolution = |
| 205 | | { ok: true; project: ProjectState } |
no test coverage detected