authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-10-09 12:14:10-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-10-09 12:14:10-07:00
log91a6646efd98622dc9cef7061387e20bc389463f
tree368c4b6d323123a165a1e69c547ad4fbd10539c1
parentaa8c6662e212a4307bd4e585661da99a358e46d4
signature Signed by PGP key B5690EEEBB952194

chore(deps): upgrade Effect to 4.0.2 (#17571)

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>

29 files changed, 712 insertions(+), 652 deletions(-)

apps/server/integration/SqlStatementCounter.integration.ts+6-5
......@@ -7,16 +7,17 @@ export interface SqlStatementCounter {
77}
88
99/**
10 * Counts `sql.execute` spans, which the Effect SQL client opens once per
11 * statement. Spans behave exactly as with the native tracer. Install the same
12 * counter on every runtime under test, otherwise statements run by background
13 * reactors and statements run by request handlers land in different counters.
10 * Counts the client spans the Effect SQL client opens once per statement. Our
11 * SQLite client names them after its `db.system.name`, `sqlite`. Spans behave
12 * exactly as with the native tracer. Install the same counter on every runtime
13 * under test, otherwise statements run by background reactors and statements
14 * run by request handlers land in different counters.
1415 */
1516export function makeSqlStatementCounter(): SqlStatementCounter {
1617 let statements = 0;
1718 const tracer = Tracer.make({
1819 span: (options) => {
19 if (options.name === "sql.execute") statements += 1;
20 if (options.kind === "client" && options.name === "sqlite") statements += 1;
2021 return new Tracer.NativeSpan(options);
2122 },
2223 });
apps/server/integration/TransferBudgetReport.integration.ts+3-3
......@@ -30,9 +30,9 @@ export interface TransferBudgetRun {
3030 /** The second client resubscribes after the turn from the cursor it held before it. */
3131 readonly reconnectThread: WebSocketCatchUpMeasurement;
3232 readonly reconnectShell: WebSocketCatchUpMeasurement;
33 /** `sql.execute` spans opened server-wide during the measured turn. */
33 /** SQL statement spans opened server-wide during the measured turn. */
3434 readonly measuredTurnSqlStatements: number;
35 /** `sql.execute` spans opened while serving both reconnect catch-ups. */
35 /** SQL statement spans opened while serving both reconnect catch-ups. */
3636 readonly reconnectSqlStatements: number;
3737}
3838
......@@ -200,7 +200,7 @@ export function formatTransferBudgetReport(runs: ReadonlyArray<TransferBudgetRun
200200 "# T3 Code thread transfer budget",
201201 "",
202202 "Wire values are thread data bytes read from local HTTP and WebSocket sockets. HTTP includes response headers; WebSocket measurement starts after the resumed thread subscription synchronizes. TCP/IP, TLS framing, and the WebSocket upgrade are excluded. WebSocket permessage-deflate is negotiated.",
203 "The measured turn is observed on three sockets at once: one with only the thread subscription (the capped rows), one with only the shell subscription, and a second client holding both. Server egress is the sum of the three. After the turn the second client disconnects and new sockets resubscribe from the cursor it held before the turn, which is the cursor a backgrounded phone would hold. SQL statements are `sql.execute` spans counted across V2 persistence and the HTTP/WebSocket handlers.",
203 "The measured turn is observed on three sockets at once: one with only the thread subscription (the capped rows), one with only the shell subscription, and a second client holding both. Server egress is the sum of the three. After the turn the second client disconnects and new sockets resubscribe from the cursor it held before the turn, which is the cursor a backgrounded phone would hold. SQL statements are the SQL client's per-statement spans, counted across V2 persistence and the HTTP/WebSocket handlers.",
204204 `Scenario: ${TRANSFER_HISTORY_TURN_COUNT} historical turns with ${TRANSFER_HISTORY_TOOLS_PER_TURN} command tools and one retained ${formatBytes(TRANSFER_HISTORY_MCP_RESULT_BYTES)} MCP result each, followed by one measured turn with ${TRANSFER_MEASURED_TOOLS} command tools and a retained ${formatBytes(TRANSFER_MEASURED_MCP_RESULT_BYTES)} MCP result. Synthetic V2 domain events exercise persistence, wire projection, and production HTTP/subscription handlers; this does not measure provider adapter ingestion. Payloads contain no user data.`,
205205 "",
206206 "| Provider | Total thread wire | Budget | Result |",
apps/server/src/cli/trace.test.ts+9-2
......@@ -16,13 +16,18 @@ function span(name: string, durationMs: number, endMs: number, exitTag = "Succes
1616 });
1717}
1818
19function browserSpan(name: string, status: { code: string; message?: string }) {
19function browserSpan(
20 name: string,
21 status: { code: string; message?: string },
22 attributes: Record<string, unknown> = {},
23) {
2024 return JSON.stringify({
2125 type: "otlp-span",
2226 name,
2327 durationMs: 1,
2428 endTimeUnixNano: "1000000",
2529 status,
30 attributes,
2631 });
2732}
2833
......@@ -91,10 +96,12 @@ it("reads failures and interrupts of browser spans from their OTLP status", () =
9196 const summarizer = makeTraceSpanSummary();
9297 [
9398 browserSpan("render", { code: "2", message: "boom" }),
99 browserSpan("render", { code: "0" }, { "effect.fiber.interrupted": true }),
100 // Clients before Effect 4.0.2.
94101 browserSpan("render", { code: "1", message: "Interrupted" }),
95102 browserSpan("render", { code: "1" }),
96103 ].forEach(summarizer.addLine);
97104
98105 const [render] = summarizer.finish().spans;
99 assert.deepStrictEqual([render?.count, render?.interrupted, render?.failures], [3, 1, 1]);
106 assert.deepStrictEqual([render?.count, render?.interrupted, render?.failures], [4, 2, 1]);
100107});
apps/server/src/cli/trace.ts+11-2
......@@ -30,13 +30,18 @@ const decodeTraceSpanLine = Schema.decodeUnknownOption(
3030 // Server (`effect-span`) records.
3131 exit: Schema.optional(Schema.Struct({ _tag: Schema.String })),
3232 // Browser (`otlp-span`) records. Effect's OTLP tracer writes code "2" for
33 // errors and code "1" with message "Interrupted" for interrupts.
33 // errors. It marks interrupts with an `effect.fiber.interrupted`
34 // attribute; clients before Effect 4.0.2 wrote code "1" with message
35 // "Interrupted" instead.
3436 status: Schema.optional(
3537 Schema.Struct({
3638 code: Schema.optional(Schema.String),
3739 message: Schema.optional(Schema.String),
3840 }),
3941 ),
42 attributes: Schema.optional(
43 Schema.Struct({ "effect.fiber.interrupted": Schema.optional(Schema.Unknown) }),
44 ),
4045 }),
4146 ),
4247);
......@@ -77,7 +82,11 @@ export function makeTraceSpanSummary(sinceMs = -Infinity) {
7782 lastEndMs = Math.max(lastEndMs, endMs);
7883 const stats = byName.get(span.name) ?? { durations: [], interrupted: 0, failures: 0 };
7984 stats.durations.push(span.durationMs);
80 if (span.exit?._tag === "Interrupted" || span.status?.message === "Interrupted") {
85 if (
86 span.exit?._tag === "Interrupted" ||
87 span.attributes?.["effect.fiber.interrupted"] === true ||
88 span.status?.message === "Interrupted"
89 ) {
8190 stats.interrupted += 1;
8291 }
8392 if (span.exit?._tag === "Failure" || span.status?.code === "2") stats.failures += 1;
apps/server/src/http.test.ts+1-1
......@@ -53,7 +53,7 @@ describe("untraced requests", () => {
5353 expect(spanNames).toEqual([]);
5454
5555 yield* client.get("/api/environment");
56 expect(spanNames).toContain("http.server GET");
56 expect(spanNames).toEqual(["GET"]);
5757 }).pipe(
5858 Effect.scoped,
5959 Effect.provideService(
apps/server/src/mcp/McpDeviceToolkit.test.ts+3
......@@ -197,6 +197,9 @@ it.effect("rejects unavailable agent access before booting or opening a device",
197197 Layer.provideMerge(McpServer.McpServer.layer),
198198 Layer.provideMerge(McpToolAccessTestkit.liveThreadsLayer),
199199 Layer.provide(layerUnavailable),
200 Layer.provide(
201 ServerConfig.layerTest(process.cwd(), { prefix: "t3-mcp-device-toolkit-test-" }),
202 ),
200203 Layer.provide(NodeServices.layer),
201204 ),
202205 ),
apps/server/src/mcp/McpHttpServer.test.ts+36-9
......@@ -17,8 +17,14 @@ import * as Layer from "effect/Layer";
1717import * as Path from "effect/Path";
1818import * as Schema from "effect/Schema";
1919import * as Stream from "effect/Stream";
20import { McpProtocol, McpSchema, McpServer, Tool, Toolkit } from "effect/ai";
21import { HttpBody, HttpClient, HttpRouter, HttpServerResponse } from "effect/http";
20import { McpSchema, McpServer, Tool, Toolkit } from "effect/ai";
21import {
22 HttpBody,
23 HttpClient,
24 HttpClientRequest,
25 HttpRouter,
26 HttpServerResponse,
27} from "effect/http";
2228
2329import * as ProjectService from "../project/ProjectService.ts";
2430import * as ServerConfig from "../config.ts";
......@@ -746,17 +752,38 @@ it.effect("sheds log entries before locators when every list is full", () =>
746752it.effect("terminates HTTP MCP sessions with DELETE", () =>
747753 Effect.scoped(
748754 Effect.gen(function* () {
749 const layerServer = McpServer.layerHttp({
750 name: "MCP termination test",
751 version: "1.0.0",
752 path: "/mcp",
753 protocols: [McpProtocol.v2025_06_18],
754 });
755 const token = "providerTokenWithoutDots";
756 const scope: McpInvocationContext.McpInvocationScope = {
757 environmentId,
758 requestNamespace: "provider-session",
759 thread: {
760 threadId: ThreadId.make("thread-provider"),
761 providerSessionId: "provider-session",
762 providerInstanceId: ProviderInstanceId.make("codex"),
763 },
764 client: undefined,
765 capabilities: new Set(["orchestration"]),
766 issuedAt: 1,
767 };
768 const layerServer = McpHttpServer.layerMcpTransport.pipe(
769 Layer.provide(
770 Layer.mock(McpSessionRegistry.McpSessionRegistry)({
771 resolve: (presented) =>
772 Effect.succeed(
773 presented === token
774 ? (scope as McpInvocationContext.McpThreadInvocationScope)
775 : undefined,
776 ),
777 }),
778 ),
779 );
755780 yield* HttpRouter.serve(layerServer, {
756781 disableListenLog: true,
757782 disableLogger: true,
758783 }).pipe(Layer.build);
759 const httpClient = yield* HttpClient.HttpClient;
784 const httpClient = (yield* HttpClient.HttpClient).pipe(
785 HttpClient.mapRequest(HttpClientRequest.bearerToken(token)),
786 );
760787
761788 const initializeResponse = yield* httpClient.post("/mcp", {
762789 headers: { accept: "application/json, text/event-stream" },
apps/server/src/mcp/McpHttpServer.ts+20-4
......@@ -19,6 +19,7 @@ import packageJson from "../../package.json" with { type: "json" };
1919import * as ServerConfig from "../config.ts";
2020import * as DeviceService from "../device/DeviceService.ts";
2121import * as HtmlRender from "../htmlRender/HtmlRender.ts";
22import * as ThreadCommandExecutor from "../orchestration-v2/ThreadCommandExecutor.ts";
2223import * as ThreadManagementService from "../orchestration-v2/ThreadManagementService.ts";
2324import * as McpInvocationContext from "./McpInvocationContext.ts";
2425import * as McpToolAccess from "./McpToolAccess.ts";
......@@ -762,11 +763,25 @@ const registerHtmlPreview = Effect.fn("McpHttpServer.registerHtmlPreview")(funct
762763/**
763764 * `McpServer.toolkit` for handlers that declared their access (see
764765 * `McpToolAccess`). Every toolkit on `/mcp` registers through this.
766 *
767 * `McpServer.toolkit` asks for every service its tools declare when it
768 * registers them, but the auth middleware provides `McpInvocationContext` to
769 * each request instead. Registration must not get one: the services it
770 * captures would replace the request's.
765771 */
766772export const toolkitRegistration = <Tools extends Record<string, Tool.Any>, EX, RX>(
767773 toolkit: Toolkit.Toolkit<Tools>,
768774 handlers: McpToolAccess.HandlersLayer<Tools, EX, RX>,
769) => McpServer.toolkit(toolkit).pipe(Layer.provide(McpToolAccess.HandlersLayer.layer(handlers)));
775) => {
776 const registration = McpServer.toolkit(toolkit);
777 // @effect-diagnostics-next-line unsafeEffectTypeAssertion:off - the auth middleware provides it per request.
778 const registered = registration as Layer.Layer<
779 never,
780 never,
781 Exclude<Layer.Services<typeof registration>, McpInvocationContext.McpInvocationContext>
782 >;
783 return registered.pipe(Layer.provide(McpToolAccess.HandlersLayer.layer(handlers)));
784};
770785
771786/** A hand-registered tool, also only with handlers that declared their access. */
772787const imageToolRegistration = <Tools extends Record<string, Tool.Any>, A, E, R, EX, RX>(
......@@ -811,10 +826,10 @@ const layerPreviewControlsRegistration = toolkitRegistration(
811826 PreviewControlsHandlers.layer,
812827);
813828
814const layerEnvironmentRegistration = toolkitRegistration(
829export const layerEnvironmentToolkit = toolkitRegistration(
815830 EnvironmentToolkit,
816831 EnvironmentHandlers.layer,
817);
832).pipe(Layer.provide(ThreadCommandExecutor.layer));
818833
819834const layerProjectRegistration = toolkitRegistration(ProjectToolkit, ProjectHandlers.layer);
820835
......@@ -848,6 +863,7 @@ export const layerMcpTransport = McpServer.layerHttp({
848863 version: packageJson.version,
849864 path: "/mcp",
850865 protocols: [McpProtocol.v2025_06_18],
866 allowSessionTermination: true,
851867}).pipe(Layer.provide(layerMcpAuthMiddleware));
852868
853869export const layer = Layer.mergeAll(
......@@ -856,7 +872,7 @@ export const layer = Layer.mergeAll(
856872 layerThreadToolkit,
857873 layerAttachmentToolkit,
858874 layerProjectRegistration,
859 layerEnvironmentRegistration,
875 layerEnvironmentToolkit,
860876 layerPreviewControlsRegistration,
861877 layerWorktreeToolkitRegistration,
862878 layerPullRequestsToolkit,
apps/server/src/mcp/OrchestratorMcpToolkit.integration.test.ts+2
......@@ -57,6 +57,7 @@ import { threadShellFromProjection } from "../orchestration-v2/ProjectionStore.t
5757import * as EventSink from "../orchestration-v2/EventSink.ts";
5858import * as Orchestrator from "../orchestration-v2/Orchestrator.ts";
5959import * as ThreadManagementService from "../orchestration-v2/ThreadManagementService.ts";
60import * as ThreadSearch from "../orchestration-v2/ThreadSearch.ts";
6061import * as ProviderAdapterRegistry from "../orchestration-v2/ProviderAdapterRegistry.ts";
6162import * as ProviderContinuationRequests from "@t3tools/provider-core/server/ProviderContinuationRequests";
6263import * as McpProviderSessions from "@t3tools/provider-core/server/McpProviderSessions";
......@@ -680,6 +681,7 @@ describe("orchestrator MCP toolkit", () => {
680681 Layer.provide(layerRegistry),
681682 Layer.provide(layerProviderRegistry),
682683 Layer.provide(layerScheduledTaskStub),
684 Layer.provide(Layer.mock(ThreadSearch.ThreadSearch)({})),
683685 Layer.provide(
684686 Layer.mock(ProjectService.ProjectService)({
685687 getById: (id) =>
apps/server/src/mcp/toolkits/core.test.ts+13-6
......@@ -31,6 +31,7 @@ import * as ServerSecretStore from "../../auth/ServerSecretStore.ts";
3131import * as ServerConfig from "../../config.ts";
3232import * as ProviderAdapterRegistry from "../../orchestration-v2/ProviderAdapterRegistry.ts";
3333import * as ThreadManagement from "../../orchestration-v2/ThreadManagementService.ts";
34import * as ThreadSearch from "../../orchestration-v2/ThreadSearch.ts";
3435import * as PreviewBrowser from "../../preview/PreviewBrowser.ts";
3536import * as ProjectService from "../../project/ProjectService.ts";
3637import * as ProviderRegistry from "../../provider/ProviderRegistry.ts";
......@@ -69,6 +70,12 @@ import { htmlRenderFromToolItem } from "@t3tools/shared/toolOutput";
6970
7071const decodeMcpAttachmentInput = Schema.decodeUnknownEffect(McpAttachmentInput);
7172
73// Registration asks for every service the thread tools declare; these cases call none that use them.
74const layerThreadToolkit = McpHttpServer.layerThreadToolkit.pipe(
75 Layer.provide(Layer.mock(ThreadSearch.ThreadSearch)({})),
76 Layer.provide(Layer.mock(ScheduledTaskService.ScheduledTaskService)({})),
77);
78
7279it("publishes unique tool names with reference-free object-root inputs", () => {
7380 const names = new Set<string>();
7481 for (const toolkit of [
......@@ -152,7 +159,7 @@ it.effect("checks capability through the production registration", () =>
152159 expect(result.structuredContent).toBeUndefined();
153160 }).pipe(
154161 Effect.provide(
155 McpHttpServer.layerThreadToolkit.pipe(
162 layerThreadToolkit.pipe(
156163 Layer.provideMerge(McpServer.McpServer.layer),
157164 Layer.provide(NodeCrypto.layer),
158165 Layer.provide(McpToolAccessTestkit.liveThreadsLayer),
......@@ -193,7 +200,7 @@ it.effect("returns a bounded public failure without serializing storage causes",
193200 expect(validate({ sequence: "invalid" }).valid).toBe(false);
194201 }).pipe(
195202 Effect.provide(
196 McpHttpServer.layerThreadToolkit.pipe(
203 layerThreadToolkit.pipe(
197204 Layer.provideMerge(McpServer.McpServer.layer),
198205 Layer.provide(NodeCrypto.layer),
199206 Layer.provide(
......@@ -308,7 +315,7 @@ it.effect("returns invalid parameter errors through the production registration"
308315 expect(error._tag).toBe("InvalidParams");
309316 }).pipe(
310317 Effect.provide(
311 McpHttpServer.layerThreadToolkit.pipe(
318 layerThreadToolkit.pipe(
312319 Layer.provideMerge(McpServer.McpServer.layer),
313320 Layer.provide(NodeCrypto.layer),
314321 Layer.provide(Layer.mock(ThreadManagement.ThreadManagementService)({})),
......@@ -333,7 +340,7 @@ it.effect("keeps unexpected handler defects private through the production regis
333340 ]);
334341 }).pipe(
335342 Effect.provide(
336 McpHttpServer.layerThreadToolkit.pipe(
343 layerThreadToolkit.pipe(
337344 Layer.provideMerge(McpServer.McpServer.layer),
338345 Layer.provide(NodeCrypto.layer),
339346 Layer.provide(
......@@ -451,7 +458,7 @@ it.effect("a client caller targets any thread within its ceiling and cannot act
451458 expect(declaredFailure(forked)).toMatchObject({ code: "target_required" });
452459 }).pipe(
453460 Effect.provide(
454 McpHttpServer.layerThreadToolkit.pipe(
461 layerThreadToolkit.pipe(
455462 Layer.provideMerge(McpServer.McpServer.layer),
456463 Layer.provide(NodeCrypto.layer),
457464 Layer.provide(
......@@ -511,7 +518,7 @@ it.effect("a read-only client reads threads and is refused every write before it
511518 expect(dispatched).toEqual([]);
512519 }).pipe(
513520 Effect.provide(
514 McpHttpServer.layerThreadToolkit.pipe(
521 layerThreadToolkit.pipe(
515522 Layer.provideMerge(McpServer.McpServer.layer),
516523 Layer.provide(NodeCrypto.layer),
517524 Layer.provide(
apps/server/src/mcp/toolkits/environment/handlers.test.ts+67
......@@ -12,11 +12,13 @@ import * as Fiber from "effect/Fiber";
1212import * as Layer from "effect/Layer";
1313import * as Ref from "effect/Ref";
1414import * as Stream from "effect/Stream";
15import { McpSchema, McpServer } from "effect/ai";
1516
1617import * as Environment from "../../../environment/ServerEnvironment.ts";
1718import * as ThreadCommandExecutor from "../../../orchestration-v2/ThreadCommandExecutor.ts";
1819import * as ThreadManagement from "../../../orchestration-v2/ThreadManagementService.ts";
1920import * as Settings from "../../../serverSettings.ts";
21import * as McpHttpServer from "../../McpHttpServer.ts";
2022import * as McpInvocationContext from "../../McpInvocationContext.ts";
2123import * as McpToolAccess from "../../McpToolAccess.ts";
2224import { liveThreadShell } from "../../McpToolAccess.testkit.ts";
......@@ -25,6 +27,71 @@ import { EnvironmentToolkit } from "./tools.ts";
2527
2628const environmentId = EnvironmentId.make("environment:preferences");
2729const threadId = ThreadId.make("thread:preferences");
30const caller: McpInvocationContext.McpInvocationScope = {
31 environmentId,
32 requestNamespace: "provider:preferences",
33 thread: {
34 threadId,
35 providerSessionId: "provider:preferences",
36 providerInstanceId: ProviderInstanceId.make("codex"),
37 },
38 client: undefined,
39 capabilities: new Set(["orchestration" as const]),
40 issuedAt: 0,
41};
42const layerEnvironment = Layer.mock(Environment.ServerEnvironment)({
43 getDescriptor: Effect.succeed({
44 environmentId,
45 label: "Test",
46 platform: { os: "linux", arch: "x64" },
47 serverVersion: "0.0.0",
48 capabilities: { repositoryIdentity: false },
49 }),
50});
51
52it.effect("updates preferences for a thread caller through the /mcp registration", () =>
53 Effect.gen(function* () {
54 const server = yield* McpServer.McpServer;
55 const result = yield* server
56 .callTool({
57 name: "t3_environment_preferences_update",
58 arguments: { newWorktreesStartFromOrigin: true },
59 })
60 .pipe(
61 Effect.provideService(McpInvocationContext.McpInvocationContext, caller),
62 Effect.provideService(
63 McpSchema.McpServerClient,
64 McpSchema.McpServerClient.of({
65 clientId: 1,
66 protocolVersion: "2025-06-18",
67 clientCapabilities: {},
68 clientInfo: { name: "preferences", version: "1" },
69 initializePayload: {
70 protocolVersion: "2025-06-18",
71 capabilities: {},
72 clientInfo: { name: "preferences", version: "1" },
73 },
74 getClient: Effect.die("unused"),
75 }),
76 ),
77 );
78 expect(result.isError).toBe(false);
79 expect(result.structuredContent).toMatchObject({ newWorktreesStartFromOrigin: true });
80 }).pipe(
81 Effect.provide(
82 McpHttpServer.layerEnvironmentToolkit.pipe(
83 Layer.provideMerge(McpServer.McpServer.layer),
84 Layer.provide(
85 Layer.mock(ThreadManagement.ThreadManagementService)({
86 getThreadShell: (id) => Effect.succeed(liveThreadShell(id)),
87 }),
88 ),
89 Layer.provide(layerEnvironment),
90 Layer.provide(Settings.layerTest()),
91 ),
92 ),
93 ),
94);
2895
2996it.effect("refuses a preferences update when the caller's turn ends while it waits", () =>
3097 Effect.gen(function* () {
apps/server/src/mcp/toolkits/worktree/registration.test.ts+14
......@@ -22,6 +22,13 @@ import * as ScheduledTaskService from "../../../scheduledTasks/ScheduledTaskServ
2222import * as SecretRequests from "../../../secrets/SecretRequests.ts";
2323import * as ServerSettings from "../../../serverSettings.ts";
2424import * as VcsStatusBroadcaster from "../../../vcs/VcsStatusBroadcaster.ts";
25import * as ServerSecretStore from "../../../auth/ServerSecretStore.ts";
26import * as ManagedProjectFolders from "../../../project/ManagedProjectFolders.ts";
27import * as ThreadLaunchService from "../../../orchestration-v2/ThreadLaunchService.ts";
28import * as ThreadSearch from "../../../orchestration-v2/ThreadSearch.ts";
29import * as PreviewManager from "../../../preview/Manager.ts";
30import * as SourceControlRepositoryService from "../../../sourceControl/SourceControlRepositoryService.ts";
31import * as GitVcsDriver from "../../../vcs/GitVcsDriver.ts";
2532import * as McpHttpServer from "../../McpHttpServer.ts";
2633import * as McpSessionRegistry from "../../McpSessionRegistry.ts";
2734import * as PreviewAutomationBroker from "../../PreviewAutomationBroker.ts";
......@@ -41,6 +48,13 @@ const layerStubServices = Layer.mergeAll(
4148 Layer.mock(GitWorkflowService.GitWorkflowService)({}),
4249 Layer.mock(ProjectSetupScriptRunner.ProjectSetupScriptRunner)({}),
4350 Layer.mock(VcsStatusBroadcaster.VcsStatusBroadcaster)({}),
51 Layer.mock(GitVcsDriver.GitVcsDriver)({}),
52 Layer.mock(ManagedProjectFolders.ManagedProjectFolders)({ namedProjectsRoot: "/unused" }),
53 Layer.mock(PreviewManager.PreviewManager)({}),
54 Layer.mock(ServerSecretStore.ServerSecretStore)({}),
55 Layer.mock(SourceControlRepositoryService.SourceControlRepositoryService)({}),
56 Layer.mock(ThreadLaunchService.ThreadLaunchService)({}),
57 Layer.mock(ThreadSearch.ThreadSearch)({}),
4458);
4559
4660const ToolsListPayload = Schema.fromJsonString(
apps/server/src/observability/RpcInstrumentation.test.ts+1-1
......@@ -72,7 +72,7 @@ const rpcSpans = (ended: ReadonlyArray<Tracer.NativeSpan>) =>
7272// RpcTest keeps Effect's own RpcServer/RpcClient spans, which ws.ts turns off with
7373// `disableTracing: true`. Everything else comes from the middleware or the handlers.
7474const appSpans = (ended: ReadonlyArray<Tracer.NativeSpan>) =>
75 ended.filter((span) => !/^Rpc(Server|Client)\./.test(span.name));
75 ended.filter((span) => span.attributes.get("rpc.system.name") !== "effect_rpc");
7676
7777const exitTag = (span: Tracer.NativeSpan | undefined) =>
7878 span?.status._tag === "Ended" ? span.status.exit._tag : undefined;
apps/server/src/orchestration-v2/FoundationPersistence.test.ts+4-3
......@@ -2354,14 +2354,15 @@ it.layer(layerTest)("orchestration V2 foundation persistence", (it) => {
23542354 it.effect("does not emit a SQL span for an empty safety claim", () =>
23552355 Effect.gen(function* () {
23562356 const outbox = yield* EffectOutbox.EffectOutboxV2;
2357 const spans: Array<string> = [];
2357 const statements: Array<unknown> = [];
23582358 const tracer = Tracer.make({
23592359 span: (options) => {
23602360 const span = new Tracer.NativeSpan(options);
23612361 const end = span.end.bind(span);
23622362 span.end = (endTime, exit) => {
23632363 end(endTime, exit);
2364 spans.push(span.name);
2364 const query = span.attributes.get("db.query.text");
2365 if (query !== undefined) statements.push(query);
23652366 };
23662367 return span;
23672368 },
......@@ -2372,7 +2373,7 @@ it.layer(layerTest)("orchestration V2 foundation persistence", (it) => {
23722373 .pipe(Effect.withTracer(tracer));
23732374
23742375 assert.isTrue(Option.isNone(claim));
2375 assert.notInclude(spans, "sql.execute");
2376 assert.deepEqual(statements, []);
23762377 }).pipe(Effect.provide(Layer.fresh(layerEffectOutboxProvided))),
23772378 );
23782379
docs/operations/relay-observability.md+1-1
......@@ -30,7 +30,7 @@ For example:
3030
3131```apl
3232['t3-code-relay-traces-prod']
33| where name startswith 'http.server'
33| where kind == 'server'
3434| extend endpoint = column_ifexists('attributes.http.route', ''),
3535 customAttributes = column_ifexists('attributes.custom', dynamic({}))
3636| project _time, name, trace_id, duration,
infra/relay/src/hooks/HookForwarder.test.ts+2-2
......@@ -600,7 +600,7 @@ describe("HookForwarder", () => {
600600 expect(serialized).not.toContain("also-secret");
601601 expect(serialized).not.toContain("header-secret");
602602 const server = spans.find((span) => span.kind === "server");
603 expect(server?.attributes.get("url.path")).toBe(`/v1/hooks/${endpointKey}/hook-1/<redacted>`);
603 expect(server?.attributes.get("url.path")).toBe(`/v1/hooks/${endpointKey}/hook-1/redacted`);
604604 }),
605605 );
606606
......@@ -639,7 +639,7 @@ describe("HookForwarder", () => {
639639 const servers = spans.filter((span) => span.kind === "server");
640640 expect(servers).toHaveLength(1);
641641 expect(servers[0]?.attributes.get("url.path")).toBe(
642 `/v1/hooks/${endpointKey}/hook-1/<redacted>`,
642 `/v1/hooks/${endpointKey}/hook-1/redacted`,
643643 );
644644 expect(spans.every((span) => span.traceId !== "11111111111111111111111111111111")).toBe(true);
645645 }),
infra/relay/src/hooks/HookForwarder.ts+2-1
......@@ -76,7 +76,8 @@ export const redactRelayHookUrl = (url: string): string => {
7676 const path = url.split("?", 1)[0] ?? url;
7777 const segments = path.split("/");
7878 if (segments.length >= 6) {
79 segments[5] = "<redacted>";
79 // URL-safe, so span attributes built from the parsed URL keep it readable.
80 segments[5] = "redacted";
8081 }
8182 return segments.join("/");
8283};
infra/relay/src/http/Api.test.ts+4-3
......@@ -1186,12 +1186,13 @@ describe("relay request tracing", () => {
11861186 Effect.provideService(HttpServerRequest.HttpServerRequest, request),
11871187 );
11881188
1189 expect(spans.map((span) => span.name)).toEqual(["http.server POST", "relay.test.endpoint"]);
1189 expect(spans.map((span) => span.name)).toEqual(["POST", "relay.test.endpoint"]);
11901190 expect(spans[0]?.kind).toBe("server");
11911191 expect(spans[0]?.attributes.get("url.path")).toBe("/v1/mobile/devices");
11921192 expect(spans[0]?.attributes.get("http.response.status_code")).toBe(204);
1193 expect(spans[0]?.attributes.get("http.request.header.authorization")).toBe("<redacted>");
1194 expect(spans[0]?.attributes.get("http.request.header.dpop")).toBe("<redacted>");
1193 // Headers are not captured at all, so credentials never reach the span.
1194 expect(spans[0]?.attributes.get("http.request.header.authorization")).toBeUndefined();
1195 expect(spans[0]?.attributes.get("http.request.header.dpop")).toBeUndefined();
11951196 expect(Option.isNone(spans[0]!.parent)).toBe(true);
11961197 expect(Option.getOrUndefined(spans[1]!.parent)?.spanId).toBe(spans[0]?.spanId);
11971198 }),
packages/client-runtime/src/connection/outdatedHostUpdate.ts+2-1
......@@ -21,7 +21,7 @@ import * as RpcSerialization from "effect/rpc/RpcSerialization";
2121import * as Socket from "effect/socket/Socket";
2222
2323import { fetchRemoteEnvironmentDescriptor } from "../environment/descriptor.ts";
24import { makeWsRpcProtocolClient } from "../rpc/protocol.ts";
24import { makeWsRpcProtocolClient, PING_TIMEOUT } from "../rpc/protocol.ts";
2525import { isLegacyUpdateHandoffLoss, resolveServerUpdateProgressResult } from "../state/server.ts";
2626import * as RelayEnvironmentDiscovery from "../relay/discovery.ts";
2727import * as ConnectionResolver from "./resolver.ts";
......@@ -87,6 +87,7 @@ export const updateOutdatedHost = Effect.fn("clientRuntime.connection.updateOutd
8787 Layer.effect(
8888 RpcClient.Protocol,
8989 RpcClient.makeProtocolSocket({
90 pingTimeout: PING_TIMEOUT,
9091 retryTransientErrors: false,
9192 retryPolicy: Schedule.recurs(0),
9293 }),
packages/client-runtime/src/rpc/protocol.ts+4
......@@ -6,3 +6,7 @@ export const makeWsRpcProtocolClient = RpcClient.make(WsRpcGroup);
66type RpcClientFactory = typeof makeWsRpcProtocolClient;
77export type WsRpcProtocolClient =
88 RpcClientFactory extends Effect.Effect<infer Client, any, any> ? Client : never;
9
10// Pings go out every 5 seconds, and a server busy for a few seconds stops
11// answering them. Allow 15 seconds without any frame before dropping the socket.
12export const PING_TIMEOUT = "15 seconds";
packages/client-runtime/src/rpc/session.test.ts+1-1
......@@ -1085,7 +1085,7 @@ describe("RpcSessionFactory", () => {
10851085 }),
10861086 );
10871087
1088 it.effect("tolerates two missed pong windows before closing the session", () =>
1088 it.effect("closes the session after 15 seconds without a frame from the server", () =>
10891089 Effect.gen(function* () {
10901090 const { factory, sockets } = yield* makeFactory();
10911091 const session = yield* factory.connect(PREPARED);
packages/client-runtime/src/rpc/session.ts+3-2
......@@ -24,7 +24,7 @@ import * as RpcClientError from "effect/rpc/RpcClientError";
2424import * as RpcSerialization from "effect/rpc/RpcSerialization";
2525import * as Socket from "effect/socket/Socket";
2626
27import { makeWsRpcProtocolClient, type WsRpcProtocolClient } from "./protocol.ts";
27import { makeWsRpcProtocolClient, PING_TIMEOUT, type WsRpcProtocolClient } from "./protocol.ts";
2828import { NETWORK_BLOCKING_HINT } from "../errors/network.ts";
2929import type {
3030 ConnectionAttemptError,
......@@ -170,7 +170,7 @@ export const make = Effect.fn("RpcSessionFactory.make")(function* (
170170
171171 const connected = yield* Deferred.make<void>();
172172 const disconnected = yield* Deferred.make<never, ConnectionTransientError>();
173 // Set when the socket closes because pongs stopped, so the failure says so
173 // Set when the socket closes because the server stopped answering, so the failure says so
174174 // instead of looking like the server closed the connection.
175175 const pingTimedOut = yield* Ref.make(false);
176176 const hooks = RpcClient.ConnectionHooks.of({
......@@ -201,6 +201,7 @@ export const make = Effect.fn("RpcSessionFactory.make")(function* (
201201 const layerProtocol = Layer.effect(
202202 RpcClient.Protocol,
203203 RpcClient.makeProtocolSocket({
204 pingTimeout: PING_TIMEOUT,
204205 retryTransientErrors: false,
205206 retryPolicy: Schedule.recurs(0),
206207 }),
packages/shared/src/otelEnvironment.test.ts+4-1
......@@ -501,7 +501,10 @@ describe("OtelEnvironment", () => {
501501 ),
502502 );
503503 assert.deepStrictEqual(
504 resource.attributes.map((attribute) => attribute.key),
504 resource.attributes
505 .map((attribute) => attribute.key)
506 // Effect adds these to every resource.
507 .filter((key) => !key.startsWith("telemetry.sdk.")),
505508 [...attributes, "service.name"],
506509 );
507510 }),
patches/@effect__vitest@4.0.1.patch deleted-120
......@@ -1,120 +0,0 @@
1diff --git a/dist/index.d.ts b/dist/index.d.ts
2index 530795c..237d090 100644
3--- a/dist/index.d.ts
4+++ b/dist/index.d.ts
5@@ -7,14 +7,14 @@ import type * as Effect from "effect/Effect";
6 import type * as Layer from "effect/Layer";
7 import type * as Schema from "effect/Schema";
8 import type * as Scope from "effect/Scope";
9-import type * as V from "vitest";
10+import type * as V from "vite-plus/test";
11 /**
12 * Re-exports the `vitest` API unchanged.
13 *
14 * @stability unstable
15 * @since 4.0.0
16 */
17-export * from "vitest";
18+export * from "vite-plus/test";
19 /**
20 * @stability unstable
21 * @since 4.0.0
22diff --git a/dist/index.js b/dist/index.js
23index 740429f..b5c69b8 100644
24--- a/dist/index.js
25+++ b/dist/index.js
26@@ -5,7 +5,7 @@ import * as internal from "./internal/internal.js";
27 * @stability unstable
28 * @since 4.0.0
29 */
30-export * from "vitest";
31+export * from "vite-plus/test";
32 /**
33 * @since 4.0.0
34 */
35diff --git a/dist/internal/internal.js b/dist/internal/internal.js
36index 7138319..4092c67 100644
37--- a/dist/internal/internal.js
38+++ b/dist/internal/internal.js
39@@ -12,7 +12,7 @@ import * as Schedule from "effect/Schedule";
40 import * as Scope from "effect/Scope";
41 import * as TestClock from "effect/testing/TestClock";
42 import * as TestConsole from "effect/testing/TestConsole";
43-import * as V from "vitest";
44+import * as V from "vite-plus/test";
45 const getCurrentSuite = V.TestRunner.getCurrentSuite;
46 const runPromise = /*#__PURE__*/Effect.fnUntraced(function* (effect, _ctx) {
47 const exit = yield* Effect.exit(effect);
48diff --git a/dist/utils.js b/dist/utils.js
49index 75a243d..08a4c89 100644
50--- a/dist/utils.js
51+++ b/dist/utils.js
52@@ -4,7 +4,7 @@ import * as Option from "effect/Option";
53 import * as Predicate from "effect/Predicate";
54 import * as Result from "effect/Result";
55 import * as assert from "node:assert";
56-import { assert as vassert } from "vitest";
57+import { assert as vassert } from "vite-plus/test";
58 // ----------------------------
59 // Primitives
60 // ----------------------------
61diff --git a/package.json b/package.json
62index d64c43d..939548e 100644
63--- a/package.json
64+++ b/package.json
65@@ -37,7 +37,6 @@
66 "provenance": true
67 },
68 "peerDependencies": {
69- "vitest": ">=5.0.0 <6.0.0",
70 "effect": "^4.0.1"
71 },
72 "devDependencies": {
73diff --git a/src/index.ts b/src/index.ts
74index 20c0497..2b16d32 100644
75--- a/src/index.ts
76+++ b/src/index.ts
77@@ -7,7 +7,7 @@ import type * as Effect from "effect/Effect"
78 import type * as Layer from "effect/Layer"
79 import type * as Schema from "effect/Schema"
80 import type * as Scope from "effect/Scope"
81-import type * as V from "vitest"
82+import type * as V from "vite-plus/test"
83 import * as internal from "./internal/internal.ts"
84
85 /**
86@@ -16,7 +16,7 @@ import * as internal from "./internal/internal.ts"
87 * @stability unstable
88 * @since 4.0.0
89 */
90-export * from "vitest"
91+export * from "vite-plus/test"
92
93 /**
94 * @stability unstable
95diff --git a/src/internal/internal.ts b/src/internal/internal.ts
96index b43385b..4da79fd 100644
97--- a/src/internal/internal.ts
98+++ b/src/internal/internal.ts
99@@ -14,7 +14,7 @@ import type * as Schema from "effect/Schema"
100 import * as Scope from "effect/Scope"
101 import * as TestClock from "effect/testing/TestClock"
102 import * as TestConsole from "effect/testing/TestConsole"
103-import * as V from "vitest"
104+import * as V from "vite-plus/test"
105 import type * as Vitest from "../index.ts"
106
107 const getCurrentSuite = V.TestRunner.getCurrentSuite
108diff --git a/src/utils.ts b/src/utils.ts
109index 8ce3409..259be29 100644
110--- a/src/utils.ts
111+++ b/src/utils.ts
112@@ -16,7 +16,7 @@ import * as Option from "effect/Option"
113 import * as Predicate from "effect/Predicate"
114 import * as Result from "effect/Result"
115 import * as assert from "node:assert"
116-import { assert as vassert } from "vitest"
117+import { assert as vassert } from "vite-plus/test"
118
119 // ----------------------------
120 // Primitives
patches/@effect__vitest@4.0.2.patch created+120
......@@ -0,0 +1,120 @@
1diff --git a/dist/index.d.ts b/dist/index.d.ts
2index 845cb4c..24ede42 100644
3--- a/dist/index.d.ts
4+++ b/dist/index.d.ts
5@@ -10,14 +10,14 @@ import type * as Effect from "effect/Effect";
6 import type * as Layer from "effect/Layer";
7 import type * as Schema from "effect/Schema";
8 import type * as Scope from "effect/Scope";
9-import type * as V from "vitest";
10+import type * as V from "vite-plus/test";
11 /**
12 * Re-exports the `vitest` API unchanged.
13 *
14 * @stability unstable
15 * @since 4.0.0
16 */
17-export * from "vitest";
18+export * from "vite-plus/test";
19 /**
20 * Vitest test API without additional fixtures.
21 *
22diff --git a/dist/index.js b/dist/index.js
23index 178cc74..9289296 100644
24--- a/dist/index.js
25+++ b/dist/index.js
26@@ -5,7 +5,7 @@ import * as internal from "./internal/internal.js";
27 * @stability unstable
28 * @since 4.0.0
29 */
30-export * from "vitest";
31+export * from "vite-plus/test";
32 /**
33 * Invokes the Effect Vitest equality-tester registration hook.
34 *
35diff --git a/dist/internal/internal.js b/dist/internal/internal.js
36index 7138319..4092c67 100644
37--- a/dist/internal/internal.js
38+++ b/dist/internal/internal.js
39@@ -12,7 +12,7 @@ import * as Schedule from "effect/Schedule";
40 import * as Scope from "effect/Scope";
41 import * as TestClock from "effect/testing/TestClock";
42 import * as TestConsole from "effect/testing/TestConsole";
43-import * as V from "vitest";
44+import * as V from "vite-plus/test";
45 const getCurrentSuite = V.TestRunner.getCurrentSuite;
46 const runPromise = /*#__PURE__*/Effect.fnUntraced(function* (effect, _ctx) {
47 const exit = yield* Effect.exit(effect);
48diff --git a/dist/utils.js b/dist/utils.js
49index b97edbe..7dfd64a 100644
50--- a/dist/utils.js
51+++ b/dist/utils.js
52@@ -4,7 +4,7 @@ import * as Option from "effect/Option";
53 import * as Predicate from "effect/Predicate";
54 import * as Result from "effect/Result";
55 import * as assert from "node:assert";
56-import { assert as vassert } from "vitest";
57+import { assert as vassert } from "vite-plus/test";
58 // ----------------------------
59 // Primitives
60 // ----------------------------
61diff --git a/package.json b/package.json
62index 7dbb505..38d13cb 100644
63--- a/package.json
64+++ b/package.json
65@@ -37,7 +37,6 @@
66 "provenance": true
67 },
68 "peerDependencies": {
69- "vitest": ">=5.0.0 <6.0.0",
70 "effect": "^4.0.2"
71 },
72 "devDependencies": {
73diff --git a/src/index.ts b/src/index.ts
74index 9d65132..4aadda8 100644
75--- a/src/index.ts
76+++ b/src/index.ts
77@@ -10,7 +10,7 @@ import type * as Effect from "effect/Effect"
78 import type * as Layer from "effect/Layer"
79 import type * as Schema from "effect/Schema"
80 import type * as Scope from "effect/Scope"
81-import type * as V from "vitest"
82+import type * as V from "vite-plus/test"
83 import * as internal from "./internal/internal.ts"
84
85 /**
86@@ -19,7 +19,7 @@ import * as internal from "./internal/internal.ts"
87 * @stability unstable
88 * @since 4.0.0
89 */
90-export * from "vitest"
91+export * from "vite-plus/test"
92
93 /**
94 * Vitest test API without additional fixtures.
95diff --git a/src/internal/internal.ts b/src/internal/internal.ts
96index b43385b..4da79fd 100644
97--- a/src/internal/internal.ts
98+++ b/src/internal/internal.ts
99@@ -14,7 +14,7 @@ import type * as Schema from "effect/Schema"
100 import * as Scope from "effect/Scope"
101 import * as TestClock from "effect/testing/TestClock"
102 import * as TestConsole from "effect/testing/TestConsole"
103-import * as V from "vitest"
104+import * as V from "vite-plus/test"
105 import type * as Vitest from "../index.ts"
106
107 const getCurrentSuite = V.TestRunner.getCurrentSuite
108diff --git a/src/utils.ts b/src/utils.ts
109index 4473632..2d04404 100644
110--- a/src/utils.ts
111+++ b/src/utils.ts
112@@ -17,7 +17,7 @@ import * as Option from "effect/Option"
113 import * as Predicate from "effect/Predicate"
114 import * as Result from "effect/Result"
115 import * as assert from "node:assert"
116-import { assert as vassert } from "vitest"
117+import { assert as vassert } from "vite-plus/test"
118
119 // ----------------------------
120 // Primitives
patches/effect@4.0.1.patch deleted-139
......@@ -1,139 +0,0 @@
1diff --git a/dist/ai/McpServer.js b/dist/ai/McpServer.js
2index 2da594107273980144e84ab9b53636ef34043f6b..9fada51944f58fd0d988ae8f6b18f83e79583a25 100644
3--- a/dist/ai/McpServer.js
4+++ b/dist/ai/McpServer.js
5@@ -1093,7 +1093,7 @@ export const layerHttp = options => {
6 const methodNotAllowed = request => isAllowedMcpOrigin(request, options.allowedOrigins) ? Effect.succeed(methodNotAllowedResponse) : Effect.succeed(HttpServerResponse.empty({
7 status: 403
8 }));
9- const routes = Layer.mergeAll(HttpRouter.add("GET", options.path, methodNotAllowed), HttpRouter.add("PUT", options.path, methodNotAllowed), HttpRouter.add("PATCH", options.path, methodNotAllowed), HttpRouter.add("DELETE", options.path, methodNotAllowed), HttpRouter.add("OPTIONS", options.path, methodNotAllowed));
10+ const routes = Layer.mergeAll(HttpRouter.add("GET", options.path, methodNotAllowed), HttpRouter.add("PUT", options.path, methodNotAllowed), HttpRouter.add("PATCH", options.path, methodNotAllowed), HttpRouter.add("OPTIONS", options.path, methodNotAllowed));
11 return Layer.merge(layerWithRuntime(options, "http"), routes).pipe(Layer.provide(layerMcpProtocolHttp(options)), Layer.provide(runtime), Layer.provide(RpcSerialization.layerJsonRpc()));
12 };
13 const layerMcpProtocolHttp = options => Layer.effect(RpcServer.Protocol)(Effect.gen(function* () {
14@@ -1136,6 +1136,17 @@ const layerMcpProtocolHttp = options => Layer.effect(RpcServer.Protocol)(Effect.
15 }))) : response;
16 });
17 });
18+ yield* router.add("DELETE", options.path, request => {
19+ if (!isAllowedMcpOrigin(request, options.allowedOrigins)) {
20+ return Effect.succeed(HttpServerResponse.empty({
21+ status: 403
22+ }));
23+ }
24+ const sessionId = request.headers[MCP_SESSION_ID_HEADER];
25+ return Effect.succeed(HttpServerResponse.empty({
26+ status: sessionId === undefined ? 400 : runtime.terminateSession(sessionId) ? 204 : 404
27+ }));
28+ });
29 return protocol;
30 }));
31 const mcpHttpSerialization = /*#__PURE__*/(() => {
32diff --git a/dist/ai/internal/mcpRuntime.js b/dist/ai/internal/mcpRuntime.js
33index 06370fd1341ae7a6b681c513a3a3c2866a414b7b..baa945b8b4763b5472c4a900b90b817209caa4bf 100644
34--- a/dist/ai/internal/mcpRuntime.js
35+++ b/dist/ai/internal/mcpRuntime.js
36@@ -336,6 +336,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (protocols) {
37 },
38 effectLogLevel: (clientId, headers, fallback) => stateful?.effectLogLevel(clientId, headers, fallback) ?? fallback,
39 disconnect: clientId => stateful?.disconnect(clientId),
40+ terminateSession: sessionId => stateful?.terminateSession(sessionId) ?? false,
41 deliveryClientIds: () => stateful?.initializedClientIds() ?? [],
42 canDeliver: (clientId, headers, notification, fallback) => stateful?.canDeliver(clientId, headers, notification, fallback) ?? true,
43 installHandlers: Effect.fnUntraced(function* (options) {
44diff --git a/dist/ai/internal/mcpStatefulRuntime.js b/dist/ai/internal/mcpStatefulRuntime.js
45index 9471bdfbcff0643b44df3a08c3701f743a299638..455860316ddfccaf98ff95f9f05da500c331869c 100644
46--- a/dist/ai/internal/mcpStatefulRuntime.js
47+++ b/dist/ai/internal/mcpStatefulRuntime.js
48@@ -46,6 +46,7 @@ export const make = () => {
49 },
50 resolve: resolveSession,
51 resolveSessionId: sessionId => bySessionId.get(sessionId),
52+ terminateSession: sessionId => bySessionId.delete(sessionId),
53 setLogLevel: (level, clientId, headers) => Effect.sync(() => {
54 const session = resolveSession(clientId, headers);
55 if (session !== undefined) {
56diff --git a/dist/http/HttpClientResponse.js b/dist/http/HttpClientResponse.js
57index 42fba673de3b6bdc089c305f2e87ad56c3bfc374..2b4981b8a88606fb93d62a29f21f9556803307c4 100644
58--- a/dist/http/HttpClientResponse.js
59+++ b/dist/http/HttpClientResponse.js
60@@ -195,7 +195,7 @@ class WebHttpClientResponse extends Inspectable.Class {
61 if (this.cachedCookies) {
62 return this.cachedCookies;
63 }
64- return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie());
65+ return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie?.() ?? []);
66 }
67 get remoteAddress() {
68 return Option.none();
69diff --git a/dist/rpc/RpcClient.d.ts b/dist/rpc/RpcClient.d.ts
70index c498ff74510b784dcba791dbf6b8f23dac40a71d..8be9c910a8112a5289159251846128cd27cf32aa 100644
71--- a/dist/rpc/RpcClient.d.ts
72+++ b/dist/rpc/RpcClient.d.ts
73@@ -302,6 +302,8 @@ export declare const layerProtocolWorker: (options: {
74 declare const ConnectionHooks_base: Context.ServiceClass<ConnectionHooks, "effect/rpc/RpcClient/ConnectionHooks", {
75 readonly onConnect: Effect.Effect<void>;
76 readonly onDisconnect: Effect.Effect<void>;
77+ /** Runs when the socket is dropped because pongs stopped, before `onDisconnect`. */
78+ readonly onPingTimeout?: Effect.Effect<void> | undefined;
79 }>;
80 /**
81 * Represents optional client protocol hooks that run when a transport connects
82diff --git a/dist/rpc/RpcClient.js b/dist/rpc/RpcClient.js
83index 8af2e2efa9311d582add61fef131fd39fd459ab4..723649f05baa61ac33c9bc3634d106caa9641164 100644
84--- a/dist/rpc/RpcClient.js
85+++ b/dist/rpc/RpcClient.js
86@@ -679,11 +679,11 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
87 yield* processData(frames[i]);
88 }
89 }
90- }).pipe(Effect.scoped, Effect.raceFirst(Effect.flatMap(pinger.timeout, () => Effect.fail(new Socket.SocketError({
91+ }).pipe(Effect.scoped, Effect.raceFirst(Effect.flatMap(pinger.timeout, () => (Option.isSome(hooks) && hooks.value.onPingTimeout ? hooks.value.onPingTimeout : Effect.void).pipe(Effect.andThen(Effect.fail(new Socket.SocketError({
92 reason: new Socket.SocketReadError({
93 cause: new Error("ping timeout")
94 })
95- })))));
96+ })))))));
97 }).pipe(Option.isSome(hooks) ? Effect.ensuring(hooks.value.onDisconnect) : identity, Effect.tapCause(cause => {
98 const error = Cause.findError(cause);
99 const hasError = Result.isSuccess(error);
100@@ -726,17 +726,25 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
101 const defaultRetryPolicy = /*#__PURE__*/Schedule.min([/*#__PURE__*/Schedule.exponential(500, 1.5), /*#__PURE__*/Schedule.spaced(5000)]);
102 const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing) {
103 let recievedPong = true;
104+ let missedPongs = 0;
105 const latch = Latch.makeUnsafe();
106 const reset = () => {
107 recievedPong = true;
108+ missedPongs = 0;
109 latch.closeUnsafe();
110 };
111 const onPong = () => {
112 recievedPong = true;
113+ missedPongs = 0;
114 };
115 yield* Effect.suspend(() => {
116- if (!recievedPong) return latch.open;
117+ if (!recievedPong) {
118+ missedPongs += 1;
119+ if (missedPongs >= 3) return latch.open;
120+ return writePing;
121+ }
122 recievedPong = false;
123+ missedPongs = 0;
124 return writePing;
125 }).pipe(Effect.delay("5 seconds"), Effect.ignore, Effect.forever, Effect.interruptible, Effect.forkScoped);
126 return {
127diff --git a/src/http/HttpClientResponse.ts b/src/http/HttpClientResponse.ts
128index c037015185da1e0c664653b5a496832a9449f3c1..a8b0d8be28bbbd3a0d0d3f1a222c2f074d2d3ad5 100644
129--- a/src/http/HttpClientResponse.ts
130+++ b/src/http/HttpClientResponse.ts
131@@ -341,7 +341,7 @@ class WebHttpClientResponse extends Inspectable.Class implements HttpClientRespo
132 if (this.cachedCookies) {
133 return this.cachedCookies
134 }
135- return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie())
136+ return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie?.() ?? [])
137 }
138
139 get remoteAddress(): Option.Option<string> {
patches/effect@4.0.2.patch created+31
......@@ -0,0 +1,31 @@
1diff --git a/dist/rpc/RpcClient.d.ts b/dist/rpc/RpcClient.d.ts
2index ebfe86f..3ff235d 100644
3--- a/dist/rpc/RpcClient.d.ts
4+++ b/dist/rpc/RpcClient.d.ts
5@@ -320,6 +320,8 @@ export declare const layerProtocolWorker: (options: {
6 declare const ConnectionHooks_base: Context.ServiceClass<ConnectionHooks, "effect/rpc/RpcClient/ConnectionHooks", {
7 readonly onConnect: Effect.Effect<void>;
8 readonly onDisconnect: Effect.Effect<void>;
9+ /** Runs when the socket is dropped because the server stopped answering, before `onDisconnect`. */
10+ readonly onPingTimeout?: Effect.Effect<void> | undefined;
11 }>;
12 /**
13 * Represents optional client protocol hooks that run when a transport connects
14diff --git a/dist/rpc/RpcClient.js b/dist/rpc/RpcClient.js
15index f5b14ef..cccf0a4 100644
16--- a/dist/rpc/RpcClient.js
17+++ b/dist/rpc/RpcClient.js
18@@ -688,11 +688,11 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
19 yield* processData(frames[i]);
20 }
21 }
22- }).pipe(Effect.scoped, Effect.raceFirst(Effect.flatMap(pinger.timeout, () => Effect.fail(new Socket.SocketError({
23+ }).pipe(Effect.scoped, Effect.raceFirst(Effect.flatMap(pinger.timeout, () => (Option.isSome(hooks) && hooks.value.onPingTimeout ? hooks.value.onPingTimeout : Effect.void).pipe(Effect.andThen(Effect.fail(new Socket.SocketError({
24 reason: new Socket.SocketReadError({
25 cause: new Error("ping timeout")
26 })
27- })))));
28+ })))))));
29 }).pipe(Option.isSome(hooks) ? Effect.ensuring(hooks.value.onDisconnect) : identity, Effect.tapCause(cause => {
30 const error = Cause.findError(cause);
31 const hasError = Result.isSuccess(error);
pnpm-lock.yaml+328-327
......@@ -7,11 +7,11 @@ settings:
77catalogs:
88 default:
99 '@effect/openapi-generator':
10 specifier: 4.0.1
11 version: 4.0.1
10 specifier: 4.0.2
11 version: 4.0.2
1212 '@effect/sql-sqlite-do':
13 specifier: 4.0.1
14 version: 4.0.1
13 specifier: 4.0.2
14 version: 4.0.2
1515 '@effect/tsgo':
1616 specifier: 0.46.1
1717 version: 0.46.1
......@@ -96,11 +96,11 @@ overrides:
9696 '@clerk/expo': 4.6.8
9797 '@clerk/react': 6.16.1
9898 '@clerk/shared': 4.33.0
99 '@effect/atom-react': 4.0.1
100 '@effect/platform-node': 4.0.1
101 '@effect/platform-node-shared': 4.0.1
102 '@effect/sql-pg': 4.0.1
103 '@effect/vitest': 4.0.1
99 '@effect/atom-react': 4.0.2
100 '@effect/platform-node': 4.0.2
101 '@effect/platform-node-shared': 4.0.2
102 '@effect/sql-pg': 4.0.2
103 '@effect/vitest': 4.0.2
104104 '@effect/vitest>vitest': '-'
105105 '@expo/dom-webview': 58.0.2
106106 '@expo/metro-config': 58.0.6
......@@ -113,12 +113,13 @@ overrides:
113113 '@tailwindcss/oxide': 4.3.3
114114 '@tailwindcss/vite': 4.3.3
115115 '@types/node': 24.12.4
116 effect: 4.0.1
117 '@opencode/protocol>effect': 4.0.1
118 '@opencode/schema>effect': 4.0.1
116 effect: 4.0.2
117 '@opencode/protocol>effect': 4.0.2
118 '@opencode/schema>effect': 4.0.2
119119 node-abi: 4.33.0
120120 lightningcss: 1.33.0
121121 tailwindcss: 4.3.3
122 '@types/ws@^8': 8.18.2
122123 undici@^8: 8.11.2
123124 ws@^8: 8.22.0
124125 vite: npm:@voidzero-dev/vite-plus-core@1.0.0
......@@ -129,7 +130,7 @@ packageExtensionsChecksum: sha256-FYDaKefjFcda1+vgiq8yMpZC4ehE5CyLi/bsCGLgTtY=
129130
130131patchedDependencies:
131132 '@clerk/expo@4.6.8': b8b22ab733de5bea846ad9e88046c10582352fe9ad86f314f368b2a823f0f281
132 '@effect/vitest@4.0.1': 359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2
133 '@effect/vitest@4.0.2': 595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9
133134 '@expo/metro-config@58.0.6': 90fa980e8b6480631fb2fbb04559834e3c612db40c550cd828f11be297d8d760
134135 '@ff-labs/fff-node@0.9.4': c4e3cc2420ceb9dc650f9d189e9c24baf7e83f342998bacda5f459a4ce7927a8
135136 '@legendapp/list@3.3.5': 680cc6a5c5b4a4032e467e7b3fde22f89a84c0ee2e6eac6fda737d6277cc0806
......@@ -142,7 +143,7 @@ patchedDependencies:
142143 '@react-navigation/native-stack@7.17.6': 3a53ec9b92f5db5f083f3ada585da75d62a13c82250c6ae47d92be91a828ad87
143144 alchemy@2.0.0-beta.80: bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd
144145 dbus-next@0.10.2: cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4
145 effect@4.0.1: a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f
146 effect@4.0.2: ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688
146147 expo-audio@58.0.4: c20cb927d6848c53e7bf6ec14fe12f19daae9210165d2dbaf4e0f97ce31e8742
147148 expo-blur@58.0.3: d0311b0c0b05bd94393bd9a84653cb42503d5f3c8a19eb2627c34ace08bedf18
148149 expo-glass-effect@58.0.3: f750041c45ab838a3530451dc7b50d6640a79141037a1b0499c5e3412a860c57
......@@ -193,8 +194,8 @@ importers:
193194 specifier: 0.13.0
194195 version: 0.13.0
195196 '@effect/platform-node':
196 specifier: 4.0.1
197 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
197 specifier: 4.0.2
198 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
198199 '@napi-rs/keyring':
199200 specifier: ^1.3.0
200201 version: 1.3.0
......@@ -217,8 +218,8 @@ importers:
217218 specifier: 0.10.2
218219 version: 0.10.2(patch_hash=cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4)
219220 effect:
220 specifier: 4.0.1
221 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
221 specifier: 4.0.2
222 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
222223 electron:
223224 specifier: 44.4.5
224225 version: 44.4.5
......@@ -239,8 +240,8 @@ importers:
239240 version: 0.1.44(react@19.2.6)
240241 devDependencies:
241242 '@effect/vitest':
242 specifier: 4.0.1
243 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
243 specifier: 4.0.2
244 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
244245 '@types/node':
245246 specifier: 24.12.4
246247 version: 24.12.4
......@@ -288,8 +289,8 @@ importers:
288289 specifier: 4.6.8
289290 version: 4.6.8(patch_hash=b8b22ab733de5bea846ad9e88046c10582352fe9ad86f314f368b2a823f0f281)(9fda653cb5598772915b4a39a7aee91d)
290291 '@effect/atom-react':
291 specifier: 4.0.1
292 version: 4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(react@19.3.0)(scheduler@0.28.0)
292 specifier: 4.0.2
293 version: 4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(react@19.3.0)(scheduler@0.28.0)
293294 '@expo-google-fonts/dm-sans':
294295 specifier: ^0.4.2
295296 version: 0.4.2
......@@ -387,8 +388,8 @@ importers:
387388 specifier: 8.0.3
388389 version: 8.0.3
389390 effect:
390 specifier: 4.0.1
391 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
391 specifier: 4.0.2
392 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
392393 expo:
393394 specifier: 58.0.2
394395 version: 58.0.2(bd4444e61fed72e958d45f73733b7f54)
......@@ -553,8 +554,8 @@ importers:
553554 version: 1.12.1(@expo/metro-config@58.0.6(patch_hash=90fa980e8b6480631fb2fbb04559834e3c612db40c550cd828f11be297d8d760)(bufferutil@4.1.0)(expo@58.0.2)(typescript@7.0.2)(utf-8-validate@6.0.6))(metro-cache@0.87.1)(metro-transform-worker@0.87.1(bufferutil@4.1.0)(utf-8-validate@6.0.6))(metro@0.87.1(bufferutil@4.1.0)(utf-8-validate@6.0.6))(react-native@0.88.0-rc.3(@babel/core@7.29.7)(@react-native/metro-config@0.88.0-rc.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.3.0)(bufferutil@4.1.0)(react@19.3.0)(utf-8-validate@6.0.6))(react@19.3.0)(tailwindcss@4.3.3)
554555 devDependencies:
555556 '@effect/vitest':
556 specifier: 4.0.1
557 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
557 specifier: 4.0.2
558 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
558559 '@pierre/trees':
559560 specifier: 1.0.0-beta.6
560561 version: 1.0.0-beta.6(@pierre/theme@2.0.0)(@shikijs/themes@4.2.0)(react-dom@19.3.0(react@19.3.0))(react@19.3.0)(shiki@4.2.0)
......@@ -586,11 +587,11 @@ importers:
586587 specifier: 1.0.35
587588 version: 1.0.35
588589 '@effect/platform-node':
589 specifier: 4.0.1
590 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
590 specifier: 4.0.2
591 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
591592 '@effect/platform-node-shared':
592 specifier: 4.0.1
593 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(utf-8-validate@6.0.6)
593 specifier: 4.0.2
594 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(utf-8-validate@6.0.6)
594595 '@ff-labs/fff-node':
595596 specifier: 0.9.4
596597 version: 0.9.4(patch_hash=c4e3cc2420ceb9dc650f9d189e9c24baf7e83f342998bacda5f459a4ce7927a8)
......@@ -631,8 +632,8 @@ importers:
631632 specifier: 8.0.3
632633 version: 8.0.3
633634 effect:
634 specifier: 4.0.1
635 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
635 specifier: 4.0.2
636 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
636637 jose:
637638 specifier: 'catalog:'
638639 version: 6.2.2
......@@ -659,8 +660,8 @@ importers:
659660 version: 3.4.0
660661 devDependencies:
661662 '@effect/vitest':
662 specifier: 4.0.1
663 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
663 specifier: 4.0.2
664 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
664665 '@modelcontextprotocol/sdk':
665666 specifier: 1.29.0
666667 version: 1.29.0(zod@4.6.5)
......@@ -728,8 +729,8 @@ importers:
728729 specifier: ^3.2.2
729730 version: 3.2.2(react@19.2.6)
730731 '@effect/atom-react':
731 specifier: 4.0.1
732 version: 4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(react@19.2.6)(scheduler@0.28.0)
732 specifier: 4.0.2
733 version: 4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(react@19.2.6)(scheduler@0.28.0)
733734 '@formkit/auto-animate':
734735 specifier: ^0.9.0
735736 version: 0.9.0
......@@ -827,8 +828,8 @@ importers:
827828 specifier: ^3.4.16
828829 version: 3.4.16
829830 effect:
830 specifier: 4.0.1
831 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
831 specifier: 4.0.2
832 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
832833 hast-util-to-html:
833834 specifier: ^9.0.5
834835 version: 9.0.5
......@@ -882,11 +883,11 @@ importers:
882883 version: 5.0.14(@types/react@19.3.0)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6))
883884 devDependencies:
884885 '@effect/platform-node':
885 specifier: 4.0.1
886 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
886 specifier: 4.0.2
887 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
887888 '@effect/vitest':
888 specifier: 4.0.1
889 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
889 specifier: 4.0.2
890 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
890891 '@rolldown/plugin-babel':
891892 specifier: ^0.2.0
892893 version: 0.2.3(@babel/core@7.29.7)(@babel/plugin-transform-runtime@7.29.7(@babel/core@7.29.7))(@babel/runtime@7.29.7)(@voidzero-dev/vite-plus-core@1.0.0(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(rolldown@1.2.5)
......@@ -954,11 +955,11 @@ importers:
954955 specifier: 3.18.1
955956 version: 3.18.1(react-dom@19.3.0(react@19.3.0))(react@19.2.6)
956957 '@effect/sql-pg':
957 specifier: 4.0.1
958 version: 4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
958 specifier: 4.0.2
959 version: 4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
959960 '@effect/sql-sqlite-do':
960961 specifier: 'catalog:'
961 version: 4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
962 version: 4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
962963 '@noble/curves':
963964 specifier: 'catalog:'
964965 version: 1.9.1
......@@ -976,23 +977,23 @@ importers:
976977 version: link:../../packages/shared
977978 alchemy:
978979 specifier: 2.0.0-beta.80
979 version: 2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(d02b4e60a6a3c6b542dfa700209cf5ce)
980 version: 2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(ba3b2ceb33761bc36b3beb11002eb316)
980981 drizzle-orm:
981982 specifier: 1.0.0-rc.5-ab785fc
982 version: 1.0.0-rc.5-ab785fc(74e00612579436038985093f7f46ef5c)
983 version: 1.0.0-rc.5-ab785fc(da2d75dec181fbafaeb6986c8741457b)
983984 effect:
984 specifier: 4.0.1
985 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
985 specifier: 4.0.2
986 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
986987 devDependencies:
987988 '@cloudflare/workers-types':
988989 specifier: ^4.20260601.1
989990 version: 4.20260604.1
990991 '@effect/platform-node':
991 specifier: 4.0.1
992 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
992 specifier: 4.0.2
993 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
993994 '@effect/vitest':
994 specifier: 4.0.1
995 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
995 specifier: 4.0.2
996 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
996997 '@types/node':
997998 specifier: 24.12.4
998999 version: 24.12.4
......@@ -1012,18 +1013,18 @@ importers:
10121013 oxlint-plugin-t3code:
10131014 dependencies:
10141015 '@effect/platform-node':
1015 specifier: 4.0.1
1016 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
1016 specifier: 4.0.2
1017 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
10171018 '@oxlint/plugins':
10181019 specifier: ^1.63.0
10191020 version: 1.68.0
10201021 effect:
1021 specifier: 4.0.1
1022 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1022 specifier: 4.0.2
1023 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
10231024 devDependencies:
10241025 '@effect/vitest':
1025 specifier: 4.0.1
1026 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1026 specifier: 4.0.2
1027 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
10271028 vite-plus:
10281029 specifier: 1.0.0
10291030 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@5.0.1(vitest@5.0.1))(bufferutil@4.1.0)(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
......@@ -1037,15 +1038,15 @@ importers:
10371038 specifier: workspace:*
10381039 version: link:../shared
10391040 effect:
1040 specifier: 4.0.1
1041 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1041 specifier: 4.0.2
1042 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
10421043 three:
10431044 specifier: 0.180.0
10441045 version: 0.180.0
10451046 devDependencies:
10461047 '@effect/vitest':
1047 specifier: 4.0.1
1048 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1048 specifier: 4.0.2
1049 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
10491050 '@types/three':
10501051 specifier: 0.180.0
10511052 version: 0.180.0
......@@ -1056,12 +1057,12 @@ importers:
10561057 packages/contracts:
10571058 dependencies:
10581059 effect:
1059 specifier: 4.0.1
1060 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1060 specifier: 4.0.2
1061 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
10611062 devDependencies:
10621063 '@effect/vitest':
1063 specifier: 4.0.1
1064 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1064 specifier: 4.0.2
1065 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
10651066 vite-plus:
10661067 specifier: 1.0.0
10671068 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@5.0.1(vitest@5.0.1))(bufferutil@4.1.0)(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
......@@ -1069,18 +1070,18 @@ importers:
10691070 packages/effect-acp:
10701071 dependencies:
10711072 effect:
1072 specifier: 4.0.1
1073 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1073 specifier: 4.0.2
1074 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
10741075 devDependencies:
10751076 '@effect/openapi-generator':
10761077 specifier: 'catalog:'
1077 version: 4.0.1(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(encoding@0.1.13)
1078 version: 4.0.2(@effect/platform-node@4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(encoding@0.1.13)
10781079 '@effect/platform-node':
1079 specifier: 4.0.1
1080 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
1080 specifier: 4.0.2
1081 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
10811082 '@effect/vitest':
1082 specifier: 4.0.1
1083 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1083 specifier: 4.0.2
1084 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
10841085 '@types/node':
10851086 specifier: 24.12.4
10861087 version: 24.12.4
......@@ -1091,18 +1092,18 @@ importers:
10911092 packages/effect-codex-app-server:
10921093 dependencies:
10931094 effect:
1094 specifier: 4.0.1
1095 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1095 specifier: 4.0.2
1096 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
10961097 devDependencies:
10971098 '@effect/openapi-generator':
10981099 specifier: 'catalog:'
1099 version: 4.0.1(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(encoding@0.1.13)
1100 version: 4.0.2(@effect/platform-node@4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(encoding@0.1.13)
11001101 '@effect/platform-node':
1101 specifier: 4.0.1
1102 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
1102 specifier: 4.0.2
1103 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
11031104 '@effect/vitest':
1104 specifier: 4.0.1
1105 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1105 specifier: 4.0.2
1106 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
11061107 '@types/node':
11071108 specifier: 24.12.4
11081109 version: 24.12.4
......@@ -1125,15 +1126,15 @@ importers:
11251126 specifier: 8.0.3
11261127 version: 8.0.3
11271128 effect:
1128 specifier: 4.0.1
1129 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1129 specifier: 4.0.2
1130 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
11301131 devDependencies:
11311132 '@effect/platform-node':
1132 specifier: 4.0.1
1133 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
1133 specifier: 4.0.2
1134 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
11341135 '@effect/vitest':
1135 specifier: 4.0.1
1136 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1136 specifier: 4.0.2
1137 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
11371138 '@types/node':
11381139 specifier: 24.12.4
11391140 version: 24.12.4
......@@ -1162,15 +1163,15 @@ importers:
11621163 specifier: workspace:*
11631164 version: link:../shared
11641165 effect:
1165 specifier: 4.0.1
1166 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1166 specifier: 4.0.2
1167 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
11671168 devDependencies:
11681169 '@effect/platform-node':
1169 specifier: 4.0.1
1170 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
1170 specifier: 4.0.2
1171 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
11711172 '@effect/vitest':
1172 specifier: 4.0.1
1173 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1173 specifier: 4.0.2
1174 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
11741175 '@t3tools/provider-testing':
11751176 specifier: workspace:*
11761177 version: link:../provider-testing
......@@ -1193,15 +1194,15 @@ importers:
11931194 specifier: workspace:*
11941195 version: link:../shared
11951196 effect:
1196 specifier: 4.0.1
1197 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1197 specifier: 4.0.2
1198 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
11981199 devDependencies:
11991200 '@effect/platform-node':
1200 specifier: 4.0.1
1201 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
1201 specifier: 4.0.2
1202 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
12021203 '@effect/vitest':
1203 specifier: 4.0.1
1204 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1204 specifier: 4.0.2
1205 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
12051206 '@types/node':
12061207 specifier: 24.12.4
12071208 version: 24.12.4
......@@ -1227,18 +1228,18 @@ importers:
12271228 specifier: workspace:*
12281229 version: link:../shared
12291230 effect:
1230 specifier: 4.0.1
1231 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1231 specifier: 4.0.2
1232 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
12321233 yaml:
12331234 specifier: ^2.9.0
12341235 version: 2.9.0
12351236 devDependencies:
12361237 '@effect/platform-node':
1237 specifier: 4.0.1
1238 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
1238 specifier: 4.0.2
1239 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
12391240 '@effect/vitest':
1240 specifier: 4.0.1
1241 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1241 specifier: 4.0.2
1242 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
12421243 '@t3tools/provider-testing':
12431244 specifier: workspace:*
12441245 version: link:../provider-testing
......@@ -1264,15 +1265,15 @@ importers:
12641265 specifier: workspace:*
12651266 version: link:../shared
12661267 effect:
1267 specifier: 4.0.1
1268 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1268 specifier: 4.0.2
1269 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
12691270 devDependencies:
12701271 '@effect/platform-node':
1271 specifier: 4.0.1
1272 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
1272 specifier: 4.0.2
1273 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
12731274 '@effect/vitest':
1274 specifier: 4.0.1
1275 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1275 specifier: 4.0.2
1276 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
12761277 '@t3tools/provider-testing':
12771278 specifier: workspace:*
12781279 version: link:../provider-testing
......@@ -1301,15 +1302,15 @@ importers:
13011302 specifier: workspace:*
13021303 version: link:../shared
13031304 effect:
1304 specifier: 4.0.1
1305 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1305 specifier: 4.0.2
1306 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
13061307 devDependencies:
13071308 '@effect/platform-node':
1308 specifier: 4.0.1
1309 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
1309 specifier: 4.0.2
1310 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
13101311 '@effect/vitest':
1311 specifier: 4.0.1
1312 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1312 specifier: 4.0.2
1313 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
13131314 '@t3tools/provider-testing':
13141315 specifier: workspace:*
13151316 version: link:../provider-testing
......@@ -1327,7 +1328,7 @@ importers:
13271328 version: 1.15.13
13281329 '@opencode/client':
13291330 specifier: 2.0.23
1330 version: 2.0.23(patch_hash=f725d6e6d9af0d56dc6ed71b863518fbfc751af1773cff2311209d2c404cf4cd)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
1331 version: 2.0.23(patch_hash=f725d6e6d9af0d56dc6ed71b863518fbfc751af1773cff2311209d2c404cf4cd)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13311332 '@opencode/protocol':
13321333 specifier: 2.0.23
13331334 version: 2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685)
......@@ -1344,15 +1345,15 @@ importers:
13441345 specifier: workspace:*
13451346 version: link:../shared
13461347 effect:
1347 specifier: 4.0.1
1348 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1348 specifier: 4.0.2
1349 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
13491350 devDependencies:
13501351 '@effect/platform-node':
1351 specifier: 4.0.1
1352 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
1352 specifier: 4.0.2
1353 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
13531354 '@effect/vitest':
1354 specifier: 4.0.1
1355 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1355 specifier: 4.0.2
1356 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
13561357 '@t3tools/provider-testing':
13571358 specifier: workspace:*
13581359 version: link:../provider-testing
......@@ -1375,15 +1376,15 @@ importers:
13751376 specifier: workspace:*
13761377 version: link:../shared
13771378 effect:
1378 specifier: 4.0.1
1379 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1379 specifier: 4.0.2
1380 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
13801381 devDependencies:
13811382 '@effect/platform-node':
1382 specifier: 4.0.1
1383 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
1383 specifier: 4.0.2
1384 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
13841385 '@effect/vitest':
1385 specifier: 4.0.1
1386 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1386 specifier: 4.0.2
1387 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
13871388 '@t3tools/provider-testing':
13881389 specifier: workspace:*
13891390 version: link:../provider-testing
......@@ -1397,8 +1398,8 @@ importers:
13971398 packages/provider-testing:
13981399 dependencies:
13991400 '@effect/platform-node':
1400 specifier: 4.0.1
1401 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
1401 specifier: 4.0.2
1402 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
14021403 '@t3tools/contracts':
14031404 specifier: workspace:*
14041405 version: link:../contracts
......@@ -1409,12 +1410,12 @@ importers:
14091410 specifier: workspace:*
14101411 version: link:../shared
14111412 effect:
1412 specifier: 4.0.1
1413 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1413 specifier: 4.0.2
1414 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
14141415 devDependencies:
14151416 '@effect/vitest':
1416 specifier: 4.0.1
1417 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1417 specifier: 4.0.2
1418 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
14181419 '@types/node':
14191420 specifier: 24.12.4
14201421 version: 24.12.4
......@@ -1434,8 +1435,8 @@ importers:
14341435 specifier: workspace:*
14351436 version: link:../contracts
14361437 effect:
1437 specifier: 4.0.1
1438 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1438 specifier: 4.0.2
1439 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
14391440 jose:
14401441 specifier: 'catalog:'
14411442 version: 6.2.2
......@@ -1474,11 +1475,11 @@ importers:
14741475 version: 2.9.0
14751476 devDependencies:
14761477 '@effect/platform-node':
1477 specifier: 4.0.1
1478 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
1478 specifier: 4.0.2
1479 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
14791480 '@effect/vitest':
1480 specifier: 4.0.1
1481 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1481 specifier: 4.0.2
1482 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
14821483 '@types/node':
14831484 specifier: 24.12.4
14841485 version: 24.12.4
......@@ -1498,15 +1499,15 @@ importers:
14981499 specifier: workspace:*
14991500 version: link:../shared
15001501 effect:
1501 specifier: 4.0.1
1502 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1502 specifier: 4.0.2
1503 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
15031504 devDependencies:
15041505 '@effect/platform-node':
1505 specifier: 4.0.1
1506 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
1506 specifier: 4.0.2
1507 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
15071508 '@effect/vitest':
1508 specifier: 4.0.1
1509 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1509 specifier: 4.0.2
1510 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
15101511 '@types/node':
15111512 specifier: 24.12.4
15121513 version: 24.12.4
......@@ -1520,12 +1521,12 @@ importers:
15201521 specifier: workspace:*
15211522 version: link:../shared
15221523 effect:
1523 specifier: 4.0.1
1524 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1524 specifier: 4.0.2
1525 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
15251526 devDependencies:
15261527 '@effect/vitest':
1527 specifier: 4.0.1
1528 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1528 specifier: 4.0.2
1529 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
15291530 '@types/node':
15301531 specifier: 24.12.4
15311532 version: 24.12.4
......@@ -1536,8 +1537,8 @@ importers:
15361537 scripts:
15371538 dependencies:
15381539 '@effect/platform-node':
1539 specifier: 4.0.1
1540 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
1540 specifier: 4.0.2
1541 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
15411542 '@electron/asar':
15421543 specifier: ^4.3.0
15431544 version: 4.3.0
......@@ -1551,8 +1552,8 @@ importers:
15511552 specifier: workspace:*
15521553 version: link:../packages/tailscale
15531554 effect:
1554 specifier: 4.0.1
1555 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
1555 specifier: 4.0.2
1556 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
15561557 pngjs:
15571558 specifier: 7.0.0
15581559 version: 7.0.0
......@@ -1561,8 +1562,8 @@ importers:
15611562 version: 0.35.4(@types/node@24.12.4)
15621563 devDependencies:
15631564 '@effect/vitest':
1564 specifier: 4.0.1
1565 version: 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1565 specifier: 4.0.2
1566 version: 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
15661567 '@types/pngjs':
15671568 specifier: 6.0.5
15681569 version: 6.0.5
......@@ -1606,8 +1607,8 @@ packages:
16061607 peerDependencies:
16071608 '@distilled.cloud/cloudflare': 1.0.0-rc.13
16081609 '@effect/platform-bun': ^4.0.0
1609 '@effect/platform-node': 4.0.1
1610 effect: 4.0.1
1610 '@effect/platform-node': 4.0.2
1611 effect: 4.0.2
16111612 rolldown: 1.2.5
16121613 vite: ^7.0.0 || ^8.0.0
16131614 peerDependenciesMeta:
......@@ -1623,7 +1624,7 @@ packages:
16231624 '@alchemy.run/floci@2.0.0-beta.80':
16241625 resolution: {integrity: sha512-gtUXFitVY9pSQQYCDtSVyjfd5YOKY3Wleg3WCG5yWno7/l7xBo4kfOMbM63tzWnmka9LewVSITbMfwnC4D/73A==}
16251626 peerDependencies:
1626 effect: 4.0.1
1627 effect: 4.0.2
16271628
16281629 '@alchemy.run/node-utils@2.0.0-beta.80':
16291630 resolution: {integrity: sha512-uOhVDQZTjwh1AU4mrk0wB5rQaziTwSrVMfqwFP8wALfU//nveu4goOWZimHtqytXiybENh+iEbALH25EFAkc7A==}
......@@ -2661,82 +2662,82 @@ packages:
26612662 '@distilled.cloud/acme@1.0.0-rc.13':
26622663 resolution: {integrity: sha512-3rmzH125jQxk0zpCvXGNEybSaqpAolyCX+8LWDDrXf+wIKs67GflkJyQLjOOh0lKARe29hdUZGgqEbbvpp0LNA==}
26632664 peerDependencies:
2664 effect: 4.0.1
2665 effect: 4.0.2
26652666
26662667 '@distilled.cloud/aws@1.0.0-rc.13':
26672668 resolution: {integrity: sha512-6ZGcp0LkniB0I2l8Gr7vKRQgTZTch0/07iuvuMZv9Nu+rWwNuZG9VHTUdlIoarWgCHFUNN8yvSYBGOjaeN99tQ==}
26682669 peerDependencies:
2669 effect: 4.0.1
2670 effect: 4.0.2
26702671
26712672 '@distilled.cloud/axiom@1.0.0-rc.13':
26722673 resolution: {integrity: sha512-aRoJtvfXgWi5dtfjuJvDwnArRKvv2MPYHCxYeZcxZbqe62IaQA5yu/khft7TJvxeDyJoSDnVXZu3RyJjNmBA4g==}
26732674 peerDependencies:
2674 effect: 4.0.1
2675 effect: 4.0.2
26752676
26762677 '@distilled.cloud/cloudflare@1.0.0-rc.13':
26772678 resolution: {integrity: sha512-Py5FoA6azyYExDb91VaeC+9x+ravOBSRhXeUmpcQjCtgqmOdiXgc2YZGMMPI68DF+kMuHRVIrR+2uRZNDOhYjw==}
26782679 peerDependencies:
2679 effect: 4.0.1
2680 effect: 4.0.2
26802681
26812682 '@distilled.cloud/core@1.0.0-rc.13':
26822683 resolution: {integrity: sha512-RYyrxW+F5zrTuu1UWV/JoycholBCIkXIusYJdDniDwCdmbjdKGl07KlkkeeY774uBawNGf+pt1ESNGeLVnNHsg==}
26832684 peerDependencies:
2684 effect: 4.0.1
2685 effect: 4.0.2
26852686
26862687 '@distilled.cloud/doppler@1.0.0-rc.13':
26872688 resolution: {integrity: sha512-GgOEUCc4Bx0C+lYNfZ4OqaA3ULvqDUQTJC8gobSh1L0jfrWclv/kRcSr43v4IXyStld+saUvDfDZgeGzlE74OA==}
26882689 peerDependencies:
2689 effect: 4.0.1
2690 effect: 4.0.2
26902691
26912692 '@distilled.cloud/fly-io@1.0.0-rc.13':
26922693 resolution: {integrity: sha512-Ipp+9nvs+PzqwDPhZq2/BEHNUeWzXKhrvjfT/eBLFHo/QpH0HgdMH8MSQe6/LGszZoormwA6ZrTv2wxaFO7ZiQ==}
26932694 peerDependencies:
2694 effect: 4.0.1
2695 effect: 4.0.2
26952696
26962697 '@distilled.cloud/gcp@1.0.0-rc.13':
26972698 resolution: {integrity: sha512-un8jqil9ejt96oN+OfEDUsbrEOpC6Ut4B/73DqKDttvt0Btal1OeBNTTQsftVCpeEzXAvkYKGRIT2AeEu1J5jA==}
26982699 peerDependencies:
2699 effect: 4.0.1
2700 effect: 4.0.2
27002701
27012702 '@distilled.cloud/hetzner@1.0.0-rc.13':
27022703 resolution: {integrity: sha512-FvqofgMypNkeZbnjGjWMZqvqGd9GxcMzdbi/6JrbcPaHMJG+CCBGt/mAa7mLlEovzwVaGCsBnOXJ6rP5pZjB4Q==}
27032704 peerDependencies:
2704 effect: 4.0.1
2705 effect: 4.0.2
27052706
27062707 '@distilled.cloud/infisical@1.0.0-rc.13':
27072708 resolution: {integrity: sha512-Zz8ksA/Y8UUUnWag2UBxB5WYA6wLqOS78ugWJ3cOr9Ot+4bC0NJYWanq35uFInozLXWhun84USU2wOI+mdwQUQ==}
27082709 peerDependencies:
2709 effect: 4.0.1
2710 effect: 4.0.2
27102711
27112712 '@distilled.cloud/neon@1.0.0-rc.13':
27122713 resolution: {integrity: sha512-2JvbBFj1kBfkDVPnWcJZ7TJ1cJwWBtScAY7SNJ2qNBUuAK1Wf2kjJXU0/j16eCJ48BQigPArQFWL51wVu/EUQQ==}
27132714 peerDependencies:
2714 effect: 4.0.1
2715 effect: 4.0.2
27152716
27162717 '@distilled.cloud/planetscale@1.0.0-rc.13':
27172718 resolution: {integrity: sha512-AM97YGRnDfZdqsxFgQMQ83p7ZlRqxS6/foTTJA5P590UMbbOyrQyFyd33BD0agul8a3ngZde3Oej6v7BN55aWw==}
27182719 peerDependencies:
2719 effect: 4.0.1
2720 effect: 4.0.2
27202721
27212722 '@distilled.cloud/prisma@1.0.0-rc.13':
27222723 resolution: {integrity: sha512-+UmHSp9JV8XQl5t5tTdQBY+dWZ9abrEoc7leYEctA0Ar1TrKZEl2EaeQDoumrg4RyGaacRlirEbxaDFI4SOPtQ==}
27232724 peerDependencies:
2724 effect: 4.0.1
2725 effect: 4.0.2
27252726
27262727 '@distilled.cloud/railway@1.0.0-rc.13':
27272728 resolution: {integrity: sha512-yXalRS3GFLo3hWM0HXptqudi23NVCM4FRD20db2/Ob9FFcNrMJik1fopv+74HOiV+BuxfkCP609KsEK6LVdB/g==}
27282729 peerDependencies:
2729 effect: 4.0.1
2730 effect: 4.0.2
27302731
27312732 '@distilled.cloud/stripe@1.0.0-rc.13':
27322733 resolution: {integrity: sha512-jLTJ1mg4U39lHZb9EGYBJLR91yB3LSG6fVxix+r1BbqaTovWzE+NuJ7fu9fRSeax9jRAqsGLLxe9IxJbOtwQnQ==}
27332734 peerDependencies:
2734 effect: 4.0.1
2735 effect: 4.0.2
27352736
27362737 '@distilled.cloud/zerossl@1.0.0-rc.13':
27372738 resolution: {integrity: sha512-dnxhg39lZjpTdZbHCVYPoUC9E2r8eSHbqiYDhSq2EurVPJcc9YRXlxZR1bP1nniSp078XV8GA+aUECt/Z56aQg==}
27382739 peerDependencies:
2739 effect: 4.0.1
2740 effect: 4.0.2
27402741
27412742 '@dnd-kit/accessibility@3.1.1':
27422743 resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==}
......@@ -2769,52 +2770,52 @@ packages:
27692770 '@drizzle-team/brocli@0.12.0':
27702771 resolution: {integrity: sha512-mlUE+rZ8CatQekLhnaiN91Iemdd+e2gFKooGlnRB3oPTL3VghLfX24dx7HrzMNeC1JrIB/0kpsfyty3f5HNfxQ==}
27712772
2772 '@effect/atom-react@4.0.1':
2773 resolution: {integrity: sha512-V/vcbFCVY2AV7PvjhmOP37Cr4NofrtxBBGW6M1ckBIBxmpi3sMwdPTxj2obPNE4Ho3gkeEQzRC9zEIQ4BDNdQg==}
2773 '@effect/atom-react@4.0.2':
2774 resolution: {integrity: sha512-rg9xnPHzjURhKhOm+bKnYitPPQC02m6R7ZmJLNdxtrNCgDQ9fSOPqZHN5W/GzUw+OsvplKSvaBe/JSQejeYKYA==}
27742775 peerDependencies:
2775 effect: 4.0.1
2776 effect: 4.0.2
27762777 react: '>=19.0.0 <20.0.0'
27772778 scheduler: '>=0.25.0 <0.28.0'
27782779
2779 '@effect/openapi-generator@4.0.1':
2780 resolution: {integrity: sha512-UWlXX1cjP68FDQyc+mlwfh34OpCKlnAREFpWk9DG6fzmw/w/+FvIyadZvS1y7G2b8U2e/khO0f3p5ak0DTC9Ng==}
2780 '@effect/openapi-generator@4.0.2':
2781 resolution: {integrity: sha512-rSH4VFCPs8d0LnB4QMPaGpT3Z3KrF7mCV+hvpv8FDXerImpYMSEzaLN5WWB7LG+mOOcTWIa3KYWvBBf0kH/JrQ==}
27812782 hasBin: true
27822783 peerDependencies:
2783 '@effect/platform-node': 4.0.1
2784 effect: 4.0.1
2784 '@effect/platform-node': 4.0.2
2785 effect: 4.0.2
27852786
2786 '@effect/platform-node-shared@4.0.1':
2787 resolution: {integrity: sha512-VanaejudEhKJ4mpmqnEzdncVUhN6sGSO9ZDND54mRxAlZxj+4dYAWjDTYAy9o4tJo9aALeP2U8cVcOFzEdSeLg==}
2787 '@effect/platform-node-shared@4.0.2':
2788 resolution: {integrity: sha512-xn8aDw9p/QUPt1Yi0C3HUMcycT+MjHfAe19FDUDrUuzcwq0xxskkamVSqbdykF/Dsuus4aZTsCBZA/vkhHIfbQ==}
27882789 engines: {node: '>=18.0.0'}
27892790 peerDependencies:
2790 effect: 4.0.1
2791 effect: 4.0.2
27912792
2792 '@effect/platform-node@4.0.1':
2793 resolution: {integrity: sha512-FT0Fu5LO0/XP9zBpj0HqrtJNLluK4StNKqf6TSulUsjp8FPBsDVXGJiDuyoN5J2yVMT7tgvhxSwaDcObWVRIaQ==}
2793 '@effect/platform-node@4.0.2':
2794 resolution: {integrity: sha512-RWesXBQStnFHdD465gR5thFKgXO7FSyCKRZ56nWXB7PedNVzr8vV0nb/3MULLdri493sMz/b/pmGBTb6K8cBjQ==}
27942795 engines: {node: '>=18.0.0'}
27952796 peerDependencies:
2796 effect: 4.0.1
2797 effect: 4.0.2
27972798 redis: '>=5.0.0 <7.0.0'
27982799
27992800 '@effect/sql-d1@4.0.0':
28002801 resolution: {integrity: sha512-pmkzncZCGD6CLyvc89keEBU85h+gHVCu/LKQnThd+ruYSUbG0R9jYA+lnk3R8Djp0wQW6SbsbmHQuhopIYyo3Q==}
28012802 peerDependencies:
2802 effect: 4.0.1
2803 effect: 4.0.2
28032804
2804 '@effect/sql-pg@4.0.1':
2805 resolution: {integrity: sha512-X5aqOxHNWqVXL+vyTQZLYDip65lm5rrZHuNkWyyr672iup1tjYAs5Dn9tHR5h1t0blpJ57j8Ng5G5AUQ8teIqA==}
2805 '@effect/sql-pg@4.0.2':
2806 resolution: {integrity: sha512-i2N5F0L5s1S8Nx2I8V7k+awBinP26b5xiiHL1zn5b6RALNnloiU7FK1yS4dAkmqG9B0EcOVxvJrIpoMWwrB4hw==}
28062807 peerDependencies:
2807 effect: 4.0.1
2808 effect: 4.0.2
28082809
28092810 '@effect/sql-sqlite-bun@4.0.0-rc.112':
28102811 resolution: {integrity: sha512-EqR8pWZo3VzedRvP6qo5HcfqNmFvSa+sQLWQl3oBMx2KY1FCc8NYjep79wYjNkW0qABnffrPUXCMTOncd1A+5g==}
28112812 peerDependencies:
2812 effect: 4.0.1
2813 effect: 4.0.2
28132814
2814 '@effect/sql-sqlite-do@4.0.1':
2815 resolution: {integrity: sha512-tS+qQok3xKsycnnhvIDX+6nvlM4Y2ouvru3voOzxtDQqX96NSOMX2xReLf4Feb6GN3jnzgEEtVGDDWk3YLrpsg==}
2815 '@effect/sql-sqlite-do@4.0.2':
2816 resolution: {integrity: sha512-dbKYFZSfdaIbbnYgvu432f9ISi/nSaXCYRfoK0HWKB8NwqI7hspaFvc4cW6ETDJyaoCDJzKzBQxrvCmA/T0XHw==}
28162817 peerDependencies:
2817 effect: 4.0.1
2818 effect: 4.0.2
28182819
28192820 '@effect/tsgo-darwin-arm64@0.46.1':
28202821 resolution: {integrity: sha512-ErehNqI9p8me4XKO8N4bzdDWgBbSNlJ3CIZGfXoAW6Fo4Oo7x4ZbZV7KNsMSn9aJSiUUOQUoXjGBdslU5OYMdw==}
......@@ -2855,10 +2856,10 @@ packages:
28552856 resolution: {integrity: sha512-DMcBCg5nWLufejRlyqFEkXmbtaLUJ56NKny6L1LTtimvz0U3VNj9H6ZUXV4WeeWvJzVyL0y7G2wsCBAFUgy1jw==}
28562857 hasBin: true
28572858
2858 '@effect/vitest@4.0.1':
2859 resolution: {integrity: sha512-DbY9kf/018zBxRIX7rJwBnPVPzSarnUpcshm0vfYPFiDkSa7AFrXTh2BlDNUbrdrmqcIOBhVZ7GkEtxf8WiQrg==}
2859 '@effect/vitest@4.0.2':
2860 resolution: {integrity: sha512-Zb72nu7iUy3rNdBp9J1Xu5oUQGwJ8cOYsUwmYgujj88aqyvASRDjOS01SjlcPViqf77csduetKdCJTVndMNfzw==}
28602861 peerDependencies:
2861 effect: 4.0.1
2862 effect: 4.0.2
28622863
28632864 '@electric-sql/pglite@0.3.15':
28642865 resolution: {integrity: sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==}
......@@ -4200,7 +4201,7 @@ packages:
42004201 '@opencode/client@2.0.23':
42014202 resolution: {integrity: sha512-tHfYu7sKNxFu2dZ7Pu5vZG4T8GHqU71ZCsXHZ/RoI0LLdG7t2zwePHWR9aNbcSP+jDUGyaQlzr5utC9Uduczvg==}
42024203 peerDependencies:
4203 effect: 4.0.1
4204 effect: 4.0.2
42044205 solid-js: '>=1.9.0'
42054206 peerDependenciesMeta:
42064207 effect:
......@@ -6113,8 +6114,8 @@ packages:
61136114 '@types/whatwg-url@11.0.5':
61146115 resolution: {integrity: sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==}
61156116
6116 '@types/ws@8.18.1':
6117 resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}
6117 '@types/ws@8.18.2':
6118 resolution: {integrity: sha512-67MQl+fpWKVTT1NYdnmo3U4sc/xPo/zQBncVnI74qmQa0z/b+1g6iYqNmGCPbxO+zz2aklb08a0oHfegiVd0/w==}
61186119
61196120 '@types/yargs-parser@21.0.3':
61206121 resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
......@@ -6766,15 +6767,15 @@ packages:
67666767 '@alchemy.run/frontend-frameworks': 2.0.0-beta.80
67676768 '@aws/durable-execution-sdk-js': ^2.1.0
67686769 '@effect/platform-bun': ^4.0.0
6769 '@effect/platform-node': 4.0.1
6770 '@effect/platform-node': 4.0.2
67706771 '@effect/sql-mysql2': ^4.0.0
6771 '@effect/sql-pg': 4.0.1
6772 '@effect/vitest': 4.0.1
6772 '@effect/sql-pg': 4.0.2
6773 '@effect/vitest': 4.0.2
67736774 '@prisma/orm-postgres': 8.0.0-rc.11
67746775 '@vercel/nft': ^1.10.2
67756776 drizzle-kit: 1.0.0-rc.5-ab785fc
67766777 drizzle-orm: 1.0.0-rc.5-ab785fc
6777 effect: 4.0.1
6778 effect: 4.0.2
67786779 mongodb: ^6.10.0
67796780 mysql2: ^3.24.2
67806781 pg: ^8.22.0
......@@ -7804,7 +7805,7 @@ packages:
78047805 '@effect/sql-d1': '>=4.0.0-beta.105 || >=4.0.0'
78057806 '@effect/sql-libsql': '>=4.0.0-beta.105 || >=4.0.0'
78067807 '@effect/sql-mysql2': '>=4.0.0-beta.105 || >=4.0.0'
7807 '@effect/sql-pg': 4.0.1
7808 '@effect/sql-pg': 4.0.2
78087809 '@effect/sql-pglite': '>=4.0.0-beta.105 || >=4.0.0'
78097810 '@effect/sql-sqlite-bun': '>=4.0.0-beta.105 || >=4.0.0'
78107811 '@effect/sql-sqlite-do': '>=4.0.0-beta.105 || >=4.0.0'
......@@ -7835,7 +7836,7 @@ packages:
78357836 arktype: '>=2.0.0'
78367837 better-sqlite3: '>=9.3.0'
78377838 bun-types: '*'
7838 effect: 4.0.1
7839 effect: 4.0.2
78397840 expo-sqlite: '>=14.0.0'
78407841 minipg: '>=0.2.0'
78417842 mssql: ^11.0.1
......@@ -7962,8 +7963,8 @@ packages:
79627963 ee-first@1.1.1:
79637964 resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
79647965
7965 effect@4.0.1:
7966 resolution: {integrity: sha512-b1VlQG9g8fwxE5QnIZuPoOP/0MsqHJSRKxUijjoM80E5q95FXrX5yWtY5XI8G+GJsBQAVSDbLS458z9a++uVvw==}
7966 effect@4.0.2:
7967 resolution: {integrity: sha512-YeYnLqSFrL4+tCOXRrfNP03w8FILoF/wDl+ukraJAGzXrjcS383W7LAAvGBbLatEyktmLxRq+9xJinx7QzXW5A==}
79677968
79687969 ejs@3.1.10:
79697970 resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
......@@ -12047,14 +12048,14 @@ snapshots:
1204712048 dependencies:
1204812049 json-schema: 0.4.0
1204912050
12050 '@alchemy.run/cloudflare-runtime@2.0.0-beta.80(@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)))(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6))(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@1.0.0(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(rolldown@1.2.5)(typescript@7.0.2)':
12051 '@alchemy.run/cloudflare-runtime@2.0.0-beta.80(@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)))(@effect/platform-node@4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6))(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@1.0.0(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(rolldown@1.2.5)(typescript@7.0.2)':
1205112052 dependencies:
1205212053 '@alchemy.run/node-utils': 2.0.0-beta.80
1205312054 '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260918.1)
12054 '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
12055 '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
1205512056 '@puppeteer/browsers': 3.2.2(yauzl@3.4.0)
1205612057 capnp-es: 0.0.16(typescript@7.0.2)
12057 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
12058 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1205812059 magic-string: 0.30.21
1205912060 mime: 4.1.0
1206012061 sharp: 0.35.4(@types/node@24.12.4)
......@@ -12062,7 +12063,7 @@ snapshots:
1206212063 workerd: 1.20260918.1
1206312064 yauzl: 3.4.0
1206412065 optionalDependencies:
12065 '@effect/platform-node': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
12066 '@effect/platform-node': 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
1206612067 rolldown: 1.2.5
1206712068 vite: '@voidzero-dev/vite-plus-core@1.0.0(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0)'
1206812069 transitivePeerDependencies:
......@@ -12070,9 +12071,9 @@ snapshots:
1207012071 - proxy-agent
1207112072 - typescript
1207212073
12073 '@alchemy.run/floci@2.0.0-beta.80(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
12074 '@alchemy.run/floci@2.0.0-beta.80(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1207412075 dependencies:
12075 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
12076 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1207612077
1207712078 '@alchemy.run/node-utils@2.0.0-beta.80':
1207812079 dependencies:
......@@ -13354,86 +13355,86 @@ snapshots:
1335413355
1335513356 '@dimforge/rapier3d-compat@0.12.0': {}
1335613357
13357 '@distilled.cloud/acme@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13358 '@distilled.cloud/acme@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1335813359 dependencies:
13359 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
13360 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13360 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13361 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1336113362
13362 '@distilled.cloud/aws@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13363 '@distilled.cloud/aws@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1336313364 dependencies:
13364 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
13365 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
1336513366 '@smithy/types': 4.18.0
13366 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13367 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1336713368
13368 '@distilled.cloud/axiom@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13369 '@distilled.cloud/axiom@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1336913370 dependencies:
13370 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
13371 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13371 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13372 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1337213373
13373 '@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13374 '@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1337413375 dependencies:
13375 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
13376 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13376 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13377 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1337713378
13378 '@distilled.cloud/core@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13379 '@distilled.cloud/core@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1337913380 dependencies:
13380 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13381 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1338113382 graphql: 16.11.0
1338213383
13383 '@distilled.cloud/doppler@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13384 '@distilled.cloud/doppler@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1338413385 dependencies:
13385 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
13386 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13386 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13387 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1338713388
13388 '@distilled.cloud/fly-io@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13389 '@distilled.cloud/fly-io@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1338913390 dependencies:
13390 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
13391 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13391 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13392 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1339213393
13393 '@distilled.cloud/gcp@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13394 '@distilled.cloud/gcp@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1339413395 dependencies:
13395 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
13396 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13396 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13397 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1339713398
13398 '@distilled.cloud/hetzner@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13399 '@distilled.cloud/hetzner@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1339913400 dependencies:
13400 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
13401 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13401 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13402 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1340213403
13403 '@distilled.cloud/infisical@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13404 '@distilled.cloud/infisical@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1340413405 dependencies:
13405 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
13406 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13406 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13407 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1340713408
13408 '@distilled.cloud/neon@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13409 '@distilled.cloud/neon@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1340913410 dependencies:
13410 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
13411 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13411 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13412 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1341213413
13413 '@distilled.cloud/planetscale@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13414 '@distilled.cloud/planetscale@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1341413415 dependencies:
13415 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
13416 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13416 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13417 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1341713418
13418 '@distilled.cloud/prisma@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13419 '@distilled.cloud/prisma@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1341913420 dependencies:
13420 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
13421 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13421 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13422 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1342213423
13423 '@distilled.cloud/railway@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13424 '@distilled.cloud/railway@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1342413425 dependencies:
13425 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
13426 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13426 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13427 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1342713428
13428 '@distilled.cloud/stripe@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13429 '@distilled.cloud/stripe@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1342913430 dependencies:
13430 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
13431 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13431 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13432 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1343213433
13433 '@distilled.cloud/zerossl@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13434 '@distilled.cloud/zerossl@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1343413435 dependencies:
13435 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
13436 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13436 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13437 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1343713438
1343813439 '@dnd-kit/accessibility@3.1.1(react@19.2.6)':
1343913440 dependencies:
......@@ -13469,62 +13470,62 @@ snapshots:
1346913470
1347013471 '@drizzle-team/brocli@0.12.0': {}
1347113472
13472 '@effect/atom-react@4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(react@19.2.6)(scheduler@0.28.0)':
13473 '@effect/atom-react@4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(react@19.2.6)(scheduler@0.28.0)':
1347313474 dependencies:
13474 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13475 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1347513476 react: 19.2.6
1347613477 scheduler: 0.28.0
1347713478
13478 '@effect/atom-react@4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(react@19.3.0)(scheduler@0.28.0)':
13479 '@effect/atom-react@4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(react@19.3.0)(scheduler@0.28.0)':
1347913480 dependencies:
13480 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13481 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1348113482 react: 19.3.0
1348213483 scheduler: 0.28.0
1348313484
13484 '@effect/openapi-generator@4.0.1(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(encoding@0.1.13)':
13485 '@effect/openapi-generator@4.0.2(@effect/platform-node@4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(encoding@0.1.13)':
1348513486 dependencies:
13486 '@effect/platform-node': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
13487 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13487 '@effect/platform-node': 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
13488 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1348813489 swagger2openapi: 7.0.8(encoding@0.1.13)
1348913490 transitivePeerDependencies:
1349013491 - encoding
1349113492
13492 '@effect/platform-node-shared@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(utf-8-validate@6.0.6)':
13493 '@effect/platform-node-shared@4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(utf-8-validate@6.0.6)':
1349313494 dependencies:
13494 '@types/ws': 8.18.1
13495 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13495 '@types/ws': 8.18.2
13496 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1349613497 ws: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1349713498 transitivePeerDependencies:
1349813499 - bufferutil
1349913500 - utf-8-validate
1350013501
13501 '@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)':
13502 '@effect/platform-node@4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)':
1350213503 dependencies:
13503 '@effect/platform-node-shared': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(utf-8-validate@6.0.6)
13504 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13504 '@effect/platform-node-shared': 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(utf-8-validate@6.0.6)
13505 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1350513506 redis: 6.2.1
1350613507 undici: 8.11.2
1350713508 transitivePeerDependencies:
1350813509 - bufferutil
1350913510 - utf-8-validate
1351013511
13511 '@effect/sql-d1@4.0.0(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13512 '@effect/sql-d1@4.0.0(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1351213513 dependencies:
1351313514 '@cloudflare/workers-types': 5.20261004.1
13514 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13515 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1351513516
13516 '@effect/sql-pg@4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13517 '@effect/sql-pg@4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1351713518 dependencies:
13518 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13519 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1351913520
13520 '@effect/sql-sqlite-bun@4.0.0-rc.112(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13521 '@effect/sql-sqlite-bun@4.0.0-rc.112(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1352113522 dependencies:
13522 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13523 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1352313524 optional: true
1352413525
13525 '@effect/sql-sqlite-do@4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
13526 '@effect/sql-sqlite-do@4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1352613527 dependencies:
13527 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13528 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1352813529
1352913530 '@effect/tsgo-darwin-arm64@0.46.1':
1353013531 optional: true
......@@ -13557,9 +13558,9 @@ snapshots:
1355713558 '@effect/tsgo-win32-arm64': 0.46.1
1355813559 '@effect/tsgo-win32-x64': 0.46.1
1355913560
13560 '@effect/vitest@4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)':
13561 '@effect/vitest@4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)':
1356113562 dependencies:
13562 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
13563 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1356313564 vite-plus: 1.0.0(@types/node@24.12.4)(@vitest/ui@5.0.1(vitest@5.0.1))(bufferutil@4.1.0)(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1356413565 transitivePeerDependencies:
1356513566 - '@arethetypeswrong/core'
......@@ -14673,7 +14674,7 @@ snapshots:
1467314674
1467414675 '@libsql/isomorphic-ws@0.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6)':
1467514676 dependencies:
14676 '@types/ws': 8.18.1
14677 '@types/ws': 8.18.2
1467714678 ws: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1467814679 transitivePeerDependencies:
1467914680 - bufferutil
......@@ -14973,22 +14974,22 @@ snapshots:
1497314974 dependencies:
1497414975 cross-spawn: 7.0.6
1497514976
14976 '@opencode/client@2.0.23(patch_hash=f725d6e6d9af0d56dc6ed71b863518fbfc751af1773cff2311209d2c404cf4cd)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))':
14977 '@opencode/client@2.0.23(patch_hash=f725d6e6d9af0d56dc6ed71b863518fbfc751af1773cff2311209d2c404cf4cd)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))':
1497714978 dependencies:
1497814979 '@opencode/protocol': 2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685)
1497914980 '@opencode/schema': 2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59)
1498014981 optionalDependencies:
14981 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
14982 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1498214983
1498314984 '@opencode/protocol@2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685)':
1498414985 dependencies:
1498514986 '@opencode/schema': 2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59)
14986 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
14987 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1498714988
1498814989 '@opencode/schema@2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59)':
1498914990 dependencies:
1499014991 '@standard-schema/spec': 1.1.0
14991 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
14992 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1499214993
1499314994 '@oslojs/encoding@1.1.0': {}
1499414995
......@@ -16661,7 +16662,7 @@ snapshots:
1666116662 '@types/webidl-conversions': 7.0.3
1666216663 optional: true
1666316664
16664 '@types/ws@8.18.1':
16665 '@types/ws@8.18.2':
1666516666 dependencies:
1666616667 '@types/node': 24.12.4
1666716668
......@@ -17140,37 +17141,37 @@ snapshots:
1714017141 json-schema-traverse: 1.0.0
1714117142 require-from-string: 2.0.2
1714217143
17143 alchemy@2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(d02b4e60a6a3c6b542dfa700209cf5ce):
17144 alchemy@2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(ba3b2ceb33761bc36b3beb11002eb316):
1714417145 dependencies:
17145 '@alchemy.run/cloudflare-runtime': 2.0.0-beta.80(@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)))(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6))(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@1.0.0(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(rolldown@1.2.5)(typescript@7.0.2)
17146 '@alchemy.run/floci': 2.0.0-beta.80(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17146 '@alchemy.run/cloudflare-runtime': 2.0.0-beta.80(@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)))(@effect/platform-node@4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6))(@types/node@24.12.4)(@voidzero-dev/vite-plus-core@1.0.0(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0))(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(rolldown@1.2.5)(typescript@7.0.2)
17147 '@alchemy.run/floci': 2.0.0-beta.80(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
1714717148 '@alchemy.run/node-utils': 2.0.0-beta.80
1714817149 '@alchemy.run/sigil': 0.1.0-alpha.1(@types/react@19.3.0)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))
17149 '@distilled.cloud/acme': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17150 '@distilled.cloud/aws': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17151 '@distilled.cloud/axiom': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17152 '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17153 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17154 '@distilled.cloud/doppler': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17155 '@distilled.cloud/fly-io': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17156 '@distilled.cloud/gcp': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17157 '@distilled.cloud/hetzner': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17158 '@distilled.cloud/infisical': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17159 '@distilled.cloud/neon': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17160 '@distilled.cloud/planetscale': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17161 '@distilled.cloud/prisma': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17162 '@distilled.cloud/railway': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17163 '@distilled.cloud/stripe': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17164 '@distilled.cloud/zerossl': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17165 '@effect/sql-d1': 4.0.0(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17166 '@effect/sql-sqlite-do': 4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17150 '@distilled.cloud/acme': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17151 '@distilled.cloud/aws': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17152 '@distilled.cloud/axiom': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17153 '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17154 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17155 '@distilled.cloud/doppler': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17156 '@distilled.cloud/fly-io': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17157 '@distilled.cloud/gcp': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17158 '@distilled.cloud/hetzner': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17159 '@distilled.cloud/infisical': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17160 '@distilled.cloud/neon': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17161 '@distilled.cloud/planetscale': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17162 '@distilled.cloud/prisma': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17163 '@distilled.cloud/railway': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17164 '@distilled.cloud/stripe': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17165 '@distilled.cloud/zerossl': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17166 '@effect/sql-d1': 4.0.0(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17167 '@effect/sql-sqlite-do': 4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
1716717168 '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1716817169 '@neon/functions': 0.11.0(hono@4.13.7)
1716917170 '@octokit/rest': 22.0.1
1717017171 '@octokit/webhooks': 14.2.0
1717117172 '@types/aws-lambda': 8.10.161
1717217173 capnweb: 0.12.0
17173 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
17174 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1717417175 fflate: 0.8.3
1717517176 libsodium-wrappers: 0.8.4
1717617177 pathe: 2.0.3
......@@ -17179,11 +17180,11 @@ snapshots:
1717917180 tinyglobby: 0.2.17
1718017181 yaml: 2.9.0
1718117182 optionalDependencies:
17182 '@effect/platform-node': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(redis@6.2.1)(utf-8-validate@6.0.6)
17183 '@effect/sql-pg': 4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
17184 '@effect/vitest': 4.0.1(patch_hash=359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
17183 '@effect/platform-node': 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(redis@6.2.1)(utf-8-validate@6.0.6)
17184 '@effect/sql-pg': 4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17185 '@effect/vitest': 4.0.2(patch_hash=595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(esbuild@0.28.2)(jiti@2.7.0)(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(utf-8-validate@6.0.6)(yaml@2.9.0)
1718517186 drizzle-kit: 1.0.0-rc.5-ab785fc
17186 drizzle-orm: 1.0.0-rc.5-ab785fc(74e00612579436038985093f7f46ef5c)
17187 drizzle-orm: 1.0.0-rc.5-ab785fc(da2d75dec181fbafaeb6986c8741457b)
1718717188 mongodb: 6.21.0(@aws-sdk/credential-providers@3.1062.0)(socks@2.8.9)
1718817189 pg: 8.23.0
1718917190 vite: '@voidzero-dev/vite-plus-core@1.0.0(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(typescript@7.0.2)(unrun@0.2.39)(yaml@2.9.0)'
......@@ -18338,17 +18339,17 @@ snapshots:
1833818339 get-tsconfig: 4.14.3
1833918340 jiti: 2.7.0
1834018341
18341 drizzle-orm@1.0.0-rc.5-ab785fc(74e00612579436038985093f7f46ef5c):
18342 drizzle-orm@1.0.0-rc.5-ab785fc(da2d75dec181fbafaeb6986c8741457b):
1834218343 optionalDependencies:
1834318344 '@cloudflare/workers-types': 4.20260604.1
18344 '@effect/sql-d1': 4.0.0(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
18345 '@effect/sql-pg': 4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
18346 '@effect/sql-sqlite-bun': 4.0.0-rc.112(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
18347 '@effect/sql-sqlite-do': 4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))
18345 '@effect/sql-d1': 4.0.0(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
18346 '@effect/sql-pg': 4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
18347 '@effect/sql-sqlite-bun': 4.0.0-rc.112(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
18348 '@effect/sql-sqlite-do': 4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
1834818349 '@electric-sql/pglite': 0.3.15
1834918350 '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1835018351 bun-types: 1.3.14
18351 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)
18352 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1835218353 expo-sqlite: 58.0.8(expo@58.0.2)(react-native@0.88.0-rc.3(@babel/core@7.29.7)(@react-native/metro-config@0.88.0-rc.3(@babel/core@7.29.7)(bufferutil@4.1.0)(utf-8-validate@6.0.6))(@types/react@19.3.0)(bufferutil@4.1.0)(react@19.3.0)(utf-8-validate@6.0.6))(react@19.3.0)
1835318354 pg: 8.23.0
1835418355 valibot: 1.2.0(typescript@7.0.2)
......@@ -18370,7 +18371,7 @@ snapshots:
1837018371
1837118372 ee-first@1.1.1: {}
1837218373
18373 effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f): {}
18374 effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688): {}
1837418375
1837518376 ejs@3.1.10:
1837618377 dependencies:
pnpm-workspace.yaml+20-18
......@@ -30,14 +30,14 @@ catalog:
3030 "@clerk/expo": 4.6.8
3131 "@clerk/react": 6.16.1
3232 "@clerk/shared": 4.33.0
33 "@effect/atom-react": 4.0.1
34 "@effect/openapi-generator": 4.0.1
35 "@effect/platform-node": 4.0.1
36 "@effect/platform-node-shared": 4.0.1
37 "@effect/sql-pg": 4.0.1
38 "@effect/sql-sqlite-do": 4.0.1
33 "@effect/atom-react": 4.0.2
34 "@effect/openapi-generator": 4.0.2
35 "@effect/platform-node": 4.0.2
36 "@effect/platform-node-shared": 4.0.2
37 "@effect/sql-pg": 4.0.2
38 "@effect/sql-sqlite-do": 4.0.2
3939 "@effect/tsgo": 0.46.1
40 "@effect/vitest": 4.0.1
40 "@effect/vitest": 4.0.2
4141 "@legendapp/list": 3.3.5
4242 "@noble/curves": 1.9.1
4343 "@noble/hashes": 1.8.0
......@@ -46,7 +46,8 @@ catalog:
4646 "@tailwindcss/oxide": 4.3.3
4747 "@tailwindcss/vite": 4.3.3
4848 "@types/node": 24.12.4
49 effect: 4.0.1
49 "@types/ws": 8.18.2
50 effect: 4.0.2
5051 jose: 6.2.2
5152 lightningcss: 1.33.0
5253 tailwindcss: 4.3.3
......@@ -86,15 +87,15 @@ minimumReleaseAgeExclude:
8687 - "@distilled.cloud/core@1.0.0-rc.13"
8788 - "@distilled.cloud/neon@1.0.0-rc.13"
8889 - "@distilled.cloud/planetscale@1.0.0-rc.13"
89 - "@effect/atom-react@4.0.1"
90 - "@effect/openapi-generator@4.0.1"
91 - "@effect/platform-node-shared@4.0.1"
92 - "@effect/platform-node@4.0.1"
93 - "@effect/sql-pg@4.0.1"
94 - "@effect/sql-sqlite-do@4.0.1"
95 - "@effect/vitest@4.0.1"
90 - "@effect/atom-react@4.0.2"
91 - "@effect/openapi-generator@4.0.2"
92 - "@effect/platform-node-shared@4.0.2"
93 - "@effect/platform-node@4.0.2"
94 - "@effect/sql-pg@4.0.2"
95 - "@effect/sql-sqlite-do@4.0.2"
96 - "@effect/vitest@4.0.2"
9697 - alchemy@2.0.0-beta.80
97 - effect@4.0.1
98 - effect@4.0.2
9899 - "@legendapp/list@3.3.5"
99100 - "@expo/cli@58.1.1"
100101 - "@expo/env@2.5.1"
......@@ -252,6 +253,7 @@ overrides:
252253 tailwindcss: "catalog:"
253254 # Ranges from @effect/platform-node, jsdom, unifont, Expo and libsql otherwise
254255 # settle on two patch releases of each major. Older majors stay as they are.
256 "@types/ws@^8": "catalog:"
255257 "undici@^8": "catalog:"
256258 "ws@^8": "catalog:"
257259 vite: "catalog:"
......@@ -274,7 +276,7 @@ patchedDependencies:
274276 expo-blur@58.0.3: patches/expo-blur@58.0.3.patch
275277 expo-audio@58.0.4: patches/expo-audio@58.0.4.patch
276278 "@clerk/expo@4.6.8": patches/@clerk__expo@4.6.8.patch
277 "@effect/vitest@4.0.1": patches/@effect__vitest@4.0.1.patch
279 "@effect/vitest@4.0.2": patches/@effect__vitest@4.0.2.patch
278280 "@expo/metro-config@58.0.6": patches/@expo__metro-config@58.0.6.patch
279281 expo-sharing@58.0.13: patches/expo-sharing@58.0.13.patch
280282 expo-widgets@58.0.11: patches/expo-widgets@58.0.11.patch
......@@ -290,7 +292,7 @@ patchedDependencies:
290292 "@react-native-menu/menu@2.0.0": patches/@react-native-menu__menu@2.0.0.patch
291293 "@react-navigation/native-stack@7.17.6": patches/@react-navigation%2Fnative-stack@7.17.6.patch
292294 dbus-next@0.10.2: patches/dbus-next@0.10.2.patch
293 effect@4.0.1: patches/effect@4.0.1.patch
295 effect@4.0.2: patches/effect@4.0.2.patch
294296 node-pty@1.2.0-beta.15: patches/node-pty@1.2.0-beta.15.patch
295297 # Link http(s) URLs with a port or a single-label host. md4c otherwise requires a dotted host and stops at ':'.
296298 react-native-nitro-markdown@0.5.8: patches/react-native-nitro-markdown@0.5.8.patch