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 {...@@ -7,16 +7,17 @@ export interface SqlStatementCounter {
7}7}
88
9/**9/**
10 * Counts `sql.execute` spans, which the Effect SQL client opens once per10 * Counts the client spans the Effect SQL client opens once per statement. Our
11 * statement. Spans behave exactly as with the native tracer. Install the same11 * SQLite client names them after its `db.system.name`, `sqlite`. Spans behave
12 * counter on every runtime under test, otherwise statements run by background12 * exactly as with the native tracer. Install the same counter on every runtime
13 * reactors and statements run by request handlers land in different counters.13 * under test, otherwise statements run by background reactors and statements
14 * run by request handlers land in different counters.
14 */15 */
15export function makeSqlStatementCounter(): SqlStatementCounter {16export function makeSqlStatementCounter(): SqlStatementCounter {
16 let statements = 0;17 let statements = 0;
17 const tracer = Tracer.make({18 const tracer = Tracer.make({
18 span: (options) => {19 span: (options) => {
19 if (options.name === "sql.execute") statements += 1;20 if (options.kind === "client" && options.name === "sqlite") statements += 1;
20 return new Tracer.NativeSpan(options);21 return new Tracer.NativeSpan(options);
21 },22 },
22 });23 });
apps/server/integration/TransferBudgetReport.integration.ts+3-3
...@@ -30,9 +30,9 @@ export interface TransferBudgetRun {...@@ -30,9 +30,9 @@ export interface TransferBudgetRun {
30 /** The second client resubscribes after the turn from the cursor it held before it. */30 /** The second client resubscribes after the turn from the cursor it held before it. */
31 readonly reconnectThread: WebSocketCatchUpMeasurement;31 readonly reconnectThread: WebSocketCatchUpMeasurement;
32 readonly reconnectShell: WebSocketCatchUpMeasurement;32 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. */
34 readonly measuredTurnSqlStatements: number;34 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. */
36 readonly reconnectSqlStatements: number;36 readonly reconnectSqlStatements: number;
37}37}
3838
...@@ -200,7 +200,7 @@ export function formatTransferBudgetReport(runs: ReadonlyArray<TransferBudgetRun...@@ -200,7 +200,7 @@ export function formatTransferBudgetReport(runs: ReadonlyArray<TransferBudgetRun
200 "# T3 Code thread transfer budget",200 "# T3 Code thread transfer budget",
201 "",201 "",
202 "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.",202 "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.",
204 `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.`,204 `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.`,
205 "",205 "",
206 "| Provider | Total thread wire | Budget | Result |",206 "| 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...@@ -16,13 +16,18 @@ function span(name: string, durationMs: number, endMs: number, exitTag = "Succes
16 });16 });
17}17}
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) {
20 return JSON.stringify({24 return JSON.stringify({
21 type: "otlp-span",25 type: "otlp-span",
22 name,26 name,
23 durationMs: 1,27 durationMs: 1,
24 endTimeUnixNano: "1000000",28 endTimeUnixNano: "1000000",
25 status,29 status,
30 attributes,
26 });31 });
27}32}
2833
...@@ -91,10 +96,12 @@ it("reads failures and interrupts of browser spans from their OTLP status", () =...@@ -91,10 +96,12 @@ it("reads failures and interrupts of browser spans from their OTLP status", () =
91 const summarizer = makeTraceSpanSummary();96 const summarizer = makeTraceSpanSummary();
92 [97 [
93 browserSpan("render", { code: "2", message: "boom" }),98 browserSpan("render", { code: "2", message: "boom" }),
99 browserSpan("render", { code: "0" }, { "effect.fiber.interrupted": true }),
100 // Clients before Effect 4.0.2.
94 browserSpan("render", { code: "1", message: "Interrupted" }),101 browserSpan("render", { code: "1", message: "Interrupted" }),
95 browserSpan("render", { code: "1" }),102 browserSpan("render", { code: "1" }),
96 ].forEach(summarizer.addLine);103 ].forEach(summarizer.addLine);
97104
98 const [render] = summarizer.finish().spans;105 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]);
100});107});
apps/server/src/cli/trace.ts+11-2
...@@ -30,13 +30,18 @@ const decodeTraceSpanLine = Schema.decodeUnknownOption(...@@ -30,13 +30,18 @@ const decodeTraceSpanLine = Schema.decodeUnknownOption(
30 // Server (`effect-span`) records.30 // Server (`effect-span`) records.
31 exit: Schema.optional(Schema.Struct({ _tag: Schema.String })),31 exit: Schema.optional(Schema.Struct({ _tag: Schema.String })),
32 // Browser (`otlp-span`) records. Effect's OTLP tracer writes code "2" for32 // 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.
34 status: Schema.optional(36 status: Schema.optional(
35 Schema.Struct({37 Schema.Struct({
36 code: Schema.optional(Schema.String),38 code: Schema.optional(Schema.String),
37 message: Schema.optional(Schema.String),39 message: Schema.optional(Schema.String),
38 }),40 }),
39 ),41 ),
42 attributes: Schema.optional(
43 Schema.Struct({ "effect.fiber.interrupted": Schema.optional(Schema.Unknown) }),
44 ),
40 }),45 }),
41 ),46 ),
42);47);
...@@ -77,7 +82,11 @@ export function makeTraceSpanSummary(sinceMs = -Infinity) {...@@ -77,7 +82,11 @@ export function makeTraceSpanSummary(sinceMs = -Infinity) {
77 lastEndMs = Math.max(lastEndMs, endMs);82 lastEndMs = Math.max(lastEndMs, endMs);
78 const stats = byName.get(span.name) ?? { durations: [], interrupted: 0, failures: 0 };83 const stats = byName.get(span.name) ?? { durations: [], interrupted: 0, failures: 0 };
79 stats.durations.push(span.durationMs);84 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 ) {
81 stats.interrupted += 1;90 stats.interrupted += 1;
82 }91 }
83 if (span.exit?._tag === "Failure" || span.status?.code === "2") stats.failures += 1;92 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", () => {...@@ -53,7 +53,7 @@ describe("untraced requests", () => {
53 expect(spanNames).toEqual([]);53 expect(spanNames).toEqual([]);
5454
55 yield* client.get("/api/environment");55 yield* client.get("/api/environment");
56 expect(spanNames).toContain("http.server GET");56 expect(spanNames).toEqual(["GET"]);
57 }).pipe(57 }).pipe(
58 Effect.scoped,58 Effect.scoped,
59 Effect.provideService(59 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",...@@ -197,6 +197,9 @@ it.effect("rejects unavailable agent access before booting or opening a device",
197 Layer.provideMerge(McpServer.McpServer.layer),197 Layer.provideMerge(McpServer.McpServer.layer),
198 Layer.provideMerge(McpToolAccessTestkit.liveThreadsLayer),198 Layer.provideMerge(McpToolAccessTestkit.liveThreadsLayer),
199 Layer.provide(layerUnavailable),199 Layer.provide(layerUnavailable),
200 Layer.provide(
201 ServerConfig.layerTest(process.cwd(), { prefix: "t3-mcp-device-toolkit-test-" }),
202 ),
200 Layer.provide(NodeServices.layer),203 Layer.provide(NodeServices.layer),
201 ),204 ),
202 ),205 ),
apps/server/src/mcp/McpHttpServer.test.ts+36-9
...@@ -17,8 +17,14 @@ import * as Layer from "effect/Layer";...@@ -17,8 +17,14 @@ import * as Layer from "effect/Layer";
17import * as Path from "effect/Path";17import * as Path from "effect/Path";
18import * as Schema from "effect/Schema";18import * as Schema from "effect/Schema";
19import * as Stream from "effect/Stream";19import * as Stream from "effect/Stream";
20import { McpProtocol, McpSchema, McpServer, Tool, Toolkit } from "effect/ai";20import { McpSchema, McpServer, Tool, Toolkit } from "effect/ai";
21import { HttpBody, HttpClient, HttpRouter, HttpServerResponse } from "effect/http";21import {
22 HttpBody,
23 HttpClient,
24 HttpClientRequest,
25 HttpRouter,
26 HttpServerResponse,
27} from "effect/http";
2228
23import * as ProjectService from "../project/ProjectService.ts";29import * as ProjectService from "../project/ProjectService.ts";
24import * as ServerConfig from "../config.ts";30import * as ServerConfig from "../config.ts";
...@@ -746,17 +752,38 @@ it.effect("sheds log entries before locators when every list is full", () =>...@@ -746,17 +752,38 @@ it.effect("sheds log entries before locators when every list is full", () =>
746it.effect("terminates HTTP MCP sessions with DELETE", () =>752it.effect("terminates HTTP MCP sessions with DELETE", () =>
747 Effect.scoped(753 Effect.scoped(
748 Effect.gen(function* () {754 Effect.gen(function* () {
749 const layerServer = McpServer.layerHttp({755 const token = "providerTokenWithoutDots";
750 name: "MCP termination test",756 const scope: McpInvocationContext.McpInvocationScope = {
751 version: "1.0.0",757 environmentId,
752 path: "/mcp",758 requestNamespace: "provider-session",
753 protocols: [McpProtocol.v2025_06_18],759 thread: {
754 });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 );
755 yield* HttpRouter.serve(layerServer, {780 yield* HttpRouter.serve(layerServer, {
756 disableListenLog: true,781 disableListenLog: true,
757 disableLogger: true,782 disableLogger: true,
758 }).pipe(Layer.build);783 }).pipe(Layer.build);
759 const httpClient = yield* HttpClient.HttpClient;784 const httpClient = (yield* HttpClient.HttpClient).pipe(
785 HttpClient.mapRequest(HttpClientRequest.bearerToken(token)),
786 );
760787
761 const initializeResponse = yield* httpClient.post("/mcp", {788 const initializeResponse = yield* httpClient.post("/mcp", {
762 headers: { accept: "application/json, text/event-stream" },789 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" };...@@ -19,6 +19,7 @@ import packageJson from "../../package.json" with { type: "json" };
19import * as ServerConfig from "../config.ts";19import * as ServerConfig from "../config.ts";
20import * as DeviceService from "../device/DeviceService.ts";20import * as DeviceService from "../device/DeviceService.ts";
21import * as HtmlRender from "../htmlRender/HtmlRender.ts";21import * as HtmlRender from "../htmlRender/HtmlRender.ts";
22import * as ThreadCommandExecutor from "../orchestration-v2/ThreadCommandExecutor.ts";
22import * as ThreadManagementService from "../orchestration-v2/ThreadManagementService.ts";23import * as ThreadManagementService from "../orchestration-v2/ThreadManagementService.ts";
23import * as McpInvocationContext from "./McpInvocationContext.ts";24import * as McpInvocationContext from "./McpInvocationContext.ts";
24import * as McpToolAccess from "./McpToolAccess.ts";25import * as McpToolAccess from "./McpToolAccess.ts";
...@@ -762,11 +763,25 @@ const registerHtmlPreview = Effect.fn("McpHttpServer.registerHtmlPreview")(funct...@@ -762,11 +763,25 @@ const registerHtmlPreview = Effect.fn("McpHttpServer.registerHtmlPreview")(funct
762/**763/**
763 * `McpServer.toolkit` for handlers that declared their access (see764 * `McpServer.toolkit` for handlers that declared their access (see
764 * `McpToolAccess`). Every toolkit on `/mcp` registers through this.765 * `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.
765 */771 */
766export const toolkitRegistration = <Tools extends Record<string, Tool.Any>, EX, RX>(772export const toolkitRegistration = <Tools extends Record<string, Tool.Any>, EX, RX>(
767 toolkit: Toolkit.Toolkit<Tools>,773 toolkit: Toolkit.Toolkit<Tools>,
768 handlers: McpToolAccess.HandlersLayer<Tools, EX, RX>,774 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
771/** A hand-registered tool, also only with handlers that declared their access. */786/** A hand-registered tool, also only with handlers that declared their access. */
772const imageToolRegistration = <Tools extends Record<string, Tool.Any>, A, E, R, EX, RX>(787const imageToolRegistration = <Tools extends Record<string, Tool.Any>, A, E, R, EX, RX>(
...@@ -811,10 +826,10 @@ const layerPreviewControlsRegistration = toolkitRegistration(...@@ -811,10 +826,10 @@ const layerPreviewControlsRegistration = toolkitRegistration(
811 PreviewControlsHandlers.layer,826 PreviewControlsHandlers.layer,
812);827);
813828
814const layerEnvironmentRegistration = toolkitRegistration(829export const layerEnvironmentToolkit = toolkitRegistration(
815 EnvironmentToolkit,830 EnvironmentToolkit,
816 EnvironmentHandlers.layer,831 EnvironmentHandlers.layer,
817);832).pipe(Layer.provide(ThreadCommandExecutor.layer));
818833
819const layerProjectRegistration = toolkitRegistration(ProjectToolkit, ProjectHandlers.layer);834const layerProjectRegistration = toolkitRegistration(ProjectToolkit, ProjectHandlers.layer);
820835
...@@ -848,6 +863,7 @@ export const layerMcpTransport = McpServer.layerHttp({...@@ -848,6 +863,7 @@ export const layerMcpTransport = McpServer.layerHttp({
848 version: packageJson.version,863 version: packageJson.version,
849 path: "/mcp",864 path: "/mcp",
850 protocols: [McpProtocol.v2025_06_18],865 protocols: [McpProtocol.v2025_06_18],
866 allowSessionTermination: true,
851}).pipe(Layer.provide(layerMcpAuthMiddleware));867}).pipe(Layer.provide(layerMcpAuthMiddleware));
852868
853export const layer = Layer.mergeAll(869export const layer = Layer.mergeAll(
...@@ -856,7 +872,7 @@ export const layer = Layer.mergeAll(...@@ -856,7 +872,7 @@ export const layer = Layer.mergeAll(
856 layerThreadToolkit,872 layerThreadToolkit,
857 layerAttachmentToolkit,873 layerAttachmentToolkit,
858 layerProjectRegistration,874 layerProjectRegistration,
859 layerEnvironmentRegistration,875 layerEnvironmentToolkit,
860 layerPreviewControlsRegistration,876 layerPreviewControlsRegistration,
861 layerWorktreeToolkitRegistration,877 layerWorktreeToolkitRegistration,
862 layerPullRequestsToolkit,878 layerPullRequestsToolkit,
apps/server/src/mcp/OrchestratorMcpToolkit.integration.test.ts+2
...@@ -57,6 +57,7 @@ import { threadShellFromProjection } from "../orchestration-v2/ProjectionStore.t...@@ -57,6 +57,7 @@ import { threadShellFromProjection } from "../orchestration-v2/ProjectionStore.t
57import * as EventSink from "../orchestration-v2/EventSink.ts";57import * as EventSink from "../orchestration-v2/EventSink.ts";
58import * as Orchestrator from "../orchestration-v2/Orchestrator.ts";58import * as Orchestrator from "../orchestration-v2/Orchestrator.ts";
59import * as ThreadManagementService from "../orchestration-v2/ThreadManagementService.ts";59import * as ThreadManagementService from "../orchestration-v2/ThreadManagementService.ts";
60import * as ThreadSearch from "../orchestration-v2/ThreadSearch.ts";
60import * as ProviderAdapterRegistry from "../orchestration-v2/ProviderAdapterRegistry.ts";61import * as ProviderAdapterRegistry from "../orchestration-v2/ProviderAdapterRegistry.ts";
61import * as ProviderContinuationRequests from "@t3tools/provider-core/server/ProviderContinuationRequests";62import * as ProviderContinuationRequests from "@t3tools/provider-core/server/ProviderContinuationRequests";
62import * as McpProviderSessions from "@t3tools/provider-core/server/McpProviderSessions";63import * as McpProviderSessions from "@t3tools/provider-core/server/McpProviderSessions";
...@@ -680,6 +681,7 @@ describe("orchestrator MCP toolkit", () => {...@@ -680,6 +681,7 @@ describe("orchestrator MCP toolkit", () => {
680 Layer.provide(layerRegistry),681 Layer.provide(layerRegistry),
681 Layer.provide(layerProviderRegistry),682 Layer.provide(layerProviderRegistry),
682 Layer.provide(layerScheduledTaskStub),683 Layer.provide(layerScheduledTaskStub),
684 Layer.provide(Layer.mock(ThreadSearch.ThreadSearch)({})),
683 Layer.provide(685 Layer.provide(
684 Layer.mock(ProjectService.ProjectService)({686 Layer.mock(ProjectService.ProjectService)({
685 getById: (id) =>687 getById: (id) =>
apps/server/src/mcp/toolkits/core.test.ts+13-6
...@@ -31,6 +31,7 @@ import * as ServerSecretStore from "../../auth/ServerSecretStore.ts";...@@ -31,6 +31,7 @@ import * as ServerSecretStore from "../../auth/ServerSecretStore.ts";
31import * as ServerConfig from "../../config.ts";31import * as ServerConfig from "../../config.ts";
32import * as ProviderAdapterRegistry from "../../orchestration-v2/ProviderAdapterRegistry.ts";32import * as ProviderAdapterRegistry from "../../orchestration-v2/ProviderAdapterRegistry.ts";
33import * as ThreadManagement from "../../orchestration-v2/ThreadManagementService.ts";33import * as ThreadManagement from "../../orchestration-v2/ThreadManagementService.ts";
34import * as ThreadSearch from "../../orchestration-v2/ThreadSearch.ts";
34import * as PreviewBrowser from "../../preview/PreviewBrowser.ts";35import * as PreviewBrowser from "../../preview/PreviewBrowser.ts";
35import * as ProjectService from "../../project/ProjectService.ts";36import * as ProjectService from "../../project/ProjectService.ts";
36import * as ProviderRegistry from "../../provider/ProviderRegistry.ts";37import * as ProviderRegistry from "../../provider/ProviderRegistry.ts";
...@@ -69,6 +70,12 @@ import { htmlRenderFromToolItem } from "@t3tools/shared/toolOutput";...@@ -69,6 +70,12 @@ import { htmlRenderFromToolItem } from "@t3tools/shared/toolOutput";
6970
70const decodeMcpAttachmentInput = Schema.decodeUnknownEffect(McpAttachmentInput);71const 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
72it("publishes unique tool names with reference-free object-root inputs", () => {79it("publishes unique tool names with reference-free object-root inputs", () => {
73 const names = new Set<string>();80 const names = new Set<string>();
74 for (const toolkit of [81 for (const toolkit of [
...@@ -152,7 +159,7 @@ it.effect("checks capability through the production registration", () =>...@@ -152,7 +159,7 @@ it.effect("checks capability through the production registration", () =>
152 expect(result.structuredContent).toBeUndefined();159 expect(result.structuredContent).toBeUndefined();
153 }).pipe(160 }).pipe(
154 Effect.provide(161 Effect.provide(
155 McpHttpServer.layerThreadToolkit.pipe(162 layerThreadToolkit.pipe(
156 Layer.provideMerge(McpServer.McpServer.layer),163 Layer.provideMerge(McpServer.McpServer.layer),
157 Layer.provide(NodeCrypto.layer),164 Layer.provide(NodeCrypto.layer),
158 Layer.provide(McpToolAccessTestkit.liveThreadsLayer),165 Layer.provide(McpToolAccessTestkit.liveThreadsLayer),
...@@ -193,7 +200,7 @@ it.effect("returns a bounded public failure without serializing storage causes",...@@ -193,7 +200,7 @@ it.effect("returns a bounded public failure without serializing storage causes",
193 expect(validate({ sequence: "invalid" }).valid).toBe(false);200 expect(validate({ sequence: "invalid" }).valid).toBe(false);
194 }).pipe(201 }).pipe(
195 Effect.provide(202 Effect.provide(
196 McpHttpServer.layerThreadToolkit.pipe(203 layerThreadToolkit.pipe(
197 Layer.provideMerge(McpServer.McpServer.layer),204 Layer.provideMerge(McpServer.McpServer.layer),
198 Layer.provide(NodeCrypto.layer),205 Layer.provide(NodeCrypto.layer),
199 Layer.provide(206 Layer.provide(
...@@ -308,7 +315,7 @@ it.effect("returns invalid parameter errors through the production registration"...@@ -308,7 +315,7 @@ it.effect("returns invalid parameter errors through the production registration"
308 expect(error._tag).toBe("InvalidParams");315 expect(error._tag).toBe("InvalidParams");
309 }).pipe(316 }).pipe(
310 Effect.provide(317 Effect.provide(
311 McpHttpServer.layerThreadToolkit.pipe(318 layerThreadToolkit.pipe(
312 Layer.provideMerge(McpServer.McpServer.layer),319 Layer.provideMerge(McpServer.McpServer.layer),
313 Layer.provide(NodeCrypto.layer),320 Layer.provide(NodeCrypto.layer),
314 Layer.provide(Layer.mock(ThreadManagement.ThreadManagementService)({})),321 Layer.provide(Layer.mock(ThreadManagement.ThreadManagementService)({})),
...@@ -333,7 +340,7 @@ it.effect("keeps unexpected handler defects private through the production regis...@@ -333,7 +340,7 @@ it.effect("keeps unexpected handler defects private through the production regis
333 ]);340 ]);
334 }).pipe(341 }).pipe(
335 Effect.provide(342 Effect.provide(
336 McpHttpServer.layerThreadToolkit.pipe(343 layerThreadToolkit.pipe(
337 Layer.provideMerge(McpServer.McpServer.layer),344 Layer.provideMerge(McpServer.McpServer.layer),
338 Layer.provide(NodeCrypto.layer),345 Layer.provide(NodeCrypto.layer),
339 Layer.provide(346 Layer.provide(
...@@ -451,7 +458,7 @@ it.effect("a client caller targets any thread within its ceiling and cannot act...@@ -451,7 +458,7 @@ it.effect("a client caller targets any thread within its ceiling and cannot act
451 expect(declaredFailure(forked)).toMatchObject({ code: "target_required" });458 expect(declaredFailure(forked)).toMatchObject({ code: "target_required" });
452 }).pipe(459 }).pipe(
453 Effect.provide(460 Effect.provide(
454 McpHttpServer.layerThreadToolkit.pipe(461 layerThreadToolkit.pipe(
455 Layer.provideMerge(McpServer.McpServer.layer),462 Layer.provideMerge(McpServer.McpServer.layer),
456 Layer.provide(NodeCrypto.layer),463 Layer.provide(NodeCrypto.layer),
457 Layer.provide(464 Layer.provide(
...@@ -511,7 +518,7 @@ it.effect("a read-only client reads threads and is refused every write before it...@@ -511,7 +518,7 @@ it.effect("a read-only client reads threads and is refused every write before it
511 expect(dispatched).toEqual([]);518 expect(dispatched).toEqual([]);
512 }).pipe(519 }).pipe(
513 Effect.provide(520 Effect.provide(
514 McpHttpServer.layerThreadToolkit.pipe(521 layerThreadToolkit.pipe(
515 Layer.provideMerge(McpServer.McpServer.layer),522 Layer.provideMerge(McpServer.McpServer.layer),
516 Layer.provide(NodeCrypto.layer),523 Layer.provide(NodeCrypto.layer),
517 Layer.provide(524 Layer.provide(
apps/server/src/mcp/toolkits/environment/handlers.test.ts+67
...@@ -12,11 +12,13 @@ import * as Fiber from "effect/Fiber";...@@ -12,11 +12,13 @@ import * as Fiber from "effect/Fiber";
12import * as Layer from "effect/Layer";12import * as Layer from "effect/Layer";
13import * as Ref from "effect/Ref";13import * as Ref from "effect/Ref";
14import * as Stream from "effect/Stream";14import * as Stream from "effect/Stream";
15import { McpSchema, McpServer } from "effect/ai";
1516
16import * as Environment from "../../../environment/ServerEnvironment.ts";17import * as Environment from "../../../environment/ServerEnvironment.ts";
17import * as ThreadCommandExecutor from "../../../orchestration-v2/ThreadCommandExecutor.ts";18import * as ThreadCommandExecutor from "../../../orchestration-v2/ThreadCommandExecutor.ts";
18import * as ThreadManagement from "../../../orchestration-v2/ThreadManagementService.ts";19import * as ThreadManagement from "../../../orchestration-v2/ThreadManagementService.ts";
19import * as Settings from "../../../serverSettings.ts";20import * as Settings from "../../../serverSettings.ts";
21import * as McpHttpServer from "../../McpHttpServer.ts";
20import * as McpInvocationContext from "../../McpInvocationContext.ts";22import * as McpInvocationContext from "../../McpInvocationContext.ts";
21import * as McpToolAccess from "../../McpToolAccess.ts";23import * as McpToolAccess from "../../McpToolAccess.ts";
22import { liveThreadShell } from "../../McpToolAccess.testkit.ts";24import { liveThreadShell } from "../../McpToolAccess.testkit.ts";
...@@ -25,6 +27,71 @@ import { EnvironmentToolkit } from "./tools.ts";...@@ -25,6 +27,71 @@ import { EnvironmentToolkit } from "./tools.ts";
2527
26const environmentId = EnvironmentId.make("environment:preferences");28const environmentId = EnvironmentId.make("environment:preferences");
27const threadId = ThreadId.make("thread:preferences");29const 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
29it.effect("refuses a preferences update when the caller's turn ends while it waits", () =>96it.effect("refuses a preferences update when the caller's turn ends while it waits", () =>
30 Effect.gen(function* () {97 Effect.gen(function* () {
apps/server/src/mcp/toolkits/worktree/registration.test.ts+14
...@@ -22,6 +22,13 @@ import * as ScheduledTaskService from "../../../scheduledTasks/ScheduledTaskServ...@@ -22,6 +22,13 @@ import * as ScheduledTaskService from "../../../scheduledTasks/ScheduledTaskServ
22import * as SecretRequests from "../../../secrets/SecretRequests.ts";22import * as SecretRequests from "../../../secrets/SecretRequests.ts";
23import * as ServerSettings from "../../../serverSettings.ts";23import * as ServerSettings from "../../../serverSettings.ts";
24import * as VcsStatusBroadcaster from "../../../vcs/VcsStatusBroadcaster.ts";24import * 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";
25import * as McpHttpServer from "../../McpHttpServer.ts";32import * as McpHttpServer from "../../McpHttpServer.ts";
26import * as McpSessionRegistry from "../../McpSessionRegistry.ts";33import * as McpSessionRegistry from "../../McpSessionRegistry.ts";
27import * as PreviewAutomationBroker from "../../PreviewAutomationBroker.ts";34import * as PreviewAutomationBroker from "../../PreviewAutomationBroker.ts";
...@@ -41,6 +48,13 @@ const layerStubServices = Layer.mergeAll(...@@ -41,6 +48,13 @@ const layerStubServices = Layer.mergeAll(
41 Layer.mock(GitWorkflowService.GitWorkflowService)({}),48 Layer.mock(GitWorkflowService.GitWorkflowService)({}),
42 Layer.mock(ProjectSetupScriptRunner.ProjectSetupScriptRunner)({}),49 Layer.mock(ProjectSetupScriptRunner.ProjectSetupScriptRunner)({}),
43 Layer.mock(VcsStatusBroadcaster.VcsStatusBroadcaster)({}),50 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)({}),
44);58);
4559
46const ToolsListPayload = Schema.fromJsonString(60const ToolsListPayload = Schema.fromJsonString(
apps/server/src/observability/RpcInstrumentation.test.ts+1-1
...@@ -72,7 +72,7 @@ const rpcSpans = (ended: ReadonlyArray<Tracer.NativeSpan>) =>...@@ -72,7 +72,7 @@ const rpcSpans = (ended: ReadonlyArray<Tracer.NativeSpan>) =>
72// RpcTest keeps Effect's own RpcServer/RpcClient spans, which ws.ts turns off with72// RpcTest keeps Effect's own RpcServer/RpcClient spans, which ws.ts turns off with
73// `disableTracing: true`. Everything else comes from the middleware or the handlers.73// `disableTracing: true`. Everything else comes from the middleware or the handlers.
74const appSpans = (ended: ReadonlyArray<Tracer.NativeSpan>) =>74const 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
77const exitTag = (span: Tracer.NativeSpan | undefined) =>77const exitTag = (span: Tracer.NativeSpan | undefined) =>
78 span?.status._tag === "Ended" ? span.status.exit._tag : undefined;78 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) => {...@@ -2354,14 +2354,15 @@ it.layer(layerTest)("orchestration V2 foundation persistence", (it) => {
2354 it.effect("does not emit a SQL span for an empty safety claim", () =>2354 it.effect("does not emit a SQL span for an empty safety claim", () =>
2355 Effect.gen(function* () {2355 Effect.gen(function* () {
2356 const outbox = yield* EffectOutbox.EffectOutboxV2;2356 const outbox = yield* EffectOutbox.EffectOutboxV2;
2357 const spans: Array<string> = [];2357 const statements: Array<unknown> = [];
2358 const tracer = Tracer.make({2358 const tracer = Tracer.make({
2359 span: (options) => {2359 span: (options) => {
2360 const span = new Tracer.NativeSpan(options);2360 const span = new Tracer.NativeSpan(options);
2361 const end = span.end.bind(span);2361 const end = span.end.bind(span);
2362 span.end = (endTime, exit) => {2362 span.end = (endTime, exit) => {
2363 end(endTime, exit);2363 end(endTime, exit);
2364 spans.push(span.name);2364 const query = span.attributes.get("db.query.text");
2365 if (query !== undefined) statements.push(query);
2365 };2366 };
2366 return span;2367 return span;
2367 },2368 },
...@@ -2372,7 +2373,7 @@ it.layer(layerTest)("orchestration V2 foundation persistence", (it) => {...@@ -2372,7 +2373,7 @@ it.layer(layerTest)("orchestration V2 foundation persistence", (it) => {
2372 .pipe(Effect.withTracer(tracer));2373 .pipe(Effect.withTracer(tracer));
23732374
2374 assert.isTrue(Option.isNone(claim));2375 assert.isTrue(Option.isNone(claim));
2375 assert.notInclude(spans, "sql.execute");2376 assert.deepEqual(statements, []);
2376 }).pipe(Effect.provide(Layer.fresh(layerEffectOutboxProvided))),2377 }).pipe(Effect.provide(Layer.fresh(layerEffectOutboxProvided))),
2377 );2378 );
23782379
docs/operations/relay-observability.md+1-1
...@@ -30,7 +30,7 @@ For example:...@@ -30,7 +30,7 @@ For example:
3030
31```apl31```apl
32['t3-code-relay-traces-prod']32['t3-code-relay-traces-prod']
33| where name startswith 'http.server'33| where kind == 'server'
34| extend endpoint = column_ifexists('attributes.http.route', ''),34| extend endpoint = column_ifexists('attributes.http.route', ''),
35 customAttributes = column_ifexists('attributes.custom', dynamic({}))35 customAttributes = column_ifexists('attributes.custom', dynamic({}))
36| project _time, name, trace_id, duration,36| project _time, name, trace_id, duration,
infra/relay/src/hooks/HookForwarder.test.ts+2-2
...@@ -600,7 +600,7 @@ describe("HookForwarder", () => {...@@ -600,7 +600,7 @@ describe("HookForwarder", () => {
600 expect(serialized).not.toContain("also-secret");600 expect(serialized).not.toContain("also-secret");
601 expect(serialized).not.toContain("header-secret");601 expect(serialized).not.toContain("header-secret");
602 const server = spans.find((span) => span.kind === "server");602 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`);
604 }),604 }),
605 );605 );
606606
...@@ -639,7 +639,7 @@ describe("HookForwarder", () => {...@@ -639,7 +639,7 @@ describe("HookForwarder", () => {
639 const servers = spans.filter((span) => span.kind === "server");639 const servers = spans.filter((span) => span.kind === "server");
640 expect(servers).toHaveLength(1);640 expect(servers).toHaveLength(1);
641 expect(servers[0]?.attributes.get("url.path")).toBe(641 expect(servers[0]?.attributes.get("url.path")).toBe(
642 `/v1/hooks/${endpointKey}/hook-1/<redacted>`,642 `/v1/hooks/${endpointKey}/hook-1/redacted`,
643 );643 );
644 expect(spans.every((span) => span.traceId !== "11111111111111111111111111111111")).toBe(true);644 expect(spans.every((span) => span.traceId !== "11111111111111111111111111111111")).toBe(true);
645 }),645 }),
infra/relay/src/hooks/HookForwarder.ts+2-1
...@@ -76,7 +76,8 @@ export const redactRelayHookUrl = (url: string): string => {...@@ -76,7 +76,8 @@ export const redactRelayHookUrl = (url: string): string => {
76 const path = url.split("?", 1)[0] ?? url;76 const path = url.split("?", 1)[0] ?? url;
77 const segments = path.split("/");77 const segments = path.split("/");
78 if (segments.length >= 6) {78 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";
80 }81 }
81 return segments.join("/");82 return segments.join("/");
82};83};
infra/relay/src/http/Api.test.ts+4-3
...@@ -1186,12 +1186,13 @@ describe("relay request tracing", () => {...@@ -1186,12 +1186,13 @@ describe("relay request tracing", () => {
1186 Effect.provideService(HttpServerRequest.HttpServerRequest, request),1186 Effect.provideService(HttpServerRequest.HttpServerRequest, request),
1187 );1187 );
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"]);
1190 expect(spans[0]?.kind).toBe("server");1190 expect(spans[0]?.kind).toBe("server");
1191 expect(spans[0]?.attributes.get("url.path")).toBe("/v1/mobile/devices");1191 expect(spans[0]?.attributes.get("url.path")).toBe("/v1/mobile/devices");
1192 expect(spans[0]?.attributes.get("http.response.status_code")).toBe(204);1192 expect(spans[0]?.attributes.get("http.response.status_code")).toBe(204);
1193 expect(spans[0]?.attributes.get("http.request.header.authorization")).toBe("<redacted>");1193 // Headers are not captured at all, so credentials never reach the span.
1194 expect(spans[0]?.attributes.get("http.request.header.dpop")).toBe("<redacted>");1194 expect(spans[0]?.attributes.get("http.request.header.authorization")).toBeUndefined();
1195 expect(spans[0]?.attributes.get("http.request.header.dpop")).toBeUndefined();
1195 expect(Option.isNone(spans[0]!.parent)).toBe(true);1196 expect(Option.isNone(spans[0]!.parent)).toBe(true);
1196 expect(Option.getOrUndefined(spans[1]!.parent)?.spanId).toBe(spans[0]?.spanId);1197 expect(Option.getOrUndefined(spans[1]!.parent)?.spanId).toBe(spans[0]?.spanId);
1197 }),1198 }),
packages/client-runtime/src/connection/outdatedHostUpdate.ts+2-1
...@@ -21,7 +21,7 @@ import * as RpcSerialization from "effect/rpc/RpcSerialization";...@@ -21,7 +21,7 @@ import * as RpcSerialization from "effect/rpc/RpcSerialization";
21import * as Socket from "effect/socket/Socket";21import * as Socket from "effect/socket/Socket";
2222
23import { fetchRemoteEnvironmentDescriptor } from "../environment/descriptor.ts";23import { fetchRemoteEnvironmentDescriptor } from "../environment/descriptor.ts";
24import { makeWsRpcProtocolClient } from "../rpc/protocol.ts";24import { makeWsRpcProtocolClient, PING_TIMEOUT } from "../rpc/protocol.ts";
25import { isLegacyUpdateHandoffLoss, resolveServerUpdateProgressResult } from "../state/server.ts";25import { isLegacyUpdateHandoffLoss, resolveServerUpdateProgressResult } from "../state/server.ts";
26import * as RelayEnvironmentDiscovery from "../relay/discovery.ts";26import * as RelayEnvironmentDiscovery from "../relay/discovery.ts";
27import * as ConnectionResolver from "./resolver.ts";27import * as ConnectionResolver from "./resolver.ts";
...@@ -87,6 +87,7 @@ export const updateOutdatedHost = Effect.fn("clientRuntime.connection.updateOutd...@@ -87,6 +87,7 @@ export const updateOutdatedHost = Effect.fn("clientRuntime.connection.updateOutd
87 Layer.effect(87 Layer.effect(
88 RpcClient.Protocol,88 RpcClient.Protocol,
89 RpcClient.makeProtocolSocket({89 RpcClient.makeProtocolSocket({
90 pingTimeout: PING_TIMEOUT,
90 retryTransientErrors: false,91 retryTransientErrors: false,
91 retryPolicy: Schedule.recurs(0),92 retryPolicy: Schedule.recurs(0),
92 }),93 }),
packages/client-runtime/src/rpc/protocol.ts+4
...@@ -6,3 +6,7 @@ export const makeWsRpcProtocolClient = RpcClient.make(WsRpcGroup);...@@ -6,3 +6,7 @@ export const makeWsRpcProtocolClient = RpcClient.make(WsRpcGroup);
6type RpcClientFactory = typeof makeWsRpcProtocolClient;6type RpcClientFactory = typeof makeWsRpcProtocolClient;
7export type WsRpcProtocolClient =7export type WsRpcProtocolClient =
8 RpcClientFactory extends Effect.Effect<infer Client, any, any> ? Client : never;8 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", () => {...@@ -1085,7 +1085,7 @@ describe("RpcSessionFactory", () => {
1085 }),1085 }),
1086 );1086 );
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", () =>
1089 Effect.gen(function* () {1089 Effect.gen(function* () {
1090 const { factory, sockets } = yield* makeFactory();1090 const { factory, sockets } = yield* makeFactory();
1091 const session = yield* factory.connect(PREPARED);1091 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";...@@ -24,7 +24,7 @@ import * as RpcClientError from "effect/rpc/RpcClientError";
24import * as RpcSerialization from "effect/rpc/RpcSerialization";24import * as RpcSerialization from "effect/rpc/RpcSerialization";
25import * as Socket from "effect/socket/Socket";25import * as Socket from "effect/socket/Socket";
2626
27import { makeWsRpcProtocolClient, type WsRpcProtocolClient } from "./protocol.ts";27import { makeWsRpcProtocolClient, PING_TIMEOUT, type WsRpcProtocolClient } from "./protocol.ts";
28import { NETWORK_BLOCKING_HINT } from "../errors/network.ts";28import { NETWORK_BLOCKING_HINT } from "../errors/network.ts";
29import type {29import type {
30 ConnectionAttemptError,30 ConnectionAttemptError,
...@@ -170,7 +170,7 @@ export const make = Effect.fn("RpcSessionFactory.make")(function* (...@@ -170,7 +170,7 @@ export const make = Effect.fn("RpcSessionFactory.make")(function* (
170170
171 const connected = yield* Deferred.make<void>();171 const connected = yield* Deferred.make<void>();
172 const disconnected = yield* Deferred.make<never, ConnectionTransientError>();172 const disconnected = yield* Deferred.make<never, ConnectionTransientError>();
173 // Set when the socket closes because pongs stopped, so the failure says so173 // Set when the socket closes because the server stopped answering, so the failure says so
174 // instead of looking like the server closed the connection.174 // instead of looking like the server closed the connection.
175 const pingTimedOut = yield* Ref.make(false);175 const pingTimedOut = yield* Ref.make(false);
176 const hooks = RpcClient.ConnectionHooks.of({176 const hooks = RpcClient.ConnectionHooks.of({
...@@ -201,6 +201,7 @@ export const make = Effect.fn("RpcSessionFactory.make")(function* (...@@ -201,6 +201,7 @@ export const make = Effect.fn("RpcSessionFactory.make")(function* (
201 const layerProtocol = Layer.effect(201 const layerProtocol = Layer.effect(
202 RpcClient.Protocol,202 RpcClient.Protocol,
203 RpcClient.makeProtocolSocket({203 RpcClient.makeProtocolSocket({
204 pingTimeout: PING_TIMEOUT,
204 retryTransientErrors: false,205 retryTransientErrors: false,
205 retryPolicy: Schedule.recurs(0),206 retryPolicy: Schedule.recurs(0),
206 }),207 }),
packages/shared/src/otelEnvironment.test.ts+4-1
...@@ -501,7 +501,10 @@ describe("OtelEnvironment", () => {...@@ -501,7 +501,10 @@ describe("OtelEnvironment", () => {
501 ),501 ),
502 );502 );
503 assert.deepStrictEqual(503 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.")),
505 [...attributes, "service.name"],508 [...attributes, "service.name"],
506 );509 );
507 }),510 }),
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:...@@ -7,11 +7,11 @@ settings:
7catalogs:7catalogs:
8 default:8 default:
9 '@effect/openapi-generator':9 '@effect/openapi-generator':
10 specifier: 4.0.110 specifier: 4.0.2
11 version: 4.0.111 version: 4.0.2
12 '@effect/sql-sqlite-do':12 '@effect/sql-sqlite-do':
13 specifier: 4.0.113 specifier: 4.0.2
14 version: 4.0.114 version: 4.0.2
15 '@effect/tsgo':15 '@effect/tsgo':
16 specifier: 0.46.116 specifier: 0.46.1
17 version: 0.46.117 version: 0.46.1
...@@ -96,11 +96,11 @@ overrides:...@@ -96,11 +96,11 @@ overrides:
96 '@clerk/expo': 4.6.896 '@clerk/expo': 4.6.8
97 '@clerk/react': 6.16.197 '@clerk/react': 6.16.1
98 '@clerk/shared': 4.33.098 '@clerk/shared': 4.33.0
99 '@effect/atom-react': 4.0.199 '@effect/atom-react': 4.0.2
100 '@effect/platform-node': 4.0.1100 '@effect/platform-node': 4.0.2
101 '@effect/platform-node-shared': 4.0.1101 '@effect/platform-node-shared': 4.0.2
102 '@effect/sql-pg': 4.0.1102 '@effect/sql-pg': 4.0.2
103 '@effect/vitest': 4.0.1103 '@effect/vitest': 4.0.2
104 '@effect/vitest>vitest': '-'104 '@effect/vitest>vitest': '-'
105 '@expo/dom-webview': 58.0.2105 '@expo/dom-webview': 58.0.2
106 '@expo/metro-config': 58.0.6106 '@expo/metro-config': 58.0.6
...@@ -113,12 +113,13 @@ overrides:...@@ -113,12 +113,13 @@ overrides:
113 '@tailwindcss/oxide': 4.3.3113 '@tailwindcss/oxide': 4.3.3
114 '@tailwindcss/vite': 4.3.3114 '@tailwindcss/vite': 4.3.3
115 '@types/node': 24.12.4115 '@types/node': 24.12.4
116 effect: 4.0.1116 effect: 4.0.2
117 '@opencode/protocol>effect': 4.0.1117 '@opencode/protocol>effect': 4.0.2
118 '@opencode/schema>effect': 4.0.1118 '@opencode/schema>effect': 4.0.2
119 node-abi: 4.33.0119 node-abi: 4.33.0
120 lightningcss: 1.33.0120 lightningcss: 1.33.0
121 tailwindcss: 4.3.3121 tailwindcss: 4.3.3
122 '@types/ws@^8': 8.18.2
122 undici@^8: 8.11.2123 undici@^8: 8.11.2
123 ws@^8: 8.22.0124 ws@^8: 8.22.0
124 vite: npm:@voidzero-dev/vite-plus-core@1.0.0125 vite: npm:@voidzero-dev/vite-plus-core@1.0.0
...@@ -129,7 +130,7 @@ packageExtensionsChecksum: sha256-FYDaKefjFcda1+vgiq8yMpZC4ehE5CyLi/bsCGLgTtY=...@@ -129,7 +130,7 @@ packageExtensionsChecksum: sha256-FYDaKefjFcda1+vgiq8yMpZC4ehE5CyLi/bsCGLgTtY=
129130
130patchedDependencies:131patchedDependencies:
131 '@clerk/expo@4.6.8': b8b22ab733de5bea846ad9e88046c10582352fe9ad86f314f368b2a823f0f281132 '@clerk/expo@4.6.8': b8b22ab733de5bea846ad9e88046c10582352fe9ad86f314f368b2a823f0f281
132 '@effect/vitest@4.0.1': 359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2133 '@effect/vitest@4.0.2': 595b7d26fb635caba9c3d39fcb189bb78a000192f8d3b60ead7174b310d1ade9
133 '@expo/metro-config@58.0.6': 90fa980e8b6480631fb2fbb04559834e3c612db40c550cd828f11be297d8d760134 '@expo/metro-config@58.0.6': 90fa980e8b6480631fb2fbb04559834e3c612db40c550cd828f11be297d8d760
134 '@ff-labs/fff-node@0.9.4': c4e3cc2420ceb9dc650f9d189e9c24baf7e83f342998bacda5f459a4ce7927a8135 '@ff-labs/fff-node@0.9.4': c4e3cc2420ceb9dc650f9d189e9c24baf7e83f342998bacda5f459a4ce7927a8
135 '@legendapp/list@3.3.5': 680cc6a5c5b4a4032e467e7b3fde22f89a84c0ee2e6eac6fda737d6277cc0806136 '@legendapp/list@3.3.5': 680cc6a5c5b4a4032e467e7b3fde22f89a84c0ee2e6eac6fda737d6277cc0806
...@@ -142,7 +143,7 @@ patchedDependencies:...@@ -142,7 +143,7 @@ patchedDependencies:
142 '@react-navigation/native-stack@7.17.6': 3a53ec9b92f5db5f083f3ada585da75d62a13c82250c6ae47d92be91a828ad87143 '@react-navigation/native-stack@7.17.6': 3a53ec9b92f5db5f083f3ada585da75d62a13c82250c6ae47d92be91a828ad87
143 alchemy@2.0.0-beta.80: bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd144 alchemy@2.0.0-beta.80: bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd
144 dbus-next@0.10.2: cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4145 dbus-next@0.10.2: cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4
145 effect@4.0.1: a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f146 effect@4.0.2: ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688
146 expo-audio@58.0.4: c20cb927d6848c53e7bf6ec14fe12f19daae9210165d2dbaf4e0f97ce31e8742147 expo-audio@58.0.4: c20cb927d6848c53e7bf6ec14fe12f19daae9210165d2dbaf4e0f97ce31e8742
147 expo-blur@58.0.3: d0311b0c0b05bd94393bd9a84653cb42503d5f3c8a19eb2627c34ace08bedf18148 expo-blur@58.0.3: d0311b0c0b05bd94393bd9a84653cb42503d5f3c8a19eb2627c34ace08bedf18
148 expo-glass-effect@58.0.3: f750041c45ab838a3530451dc7b50d6640a79141037a1b0499c5e3412a860c57149 expo-glass-effect@58.0.3: f750041c45ab838a3530451dc7b50d6640a79141037a1b0499c5e3412a860c57
...@@ -193,8 +194,8 @@ importers:...@@ -193,8 +194,8 @@ importers:
193 specifier: 0.13.0194 specifier: 0.13.0
194 version: 0.13.0195 version: 0.13.0
195 '@effect/platform-node':196 '@effect/platform-node':
196 specifier: 4.0.1197 specifier: 4.0.2
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)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)
198 '@napi-rs/keyring':199 '@napi-rs/keyring':
199 specifier: ^1.3.0200 specifier: ^1.3.0
200 version: 1.3.0201 version: 1.3.0
...@@ -217,8 +218,8 @@ importers:...@@ -217,8 +218,8 @@ importers:
217 specifier: 0.10.2218 specifier: 0.10.2
218 version: 0.10.2(patch_hash=cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4)219 version: 0.10.2(patch_hash=cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4)
219 effect:220 effect:
220 specifier: 4.0.1221 specifier: 4.0.2
221 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)222 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
222 electron:223 electron:
223 specifier: 44.4.5224 specifier: 44.4.5
224 version: 44.4.5225 version: 44.4.5
...@@ -239,8 +240,8 @@ importers:...@@ -239,8 +240,8 @@ importers:
239 version: 0.1.44(react@19.2.6)240 version: 0.1.44(react@19.2.6)
240 devDependencies:241 devDependencies:
241 '@effect/vitest':242 '@effect/vitest':
242 specifier: 4.0.1243 specifier: 4.0.2
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)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)
244 '@types/node':245 '@types/node':
245 specifier: 24.12.4246 specifier: 24.12.4
246 version: 24.12.4247 version: 24.12.4
...@@ -288,8 +289,8 @@ importers:...@@ -288,8 +289,8 @@ importers:
288 specifier: 4.6.8289 specifier: 4.6.8
289 version: 4.6.8(patch_hash=b8b22ab733de5bea846ad9e88046c10582352fe9ad86f314f368b2a823f0f281)(9fda653cb5598772915b4a39a7aee91d)290 version: 4.6.8(patch_hash=b8b22ab733de5bea846ad9e88046c10582352fe9ad86f314f368b2a823f0f281)(9fda653cb5598772915b4a39a7aee91d)
290 '@effect/atom-react':291 '@effect/atom-react':
291 specifier: 4.0.1292 specifier: 4.0.2
292 version: 4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(react@19.3.0)(scheduler@0.28.0)293 version: 4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(react@19.3.0)(scheduler@0.28.0)
293 '@expo-google-fonts/dm-sans':294 '@expo-google-fonts/dm-sans':
294 specifier: ^0.4.2295 specifier: ^0.4.2
295 version: 0.4.2296 version: 0.4.2
...@@ -387,8 +388,8 @@ importers:...@@ -387,8 +388,8 @@ importers:
387 specifier: 8.0.3388 specifier: 8.0.3
388 version: 8.0.3389 version: 8.0.3
389 effect:390 effect:
390 specifier: 4.0.1391 specifier: 4.0.2
391 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)392 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
392 expo:393 expo:
393 specifier: 58.0.2394 specifier: 58.0.2
394 version: 58.0.2(bd4444e61fed72e958d45f73733b7f54)395 version: 58.0.2(bd4444e61fed72e958d45f73733b7f54)
...@@ -553,8 +554,8 @@ importers:...@@ -553,8 +554,8 @@ importers:
553 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)554 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)
554 devDependencies:555 devDependencies:
555 '@effect/vitest':556 '@effect/vitest':
556 specifier: 4.0.1557 specifier: 4.0.2
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)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)
558 '@pierre/trees':559 '@pierre/trees':
559 specifier: 1.0.0-beta.6560 specifier: 1.0.0-beta.6
560 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)561 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:...@@ -586,11 +587,11 @@ importers:
586 specifier: 1.0.35587 specifier: 1.0.35
587 version: 1.0.35588 version: 1.0.35
588 '@effect/platform-node':589 '@effect/platform-node':
589 specifier: 4.0.1590 specifier: 4.0.2
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)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)
591 '@effect/platform-node-shared':592 '@effect/platform-node-shared':
592 specifier: 4.0.1593 specifier: 4.0.2
593 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(utf-8-validate@6.0.6)594 version: 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(utf-8-validate@6.0.6)
594 '@ff-labs/fff-node':595 '@ff-labs/fff-node':
595 specifier: 0.9.4596 specifier: 0.9.4
596 version: 0.9.4(patch_hash=c4e3cc2420ceb9dc650f9d189e9c24baf7e83f342998bacda5f459a4ce7927a8)597 version: 0.9.4(patch_hash=c4e3cc2420ceb9dc650f9d189e9c24baf7e83f342998bacda5f459a4ce7927a8)
...@@ -631,8 +632,8 @@ importers:...@@ -631,8 +632,8 @@ importers:
631 specifier: 8.0.3632 specifier: 8.0.3
632 version: 8.0.3633 version: 8.0.3
633 effect:634 effect:
634 specifier: 4.0.1635 specifier: 4.0.2
635 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)636 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
636 jose:637 jose:
637 specifier: 'catalog:'638 specifier: 'catalog:'
638 version: 6.2.2639 version: 6.2.2
...@@ -659,8 +660,8 @@ importers:...@@ -659,8 +660,8 @@ importers:
659 version: 3.4.0660 version: 3.4.0
660 devDependencies:661 devDependencies:
661 '@effect/vitest':662 '@effect/vitest':
662 specifier: 4.0.1663 specifier: 4.0.2
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)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)
664 '@modelcontextprotocol/sdk':665 '@modelcontextprotocol/sdk':
665 specifier: 1.29.0666 specifier: 1.29.0
666 version: 1.29.0(zod@4.6.5)667 version: 1.29.0(zod@4.6.5)
...@@ -728,8 +729,8 @@ importers:...@@ -728,8 +729,8 @@ importers:
728 specifier: ^3.2.2729 specifier: ^3.2.2
729 version: 3.2.2(react@19.2.6)730 version: 3.2.2(react@19.2.6)
730 '@effect/atom-react':731 '@effect/atom-react':
731 specifier: 4.0.1732 specifier: 4.0.2
732 version: 4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))(react@19.2.6)(scheduler@0.28.0)733 version: 4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(react@19.2.6)(scheduler@0.28.0)
733 '@formkit/auto-animate':734 '@formkit/auto-animate':
734 specifier: ^0.9.0735 specifier: ^0.9.0
735 version: 0.9.0736 version: 0.9.0
...@@ -827,8 +828,8 @@ importers:...@@ -827,8 +828,8 @@ importers:
827 specifier: ^3.4.16828 specifier: ^3.4.16
828 version: 3.4.16829 version: 3.4.16
829 effect:830 effect:
830 specifier: 4.0.1831 specifier: 4.0.2
831 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)832 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
832 hast-util-to-html:833 hast-util-to-html:
833 specifier: ^9.0.5834 specifier: ^9.0.5
834 version: 9.0.5835 version: 9.0.5
...@@ -882,11 +883,11 @@ importers:...@@ -882,11 +883,11 @@ importers:
882 version: 5.0.14(@types/react@19.3.0)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6))883 version: 5.0.14(@types/react@19.3.0)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6))
883 devDependencies:884 devDependencies:
884 '@effect/platform-node':885 '@effect/platform-node':
885 specifier: 4.0.1886 specifier: 4.0.2
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)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)
887 '@effect/vitest':888 '@effect/vitest':
888 specifier: 4.0.1889 specifier: 4.0.2
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)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)
890 '@rolldown/plugin-babel':891 '@rolldown/plugin-babel':
891 specifier: ^0.2.0892 specifier: ^0.2.0
892 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)893 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:...@@ -954,11 +955,11 @@ importers:
954 specifier: 3.18.1955 specifier: 3.18.1
955 version: 3.18.1(react-dom@19.3.0(react@19.3.0))(react@19.2.6)956 version: 3.18.1(react-dom@19.3.0(react@19.3.0))(react@19.2.6)
956 '@effect/sql-pg':957 '@effect/sql-pg':
957 specifier: 4.0.1958 specifier: 4.0.2
958 version: 4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))959 version: 4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
959 '@effect/sql-sqlite-do':960 '@effect/sql-sqlite-do':
960 specifier: 'catalog:'961 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))
962 '@noble/curves':963 '@noble/curves':
963 specifier: 'catalog:'964 specifier: 'catalog:'
964 version: 1.9.1965 version: 1.9.1
...@@ -976,23 +977,23 @@ importers:...@@ -976,23 +977,23 @@ importers:
976 version: link:../../packages/shared977 version: link:../../packages/shared
977 alchemy:978 alchemy:
978 specifier: 2.0.0-beta.80979 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)
980 drizzle-orm:981 drizzle-orm:
981 specifier: 1.0.0-rc.5-ab785fc982 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)
983 effect:984 effect:
984 specifier: 4.0.1985 specifier: 4.0.2
985 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)986 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
986 devDependencies:987 devDependencies:
987 '@cloudflare/workers-types':988 '@cloudflare/workers-types':
988 specifier: ^4.20260601.1989 specifier: ^4.20260601.1
989 version: 4.20260604.1990 version: 4.20260604.1
990 '@effect/platform-node':991 '@effect/platform-node':
991 specifier: 4.0.1992 specifier: 4.0.2
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)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)
993 '@effect/vitest':994 '@effect/vitest':
994 specifier: 4.0.1995 specifier: 4.0.2
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)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)
996 '@types/node':997 '@types/node':
997 specifier: 24.12.4998 specifier: 24.12.4
998 version: 24.12.4999 version: 24.12.4
...@@ -1012,18 +1013,18 @@ importers:...@@ -1012,18 +1013,18 @@ importers:
1012 oxlint-plugin-t3code:1013 oxlint-plugin-t3code:
1013 dependencies:1014 dependencies:
1014 '@effect/platform-node':1015 '@effect/platform-node':
1015 specifier: 4.0.11016 specifier: 4.0.2
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)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)
1017 '@oxlint/plugins':1018 '@oxlint/plugins':
1018 specifier: ^1.63.01019 specifier: ^1.63.0
1019 version: 1.68.01020 version: 1.68.0
1020 effect:1021 effect:
1021 specifier: 4.0.11022 specifier: 4.0.2
1022 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1023 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1023 devDependencies:1024 devDependencies:
1024 '@effect/vitest':1025 '@effect/vitest':
1025 specifier: 4.0.11026 specifier: 4.0.2
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)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)
1027 vite-plus:1028 vite-plus:
1028 specifier: 1.0.01029 specifier: 1.0.0
1029 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)1030 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:...@@ -1037,15 +1038,15 @@ importers:
1037 specifier: workspace:*1038 specifier: workspace:*
1038 version: link:../shared1039 version: link:../shared
1039 effect:1040 effect:
1040 specifier: 4.0.11041 specifier: 4.0.2
1041 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1042 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1042 three:1043 three:
1043 specifier: 0.180.01044 specifier: 0.180.0
1044 version: 0.180.01045 version: 0.180.0
1045 devDependencies:1046 devDependencies:
1046 '@effect/vitest':1047 '@effect/vitest':
1047 specifier: 4.0.11048 specifier: 4.0.2
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)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)
1049 '@types/three':1050 '@types/three':
1050 specifier: 0.180.01051 specifier: 0.180.0
1051 version: 0.180.01052 version: 0.180.0
...@@ -1056,12 +1057,12 @@ importers:...@@ -1056,12 +1057,12 @@ importers:
1056 packages/contracts:1057 packages/contracts:
1057 dependencies:1058 dependencies:
1058 effect:1059 effect:
1059 specifier: 4.0.11060 specifier: 4.0.2
1060 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1061 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1061 devDependencies:1062 devDependencies:
1062 '@effect/vitest':1063 '@effect/vitest':
1063 specifier: 4.0.11064 specifier: 4.0.2
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)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)
1065 vite-plus:1066 vite-plus:
1066 specifier: 1.0.01067 specifier: 1.0.0
1067 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)1068 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:...@@ -1069,18 +1070,18 @@ importers:
1069 packages/effect-acp:1070 packages/effect-acp:
1070 dependencies:1071 dependencies:
1071 effect:1072 effect:
1072 specifier: 4.0.11073 specifier: 4.0.2
1073 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1074 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1074 devDependencies:1075 devDependencies:
1075 '@effect/openapi-generator':1076 '@effect/openapi-generator':
1076 specifier: 'catalog:'1077 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)
1078 '@effect/platform-node':1079 '@effect/platform-node':
1079 specifier: 4.0.11080 specifier: 4.0.2
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)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)
1081 '@effect/vitest':1082 '@effect/vitest':
1082 specifier: 4.0.11083 specifier: 4.0.2
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)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)
1084 '@types/node':1085 '@types/node':
1085 specifier: 24.12.41086 specifier: 24.12.4
1086 version: 24.12.41087 version: 24.12.4
...@@ -1091,18 +1092,18 @@ importers:...@@ -1091,18 +1092,18 @@ importers:
1091 packages/effect-codex-app-server:1092 packages/effect-codex-app-server:
1092 dependencies:1093 dependencies:
1093 effect:1094 effect:
1094 specifier: 4.0.11095 specifier: 4.0.2
1095 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1096 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1096 devDependencies:1097 devDependencies:
1097 '@effect/openapi-generator':1098 '@effect/openapi-generator':
1098 specifier: 'catalog:'1099 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)
1100 '@effect/platform-node':1101 '@effect/platform-node':
1101 specifier: 4.0.11102 specifier: 4.0.2
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)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)
1103 '@effect/vitest':1104 '@effect/vitest':
1104 specifier: 4.0.11105 specifier: 4.0.2
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)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)
1106 '@types/node':1107 '@types/node':
1107 specifier: 24.12.41108 specifier: 24.12.4
1108 version: 24.12.41109 version: 24.12.4
...@@ -1125,15 +1126,15 @@ importers:...@@ -1125,15 +1126,15 @@ importers:
1125 specifier: 8.0.31126 specifier: 8.0.3
1126 version: 8.0.31127 version: 8.0.3
1127 effect:1128 effect:
1128 specifier: 4.0.11129 specifier: 4.0.2
1129 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1130 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1130 devDependencies:1131 devDependencies:
1131 '@effect/platform-node':1132 '@effect/platform-node':
1132 specifier: 4.0.11133 specifier: 4.0.2
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)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)
1134 '@effect/vitest':1135 '@effect/vitest':
1135 specifier: 4.0.11136 specifier: 4.0.2
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)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)
1137 '@types/node':1138 '@types/node':
1138 specifier: 24.12.41139 specifier: 24.12.4
1139 version: 24.12.41140 version: 24.12.4
...@@ -1162,15 +1163,15 @@ importers:...@@ -1162,15 +1163,15 @@ importers:
1162 specifier: workspace:*1163 specifier: workspace:*
1163 version: link:../shared1164 version: link:../shared
1164 effect:1165 effect:
1165 specifier: 4.0.11166 specifier: 4.0.2
1166 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1167 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1167 devDependencies:1168 devDependencies:
1168 '@effect/platform-node':1169 '@effect/platform-node':
1169 specifier: 4.0.11170 specifier: 4.0.2
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)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)
1171 '@effect/vitest':1172 '@effect/vitest':
1172 specifier: 4.0.11173 specifier: 4.0.2
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)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)
1174 '@t3tools/provider-testing':1175 '@t3tools/provider-testing':
1175 specifier: workspace:*1176 specifier: workspace:*
1176 version: link:../provider-testing1177 version: link:../provider-testing
...@@ -1193,15 +1194,15 @@ importers:...@@ -1193,15 +1194,15 @@ importers:
1193 specifier: workspace:*1194 specifier: workspace:*
1194 version: link:../shared1195 version: link:../shared
1195 effect:1196 effect:
1196 specifier: 4.0.11197 specifier: 4.0.2
1197 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1198 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1198 devDependencies:1199 devDependencies:
1199 '@effect/platform-node':1200 '@effect/platform-node':
1200 specifier: 4.0.11201 specifier: 4.0.2
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)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)
1202 '@effect/vitest':1203 '@effect/vitest':
1203 specifier: 4.0.11204 specifier: 4.0.2
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)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)
1205 '@types/node':1206 '@types/node':
1206 specifier: 24.12.41207 specifier: 24.12.4
1207 version: 24.12.41208 version: 24.12.4
...@@ -1227,18 +1228,18 @@ importers:...@@ -1227,18 +1228,18 @@ importers:
1227 specifier: workspace:*1228 specifier: workspace:*
1228 version: link:../shared1229 version: link:../shared
1229 effect:1230 effect:
1230 specifier: 4.0.11231 specifier: 4.0.2
1231 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1232 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1232 yaml:1233 yaml:
1233 specifier: ^2.9.01234 specifier: ^2.9.0
1234 version: 2.9.01235 version: 2.9.0
1235 devDependencies:1236 devDependencies:
1236 '@effect/platform-node':1237 '@effect/platform-node':
1237 specifier: 4.0.11238 specifier: 4.0.2
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)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)
1239 '@effect/vitest':1240 '@effect/vitest':
1240 specifier: 4.0.11241 specifier: 4.0.2
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)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)
1242 '@t3tools/provider-testing':1243 '@t3tools/provider-testing':
1243 specifier: workspace:*1244 specifier: workspace:*
1244 version: link:../provider-testing1245 version: link:../provider-testing
...@@ -1264,15 +1265,15 @@ importers:...@@ -1264,15 +1265,15 @@ importers:
1264 specifier: workspace:*1265 specifier: workspace:*
1265 version: link:../shared1266 version: link:../shared
1266 effect:1267 effect:
1267 specifier: 4.0.11268 specifier: 4.0.2
1268 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1269 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1269 devDependencies:1270 devDependencies:
1270 '@effect/platform-node':1271 '@effect/platform-node':
1271 specifier: 4.0.11272 specifier: 4.0.2
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)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)
1273 '@effect/vitest':1274 '@effect/vitest':
1274 specifier: 4.0.11275 specifier: 4.0.2
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)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)
1276 '@t3tools/provider-testing':1277 '@t3tools/provider-testing':
1277 specifier: workspace:*1278 specifier: workspace:*
1278 version: link:../provider-testing1279 version: link:../provider-testing
...@@ -1301,15 +1302,15 @@ importers:...@@ -1301,15 +1302,15 @@ importers:
1301 specifier: workspace:*1302 specifier: workspace:*
1302 version: link:../shared1303 version: link:../shared
1303 effect:1304 effect:
1304 specifier: 4.0.11305 specifier: 4.0.2
1305 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1306 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1306 devDependencies:1307 devDependencies:
1307 '@effect/platform-node':1308 '@effect/platform-node':
1308 specifier: 4.0.11309 specifier: 4.0.2
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)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)
1310 '@effect/vitest':1311 '@effect/vitest':
1311 specifier: 4.0.11312 specifier: 4.0.2
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)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)
1313 '@t3tools/provider-testing':1314 '@t3tools/provider-testing':
1314 specifier: workspace:*1315 specifier: workspace:*
1315 version: link:../provider-testing1316 version: link:../provider-testing
...@@ -1327,7 +1328,7 @@ importers:...@@ -1327,7 +1328,7 @@ importers:
1327 version: 1.15.131328 version: 1.15.13
1328 '@opencode/client':1329 '@opencode/client':
1329 specifier: 2.0.231330 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))
1331 '@opencode/protocol':1332 '@opencode/protocol':
1332 specifier: 2.0.231333 specifier: 2.0.23
1333 version: 2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685)1334 version: 2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685)
...@@ -1344,15 +1345,15 @@ importers:...@@ -1344,15 +1345,15 @@ importers:
1344 specifier: workspace:*1345 specifier: workspace:*
1345 version: link:../shared1346 version: link:../shared
1346 effect:1347 effect:
1347 specifier: 4.0.11348 specifier: 4.0.2
1348 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1349 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1349 devDependencies:1350 devDependencies:
1350 '@effect/platform-node':1351 '@effect/platform-node':
1351 specifier: 4.0.11352 specifier: 4.0.2
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)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)
1353 '@effect/vitest':1354 '@effect/vitest':
1354 specifier: 4.0.11355 specifier: 4.0.2
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)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)
1356 '@t3tools/provider-testing':1357 '@t3tools/provider-testing':
1357 specifier: workspace:*1358 specifier: workspace:*
1358 version: link:../provider-testing1359 version: link:../provider-testing
...@@ -1375,15 +1376,15 @@ importers:...@@ -1375,15 +1376,15 @@ importers:
1375 specifier: workspace:*1376 specifier: workspace:*
1376 version: link:../shared1377 version: link:../shared
1377 effect:1378 effect:
1378 specifier: 4.0.11379 specifier: 4.0.2
1379 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1380 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1380 devDependencies:1381 devDependencies:
1381 '@effect/platform-node':1382 '@effect/platform-node':
1382 specifier: 4.0.11383 specifier: 4.0.2
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)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)
1384 '@effect/vitest':1385 '@effect/vitest':
1385 specifier: 4.0.11386 specifier: 4.0.2
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)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)
1387 '@t3tools/provider-testing':1388 '@t3tools/provider-testing':
1388 specifier: workspace:*1389 specifier: workspace:*
1389 version: link:../provider-testing1390 version: link:../provider-testing
...@@ -1397,8 +1398,8 @@ importers:...@@ -1397,8 +1398,8 @@ importers:
1397 packages/provider-testing:1398 packages/provider-testing:
1398 dependencies:1399 dependencies:
1399 '@effect/platform-node':1400 '@effect/platform-node':
1400 specifier: 4.0.11401 specifier: 4.0.2
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)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)
1402 '@t3tools/contracts':1403 '@t3tools/contracts':
1403 specifier: workspace:*1404 specifier: workspace:*
1404 version: link:../contracts1405 version: link:../contracts
...@@ -1409,12 +1410,12 @@ importers:...@@ -1409,12 +1410,12 @@ importers:
1409 specifier: workspace:*1410 specifier: workspace:*
1410 version: link:../shared1411 version: link:../shared
1411 effect:1412 effect:
1412 specifier: 4.0.11413 specifier: 4.0.2
1413 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1414 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1414 devDependencies:1415 devDependencies:
1415 '@effect/vitest':1416 '@effect/vitest':
1416 specifier: 4.0.11417 specifier: 4.0.2
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)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)
1418 '@types/node':1419 '@types/node':
1419 specifier: 24.12.41420 specifier: 24.12.4
1420 version: 24.12.41421 version: 24.12.4
...@@ -1434,8 +1435,8 @@ importers:...@@ -1434,8 +1435,8 @@ importers:
1434 specifier: workspace:*1435 specifier: workspace:*
1435 version: link:../contracts1436 version: link:../contracts
1436 effect:1437 effect:
1437 specifier: 4.0.11438 specifier: 4.0.2
1438 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1439 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1439 jose:1440 jose:
1440 specifier: 'catalog:'1441 specifier: 'catalog:'
1441 version: 6.2.21442 version: 6.2.2
...@@ -1474,11 +1475,11 @@ importers:...@@ -1474,11 +1475,11 @@ importers:
1474 version: 2.9.01475 version: 2.9.0
1475 devDependencies:1476 devDependencies:
1476 '@effect/platform-node':1477 '@effect/platform-node':
1477 specifier: 4.0.11478 specifier: 4.0.2
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)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)
1479 '@effect/vitest':1480 '@effect/vitest':
1480 specifier: 4.0.11481 specifier: 4.0.2
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)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)
1482 '@types/node':1483 '@types/node':
1483 specifier: 24.12.41484 specifier: 24.12.4
1484 version: 24.12.41485 version: 24.12.4
...@@ -1498,15 +1499,15 @@ importers:...@@ -1498,15 +1499,15 @@ importers:
1498 specifier: workspace:*1499 specifier: workspace:*
1499 version: link:../shared1500 version: link:../shared
1500 effect:1501 effect:
1501 specifier: 4.0.11502 specifier: 4.0.2
1502 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1503 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1503 devDependencies:1504 devDependencies:
1504 '@effect/platform-node':1505 '@effect/platform-node':
1505 specifier: 4.0.11506 specifier: 4.0.2
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)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)
1507 '@effect/vitest':1508 '@effect/vitest':
1508 specifier: 4.0.11509 specifier: 4.0.2
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)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)
1510 '@types/node':1511 '@types/node':
1511 specifier: 24.12.41512 specifier: 24.12.4
1512 version: 24.12.41513 version: 24.12.4
...@@ -1520,12 +1521,12 @@ importers:...@@ -1520,12 +1521,12 @@ importers:
1520 specifier: workspace:*1521 specifier: workspace:*
1521 version: link:../shared1522 version: link:../shared
1522 effect:1523 effect:
1523 specifier: 4.0.11524 specifier: 4.0.2
1524 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1525 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1525 devDependencies:1526 devDependencies:
1526 '@effect/vitest':1527 '@effect/vitest':
1527 specifier: 4.0.11528 specifier: 4.0.2
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)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)
1529 '@types/node':1530 '@types/node':
1530 specifier: 24.12.41531 specifier: 24.12.4
1531 version: 24.12.41532 version: 24.12.4
...@@ -1536,8 +1537,8 @@ importers:...@@ -1536,8 +1537,8 @@ importers:
1536 scripts:1537 scripts:
1537 dependencies:1538 dependencies:
1538 '@effect/platform-node':1539 '@effect/platform-node':
1539 specifier: 4.0.11540 specifier: 4.0.2
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)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)
1541 '@electron/asar':1542 '@electron/asar':
1542 specifier: ^4.3.01543 specifier: ^4.3.0
1543 version: 4.3.01544 version: 4.3.0
...@@ -1551,8 +1552,8 @@ importers:...@@ -1551,8 +1552,8 @@ importers:
1551 specifier: workspace:*1552 specifier: workspace:*
1552 version: link:../packages/tailscale1553 version: link:../packages/tailscale
1553 effect:1554 effect:
1554 specifier: 4.0.11555 specifier: 4.0.2
1555 version: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)1556 version: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1556 pngjs:1557 pngjs:
1557 specifier: 7.0.01558 specifier: 7.0.0
1558 version: 7.0.01559 version: 7.0.0
...@@ -1561,8 +1562,8 @@ importers:...@@ -1561,8 +1562,8 @@ importers:
1561 version: 0.35.4(@types/node@24.12.4)1562 version: 0.35.4(@types/node@24.12.4)
1562 devDependencies:1563 devDependencies:
1563 '@effect/vitest':1564 '@effect/vitest':
1564 specifier: 4.0.11565 specifier: 4.0.2
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)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)
1566 '@types/pngjs':1567 '@types/pngjs':
1567 specifier: 6.0.51568 specifier: 6.0.5
1568 version: 6.0.51569 version: 6.0.5
...@@ -1606,8 +1607,8 @@ packages:...@@ -1606,8 +1607,8 @@ packages:
1606 peerDependencies:1607 peerDependencies:
1607 '@distilled.cloud/cloudflare': 1.0.0-rc.131608 '@distilled.cloud/cloudflare': 1.0.0-rc.13
1608 '@effect/platform-bun': ^4.0.01609 '@effect/platform-bun': ^4.0.0
1609 '@effect/platform-node': 4.0.11610 '@effect/platform-node': 4.0.2
1610 effect: 4.0.11611 effect: 4.0.2
1611 rolldown: 1.2.51612 rolldown: 1.2.5
1612 vite: ^7.0.0 || ^8.0.01613 vite: ^7.0.0 || ^8.0.0
1613 peerDependenciesMeta:1614 peerDependenciesMeta:
...@@ -1623,7 +1624,7 @@ packages:...@@ -1623,7 +1624,7 @@ packages:
1623 '@alchemy.run/floci@2.0.0-beta.80':1624 '@alchemy.run/floci@2.0.0-beta.80':
1624 resolution: {integrity: sha512-gtUXFitVY9pSQQYCDtSVyjfd5YOKY3Wleg3WCG5yWno7/l7xBo4kfOMbM63tzWnmka9LewVSITbMfwnC4D/73A==}1625 resolution: {integrity: sha512-gtUXFitVY9pSQQYCDtSVyjfd5YOKY3Wleg3WCG5yWno7/l7xBo4kfOMbM63tzWnmka9LewVSITbMfwnC4D/73A==}
1625 peerDependencies:1626 peerDependencies:
1626 effect: 4.0.11627 effect: 4.0.2
16271628
1628 '@alchemy.run/node-utils@2.0.0-beta.80':1629 '@alchemy.run/node-utils@2.0.0-beta.80':
1629 resolution: {integrity: sha512-uOhVDQZTjwh1AU4mrk0wB5rQaziTwSrVMfqwFP8wALfU//nveu4goOWZimHtqytXiybENh+iEbALH25EFAkc7A==}1630 resolution: {integrity: sha512-uOhVDQZTjwh1AU4mrk0wB5rQaziTwSrVMfqwFP8wALfU//nveu4goOWZimHtqytXiybENh+iEbALH25EFAkc7A==}
...@@ -2661,82 +2662,82 @@ packages:...@@ -2661,82 +2662,82 @@ packages:
2661 '@distilled.cloud/acme@1.0.0-rc.13':2662 '@distilled.cloud/acme@1.0.0-rc.13':
2662 resolution: {integrity: sha512-3rmzH125jQxk0zpCvXGNEybSaqpAolyCX+8LWDDrXf+wIKs67GflkJyQLjOOh0lKARe29hdUZGgqEbbvpp0LNA==}2663 resolution: {integrity: sha512-3rmzH125jQxk0zpCvXGNEybSaqpAolyCX+8LWDDrXf+wIKs67GflkJyQLjOOh0lKARe29hdUZGgqEbbvpp0LNA==}
2663 peerDependencies:2664 peerDependencies:
2664 effect: 4.0.12665 effect: 4.0.2
26652666
2666 '@distilled.cloud/aws@1.0.0-rc.13':2667 '@distilled.cloud/aws@1.0.0-rc.13':
2667 resolution: {integrity: sha512-6ZGcp0LkniB0I2l8Gr7vKRQgTZTch0/07iuvuMZv9Nu+rWwNuZG9VHTUdlIoarWgCHFUNN8yvSYBGOjaeN99tQ==}2668 resolution: {integrity: sha512-6ZGcp0LkniB0I2l8Gr7vKRQgTZTch0/07iuvuMZv9Nu+rWwNuZG9VHTUdlIoarWgCHFUNN8yvSYBGOjaeN99tQ==}
2668 peerDependencies:2669 peerDependencies:
2669 effect: 4.0.12670 effect: 4.0.2
26702671
2671 '@distilled.cloud/axiom@1.0.0-rc.13':2672 '@distilled.cloud/axiom@1.0.0-rc.13':
2672 resolution: {integrity: sha512-aRoJtvfXgWi5dtfjuJvDwnArRKvv2MPYHCxYeZcxZbqe62IaQA5yu/khft7TJvxeDyJoSDnVXZu3RyJjNmBA4g==}2673 resolution: {integrity: sha512-aRoJtvfXgWi5dtfjuJvDwnArRKvv2MPYHCxYeZcxZbqe62IaQA5yu/khft7TJvxeDyJoSDnVXZu3RyJjNmBA4g==}
2673 peerDependencies:2674 peerDependencies:
2674 effect: 4.0.12675 effect: 4.0.2
26752676
2676 '@distilled.cloud/cloudflare@1.0.0-rc.13':2677 '@distilled.cloud/cloudflare@1.0.0-rc.13':
2677 resolution: {integrity: sha512-Py5FoA6azyYExDb91VaeC+9x+ravOBSRhXeUmpcQjCtgqmOdiXgc2YZGMMPI68DF+kMuHRVIrR+2uRZNDOhYjw==}2678 resolution: {integrity: sha512-Py5FoA6azyYExDb91VaeC+9x+ravOBSRhXeUmpcQjCtgqmOdiXgc2YZGMMPI68DF+kMuHRVIrR+2uRZNDOhYjw==}
2678 peerDependencies:2679 peerDependencies:
2679 effect: 4.0.12680 effect: 4.0.2
26802681
2681 '@distilled.cloud/core@1.0.0-rc.13':2682 '@distilled.cloud/core@1.0.0-rc.13':
2682 resolution: {integrity: sha512-RYyrxW+F5zrTuu1UWV/JoycholBCIkXIusYJdDniDwCdmbjdKGl07KlkkeeY774uBawNGf+pt1ESNGeLVnNHsg==}2683 resolution: {integrity: sha512-RYyrxW+F5zrTuu1UWV/JoycholBCIkXIusYJdDniDwCdmbjdKGl07KlkkeeY774uBawNGf+pt1ESNGeLVnNHsg==}
2683 peerDependencies:2684 peerDependencies:
2684 effect: 4.0.12685 effect: 4.0.2
26852686
2686 '@distilled.cloud/doppler@1.0.0-rc.13':2687 '@distilled.cloud/doppler@1.0.0-rc.13':
2687 resolution: {integrity: sha512-GgOEUCc4Bx0C+lYNfZ4OqaA3ULvqDUQTJC8gobSh1L0jfrWclv/kRcSr43v4IXyStld+saUvDfDZgeGzlE74OA==}2688 resolution: {integrity: sha512-GgOEUCc4Bx0C+lYNfZ4OqaA3ULvqDUQTJC8gobSh1L0jfrWclv/kRcSr43v4IXyStld+saUvDfDZgeGzlE74OA==}
2688 peerDependencies:2689 peerDependencies:
2689 effect: 4.0.12690 effect: 4.0.2
26902691
2691 '@distilled.cloud/fly-io@1.0.0-rc.13':2692 '@distilled.cloud/fly-io@1.0.0-rc.13':
2692 resolution: {integrity: sha512-Ipp+9nvs+PzqwDPhZq2/BEHNUeWzXKhrvjfT/eBLFHo/QpH0HgdMH8MSQe6/LGszZoormwA6ZrTv2wxaFO7ZiQ==}2693 resolution: {integrity: sha512-Ipp+9nvs+PzqwDPhZq2/BEHNUeWzXKhrvjfT/eBLFHo/QpH0HgdMH8MSQe6/LGszZoormwA6ZrTv2wxaFO7ZiQ==}
2693 peerDependencies:2694 peerDependencies:
2694 effect: 4.0.12695 effect: 4.0.2
26952696
2696 '@distilled.cloud/gcp@1.0.0-rc.13':2697 '@distilled.cloud/gcp@1.0.0-rc.13':
2697 resolution: {integrity: sha512-un8jqil9ejt96oN+OfEDUsbrEOpC6Ut4B/73DqKDttvt0Btal1OeBNTTQsftVCpeEzXAvkYKGRIT2AeEu1J5jA==}2698 resolution: {integrity: sha512-un8jqil9ejt96oN+OfEDUsbrEOpC6Ut4B/73DqKDttvt0Btal1OeBNTTQsftVCpeEzXAvkYKGRIT2AeEu1J5jA==}
2698 peerDependencies:2699 peerDependencies:
2699 effect: 4.0.12700 effect: 4.0.2
27002701
2701 '@distilled.cloud/hetzner@1.0.0-rc.13':2702 '@distilled.cloud/hetzner@1.0.0-rc.13':
2702 resolution: {integrity: sha512-FvqofgMypNkeZbnjGjWMZqvqGd9GxcMzdbi/6JrbcPaHMJG+CCBGt/mAa7mLlEovzwVaGCsBnOXJ6rP5pZjB4Q==}2703 resolution: {integrity: sha512-FvqofgMypNkeZbnjGjWMZqvqGd9GxcMzdbi/6JrbcPaHMJG+CCBGt/mAa7mLlEovzwVaGCsBnOXJ6rP5pZjB4Q==}
2703 peerDependencies:2704 peerDependencies:
2704 effect: 4.0.12705 effect: 4.0.2
27052706
2706 '@distilled.cloud/infisical@1.0.0-rc.13':2707 '@distilled.cloud/infisical@1.0.0-rc.13':
2707 resolution: {integrity: sha512-Zz8ksA/Y8UUUnWag2UBxB5WYA6wLqOS78ugWJ3cOr9Ot+4bC0NJYWanq35uFInozLXWhun84USU2wOI+mdwQUQ==}2708 resolution: {integrity: sha512-Zz8ksA/Y8UUUnWag2UBxB5WYA6wLqOS78ugWJ3cOr9Ot+4bC0NJYWanq35uFInozLXWhun84USU2wOI+mdwQUQ==}
2708 peerDependencies:2709 peerDependencies:
2709 effect: 4.0.12710 effect: 4.0.2
27102711
2711 '@distilled.cloud/neon@1.0.0-rc.13':2712 '@distilled.cloud/neon@1.0.0-rc.13':
2712 resolution: {integrity: sha512-2JvbBFj1kBfkDVPnWcJZ7TJ1cJwWBtScAY7SNJ2qNBUuAK1Wf2kjJXU0/j16eCJ48BQigPArQFWL51wVu/EUQQ==}2713 resolution: {integrity: sha512-2JvbBFj1kBfkDVPnWcJZ7TJ1cJwWBtScAY7SNJ2qNBUuAK1Wf2kjJXU0/j16eCJ48BQigPArQFWL51wVu/EUQQ==}
2713 peerDependencies:2714 peerDependencies:
2714 effect: 4.0.12715 effect: 4.0.2
27152716
2716 '@distilled.cloud/planetscale@1.0.0-rc.13':2717 '@distilled.cloud/planetscale@1.0.0-rc.13':
2717 resolution: {integrity: sha512-AM97YGRnDfZdqsxFgQMQ83p7ZlRqxS6/foTTJA5P590UMbbOyrQyFyd33BD0agul8a3ngZde3Oej6v7BN55aWw==}2718 resolution: {integrity: sha512-AM97YGRnDfZdqsxFgQMQ83p7ZlRqxS6/foTTJA5P590UMbbOyrQyFyd33BD0agul8a3ngZde3Oej6v7BN55aWw==}
2718 peerDependencies:2719 peerDependencies:
2719 effect: 4.0.12720 effect: 4.0.2
27202721
2721 '@distilled.cloud/prisma@1.0.0-rc.13':2722 '@distilled.cloud/prisma@1.0.0-rc.13':
2722 resolution: {integrity: sha512-+UmHSp9JV8XQl5t5tTdQBY+dWZ9abrEoc7leYEctA0Ar1TrKZEl2EaeQDoumrg4RyGaacRlirEbxaDFI4SOPtQ==}2723 resolution: {integrity: sha512-+UmHSp9JV8XQl5t5tTdQBY+dWZ9abrEoc7leYEctA0Ar1TrKZEl2EaeQDoumrg4RyGaacRlirEbxaDFI4SOPtQ==}
2723 peerDependencies:2724 peerDependencies:
2724 effect: 4.0.12725 effect: 4.0.2
27252726
2726 '@distilled.cloud/railway@1.0.0-rc.13':2727 '@distilled.cloud/railway@1.0.0-rc.13':
2727 resolution: {integrity: sha512-yXalRS3GFLo3hWM0HXptqudi23NVCM4FRD20db2/Ob9FFcNrMJik1fopv+74HOiV+BuxfkCP609KsEK6LVdB/g==}2728 resolution: {integrity: sha512-yXalRS3GFLo3hWM0HXptqudi23NVCM4FRD20db2/Ob9FFcNrMJik1fopv+74HOiV+BuxfkCP609KsEK6LVdB/g==}
2728 peerDependencies:2729 peerDependencies:
2729 effect: 4.0.12730 effect: 4.0.2
27302731
2731 '@distilled.cloud/stripe@1.0.0-rc.13':2732 '@distilled.cloud/stripe@1.0.0-rc.13':
2732 resolution: {integrity: sha512-jLTJ1mg4U39lHZb9EGYBJLR91yB3LSG6fVxix+r1BbqaTovWzE+NuJ7fu9fRSeax9jRAqsGLLxe9IxJbOtwQnQ==}2733 resolution: {integrity: sha512-jLTJ1mg4U39lHZb9EGYBJLR91yB3LSG6fVxix+r1BbqaTovWzE+NuJ7fu9fRSeax9jRAqsGLLxe9IxJbOtwQnQ==}
2733 peerDependencies:2734 peerDependencies:
2734 effect: 4.0.12735 effect: 4.0.2
27352736
2736 '@distilled.cloud/zerossl@1.0.0-rc.13':2737 '@distilled.cloud/zerossl@1.0.0-rc.13':
2737 resolution: {integrity: sha512-dnxhg39lZjpTdZbHCVYPoUC9E2r8eSHbqiYDhSq2EurVPJcc9YRXlxZR1bP1nniSp078XV8GA+aUECt/Z56aQg==}2738 resolution: {integrity: sha512-dnxhg39lZjpTdZbHCVYPoUC9E2r8eSHbqiYDhSq2EurVPJcc9YRXlxZR1bP1nniSp078XV8GA+aUECt/Z56aQg==}
2738 peerDependencies:2739 peerDependencies:
2739 effect: 4.0.12740 effect: 4.0.2
27402741
2741 '@dnd-kit/accessibility@3.1.1':2742 '@dnd-kit/accessibility@3.1.1':
2742 resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==}2743 resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==}
...@@ -2769,52 +2770,52 @@ packages:...@@ -2769,52 +2770,52 @@ packages:
2769 '@drizzle-team/brocli@0.12.0':2770 '@drizzle-team/brocli@0.12.0':
2770 resolution: {integrity: sha512-mlUE+rZ8CatQekLhnaiN91Iemdd+e2gFKooGlnRB3oPTL3VghLfX24dx7HrzMNeC1JrIB/0kpsfyty3f5HNfxQ==}2771 resolution: {integrity: sha512-mlUE+rZ8CatQekLhnaiN91Iemdd+e2gFKooGlnRB3oPTL3VghLfX24dx7HrzMNeC1JrIB/0kpsfyty3f5HNfxQ==}
27712772
2772 '@effect/atom-react@4.0.1':2773 '@effect/atom-react@4.0.2':
2773 resolution: {integrity: sha512-V/vcbFCVY2AV7PvjhmOP37Cr4NofrtxBBGW6M1ckBIBxmpi3sMwdPTxj2obPNE4Ho3gkeEQzRC9zEIQ4BDNdQg==}2774 resolution: {integrity: sha512-rg9xnPHzjURhKhOm+bKnYitPPQC02m6R7ZmJLNdxtrNCgDQ9fSOPqZHN5W/GzUw+OsvplKSvaBe/JSQejeYKYA==}
2774 peerDependencies:2775 peerDependencies:
2775 effect: 4.0.12776 effect: 4.0.2
2776 react: '>=19.0.0 <20.0.0'2777 react: '>=19.0.0 <20.0.0'
2777 scheduler: '>=0.25.0 <0.28.0'2778 scheduler: '>=0.25.0 <0.28.0'
27782779
2779 '@effect/openapi-generator@4.0.1':2780 '@effect/openapi-generator@4.0.2':
2780 resolution: {integrity: sha512-UWlXX1cjP68FDQyc+mlwfh34OpCKlnAREFpWk9DG6fzmw/w/+FvIyadZvS1y7G2b8U2e/khO0f3p5ak0DTC9Ng==}2781 resolution: {integrity: sha512-rSH4VFCPs8d0LnB4QMPaGpT3Z3KrF7mCV+hvpv8FDXerImpYMSEzaLN5WWB7LG+mOOcTWIa3KYWvBBf0kH/JrQ==}
2781 hasBin: true2782 hasBin: true
2782 peerDependencies:2783 peerDependencies:
2783 '@effect/platform-node': 4.0.12784 '@effect/platform-node': 4.0.2
2784 effect: 4.0.12785 effect: 4.0.2
27852786
2786 '@effect/platform-node-shared@4.0.1':2787 '@effect/platform-node-shared@4.0.2':
2787 resolution: {integrity: sha512-VanaejudEhKJ4mpmqnEzdncVUhN6sGSO9ZDND54mRxAlZxj+4dYAWjDTYAy9o4tJo9aALeP2U8cVcOFzEdSeLg==}2788 resolution: {integrity: sha512-xn8aDw9p/QUPt1Yi0C3HUMcycT+MjHfAe19FDUDrUuzcwq0xxskkamVSqbdykF/Dsuus4aZTsCBZA/vkhHIfbQ==}
2788 engines: {node: '>=18.0.0'}2789 engines: {node: '>=18.0.0'}
2789 peerDependencies:2790 peerDependencies:
2790 effect: 4.0.12791 effect: 4.0.2
27912792
2792 '@effect/platform-node@4.0.1':2793 '@effect/platform-node@4.0.2':
2793 resolution: {integrity: sha512-FT0Fu5LO0/XP9zBpj0HqrtJNLluK4StNKqf6TSulUsjp8FPBsDVXGJiDuyoN5J2yVMT7tgvhxSwaDcObWVRIaQ==}2794 resolution: {integrity: sha512-RWesXBQStnFHdD465gR5thFKgXO7FSyCKRZ56nWXB7PedNVzr8vV0nb/3MULLdri493sMz/b/pmGBTb6K8cBjQ==}
2794 engines: {node: '>=18.0.0'}2795 engines: {node: '>=18.0.0'}
2795 peerDependencies:2796 peerDependencies:
2796 effect: 4.0.12797 effect: 4.0.2
2797 redis: '>=5.0.0 <7.0.0'2798 redis: '>=5.0.0 <7.0.0'
27982799
2799 '@effect/sql-d1@4.0.0':2800 '@effect/sql-d1@4.0.0':
2800 resolution: {integrity: sha512-pmkzncZCGD6CLyvc89keEBU85h+gHVCu/LKQnThd+ruYSUbG0R9jYA+lnk3R8Djp0wQW6SbsbmHQuhopIYyo3Q==}2801 resolution: {integrity: sha512-pmkzncZCGD6CLyvc89keEBU85h+gHVCu/LKQnThd+ruYSUbG0R9jYA+lnk3R8Djp0wQW6SbsbmHQuhopIYyo3Q==}
2801 peerDependencies:2802 peerDependencies:
2802 effect: 4.0.12803 effect: 4.0.2
28032804
2804 '@effect/sql-pg@4.0.1':2805 '@effect/sql-pg@4.0.2':
2805 resolution: {integrity: sha512-X5aqOxHNWqVXL+vyTQZLYDip65lm5rrZHuNkWyyr672iup1tjYAs5Dn9tHR5h1t0blpJ57j8Ng5G5AUQ8teIqA==}2806 resolution: {integrity: sha512-i2N5F0L5s1S8Nx2I8V7k+awBinP26b5xiiHL1zn5b6RALNnloiU7FK1yS4dAkmqG9B0EcOVxvJrIpoMWwrB4hw==}
2806 peerDependencies:2807 peerDependencies:
2807 effect: 4.0.12808 effect: 4.0.2
28082809
2809 '@effect/sql-sqlite-bun@4.0.0-rc.112':2810 '@effect/sql-sqlite-bun@4.0.0-rc.112':
2810 resolution: {integrity: sha512-EqR8pWZo3VzedRvP6qo5HcfqNmFvSa+sQLWQl3oBMx2KY1FCc8NYjep79wYjNkW0qABnffrPUXCMTOncd1A+5g==}2811 resolution: {integrity: sha512-EqR8pWZo3VzedRvP6qo5HcfqNmFvSa+sQLWQl3oBMx2KY1FCc8NYjep79wYjNkW0qABnffrPUXCMTOncd1A+5g==}
2811 peerDependencies:2812 peerDependencies:
2812 effect: 4.0.12813 effect: 4.0.2
28132814
2814 '@effect/sql-sqlite-do@4.0.1':2815 '@effect/sql-sqlite-do@4.0.2':
2815 resolution: {integrity: sha512-tS+qQok3xKsycnnhvIDX+6nvlM4Y2ouvru3voOzxtDQqX96NSOMX2xReLf4Feb6GN3jnzgEEtVGDDWk3YLrpsg==}2816 resolution: {integrity: sha512-dbKYFZSfdaIbbnYgvu432f9ISi/nSaXCYRfoK0HWKB8NwqI7hspaFvc4cW6ETDJyaoCDJzKzBQxrvCmA/T0XHw==}
2816 peerDependencies:2817 peerDependencies:
2817 effect: 4.0.12818 effect: 4.0.2
28182819
2819 '@effect/tsgo-darwin-arm64@0.46.1':2820 '@effect/tsgo-darwin-arm64@0.46.1':
2820 resolution: {integrity: sha512-ErehNqI9p8me4XKO8N4bzdDWgBbSNlJ3CIZGfXoAW6Fo4Oo7x4ZbZV7KNsMSn9aJSiUUOQUoXjGBdslU5OYMdw==}2821 resolution: {integrity: sha512-ErehNqI9p8me4XKO8N4bzdDWgBbSNlJ3CIZGfXoAW6Fo4Oo7x4ZbZV7KNsMSn9aJSiUUOQUoXjGBdslU5OYMdw==}
...@@ -2855,10 +2856,10 @@ packages:...@@ -2855,10 +2856,10 @@ packages:
2855 resolution: {integrity: sha512-DMcBCg5nWLufejRlyqFEkXmbtaLUJ56NKny6L1LTtimvz0U3VNj9H6ZUXV4WeeWvJzVyL0y7G2wsCBAFUgy1jw==}2856 resolution: {integrity: sha512-DMcBCg5nWLufejRlyqFEkXmbtaLUJ56NKny6L1LTtimvz0U3VNj9H6ZUXV4WeeWvJzVyL0y7G2wsCBAFUgy1jw==}
2856 hasBin: true2857 hasBin: true
28572858
2858 '@effect/vitest@4.0.1':2859 '@effect/vitest@4.0.2':
2859 resolution: {integrity: sha512-DbY9kf/018zBxRIX7rJwBnPVPzSarnUpcshm0vfYPFiDkSa7AFrXTh2BlDNUbrdrmqcIOBhVZ7GkEtxf8WiQrg==}2860 resolution: {integrity: sha512-Zb72nu7iUy3rNdBp9J1Xu5oUQGwJ8cOYsUwmYgujj88aqyvASRDjOS01SjlcPViqf77csduetKdCJTVndMNfzw==}
2860 peerDependencies:2861 peerDependencies:
2861 effect: 4.0.12862 effect: 4.0.2
28622863
2863 '@electric-sql/pglite@0.3.15':2864 '@electric-sql/pglite@0.3.15':
2864 resolution: {integrity: sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==}2865 resolution: {integrity: sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==}
...@@ -4200,7 +4201,7 @@ packages:...@@ -4200,7 +4201,7 @@ packages:
4200 '@opencode/client@2.0.23':4201 '@opencode/client@2.0.23':
4201 resolution: {integrity: sha512-tHfYu7sKNxFu2dZ7Pu5vZG4T8GHqU71ZCsXHZ/RoI0LLdG7t2zwePHWR9aNbcSP+jDUGyaQlzr5utC9Uduczvg==}4202 resolution: {integrity: sha512-tHfYu7sKNxFu2dZ7Pu5vZG4T8GHqU71ZCsXHZ/RoI0LLdG7t2zwePHWR9aNbcSP+jDUGyaQlzr5utC9Uduczvg==}
4202 peerDependencies:4203 peerDependencies:
4203 effect: 4.0.14204 effect: 4.0.2
4204 solid-js: '>=1.9.0'4205 solid-js: '>=1.9.0'
4205 peerDependenciesMeta:4206 peerDependenciesMeta:
4206 effect:4207 effect:
...@@ -6113,8 +6114,8 @@ packages:...@@ -6113,8 +6114,8 @@ packages:
6113 '@types/whatwg-url@11.0.5':6114 '@types/whatwg-url@11.0.5':
6114 resolution: {integrity: sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==}6115 resolution: {integrity: sha512-coYR071JRaHa+xoEvvYqvnIHaVqaYrLPbsufM9BF63HkwI5Lgmy2QR8Q5K/lYDYo5AK82wOvSOS0UsLTpTG7uQ==}
61156116
6116 '@types/ws@8.18.1':6117 '@types/ws@8.18.2':
6117 resolution: {integrity: sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==}6118 resolution: {integrity: sha512-67MQl+fpWKVTT1NYdnmo3U4sc/xPo/zQBncVnI74qmQa0z/b+1g6iYqNmGCPbxO+zz2aklb08a0oHfegiVd0/w==}
61186119
6119 '@types/yargs-parser@21.0.3':6120 '@types/yargs-parser@21.0.3':
6120 resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}6121 resolution: {integrity: sha512-I4q9QU9MQv4oEOz4tAHJtNz1cwuLxn2F3xcc2iV5WdqLPpUnj30aUuxt1mAxYTG+oe8CZMV/+6rU4S4gRDzqtQ==}
...@@ -6766,15 +6767,15 @@ packages:...@@ -6766,15 +6767,15 @@ packages:
6766 '@alchemy.run/frontend-frameworks': 2.0.0-beta.806767 '@alchemy.run/frontend-frameworks': 2.0.0-beta.80
6767 '@aws/durable-execution-sdk-js': ^2.1.06768 '@aws/durable-execution-sdk-js': ^2.1.0
6768 '@effect/platform-bun': ^4.0.06769 '@effect/platform-bun': ^4.0.0
6769 '@effect/platform-node': 4.0.16770 '@effect/platform-node': 4.0.2
6770 '@effect/sql-mysql2': ^4.0.06771 '@effect/sql-mysql2': ^4.0.0
6771 '@effect/sql-pg': 4.0.16772 '@effect/sql-pg': 4.0.2
6772 '@effect/vitest': 4.0.16773 '@effect/vitest': 4.0.2
6773 '@prisma/orm-postgres': 8.0.0-rc.116774 '@prisma/orm-postgres': 8.0.0-rc.11
6774 '@vercel/nft': ^1.10.26775 '@vercel/nft': ^1.10.2
6775 drizzle-kit: 1.0.0-rc.5-ab785fc6776 drizzle-kit: 1.0.0-rc.5-ab785fc
6776 drizzle-orm: 1.0.0-rc.5-ab785fc6777 drizzle-orm: 1.0.0-rc.5-ab785fc
6777 effect: 4.0.16778 effect: 4.0.2
6778 mongodb: ^6.10.06779 mongodb: ^6.10.0
6779 mysql2: ^3.24.26780 mysql2: ^3.24.2
6780 pg: ^8.22.06781 pg: ^8.22.0
...@@ -7804,7 +7805,7 @@ packages:...@@ -7804,7 +7805,7 @@ packages:
7804 '@effect/sql-d1': '>=4.0.0-beta.105 || >=4.0.0'7805 '@effect/sql-d1': '>=4.0.0-beta.105 || >=4.0.0'
7805 '@effect/sql-libsql': '>=4.0.0-beta.105 || >=4.0.0'7806 '@effect/sql-libsql': '>=4.0.0-beta.105 || >=4.0.0'
7806 '@effect/sql-mysql2': '>=4.0.0-beta.105 || >=4.0.0'7807 '@effect/sql-mysql2': '>=4.0.0-beta.105 || >=4.0.0'
7807 '@effect/sql-pg': 4.0.17808 '@effect/sql-pg': 4.0.2
7808 '@effect/sql-pglite': '>=4.0.0-beta.105 || >=4.0.0'7809 '@effect/sql-pglite': '>=4.0.0-beta.105 || >=4.0.0'
7809 '@effect/sql-sqlite-bun': '>=4.0.0-beta.105 || >=4.0.0'7810 '@effect/sql-sqlite-bun': '>=4.0.0-beta.105 || >=4.0.0'
7810 '@effect/sql-sqlite-do': '>=4.0.0-beta.105 || >=4.0.0'7811 '@effect/sql-sqlite-do': '>=4.0.0-beta.105 || >=4.0.0'
...@@ -7835,7 +7836,7 @@ packages:...@@ -7835,7 +7836,7 @@ packages:
7835 arktype: '>=2.0.0'7836 arktype: '>=2.0.0'
7836 better-sqlite3: '>=9.3.0'7837 better-sqlite3: '>=9.3.0'
7837 bun-types: '*'7838 bun-types: '*'
7838 effect: 4.0.17839 effect: 4.0.2
7839 expo-sqlite: '>=14.0.0'7840 expo-sqlite: '>=14.0.0'
7840 minipg: '>=0.2.0'7841 minipg: '>=0.2.0'
7841 mssql: ^11.0.17842 mssql: ^11.0.1
...@@ -7962,8 +7963,8 @@ packages:...@@ -7962,8 +7963,8 @@ packages:
7962 ee-first@1.1.1:7963 ee-first@1.1.1:
7963 resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}7964 resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
79647965
7965 effect@4.0.1:7966 effect@4.0.2:
7966 resolution: {integrity: sha512-b1VlQG9g8fwxE5QnIZuPoOP/0MsqHJSRKxUijjoM80E5q95FXrX5yWtY5XI8G+GJsBQAVSDbLS458z9a++uVvw==}7967 resolution: {integrity: sha512-YeYnLqSFrL4+tCOXRrfNP03w8FILoF/wDl+ukraJAGzXrjcS383W7LAAvGBbLatEyktmLxRq+9xJinx7QzXW5A==}
79677968
7968 ejs@3.1.10:7969 ejs@3.1.10:
7969 resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}7970 resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
...@@ -12047,14 +12048,14 @@ snapshots:...@@ -12047,14 +12048,14 @@ snapshots:
12047 dependencies:12048 dependencies:
12048 json-schema: 0.4.012049 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)':
12051 dependencies:12052 dependencies:
12052 '@alchemy.run/node-utils': 2.0.0-beta.8012053 '@alchemy.run/node-utils': 2.0.0-beta.80
12053 '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260918.1)12054 '@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))
12055 '@puppeteer/browsers': 3.2.2(yauzl@3.4.0)12056 '@puppeteer/browsers': 3.2.2(yauzl@3.4.0)
12056 capnp-es: 0.0.16(typescript@7.0.2)12057 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)
12058 magic-string: 0.30.2112059 magic-string: 0.30.21
12059 mime: 4.1.012060 mime: 4.1.0
12060 sharp: 0.35.4(@types/node@24.12.4)12061 sharp: 0.35.4(@types/node@24.12.4)
...@@ -12062,7 +12063,7 @@ snapshots:...@@ -12062,7 +12063,7 @@ snapshots:
12062 workerd: 1.20260918.112063 workerd: 1.20260918.1
12063 yauzl: 3.4.012064 yauzl: 3.4.0
12064 optionalDependencies:12065 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)
12066 rolldown: 1.2.512067 rolldown: 1.2.5
12067 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)'12068 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)'
12068 transitivePeerDependencies:12069 transitivePeerDependencies:
...@@ -12070,9 +12071,9 @@ snapshots:...@@ -12070,9 +12071,9 @@ snapshots:
12070 - proxy-agent12071 - proxy-agent
12071 - typescript12072 - 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))':
12074 dependencies:12075 dependencies:
12075 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)12076 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1207612077
12077 '@alchemy.run/node-utils@2.0.0-beta.80':12078 '@alchemy.run/node-utils@2.0.0-beta.80':
12078 dependencies:12079 dependencies:
...@@ -13354,86 +13355,86 @@ snapshots:...@@ -13354,86 +13355,86 @@ snapshots:
1335413355
13355 '@dimforge/rapier3d-compat@0.12.0': {}13356 '@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))':
13358 dependencies:13359 dependencies:
13359 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))13360 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13360 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)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))':
13363 dependencies:13364 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))
13365 '@smithy/types': 4.18.013366 '@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))':
13369 dependencies:13370 dependencies:
13370 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))13371 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13371 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)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))':
13374 dependencies:13375 dependencies:
13375 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))13376 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13376 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)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))':
13379 dependencies:13380 dependencies:
13380 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)13381 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
13381 graphql: 16.11.013382 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))':
13384 dependencies:13385 dependencies:
13385 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))13386 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13386 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)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))':
13389 dependencies:13390 dependencies:
13390 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))13391 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13391 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)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))':
13394 dependencies:13395 dependencies:
13395 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))13396 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13396 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)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))':
13399 dependencies:13400 dependencies:
13400 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))13401 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13401 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)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))':
13404 dependencies:13405 dependencies:
13405 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))13406 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13406 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)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))':
13409 dependencies:13410 dependencies:
13410 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))13411 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13411 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)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))':
13414 dependencies:13415 dependencies:
13415 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))13416 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13416 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)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))':
13419 dependencies:13420 dependencies:
13420 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))13421 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13421 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)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))':
13424 dependencies:13425 dependencies:
13425 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))13426 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13426 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)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))':
13429 dependencies:13430 dependencies:
13430 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))13431 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13431 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)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))':
13434 dependencies:13435 dependencies:
13435 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))13436 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
13436 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)13437 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1343713438
13438 '@dnd-kit/accessibility@3.1.1(react@19.2.6)':13439 '@dnd-kit/accessibility@3.1.1(react@19.2.6)':
13439 dependencies:13440 dependencies:
...@@ -13469,62 +13470,62 @@ snapshots:...@@ -13469,62 +13470,62 @@ snapshots:
1346913470
13470 '@drizzle-team/brocli@0.12.0': {}13471 '@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)':
13473 dependencies:13474 dependencies:
13474 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)13475 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
13475 react: 19.2.613476 react: 19.2.6
13476 scheduler: 0.28.013477 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)':
13479 dependencies:13480 dependencies:
13480 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)13481 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
13481 react: 19.3.013482 react: 19.3.0
13482 scheduler: 0.28.013483 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)':
13485 dependencies:13486 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/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)
13487 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)13488 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
13488 swagger2openapi: 7.0.8(encoding@0.1.13)13489 swagger2openapi: 7.0.8(encoding@0.1.13)
13489 transitivePeerDependencies:13490 transitivePeerDependencies:
13490 - encoding13491 - 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)':
13493 dependencies:13494 dependencies:
13494 '@types/ws': 8.18.113495 '@types/ws': 8.18.2
13495 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)13496 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
13496 ws: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)13497 ws: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
13497 transitivePeerDependencies:13498 transitivePeerDependencies:
13498 - bufferutil13499 - bufferutil
13499 - utf-8-validate13500 - 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)':
13502 dependencies:13503 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/platform-node-shared': 4.0.2(bufferutil@4.1.0)(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))(utf-8-validate@6.0.6)
13504 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)13505 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
13505 redis: 6.2.113506 redis: 6.2.1
13506 undici: 8.11.213507 undici: 8.11.2
13507 transitivePeerDependencies:13508 transitivePeerDependencies:
13508 - bufferutil13509 - bufferutil
13509 - utf-8-validate13510 - 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))':
13512 dependencies:13513 dependencies:
13513 '@cloudflare/workers-types': 5.20261004.113514 '@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))':
13517 dependencies:13518 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))':
13521 dependencies:13522 dependencies:
13522 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)13523 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
13523 optional: true13524 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))':
13526 dependencies:13527 dependencies:
13527 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)13528 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1352813529
13529 '@effect/tsgo-darwin-arm64@0.46.1':13530 '@effect/tsgo-darwin-arm64@0.46.1':
13530 optional: true13531 optional: true
...@@ -13557,9 +13558,9 @@ snapshots:...@@ -13557,9 +13558,9 @@ snapshots:
13557 '@effect/tsgo-win32-arm64': 0.46.113558 '@effect/tsgo-win32-arm64': 0.46.1
13558 '@effect/tsgo-win32-x64': 0.46.113559 '@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)':
13561 dependencies:13562 dependencies:
13562 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)13563 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
13563 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)13564 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)
13564 transitivePeerDependencies:13565 transitivePeerDependencies:
13565 - '@arethetypeswrong/core'13566 - '@arethetypeswrong/core'
...@@ -14673,7 +14674,7 @@ snapshots:...@@ -14673,7 +14674,7 @@ snapshots:
1467314674
14674 '@libsql/isomorphic-ws@0.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6)':14675 '@libsql/isomorphic-ws@0.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6)':
14675 dependencies:14676 dependencies:
14676 '@types/ws': 8.18.114677 '@types/ws': 8.18.2
14677 ws: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)14678 ws: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
14678 transitivePeerDependencies:14679 transitivePeerDependencies:
14679 - bufferutil14680 - bufferutil
...@@ -14973,22 +14974,22 @@ snapshots:...@@ -14973,22 +14974,22 @@ snapshots:
14973 dependencies:14974 dependencies:
14974 cross-spawn: 7.0.614975 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))':
14977 dependencies:14978 dependencies:
14978 '@opencode/protocol': 2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685)14979 '@opencode/protocol': 2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685)
14979 '@opencode/schema': 2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59)14980 '@opencode/schema': 2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59)
14980 optionalDependencies:14981 optionalDependencies:
14981 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)14982 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1498214983
14983 '@opencode/protocol@2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685)':14984 '@opencode/protocol@2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685)':
14984 dependencies:14985 dependencies:
14985 '@opencode/schema': 2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59)14986 '@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
14988 '@opencode/schema@2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59)':14989 '@opencode/schema@2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59)':
14989 dependencies:14990 dependencies:
14990 '@standard-schema/spec': 1.1.014991 '@standard-schema/spec': 1.1.0
14991 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)14992 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
1499214993
14993 '@oslojs/encoding@1.1.0': {}14994 '@oslojs/encoding@1.1.0': {}
1499414995
...@@ -16661,7 +16662,7 @@ snapshots:...@@ -16661,7 +16662,7 @@ snapshots:
16661 '@types/webidl-conversions': 7.0.316662 '@types/webidl-conversions': 7.0.3
16662 optional: true16663 optional: true
1666316664
16664 '@types/ws@8.18.1':16665 '@types/ws@8.18.2':
16665 dependencies:16666 dependencies:
16666 '@types/node': 24.12.416667 '@types/node': 24.12.4
1666716668
...@@ -17140,37 +17141,37 @@ snapshots:...@@ -17140,37 +17141,37 @@ snapshots:
17140 json-schema-traverse: 1.0.017141 json-schema-traverse: 1.0.0
17141 require-from-string: 2.0.217142 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):
17144 dependencies:17145 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/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)
17146 '@alchemy.run/floci': 2.0.0-beta.80(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17147 '@alchemy.run/floci': 2.0.0-beta.80(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17147 '@alchemy.run/node-utils': 2.0.0-beta.8017148 '@alchemy.run/node-utils': 2.0.0-beta.80
17148 '@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 '@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/acme': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17150 '@distilled.cloud/aws': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17151 '@distilled.cloud/aws': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17151 '@distilled.cloud/axiom': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17152 '@distilled.cloud/axiom': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17152 '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17153 '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17153 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17154 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17154 '@distilled.cloud/doppler': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17155 '@distilled.cloud/doppler': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17155 '@distilled.cloud/fly-io': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17156 '@distilled.cloud/fly-io': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17156 '@distilled.cloud/gcp': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17157 '@distilled.cloud/gcp': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17157 '@distilled.cloud/hetzner': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17158 '@distilled.cloud/hetzner': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17158 '@distilled.cloud/infisical': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17159 '@distilled.cloud/infisical': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17159 '@distilled.cloud/neon': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17160 '@distilled.cloud/neon': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17160 '@distilled.cloud/planetscale': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17161 '@distilled.cloud/planetscale': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17161 '@distilled.cloud/prisma': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17162 '@distilled.cloud/prisma': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17162 '@distilled.cloud/railway': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17163 '@distilled.cloud/railway': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17163 '@distilled.cloud/stripe': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17164 '@distilled.cloud/stripe': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17164 '@distilled.cloud/zerossl': 1.0.0-rc.13(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17165 '@distilled.cloud/zerossl': 1.0.0-rc.13(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17165 '@effect/sql-d1': 4.0.0(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17166 '@effect/sql-d1': 4.0.0(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17166 '@effect/sql-sqlite-do': 4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17167 '@effect/sql-sqlite-do': 4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
17167 '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)17168 '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
17168 '@neon/functions': 0.11.0(hono@4.13.7)17169 '@neon/functions': 0.11.0(hono@4.13.7)
17169 '@octokit/rest': 22.0.117170 '@octokit/rest': 22.0.1
17170 '@octokit/webhooks': 14.2.017171 '@octokit/webhooks': 14.2.0
17171 '@types/aws-lambda': 8.10.16117172 '@types/aws-lambda': 8.10.161
17172 capnweb: 0.12.017173 capnweb: 0.12.0
17173 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)17174 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
17174 fflate: 0.8.317175 fflate: 0.8.3
17175 libsodium-wrappers: 0.8.417176 libsodium-wrappers: 0.8.4
17176 pathe: 2.0.317177 pathe: 2.0.3
...@@ -17179,11 +17180,11 @@ snapshots:...@@ -17179,11 +17180,11 @@ snapshots:
17179 tinyglobby: 0.2.1717180 tinyglobby: 0.2.17
17180 yaml: 2.9.017181 yaml: 2.9.0
17181 optionalDependencies:17182 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/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)
17183 '@effect/sql-pg': 4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))17184 '@effect/sql-pg': 4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
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)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)
17185 drizzle-kit: 1.0.0-rc.5-ab785fc17186 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)
17187 mongodb: 6.21.0(@aws-sdk/credential-providers@3.1062.0)(socks@2.8.9)17188 mongodb: 6.21.0(@aws-sdk/credential-providers@3.1062.0)(socks@2.8.9)
17188 pg: 8.23.017189 pg: 8.23.0
17189 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)'17190 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:...@@ -18338,17 +18339,17 @@ snapshots:
18338 get-tsconfig: 4.14.318339 get-tsconfig: 4.14.3
18339 jiti: 2.7.018340 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):
18342 optionalDependencies:18343 optionalDependencies:
18343 '@cloudflare/workers-types': 4.20260604.118344 '@cloudflare/workers-types': 4.20260604.1
18344 '@effect/sql-d1': 4.0.0(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))18345 '@effect/sql-d1': 4.0.0(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
18345 '@effect/sql-pg': 4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))18346 '@effect/sql-pg': 4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
18346 '@effect/sql-sqlite-bun': 4.0.0-rc.112(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))18347 '@effect/sql-sqlite-bun': 4.0.0-rc.112(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
18347 '@effect/sql-sqlite-do': 4.0.1(effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f))18348 '@effect/sql-sqlite-do': 4.0.2(effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688))
18348 '@electric-sql/pglite': 0.3.1518349 '@electric-sql/pglite': 0.3.15
18349 '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)18350 '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
18350 bun-types: 1.3.1418351 bun-types: 1.3.14
18351 effect: 4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f)18352 effect: 4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688)
18352 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)18353 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)
18353 pg: 8.23.018354 pg: 8.23.0
18354 valibot: 1.2.0(typescript@7.0.2)18355 valibot: 1.2.0(typescript@7.0.2)
...@@ -18370,7 +18371,7 @@ snapshots:...@@ -18370,7 +18371,7 @@ snapshots:
1837018371
18371 ee-first@1.1.1: {}18372 ee-first@1.1.1: {}
1837218373
18373 effect@4.0.1(patch_hash=a33cba07c41f32374c2aaa86ea4a84d3ab9a872a78c94b65e929b19f8361856f): {}18374 effect@4.0.2(patch_hash=ec61ee307eaec3e17f757e0e6a16296ea4b7a8c3188df0c6ec5e66301fd78688): {}
1837418375
18375 ejs@3.1.10:18376 ejs@3.1.10:
18376 dependencies:18377 dependencies:
pnpm-workspace.yaml+20-18
...@@ -30,14 +30,14 @@ catalog:...@@ -30,14 +30,14 @@ catalog:
30 "@clerk/expo": 4.6.830 "@clerk/expo": 4.6.8
31 "@clerk/react": 6.16.131 "@clerk/react": 6.16.1
32 "@clerk/shared": 4.33.032 "@clerk/shared": 4.33.0
33 "@effect/atom-react": 4.0.133 "@effect/atom-react": 4.0.2
34 "@effect/openapi-generator": 4.0.134 "@effect/openapi-generator": 4.0.2
35 "@effect/platform-node": 4.0.135 "@effect/platform-node": 4.0.2
36 "@effect/platform-node-shared": 4.0.136 "@effect/platform-node-shared": 4.0.2
37 "@effect/sql-pg": 4.0.137 "@effect/sql-pg": 4.0.2
38 "@effect/sql-sqlite-do": 4.0.138 "@effect/sql-sqlite-do": 4.0.2
39 "@effect/tsgo": 0.46.139 "@effect/tsgo": 0.46.1
40 "@effect/vitest": 4.0.140 "@effect/vitest": 4.0.2
41 "@legendapp/list": 3.3.541 "@legendapp/list": 3.3.5
42 "@noble/curves": 1.9.142 "@noble/curves": 1.9.1
43 "@noble/hashes": 1.8.043 "@noble/hashes": 1.8.0
...@@ -46,7 +46,8 @@ catalog:...@@ -46,7 +46,8 @@ catalog:
46 "@tailwindcss/oxide": 4.3.346 "@tailwindcss/oxide": 4.3.3
47 "@tailwindcss/vite": 4.3.347 "@tailwindcss/vite": 4.3.3
48 "@types/node": 24.12.448 "@types/node": 24.12.4
49 effect: 4.0.149 "@types/ws": 8.18.2
50 effect: 4.0.2
50 jose: 6.2.251 jose: 6.2.2
51 lightningcss: 1.33.052 lightningcss: 1.33.0
52 tailwindcss: 4.3.353 tailwindcss: 4.3.3
...@@ -86,15 +87,15 @@ minimumReleaseAgeExclude:...@@ -86,15 +87,15 @@ minimumReleaseAgeExclude:
86 - "@distilled.cloud/core@1.0.0-rc.13"87 - "@distilled.cloud/core@1.0.0-rc.13"
87 - "@distilled.cloud/neon@1.0.0-rc.13"88 - "@distilled.cloud/neon@1.0.0-rc.13"
88 - "@distilled.cloud/planetscale@1.0.0-rc.13"89 - "@distilled.cloud/planetscale@1.0.0-rc.13"
89 - "@effect/atom-react@4.0.1"90 - "@effect/atom-react@4.0.2"
90 - "@effect/openapi-generator@4.0.1"91 - "@effect/openapi-generator@4.0.2"
91 - "@effect/platform-node-shared@4.0.1"92 - "@effect/platform-node-shared@4.0.2"
92 - "@effect/platform-node@4.0.1"93 - "@effect/platform-node@4.0.2"
93 - "@effect/sql-pg@4.0.1"94 - "@effect/sql-pg@4.0.2"
94 - "@effect/sql-sqlite-do@4.0.1"95 - "@effect/sql-sqlite-do@4.0.2"
95 - "@effect/vitest@4.0.1"96 - "@effect/vitest@4.0.2"
96 - alchemy@2.0.0-beta.8097 - alchemy@2.0.0-beta.80
97 - effect@4.0.198 - effect@4.0.2
98 - "@legendapp/list@3.3.5"99 - "@legendapp/list@3.3.5"
99 - "@expo/cli@58.1.1"100 - "@expo/cli@58.1.1"
100 - "@expo/env@2.5.1"101 - "@expo/env@2.5.1"
...@@ -252,6 +253,7 @@ overrides:...@@ -252,6 +253,7 @@ overrides:
252 tailwindcss: "catalog:"253 tailwindcss: "catalog:"
253 # Ranges from @effect/platform-node, jsdom, unifont, Expo and libsql otherwise254 # Ranges from @effect/platform-node, jsdom, unifont, Expo and libsql otherwise
254 # settle on two patch releases of each major. Older majors stay as they are.255 # settle on two patch releases of each major. Older majors stay as they are.
256 "@types/ws@^8": "catalog:"
255 "undici@^8": "catalog:"257 "undici@^8": "catalog:"
256 "ws@^8": "catalog:"258 "ws@^8": "catalog:"
257 vite: "catalog:"259 vite: "catalog:"
...@@ -274,7 +276,7 @@ patchedDependencies:...@@ -274,7 +276,7 @@ patchedDependencies:
274 expo-blur@58.0.3: patches/expo-blur@58.0.3.patch276 expo-blur@58.0.3: patches/expo-blur@58.0.3.patch
275 expo-audio@58.0.4: patches/expo-audio@58.0.4.patch277 expo-audio@58.0.4: patches/expo-audio@58.0.4.patch
276 "@clerk/expo@4.6.8": patches/@clerk__expo@4.6.8.patch278 "@clerk/expo@4.6.8": patches/@clerk__expo@4.6.8.patch
277 "@effect/vitest@4.0.1": patches/@effect__vitest@4.0.1.patch279 "@effect/vitest@4.0.2": patches/@effect__vitest@4.0.2.patch
278 "@expo/metro-config@58.0.6": patches/@expo__metro-config@58.0.6.patch280 "@expo/metro-config@58.0.6": patches/@expo__metro-config@58.0.6.patch
279 expo-sharing@58.0.13: patches/expo-sharing@58.0.13.patch281 expo-sharing@58.0.13: patches/expo-sharing@58.0.13.patch
280 expo-widgets@58.0.11: patches/expo-widgets@58.0.11.patch282 expo-widgets@58.0.11: patches/expo-widgets@58.0.11.patch
...@@ -290,7 +292,7 @@ patchedDependencies:...@@ -290,7 +292,7 @@ patchedDependencies:
290 "@react-native-menu/menu@2.0.0": patches/@react-native-menu__menu@2.0.0.patch292 "@react-native-menu/menu@2.0.0": patches/@react-native-menu__menu@2.0.0.patch
291 "@react-navigation/native-stack@7.17.6": patches/@react-navigation%2Fnative-stack@7.17.6.patch293 "@react-navigation/native-stack@7.17.6": patches/@react-navigation%2Fnative-stack@7.17.6.patch
292 dbus-next@0.10.2: patches/dbus-next@0.10.2.patch294 dbus-next@0.10.2: patches/dbus-next@0.10.2.patch
293 effect@4.0.1: patches/effect@4.0.1.patch295 effect@4.0.2: patches/effect@4.0.2.patch
294 node-pty@1.2.0-beta.15: patches/node-pty@1.2.0-beta.15.patch296 node-pty@1.2.0-beta.15: patches/node-pty@1.2.0-beta.15.patch
295 # Link http(s) URLs with a port or a single-label host. md4c otherwise requires a dotted host and stops at ':'.297 # Link http(s) URLs with a port or a single-label host. md4c otherwise requires a dotted host and stops at ':'.
296 react-native-nitro-markdown@0.5.8: patches/react-native-nitro-markdown@0.5.8.patch298 react-native-nitro-markdown@0.5.8: patches/react-native-nitro-markdown@0.5.8.patch