| 90 | }); |
| 91 | |
| 92 | const buildHandler = ( |
| 93 | store: Layer.Layer<McpSessionStore>, |
| 94 | reporter: Layer.Layer<McpErrorReporter>, |
| 95 | authProvider: Layer.Layer<McpAuthProvider> = AuthProviderLive, |
| 96 | modernBuilder: Layer.Layer<McpModernServerBuilder> = ModernBuilderLive, |
| 97 | ): ((request: Request) => Promise<Response>) => { |
| 98 | const Seams = Layer.mergeAll(authProvider, store, modernBuilder, reporter); |
| 99 | const RouteLive = McpServingRoutes.pipe( |
| 100 | HttpRouter.provideRequest(Seams), |
| 101 | Layer.provide(authProvider), |
| 102 | ); |
| 103 | return HttpRouter.toWebHandler(RouteLive.pipe(Layer.provideMerge(HttpServer.layerServices))) |
| 104 | .handler; |
| 105 | }; |
| 106 | |
| 107 | describe("McpServingRoutes envelope", () => { |
| 108 | it("rejects HEAD with a JSON-RPC 405 before dispatch", async () => { |