1import { EnvironmentId } from "@t3tools/contracts";
2import * as Effect from "effect/Effect";
3import * as Layer from "effect/Layer";
4
5import * as McpSessionRegistry from "./McpSessionRegistry.ts";
6
7export const layer = Layer.succeed(
8 McpSessionRegistry.McpSessionRegistry,
9 McpSessionRegistry.McpSessionRegistry.of({
10 issue: ({ threadId, providerInstanceId }) =>
11 Effect.succeed({
12 config: {
13 environmentId: EnvironmentId.make("environment:mcp-test"),
14 threadId,
15 providerSessionId: `mcp-test:${threadId}`,
16 providerInstanceId,
17 endpoint: "http://127.0.0.1/mcp",
18 authorizationHeader: `Bearer mcp-test:${threadId}`,
19 browserToolsAvailable: true,
20 },
21 }),
22 resolve: () => Effect.succeed(undefined),
23 touch: () => Effect.void,
24 revokeProviderSession: () => Effect.void,
25 revokeThread: () => Effect.void,
26 revokeAll: Effect.void,
27 }),
28);