authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-10-05 13:15:14-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-10-05 13:15:14-07:00
log194c73f3f991558ca540ef6fe0ce75223bbe87a7
tree6c627c278d4f6cd9ca884b069d8ab8e0a71f1165
parent3e6b45028ceec5820dacb37dc3852470ebdc9411
signature Signed by PGP key B5690EEEBB952194

chore(deps): upgrade Effect to stable 4.0.1 (#16138)

Co-authored-by: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

837 files changed, 3827 insertions(+), 2347 deletions(-)

apps/desktop/src/app/DesktopConnectionCatalogStore.test.ts+2-2
......@@ -3,7 +3,7 @@ import { assert, describe, it } from "@effect/vitest";
33import { ConnectionCatalogDocument } from "@t3tools/client-runtime/platform";
44import { EnvironmentId, type PersistedSavedEnvironmentRecord } from "@t3tools/contracts";
55import * as Effect from "effect/Effect";
6import * as Encoding from "effect/Encoding";
6import * as Base64 from "effect/encoding/Base64";
77import * as FileSystem from "effect/FileSystem";
88import * as Path from "effect/Path";
99import * as Layer from "effect/Layer";
......@@ -175,7 +175,7 @@ describe("DesktopConnectionCatalogStore", () => {
175175 record.environmentId === "bearer-environment"
176176 ? {
177177 ...record,
178 encryptedBearerToken: Encoding.encodeBase64(
178 encryptedBearerToken: Base64.encode(
179179 textEncoder.encode("encrypted:legacy-token"),
180180 ),
181181 }
apps/desktop/src/app/DesktopConnectionCatalogStore.ts+3-3
......@@ -15,7 +15,7 @@ import { fromLenientJson } from "@t3tools/shared/schemaJson";
1515import * as Context from "effect/Context";
1616import * as Crypto from "effect/Crypto";
1717import * as Effect from "effect/Effect";
18import * as Encoding from "effect/Encoding";
18import * as Base64 from "effect/encoding/Base64";
1919import * as FileSystem from "effect/FileSystem";
2020import * as Layer from "effect/Layer";
2121import * as Option from "effect/Option";
......@@ -171,7 +171,7 @@ function decodeSecretBytes(
171171 catalogPath: string,
172172 encoded: string,
173173): Effect.Effect<Uint8Array, DesktopConnectionCatalogStoreDecodeError> {
174 return Effect.fromResult(Encoding.decodeBase64(encoded)).pipe(
174 return Effect.fromResult(Base64.decode(encoded)).pipe(
175175 Effect.mapError(
176176 (cause) =>
177177 new DesktopConnectionCatalogStoreDecodeError({
......@@ -399,7 +399,7 @@ export const make = Effect.gen(function* () {
399399 const writeCatalog = Effect.fn("desktop.connectionCatalogStore.writeCatalog")(function* (
400400 catalog: string,
401401 ) {
402 const encryptedCatalog = Encoding.encodeBase64(
402 const encryptedCatalog = Base64.encode(
403403 yield* safeStorage.encryptString(catalog).pipe(
404404 Effect.mapError(
405405 (cause) =>
apps/desktop/src/app/DesktopLinuxUrlHandler.test.ts+1-1
......@@ -10,7 +10,7 @@ import * as PlatformError from "effect/PlatformError";
1010import * as Sink from "effect/Sink";
1111import * as Stream from "effect/Stream";
1212import * as TestClock from "effect/testing/TestClock";
13import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
13import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1414
1515import * as DesktopEnvironment from "./DesktopEnvironment.ts";
1616import * as DesktopAssets from "./DesktopAssets.ts";
apps/desktop/src/app/DesktopLinuxUrlHandler.ts+2-2
......@@ -4,8 +4,8 @@ import * as FileSystem from "effect/FileSystem";
44import * as Layer from "effect/Layer";
55import * as Option from "effect/Option";
66import * as Schema from "effect/Schema";
7import * as ChildProcess from "effect/unstable/process/ChildProcess";
8import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
7import * as ChildProcess from "effect/process/ChildProcess";
8import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
99
1010import * as ElectronProtocol from "../electron/ElectronProtocol.ts";
1111import * as DesktopAssets from "./DesktopAssets.ts";
apps/desktop/src/app/DesktopObservability.test.ts+2-2
......@@ -6,8 +6,8 @@ import * as Effect from "effect/Effect";
66import * as FileSystem from "effect/FileSystem";
77import * as Layer from "effect/Layer";
88import * as Schema from "effect/Schema";
9import * as HttpClient from "effect/unstable/http/HttpClient";
10import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
9import * as HttpClient from "effect/http/HttpClient";
10import * as HttpClientResponse from "effect/http/HttpClientResponse";
1111
1212import * as DesktopConfig from "./DesktopConfig.ts";
1313import * as DesktopEnvironment from "./DesktopEnvironment.ts";
apps/desktop/src/app/DesktopObservability.ts+1-1
......@@ -26,7 +26,7 @@ import * as Scope from "effect/Scope";
2626import * as Semaphore from "effect/Semaphore";
2727import * as SynchronizedRef from "effect/SynchronizedRef";
2828import * as Tracer from "effect/Tracer";
29import { OtlpExporter, OtlpLogger, OtlpTracer } from "effect/unstable/observability";
29import { OtlpExporter, OtlpLogger, OtlpTracer } from "effect/observability";
3030
3131import * as DesktopEnvironment from "./DesktopEnvironment.ts";
3232
apps/desktop/src/backend/DesktopBackendConfiguration.test.ts+1-1
......@@ -9,7 +9,7 @@ import * as Option from "effect/Option";
99import * as Path from "effect/Path";
1010import * as PlatformError from "effect/PlatformError";
1111import * as Schema from "effect/Schema";
12import { ChildProcessSpawner } from "effect/unstable/process";
12import { ChildProcessSpawner } from "effect/process";
1313
1414import * as DesktopEnvironment from "../app/DesktopEnvironment.ts";
1515import * as DesktopBackendConfiguration from "./DesktopBackendConfiguration.ts";
apps/desktop/src/backend/DesktopBackendConfiguration.ts+2-2
......@@ -4,7 +4,7 @@ import { parsePersistedServerObservabilitySettings } from "@t3tools/shared/serve
44import * as Context from "effect/Context";
55import * as Crypto from "effect/Crypto";
66import * as Effect from "effect/Effect";
7import * as Encoding from "effect/Encoding";
7import * as Hex from "effect/encoding/Hex";
88import * as FileSystem from "effect/FileSystem";
99import * as Layer from "effect/Layer";
1010import * as Option from "effect/Option";
......@@ -842,7 +842,7 @@ export const make = Effect.gen(function* () {
842842 onNone: () =>
843843 crypto.randomBytes(24).pipe(
844844 Effect.map((bytes) => {
845 const token = Encoding.encodeHex(bytes);
845 const token = Hex.encode(bytes);
846846 return [token, Option.some(token)] as const;
847847 }),
848848 ),
apps/desktop/src/backend/DesktopBackendManager.test.ts+2-2
......@@ -19,8 +19,8 @@ import * as Sink from "effect/Sink";
1919import * as Scope from "effect/Scope";
2020import * as Stream from "effect/Stream";
2121import * as TestClock from "effect/testing/TestClock";
22import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
23import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
22import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
23import { ChildProcess, ChildProcessSpawner } from "effect/process";
2424
2525import * as DesktopBackendManager from "./DesktopBackendManager.ts";
2626import * as DesktopApp from "../app/DesktopApp.ts";
apps/desktop/src/backend/DesktopBackendManager.ts+2-2
......@@ -38,8 +38,8 @@ import * as Schema from "effect/Schema";
3838import * as Semaphore from "effect/Semaphore";
3939import * as Scope from "effect/Scope";
4040import * as Stream from "effect/Stream";
41import { HttpClient } from "effect/unstable/http";
42import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
41import { HttpClient } from "effect/http";
42import { ChildProcess, ChildProcessSpawner } from "effect/process";
4343
4444import {
4545 DesktopBackendBootstrap,
apps/desktop/src/backend/DesktopBackendPool.test.ts+2-2
......@@ -6,8 +6,8 @@ import * as Layer from "effect/Layer";
66import * as Option from "effect/Option";
77import * as Ref from "effect/Ref";
88import * as Stream from "effect/Stream";
9import { HttpClient } from "effect/unstable/http";
10import { ChildProcessSpawner } from "effect/unstable/process";
9import { HttpClient } from "effect/http";
10import { ChildProcessSpawner } from "effect/process";
1111
1212import * as DesktopObservability from "../app/DesktopObservability.ts";
1313import * as DesktopAppSettings from "../settings/DesktopAppSettings.ts";
apps/desktop/src/backend/DesktopBackendPool.ts+2-2
......@@ -90,8 +90,8 @@ import * as Scope from "effect/Scope";
9090import * as SynchronizedRef from "effect/SynchronizedRef";
9191
9292import * as FileSystem from "effect/FileSystem";
93import { HttpClient } from "effect/unstable/http";
94import { ChildProcessSpawner } from "effect/unstable/process";
93import { HttpClient } from "effect/http";
94import { ChildProcessSpawner } from "effect/process";
9595
9696import * as DesktopBackendConfiguration from "./DesktopBackendConfiguration.ts";
9797import * as DesktopBackendManager from "./DesktopBackendManager.ts";
apps/desktop/src/backend/DesktopLocalEnvironmentAuth.test.ts+2-2
......@@ -2,8 +2,8 @@ import { assert, describe, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
44import * as Ref from "effect/Ref";
5import * as HttpClient from "effect/unstable/http/HttpClient";
6import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
5import * as HttpClient from "effect/http/HttpClient";
6import * as HttpClientResponse from "effect/http/HttpClientResponse";
77import { PRIMARY_LOCAL_ENVIRONMENT_ID } from "@t3tools/contracts";
88
99import * as DesktopBackendPool from "./DesktopBackendPool.ts";
apps/desktop/src/backend/DesktopLocalEnvironmentAuth.ts+1-1
......@@ -7,7 +7,7 @@ import * as Option from "effect/Option";
77import * as Ref from "effect/Ref";
88import * as Schema from "effect/Schema";
99import * as Semaphore from "effect/Semaphore";
10import * as HttpClient from "effect/unstable/http/HttpClient";
10import * as HttpClient from "effect/http/HttpClient";
1111
1212import * as DesktopBackendPool from "./DesktopBackendPool.ts";
1313
apps/desktop/src/backend/DesktopServerExposure.test.ts+1-1
......@@ -7,7 +7,7 @@ import * as FileSystem from "effect/FileSystem";
77import * as Layer from "effect/Layer";
88import * as Sink from "effect/Sink";
99import * as Stream from "effect/Stream";
10import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
10import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1111
1212import * as DesktopEnvironment from "../app/DesktopEnvironment.ts";
1313import * as DesktopConfig from "../app/DesktopConfig.ts";
apps/desktop/src/backend/DesktopServerExposure.ts+2-2
......@@ -17,8 +17,8 @@ import * as Layer from "effect/Layer";
1717import * as Option from "effect/Option";
1818import * as Ref from "effect/Ref";
1919import * as Schema from "effect/Schema";
20import * as HttpClient from "effect/unstable/http/HttpClient";
21import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
20import * as HttpClient from "effect/http/HttpClient";
21import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
2222
2323import * as DesktopAppSettings from "../settings/DesktopAppSettings.ts";
2424import * as DesktopConfig from "../app/DesktopConfig.ts";
apps/desktop/src/backend/tailscaleEndpointProvider.test.ts+2-2
......@@ -1,8 +1,8 @@
11import { assert, describe, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import { HttpClient } from "effect/unstable/http";
5import { ChildProcessSpawner } from "effect/unstable/process";
4import { HttpClient } from "effect/http";
5import { ChildProcessSpawner } from "effect/process";
66
77import {
88 parseTailscaleMagicDnsName,
apps/desktop/src/backend/tailscaleEndpointProvider.ts+2-2
......@@ -9,8 +9,8 @@ import {
99} from "@t3tools/tailscale";
1010import * as Effect from "effect/Effect";
1111import * as Option from "effect/Option";
12import * as HttpClient from "effect/unstable/http/HttpClient";
13import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
12import * as HttpClient from "effect/http/HttpClient";
13import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1414
1515import type { NetworkInterfaces } from "./DesktopNetworkInterfaces.ts";
1616
apps/desktop/src/electron/ElectronProtocol.ts+1-1
......@@ -5,7 +5,7 @@ import * as Layer from "effect/Layer";
55import * as Option from "effect/Option";
66import * as NodeTimersPromises from "node:timers/promises";
77import * as Path from "effect/Path";
8import * as Mime from "effect/unstable/http/Mime";
8import * as Mime from "effect/http/Mime";
99import * as Ref from "effect/Ref";
1010import * as Schema from "effect/Schema";
1111import * as Scope from "effect/Scope";
apps/desktop/src/ipc/methods/sshEnvironment.test.ts+1-1
......@@ -5,7 +5,7 @@ import * as Effect from "effect/Effect";
55import * as Exit from "effect/Exit";
66import * as Layer from "effect/Layer";
77import * as Option from "effect/Option";
8import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
8import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
99
1010import {
1111 DesktopSshEnvironmentRequestError,
apps/desktop/src/preview/BrowserImport/BrowserImport.ts+1-1
......@@ -19,7 +19,7 @@ import * as Layer from "effect/Layer";
1919import * as Path from "effect/Path";
2020import * as Schema from "effect/Schema";
2121import * as Scope from "effect/Scope";
22import { ChildProcessSpawner } from "effect/unstable/process";
22import { ChildProcessSpawner } from "effect/process";
2323
2424import { HostProcessExecutablePath, HostProcessPlatform } from "@t3tools/shared/hostProcess";
2525
apps/desktop/src/preview/BrowserImport/ChromiumCookies.test.ts+1-1
......@@ -6,7 +6,7 @@ import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
66import * as NodeCrypto from "node:crypto";
77import * as Effect from "effect/Effect";
88import * as FileSystem from "effect/FileSystem";
9import * as SqlClient from "effect/unstable/sql/SqlClient";
9import * as SqlClient from "effect/sql/SqlClient";
1010
1111import {
1212 decryptChromiumValue,
apps/desktop/src/preview/BrowserImport/ChromiumCookies.ts+2-2
......@@ -21,8 +21,8 @@ import * as FileSystem from "effect/FileSystem";
2121import * as Path from "effect/Path";
2222import * as Schema from "effect/Schema";
2323import * as Scope from "effect/Scope";
24import * as SqlClient from "effect/unstable/sql/SqlClient";
25import { ChildProcessSpawner } from "effect/unstable/process";
24import * as SqlClient from "effect/sql/SqlClient";
25import { ChildProcessSpawner } from "effect/process";
2626
2727import {
2828 ChromiumKeyError,
apps/desktop/src/preview/BrowserImport/ChromiumKeys.module.test.ts+1-1
......@@ -1,6 +1,6 @@
11import { expect, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
3import { ChildProcessSpawner } from "effect/unstable/process";
3import { ChildProcessSpawner } from "effect/process";
44import { vi } from "vite-plus/test";
55
66vi.mock("@napi-rs/keyring", () => {
apps/desktop/src/preview/BrowserImport/ChromiumKeys.test.ts+1-1
......@@ -6,7 +6,7 @@ import * as Layer from "effect/Layer";
66import * as Sink from "effect/Sink";
77import * as Stream from "effect/Stream";
88import * as PlatformError from "effect/PlatformError";
9import { ChildProcessSpawner } from "effect/unstable/process";
9import { ChildProcessSpawner } from "effect/process";
1010import { beforeEach, vi } from "vite-plus/test";
1111
1212import {
apps/desktop/src/preview/BrowserImport/ChromiumKeys.ts+6-6
......@@ -22,11 +22,11 @@ import * as NodeCrypto from "node:crypto";
2222import { HostProcessEnvironment } from "@t3tools/shared/hostProcess";
2323
2424import * as Effect from "effect/Effect";
25import * as Encoding from "effect/Encoding";
25import * as Base64 from "effect/encoding/Base64";
2626import * as FileSystem from "effect/FileSystem";
2727import * as Schema from "effect/Schema";
2828import * as Stream from "effect/Stream";
29import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
29import { ChildProcess, ChildProcessSpawner } from "effect/process";
3030import { LinuxBrowserSecretPath } from "./LinuxBrowserSecret.ts";
3131
3232const KEY_SALT = "saltysalt";
......@@ -205,9 +205,9 @@ export const decodeWindowsWrappedKey = Effect.fn("ChromiumKeys.decodeWindowsWrap
205205 if (state.os_crypt.app_bound_encrypted_key !== undefined) {
206206 return yield* new ChromiumKeyError({ reason: "unsupportedPlatform" });
207207 }
208 const wrapped = yield* Effect.fromResult(
209 Encoding.decodeBase64(state.os_crypt.encrypted_key),
210 ).pipe(Effect.mapError((cause) => new ChromiumKeyError({ reason: "readFailed", cause })));
208 const wrapped = yield* Effect.fromResult(Base64.decode(state.os_crypt.encrypted_key)).pipe(
209 Effect.mapError((cause) => new ChromiumKeyError({ reason: "readFailed", cause })),
210 );
211211 const wrappedBuffer = Buffer.from(wrapped);
212212 if (!wrappedBuffer.subarray(0, DPAPI_PREFIX.length).equals(DPAPI_PREFIX)) {
213213 return yield* new ChromiumKeyError({ reason: "readFailed" });
......@@ -262,7 +262,7 @@ export const unwrapWindowsDpapiKey = Effect.fn("ChromiumKeys.unwrapWindowsDpapiK
262262 if (Number(exitCode) !== 0) {
263263 return yield* new ChromiumKeyError({ reason: "readFailed" });
264264 }
265 const plain = yield* Effect.fromResult(Encoding.decodeBase64(plainEncoded)).pipe(
265 const plain = yield* Effect.fromResult(Base64.decode(plainEncoded)).pipe(
266266 Effect.mapError((cause) => new ChromiumKeyError({ reason: "readFailed", cause })),
267267 );
268268 if (plain.length !== WINDOWS_KEY_LENGTH) {
apps/desktop/src/preview/BrowserImport/CookieDatabase.test.ts+1-1
......@@ -5,7 +5,7 @@ import * as Effect from "effect/Effect";
55import * as FileSystem from "effect/FileSystem";
66import * as Path from "effect/Path";
77import * as Scope from "effect/Scope";
8import * as SqlClient from "effect/unstable/sql/SqlClient";
8import * as SqlClient from "effect/sql/SqlClient";
99
1010import { snapshotCookieDatabase } from "./CookieDatabase.ts";
1111
apps/desktop/src/preview/BrowserImport/CookieDatabase.ts+1-1
......@@ -7,7 +7,7 @@
77import * as Effect from "effect/Effect";
88import * as FileSystem from "effect/FileSystem";
99import * as Path from "effect/Path";
10import * as SqlClient from "effect/unstable/sql/SqlClient";
10import * as SqlClient from "effect/sql/SqlClient";
1111
1212import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
1313
apps/desktop/src/preview/BrowserImport/FirefoxCookies.ts+1-1
......@@ -12,7 +12,7 @@
1212import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
1313import * as Effect from "effect/Effect";
1414import * as Schema from "effect/Schema";
15import * as SqlClient from "effect/unstable/sql/SqlClient";
15import * as SqlClient from "effect/sql/SqlClient";
1616
1717import { cookieScope, snapshotCookieDatabase, type ImportedCookie } from "./CookieDatabase.ts";
1818
apps/desktop/src/preview/BrowserImport/Sources.test.ts+1-1
......@@ -14,7 +14,7 @@ import * as Path from "effect/Path";
1414import * as PlatformError from "effect/PlatformError";
1515import * as Scope from "effect/Scope";
1616import * as Stream from "effect/Stream";
17import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
17import { ChildProcess, ChildProcessSpawner } from "effect/process";
1818import * as NodeSqlite from "node:sqlite";
1919
2020import type { BrowserImportPathContext } from "./Sources.ts";
apps/desktop/src/preview/BrowserImport/Sources.ts+2-2
......@@ -29,8 +29,8 @@ import * as Path from "effect/Path";
2929import * as PlatformError from "effect/PlatformError";
3030import * as Schema from "effect/Schema";
3131import * as Stream from "effect/Stream";
32import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
33import * as SqlClient from "effect/unstable/sql/SqlClient";
32import { ChildProcess, ChildProcessSpawner } from "effect/process";
33import * as SqlClient from "effect/sql/SqlClient";
3434
3535export type BrowserImportEngine = "chromium" | "firefox" | "safari";
3636
apps/desktop/src/preview/BrowserSession.ts+2-2
......@@ -3,7 +3,7 @@ import { session } from "electron";
33import * as Context from "effect/Context";
44import * as Crypto from "effect/Crypto";
55import * as Effect from "effect/Effect";
6import * as Encoding from "effect/Encoding";
6import * as Hex from "effect/encoding/Hex";
77import * as Layer from "effect/Layer";
88import * as PlatformError from "effect/PlatformError";
99import * as Schema from "effect/Schema";
......@@ -182,7 +182,7 @@ export const make = Effect.gen(function* BrowserSessionMake() {
182182 // Legacy/default partitions are prefix + hex digest. The non-hex profile
183183 // marker creates a disjoint namespace while leaving every legacy default
184184 // partition byte-for-byte unchanged.
185 return `${prefix}${namespace === "profile" ? PROFILE_PARTITION_MARKER : ""}${Encoding.encodeHex(digest).slice(0, 20)}`;
185 return `${prefix}${namespace === "profile" ? PROFILE_PARTITION_MARKER : ""}${Hex.encode(digest).slice(0, 20)}`;
186186 });
187187
188188 const getSession = Effect.fn("BrowserSession.getSession")(function* (
apps/desktop/src/settings/DesktopSavedEnvironments.test.ts+4-10
......@@ -2,7 +2,7 @@ import * as NodeServices from "@effect/platform-node/NodeServices";
22import { assert, describe, it } from "@effect/vitest";
33import { EnvironmentId, type PersistedSavedEnvironmentRecord } from "@t3tools/contracts";
44import * as Effect from "effect/Effect";
5import * as Encoding from "effect/Encoding";
5import * as Base64 from "effect/encoding/Base64";
66import * as FileSystem from "effect/FileSystem";
77import * as Path from "effect/Path";
88import * as Layer from "effect/Layer";
......@@ -206,9 +206,7 @@ describe("DesktopSavedEnvironments", () => {
206206 withSavedEnvironments(
207207 Effect.gen(function* () {
208208 const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments;
209 yield* seedSavedEnvironmentRegistry(
210 Encoding.encodeBase64(textEncoder.encode("enc:bearer-token")),
211 );
209 yield* seedSavedEnvironmentRegistry(Base64.encode(textEncoder.encode("enc:bearer-token")));
212210
213211 assert.deepEqual(
214212 yield* savedEnvironments.getSecret(savedRegistryRecord.environmentId),
......@@ -246,9 +244,7 @@ describe("DesktopSavedEnvironments", () => {
246244 withSavedEnvironments(
247245 Effect.gen(function* () {
248246 const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments;
249 yield* seedSavedEnvironmentRegistry(
250 Encoding.encodeBase64(textEncoder.encode("enc:bearer-token")),
251 );
247 yield* seedSavedEnvironmentRegistry(Base64.encode(textEncoder.encode("enc:bearer-token")));
252248
253249 assert.deepEqual(
254250 yield* savedEnvironments.getSecret(savedRegistryRecord.environmentId),
......@@ -265,9 +261,7 @@ describe("DesktopSavedEnvironments", () => {
265261 Effect.gen(function* () {
266262 const environment = yield* DesktopEnvironment.DesktopEnvironment;
267263 const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments;
268 yield* seedSavedEnvironmentRegistry(
269 Encoding.encodeBase64(textEncoder.encode("enc:bearer-token")),
270 );
264 yield* seedSavedEnvironmentRegistry(Base64.encode(textEncoder.encode("enc:bearer-token")));
271265
272266 const error = yield* savedEnvironments
273267 .getSecret(savedRegistryRecord.environmentId)
apps/desktop/src/settings/DesktopSavedEnvironments.ts+2-2
......@@ -2,7 +2,7 @@ import { EnvironmentId, type PersistedSavedEnvironmentRecord } from "@t3tools/co
22import { fromLenientJson } from "@t3tools/shared/schemaJson";
33import * as Context from "effect/Context";
44import * as Effect from "effect/Effect";
5import * as Encoding from "effect/Encoding";
5import * as Base64 from "effect/encoding/Base64";
66import * as FileSystem from "effect/FileSystem";
77import * as Layer from "effect/Layer";
88import * as Option from "effect/Option";
......@@ -209,7 +209,7 @@ function decodeSecretBytes(
209209 registryPath: string,
210210 encoded: string,
211211): Effect.Effect<Uint8Array, DesktopSavedEnvironmentSecretDecodeError> {
212 return Effect.fromResult(Encoding.decodeBase64(encoded)).pipe(
212 return Effect.fromResult(Base64.decode(encoded)).pipe(
213213 Effect.mapError(
214214 (cause) =>
215215 new DesktopSavedEnvironmentSecretDecodeError({
apps/desktop/src/shell/DesktopShellEnvironment.test.ts+2-2
......@@ -7,8 +7,8 @@ import * as PlatformError from "effect/PlatformError";
77import * as Schema from "effect/Schema";
88import * as Sink from "effect/Sink";
99import * as Stream from "effect/Stream";
10import * as ChildProcess from "effect/unstable/process/ChildProcess";
11import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
10import * as ChildProcess from "effect/process/ChildProcess";
11import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1212
1313import * as DesktopEnvironment from "../app/DesktopEnvironment.ts";
1414import * as DesktopShellEnvironment from "./DesktopShellEnvironment.ts";
apps/desktop/src/shell/DesktopShellEnvironment.ts+2-2
......@@ -5,8 +5,8 @@ import * as FileSystem from "effect/FileSystem";
55import * as Layer from "effect/Layer";
66import * as Option from "effect/Option";
77import * as Schema from "effect/Schema";
8import * as ChildProcess from "effect/unstable/process/ChildProcess";
9import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
8import * as ChildProcess from "effect/process/ChildProcess";
9import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1010
1111import * as DesktopEnvironment from "../app/DesktopEnvironment.ts";
1212
apps/desktop/src/snapShot/DesktopSnapShot.ts+2-2
......@@ -25,7 +25,7 @@ import * as Context from "effect/Context";
2525import * as Crypto from "effect/Crypto";
2626import * as DateTime from "effect/DateTime";
2727import * as Effect from "effect/Effect";
28import * as Encoding from "effect/Encoding";
28import * as Base64 from "effect/encoding/Base64";
2929import * as FileSystem from "effect/FileSystem";
3030import * as Layer from "effect/Layer";
3131import * as Option from "effect/Option";
......@@ -1657,7 +1657,7 @@ export const make = Effect.gen(function* () {
16571657 const png = yield* fileSystem.readFile(path.join(captureDirectory, `${id}.png`));
16581658 return {
16591659 ...metadata,
1660 dataUrl: `data:image/png;base64,${Encoding.encodeBase64(png)}`,
1660 dataUrl: `data:image/png;base64,${Base64.encode(png)}`,
16611661 };
16621662 }).pipe(
16631663 Effect.mapError(
apps/desktop/src/ssh/DesktopSshEnvironment.ts+2-2
......@@ -22,8 +22,8 @@ import * as Effect from "effect/Effect";
2222import * as FileSystem from "effect/FileSystem";
2323import * as Layer from "effect/Layer";
2424import * as Path from "effect/Path";
25import * as HttpClient from "effect/unstable/http/HttpClient";
26import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
25import * as HttpClient from "effect/http/HttpClient";
26import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
2727
2828import * as DesktopSshPasswordPrompts from "./DesktopSshPasswordPrompts.ts";
2929
apps/desktop/src/wsl/DesktopWslEnvironment.test.ts+1-1
......@@ -9,7 +9,7 @@ import * as Layer from "effect/Layer";
99import * as Sink from "effect/Sink";
1010import * as Stream from "effect/Stream";
1111import * as TestClock from "effect/testing/TestClock";
12import { ChildProcessSpawner } from "effect/unstable/process";
12import { ChildProcessSpawner } from "effect/process";
1313
1414import {
1515 buildWslRuntimeInstallScript,
apps/desktop/src/wsl/DesktopWslEnvironment.ts+3-4
......@@ -7,7 +7,7 @@ import * as Option from "effect/Option";
77import * as Path from "effect/Path";
88import * as Schema from "effect/Schema";
99import * as Stream from "effect/Stream";
10import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
10import { ChildProcess, ChildProcessSpawner } from "effect/process";
1111
1212import { buildRemoteNodeEnvScript } from "@t3tools/ssh/tunnel";
1313import { satisfiesSemverRange } from "@t3tools/shared/semver";
......@@ -1187,9 +1187,8 @@ export interface DesktopWslEnvironmentTestStub {
11871187}
11881188
11891189export const layerTest = (stub: DesktopWslEnvironmentTestStub = {}) => {
1190 const probeDistros = stub.distroListError
1191 ? Effect.fail(stub.distroListError)
1192 : Effect.succeed(stub.distros ?? []);
1190 const probeDistros: Effect.Effect<readonly WslDistro[], DesktopWslDistroListError> =
1191 stub.distroListError ? Effect.fail(stub.distroListError) : Effect.succeed(stub.distros ?? []);
11931192 return Layer.succeed(
11941193 DesktopWslEnvironment,
11951194 DesktopWslEnvironment.of({
apps/mobile/src/components/ComposerEditor.tsx+1-1
......@@ -1,6 +1,6 @@
11import { ComposerContextId } from "@t3tools/contracts";
22import { useAtomValue } from "@effect/atom-react";
3import { AsyncResult } from "effect/unstable/reactivity";
3import { AsyncResult } from "effect/reactivity";
44import { useNavigation } from "@react-navigation/native";
55import { useEffect, useMemo, useRef, useState } from "react";
66import { Alert } from "react-native";
apps/mobile/src/components/ProjectFavicon.tsx+1-1
......@@ -10,7 +10,7 @@ import {
1010 isProjectFaviconFallbackUrl,
1111} from "@t3tools/shared/projectFavicon";
1212import { useAtomValue } from "@effect/atom-react";
13import { Atom } from "effect/unstable/reactivity";
13import { Atom } from "effect/reactivity";
1414import { projectFaviconUrlAtom } from "../state/assets";
1515import {
1616 countGlyphs,
apps/mobile/src/connection/runtime.ts+1-1
......@@ -5,7 +5,7 @@ import {
55 ThreadHistoryController,
66} from "@t3tools/client-runtime/state/threads";
77import * as Layer from "effect/Layer";
8import { Atom } from "effect/unstable/reactivity";
8import { Atom } from "effect/reactivity";
99
1010import type { FoundationHotModule } from "../lib/foundation-fast-refresh";
1111import { hotSwappableAtomRuntime } from "../lib/hot-swappable-atom-runtime";
apps/mobile/src/features/agent-awareness/liveActivityPreferences.test.ts+1-1
......@@ -4,7 +4,7 @@ import * as Effect from "effect/Effect";
44import type { EnvironmentId } from "@t3tools/contracts";
55import { ManagedRelay } from "@t3tools/client-runtime/relay";
66import * as Layer from "effect/Layer";
7import { HttpClient } from "effect/unstable/http";
7import { HttpClient } from "effect/http";
88
99import type { SavedRemoteConnection } from "../../lib/connection";
1010import * as MobileStorage from "../../persistence/mobile-storage";
apps/mobile/src/features/agent-awareness/remoteRegistration.test.ts+1-6
......@@ -9,12 +9,7 @@ import * as Cause from "effect/Cause";
99import * as Effect from "effect/Effect";
1010import * as Exit from "effect/Exit";
1111import * as Layer from "effect/Layer";
12import {
13 Cookies,
14 FetchHttpClient,
15 HttpClientRequest,
16 HttpClientResponse,
17} from "effect/unstable/http";
12import { Cookies, FetchHttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
1813import { ManagedRelay } from "@t3tools/client-runtime/relay";
1914
2015import type { EnvironmentId } from "@t3tools/contracts";
apps/mobile/src/features/cloud/connectOnboarding.ts+1-1
......@@ -1,4 +1,4 @@
1import { Atom } from "effect/unstable/reactivity";
1import { Atom } from "effect/reactivity";
22
33import { appAtomRegistry } from "../../state/atom-registry";
44
apps/mobile/src/features/cloud/dpop.ts+9-9
......@@ -2,7 +2,7 @@ import * as Clock from "effect/Clock";
22import * as Crypto from "effect/Crypto";
33import * as Data from "effect/Data";
44import * as Effect from "effect/Effect";
5import * as Encoding from "effect/Encoding";
5import * as Base64Url from "effect/encoding/Base64Url";
66import * as Result from "effect/Result";
77import * as Schema from "effect/Schema";
88import * as ExpoCrypto from "expo-crypto";
......@@ -89,7 +89,7 @@ export interface DpopProofKeyPair {
8989const DPOP_PROOF_KEY_STORAGE_KEY = "t3code.cloud.dpop-proof-key";
9090
9191function base64UrlToBytes(value: string): Uint8Array {
92 return Result.getOrThrow(Encoding.decodeBase64Url(value));
92 return Result.getOrThrow(Base64Url.decode(value));
9393}
9494
9595function sha256Digest(
......@@ -106,7 +106,7 @@ function base64UrlSha256(
106106 data: Uint8Array,
107107 message: string,
108108): Effect.Effect<string, CloudDpopError, Crypto.Crypto> {
109 return sha256Digest(data, message).pipe(Effect.map(Encoding.encodeBase64Url));
109 return sha256Digest(data, message).pipe(Effect.map(Base64Url.encode));
110110}
111111
112112function dpopThumbprintInput(jwk: DpopPublicJwk): string {
......@@ -153,8 +153,8 @@ function publicJwkFromUncompressedPublicKey(publicKey: Uint8Array): DpopPublicJw
153153 return {
154154 kty: "EC",
155155 crv: "P-256",
156 x: Encoding.encodeBase64Url(publicKey.slice(1, 33)),
157 y: Encoding.encodeBase64Url(publicKey.slice(33, 65)),
156 x: Base64Url.encode(publicKey.slice(1, 33)),
157 y: Base64Url.encode(publicKey.slice(33, 65)),
158158 };
159159}
160160
......@@ -162,7 +162,7 @@ function privateJwkFromPrivateKey(
162162 privateKey: Uint8Array,
163163 publicJwk: DpopPublicJwk,
164164): DpopPrivateJwk {
165 return { ...publicJwk, d: Encoding.encodeBase64Url(privateKey) };
165 return { ...publicJwk, d: Base64Url.encode(privateKey) };
166166}
167167
168168export function generateDpopProofKeyPair(): Effect.Effect<
......@@ -270,7 +270,7 @@ export function createDpopProof(input: {
270270 alg: "ES256",
271271 jwk: keyPair.publicJwk,
272272 }).pipe(
273 Effect.map(Encoding.encodeBase64Url),
273 Effect.map(Base64Url.encode),
274274 Effect.mapError(cloudDpopError("Could not encode DPoP proof header.")),
275275 );
276276 const ath = input.accessToken
......@@ -283,7 +283,7 @@ export function createDpopProof(input: {
283283 iat: Math.floor(nowMs / 1_000),
284284 ...(ath ? { ath } : {}),
285285 }).pipe(
286 Effect.map(Encoding.encodeBase64Url),
286 Effect.map(Base64Url.encode),
287287 Effect.mapError(cloudDpopError("Could not encode DPoP proof payload.")),
288288 );
289289 const signatureInputHash = yield* sha256Digest(
......@@ -295,7 +295,7 @@ export function createDpopProof(input: {
295295 catch: cloudDpopError("Could not sign DPoP proof."),
296296 });
297297 return {
298 proof: `${header}.${payload}.${Encoding.encodeBase64Url(signature)}`,
298 proof: `${header}.${payload}.${Base64Url.encode(signature)}`,
299299 thumbprint: keyPair.thumbprint,
300300 };
301301 });
apps/mobile/src/features/cloud/linkEnvironment.test.ts+1-1
......@@ -6,7 +6,7 @@ import { EnvironmentId } from "@t3tools/contracts";
66import { RelayMobileClientId } from "@t3tools/contracts/relay";
77import { ManagedRelay } from "@t3tools/client-runtime/relay";
88import { remoteHttpClientLayer } from "@t3tools/client-runtime/rpc";
9import { HttpClient } from "effect/unstable/http";
9import { HttpClient } from "effect/http";
1010
1111import * as MobileStorage from "../../persistence/mobile-storage";
1212
apps/mobile/src/features/cloud/linkEnvironment.ts+1-1
......@@ -1,7 +1,7 @@
11import * as Data from "effect/Data";
22import * as Effect from "effect/Effect";
33import * as Schema from "effect/Schema";
4import { HttpClient } from "effect/unstable/http";
4import { HttpClient } from "effect/http";
55import {
66 EnvironmentCloudEndpointUnavailableError,
77 EnvironmentHttpBadRequestError,
apps/mobile/src/features/cloud/managedRelayState.ts+1-1
......@@ -11,7 +11,7 @@ import {
1111} from "@t3tools/client-runtime/state/runtime";
1212import type { EnvironmentId } from "@t3tools/contracts";
1313import type { RelayClientEnvironmentRecord } from "@t3tools/contracts/relay";
14import { AsyncResult, Atom } from "effect/unstable/reactivity";
14import { AsyncResult, Atom } from "effect/reactivity";
1515import { useCallback, useEffect } from "react";
1616
1717import { runtimeContextLayer } from "../../lib/runtime";
apps/mobile/src/features/connection/ConnectionEnvironmentRow.tsx+1-1
......@@ -5,7 +5,7 @@ import type { AtomCommandResult } from "@t3tools/client-runtime/state/runtime";
55import { type EnvironmentId, resolveEnvironmentMachineKind } from "@t3tools/contracts";
66import { useAtomValue } from "@effect/atom-react";
77import * as Cause from "effect/Cause";
8import { AsyncResult } from "effect/unstable/reactivity";
8import { AsyncResult } from "effect/reactivity";
99import { useCallback, useState } from "react";
1010import { Platform, Alert, Pressable, View } from "react-native";
1111import Animated, { FadeIn, FadeOut, LinearTransition } from "react-native-reanimated";
apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx+1-1
......@@ -7,7 +7,7 @@ import {
77 type StaticScreenProps,
88} from "@react-navigation/native";
99import type { EnvironmentId } from "@t3tools/contracts";
10import { AsyncResult } from "effect/unstable/reactivity";
10import { AsyncResult } from "effect/reactivity";
1111import { useCallback, useEffect, useRef, useState } from "react";
1212import { Alert, Linking, Platform, View } from "react-native";
1313import { useSafeAreaInsets } from "react-native-safe-area-context";
apps/mobile/src/features/files/SourceFileSurface.tsx+1-1
......@@ -1,5 +1,5 @@
11import { useAtomValue } from "@effect/atom-react";
2import { AsyncResult } from "effect/unstable/reactivity";
2import { AsyncResult } from "effect/reactivity";
33import type { ComponentType } from "react";
44import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react";
55import {
apps/mobile/src/features/files/sourceHighlightingState.test.ts+2-2
......@@ -1,5 +1,5 @@
1import { AtomRegistry } from "effect/unstable/reactivity";
2import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
1import { AtomRegistry } from "effect/reactivity";
2import * as AsyncResult from "effect/reactivity/AsyncResult";
33import { afterEach, describe, expect, it, vi } from "vite-plus/test";
44
55import {
apps/mobile/src/features/files/sourceHighlightingState.ts+1-1
......@@ -1,6 +1,6 @@
11import * as Data from "effect/Data";
22import * as Effect from "effect/Effect";
3import { Atom } from "effect/unstable/reactivity";
3import { Atom } from "effect/reactivity";
44
55import {
66 highlightSourceFile,
apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx+1-1
......@@ -29,7 +29,7 @@ import Animated, {
2929 useSharedValue,
3030 withTiming,
3131} from "react-native-reanimated";
32import { AsyncResult } from "effect/unstable/reactivity";
32import { AsyncResult } from "effect/reactivity";
3333
3434import {
3535 deriveFileInspectorPaneLayout,
apps/mobile/src/features/projects/AddProjectScreen.tsx+1-1
......@@ -53,7 +53,7 @@ import { useSafeAreaInsets } from "react-native-safe-area-context";
5353import * as Arr from "effect/Array";
5454import * as Cause from "effect/Cause";
5555import * as Order from "effect/Order";
56import { AsyncResult } from "effect/unstable/reactivity";
56import { AsyncResult } from "effect/reactivity";
5757import { cn } from "../../lib/cn";
5858import { useProjects, useServerConfigs, waitForProject } from "../../state/entities";
5959import { filesystemEnvironment } from "../../state/filesystem";
apps/mobile/src/features/review/reviewState.ts+1-1
......@@ -1,7 +1,7 @@
11import { useAtomValue } from "@effect/atom-react";
22
33import type { EnvironmentId, ReviewDiffPreviewSource, ThreadId } from "@t3tools/contracts";
4import { Atom } from "effect/unstable/reactivity";
4import { Atom } from "effect/reactivity";
55
66import { scopedThreadKey } from "../../lib/scopedEntities";
77import { appAtomRegistry } from "../../state/atom-registry";
apps/mobile/src/features/review/useReviewDiffData.ts+2-2
......@@ -18,8 +18,8 @@ import type {
1818 ReviewDiffPreviewSource,
1919} from "@t3tools/contracts";
2020import { RegistryContext, useAtomValue } from "@effect/atom-react";
21import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
22import * as Atom from "effect/unstable/reactivity/Atom";
21import * as AsyncResult from "effect/reactivity/AsyncResult";
22import * as Atom from "effect/reactivity/Atom";
2323import { reviewEnvironment } from "../../state/review";
2424
2525const EMPTY_INLINE_REVIEW_COMMENTS = Object.freeze([]);
apps/mobile/src/features/settings/SettingsClientStorageRouteScreen.tsx+1-1
......@@ -1,7 +1,7 @@
11import { ScreenScrollView as ScrollView } from "../../components/ScreenScrollView";
22import { useAtomSet, useAtomValue } from "@effect/atom-react";
33import { type EnvironmentMachineKind, resolveEnvironmentMachineKind } from "@t3tools/contracts";
4import { AsyncResult } from "effect/unstable/reactivity";
4import { AsyncResult } from "effect/reactivity";
55import { useMemo } from "react";
66import { ActivityIndicator, Alert, Pressable, View } from "react-native";
77import { useSafeAreaInsets } from "react-native-safe-area-context";
apps/mobile/src/features/settings/SettingsEnvironmentDetailRouteScreen.tsx+1-1
......@@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react";
22import { useNavigation, type StaticScreenProps } from "@react-navigation/native";
33import type { EnvironmentId, ServerProvider } from "@t3tools/contracts";
44import { squashAtomCommandFailure } from "@t3tools/client-runtime/state/runtime";
5import { AsyncResult } from "effect/unstable/reactivity";
5import { AsyncResult } from "effect/reactivity";
66import { useEffect, useRef, useState } from "react";
77import { Alert, View } from "react-native";
88import { useSafeAreaInsets } from "react-native-safe-area-context";
apps/mobile/src/features/settings/SettingsFollowUpRouteScreen.tsx+1-1
......@@ -1,6 +1,6 @@
11import { useAtomSet, useAtomValue } from "@effect/atom-react";
22import { useNavigation } from "@react-navigation/native";
3import { AsyncResult } from "effect/unstable/reactivity";
3import { AsyncResult } from "effect/reactivity";
44import { Platform, ScrollView, View } from "react-native";
55import { useSafeAreaInsets } from "react-native-safe-area-context";
66
apps/mobile/src/features/settings/SettingsKeyboardRouteScreen.tsx+1-1
......@@ -1,6 +1,6 @@
11import { useAtomSet, useAtomValue } from "@effect/atom-react";
22import { useNavigation } from "@react-navigation/native";
3import { AsyncResult } from "effect/unstable/reactivity";
3import { AsyncResult } from "effect/reactivity";
44import { Platform, ScrollView, View } from "react-native";
55import { useSafeAreaInsets } from "react-native-safe-area-context";
66
apps/mobile/src/features/settings/SettingsNotificationsRouteScreen.tsx+1-1
......@@ -4,7 +4,7 @@ import { useAtomSet, useAtomValue } from "@effect/atom-react";
44import * as Notifications from "expo-notifications";
55import { useNavigation } from "@react-navigation/native";
66import * as Effect from "effect/Effect";
7import { AsyncResult } from "effect/unstable/reactivity";
7import { AsyncResult } from "effect/reactivity";
88import { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react";
99import { Alert, AppState, Linking, Platform } from "react-native";
1010import { useSafeAreaInsets } from "react-native-safe-area-context";
apps/mobile/src/features/settings/SettingsProjectGroupingRouteScreen.tsx+1-1
......@@ -1,7 +1,7 @@
11import { ScreenScrollView as ScrollView } from "../../components/ScreenScrollView";
22import { useAtomSet, useAtomValue } from "@effect/atom-react";
33import type { SidebarProjectGroupingMode } from "@t3tools/contracts";
4import { AsyncResult } from "effect/unstable/reactivity";
4import { AsyncResult } from "effect/reactivity";
55import { useSafeAreaInsets } from "react-native-safe-area-context";
66
77import { SettingsScreen } from "./components/SettingsScreen";
apps/mobile/src/features/settings/SettingsThreadsRouteScreen.tsx+1-1
......@@ -1,7 +1,7 @@
11import { AutoSettleDaysField } from "./components/AutoSettleDaysField";
22import { ScreenScrollView as ScrollView } from "../../components/ScreenScrollView";
33import { useAtomSet, useAtomValue } from "@effect/atom-react";
4import { AsyncResult } from "effect/unstable/reactivity";
4import { AsyncResult } from "effect/reactivity";
55import { useRef, useState } from "react";
66import { Pressable, View } from "react-native";
77import { useSafeAreaInsets } from "react-native-safe-area-context";
apps/mobile/src/features/settings/appearance/AppearancePreferencesProvider.tsx+1-1
......@@ -13,7 +13,7 @@ import {
1313import { AppState, Appearance, Platform, useColorScheme } from "react-native";
1414
1515import { useAtomSet, useAtomValue } from "@effect/atom-react";
16import { AsyncResult } from "effect/unstable/reactivity";
16import { AsyncResult } from "effect/reactivity";
1717
1818import { ScopedTheme, ScopedVariables, Uniwind } from "uniwind";
1919
apps/mobile/src/features/settings/scheduled-task-editor-state.ts+1-1
......@@ -1,5 +1,5 @@
11import type { EnvironmentId } from "@t3tools/contracts";
2import { Atom } from "effect/unstable/reactivity";
2import { Atom } from "effect/reactivity";
33
44import { appAtomRegistry } from "../../state/atom-registry";
55import type { ScheduledTaskDraft } from "./scheduledTaskDraft";
apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx+1-1
......@@ -7,7 +7,7 @@ import {
77 StackActions,
88 useNavigation,
99} from "@react-navigation/native";
10import { AsyncResult } from "effect/unstable/reactivity";
10import { AsyncResult } from "effect/reactivity";
1111
1212import { useConnectionController } from "../connection/useConnectionController";
1313import { useAppearancePreferences } from "../settings/appearance/AppearancePreferencesProvider";
apps/mobile/src/features/threads/NewTaskDraftScreen.tsx+1-1
......@@ -1,6 +1,6 @@
11import { useAtomValue } from "@effect/atom-react";
22import * as Cause from "effect/Cause";
3import { AsyncResult } from "effect/unstable/reactivity";
3import { AsyncResult } from "effect/reactivity";
44import { clampFileAttachmentUploadBytes } from "@t3tools/client-runtime/state/attachments";
55import {
66 nextPastedTextFileName,
apps/mobile/src/features/threads/ThreadSettingsSheet.tsx+1-1
......@@ -20,7 +20,7 @@ import {
2020 type NativeStackNavigationProp,
2121} from "@react-navigation/native-stack";
2222import * as Haptics from "expo-haptics";
23import { AsyncResult } from "effect/unstable/reactivity";
23import { AsyncResult } from "effect/reactivity";
2424import {
2525 createContext,
2626 use,
apps/mobile/src/features/threads/checkout-new-task-branch.ts+1-1
......@@ -6,7 +6,7 @@ import {
66} from "@t3tools/client-runtime/state/runtime";
77import type { VcsSwitchRefInput, VcsSwitchRefResult } from "@t3tools/contracts";
88import * as Cause from "effect/Cause";
9import { AsyncResult } from "effect/unstable/reactivity";
9import { AsyncResult } from "effect/reactivity";
1010
1111import { shouldCheckoutNewTaskBranch } from "./new-task-context-presentation";
1212
apps/mobile/src/features/threads/markdownCodeHighlightState.ts+1-1
......@@ -1,7 +1,7 @@
11import { useAtomValue } from "@effect/atom-react";
22import * as Data from "effect/Data";
33import * as Effect from "effect/Effect";
4import { AsyncResult, Atom } from "effect/unstable/reactivity";
4import { AsyncResult, Atom } from "effect/reactivity";
55import { useMemo } from "react";
66
77import {
apps/mobile/src/features/threads/provider-catalog-refresh.test.ts+1-1
......@@ -1,6 +1,6 @@
11import { EnvironmentId } from "@t3tools/contracts";
22import * as Cause from "effect/Cause";
3import { AsyncResult } from "effect/unstable/reactivity";
3import { AsyncResult } from "effect/reactivity";
44import { describe, expect, it, vi } from "vite-plus/test";
55
66import {
apps/mobile/src/features/threads/thread-handoff-row.tsx+1-1
......@@ -8,7 +8,7 @@ import type {
88 ProviderInstanceId,
99 ServerProvider,
1010} from "@t3tools/contracts";
11import { Atom } from "effect/unstable/reactivity";
11import { Atom } from "effect/reactivity";
1212import { Fragment, useMemo } from "react";
1313import { Alert, Pressable, View, type ColorValue } from "react-native";
1414import { AppText as Text } from "../../components/AppText";
apps/mobile/src/features/threads/use-legacy-plan-mode-enabled.ts+1-1
......@@ -1,5 +1,5 @@
11import { useAtomValue } from "@effect/atom-react";
2import { AsyncResult } from "effect/unstable/reactivity";
2import { AsyncResult } from "effect/reactivity";
33
44import { mobilePreferencesAtom } from "../../state/preferences";
55import { resolveLegacyPlanModeEnabled } from "../../state/legacy-plan-mode";
apps/mobile/src/features/threads/use-thread-list-v2-shelf-preferences.ts+1-1
......@@ -1,5 +1,5 @@
11import { useAtomSet, useAtomValue } from "@effect/atom-react";
2import { AsyncResult } from "effect/unstable/reactivity";
2import { AsyncResult } from "effect/reactivity";
33import { useCallback, useRef } from "react";
44
55import { mobilePreferencesAtom, updateMobilePreferencesAtom } from "../../state/preferences";
apps/mobile/src/features/voice-input/voiceInputSession.test.ts+1-1
......@@ -1,6 +1,6 @@
11import { beforeEach, describe, expect, it, vi } from "vite-plus/test";
22import type { PreparedVoiceTranscription } from "@t3tools/client-runtime/voice-input";
3import { Atom, AtomRegistry } from "effect/unstable/reactivity";
3import { Atom, AtomRegistry } from "effect/reactivity";
44import { resetVoiceInputGlobalsForTests } from "../../../../../packages/client-runtime/src/voice-input/controller";
55
66import {
apps/mobile/src/lib/hot-swappable-atom-runtime.test.ts+1-1
......@@ -2,7 +2,7 @@ import { describe, expect, it, vi } from "vite-plus/test";
22import * as Context from "effect/Context";
33import * as Effect from "effect/Effect";
44import * as Layer from "effect/Layer";
5import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
5import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
66
77import { hotSwappableAtomRuntime } from "./hot-swappable-atom-runtime";
88
apps/mobile/src/lib/hot-swappable-atom-runtime.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Layer from "effect/Layer";
2import { Atom, AtomRegistry, Reactivity } from "effect/unstable/reactivity";
2import { Atom, AtomRegistry, Reactivity } from "effect/reactivity";
33
44export interface AcceptingHotModule {
55 readonly accept: (callback?: () => void) => void;
apps/mobile/src/lib/http-response.test.ts+1-1
......@@ -1,5 +1,5 @@
11import { describe, expect, it } from "vite-plus/test";
2import { Cookies, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
2import { Cookies, HttpClientRequest, HttpClientResponse } from "effect/http";
33
44describe("React Native HTTP responses", () => {
55 it("can inspect a rejected response when native Headers has no getSetCookie", () => {
apps/mobile/src/lib/runtime.ts+1-1
......@@ -1,6 +1,6 @@
11import * as Layer from "effect/Layer";
22import * as ManagedRuntime from "effect/ManagedRuntime";
3import * as Socket from "effect/unstable/socket/Socket";
3import * as Socket from "effect/socket/Socket";
44
55import { remoteHttpClientLayer } from "@t3tools/client-runtime/rpc";
66
apps/mobile/src/state/acknowledged-thread-messages.ts+1-1
......@@ -1,4 +1,4 @@
1import { Atom } from "effect/unstable/reactivity";
1import { Atom } from "effect/reactivity";
22import { appAtomRegistry } from "./atom-registry";
33import type { QueuedThreadMessage } from "./thread-outbox-model";
44
apps/mobile/src/state/assets.ts+1-1
......@@ -11,7 +11,7 @@ import {
1111} from "@t3tools/client-runtime/state/assets";
1212import type { AssetResource, EnvironmentId } from "@t3tools/contracts";
1313import * as Option from "effect/Option";
14import { AsyncResult, Atom } from "effect/unstable/reactivity";
14import { AsyncResult, Atom } from "effect/reactivity";
1515import { useCallback } from "react";
1616
1717import { environmentCatalog } from "../connection/catalog";
apps/mobile/src/state/atom-registry.ts+1-1
......@@ -1,4 +1,4 @@
1import { AtomRegistry } from "effect/unstable/reactivity";
1import { AtomRegistry } from "effect/reactivity";
22
33import {
44 disposeOnFoundationReplace,
apps/mobile/src/state/client-cache-state.ts+1-1
......@@ -1,6 +1,6 @@
11import type { EnvironmentId } from "@t3tools/contracts";
22import * as Effect from "effect/Effect";
3import { Atom } from "effect/unstable/reactivity";
3import { Atom } from "effect/reactivity";
44
55import * as MobileDatabase from "../persistence/mobile-database";
66import { projectFaviconDatabaseCache } from "../lib/projectFaviconDatabaseCache";
apps/mobile/src/state/composer-attachment-uploads.ts+1-1
......@@ -1,6 +1,6 @@
11import { useAtomValue } from "@effect/atom-react";
22import type { EnvironmentId } from "@t3tools/contracts";
3import { Atom } from "effect/unstable/reactivity";
3import { Atom } from "effect/reactivity";
44import { useEffect, useRef } from "react";
55
66import { prepareTurnAttachments } from "../lib/attachmentUpload";
apps/mobile/src/state/device.ts+1-1
......@@ -3,7 +3,7 @@ import { resolveDeviceHubAccess } from "@t3tools/client-runtime/state/deviceHubA
33import type { EnvironmentId } from "@t3tools/contracts";
44import * as Effect from "effect/Effect";
55import * as Option from "effect/Option";
6import { Atom } from "effect/unstable/reactivity";
6import { Atom } from "effect/reactivity";
77import { useMemo } from "react";
88
99import { connectionAtomRuntime } from "../connection/runtime";
apps/mobile/src/state/entities.ts+1-1
......@@ -13,7 +13,7 @@ import type {
1313 ScopedThreadRef,
1414 ServerConfig,
1515} from "@t3tools/contracts";
16import { Atom } from "effect/unstable/reactivity";
16import { Atom } from "effect/reactivity";
1717
1818import { environmentProjects } from "./projects";
1919import { environmentServerConfigsAtom, serverEnvironment } from "./server";
apps/mobile/src/state/pending-thread-creation.ts+1-1
......@@ -4,7 +4,7 @@ import {
44} from "@t3tools/client-runtime/state/shell";
55import type { LocalThreadMessage } from "../lib/threadActivity";
66import { DEFAULT_PROVIDER_INTERACTION_MODE, DEFAULT_RUNTIME_MODE } from "@t3tools/contracts";
7import { Atom } from "effect/unstable/reactivity";
7import { Atom } from "effect/reactivity";
88import * as DateTime from "effect/DateTime";
99
1010import { deriveThreadTitleFromPrompt } from "../lib/projectThreadStartTurn";
apps/mobile/src/state/preferences.test.ts+1-1
......@@ -2,7 +2,7 @@ import { describe, expect, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
44import * as Option from "effect/Option";
5import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
5import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
66import { vi } from "vite-plus/test";
77import { ProviderInstanceId } from "@t3tools/contracts";
88import { RegistryContext, useAtomSet } from "@effect/atom-react";
apps/mobile/src/state/preferences.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import { AsyncResult, Atom } from "effect/unstable/reactivity";
2import { AsyncResult, Atom } from "effect/reactivity";
33
44import * as MobilePreferences from "../persistence/mobile-preferences";
55import * as Runtime from "../lib/runtime";
apps/mobile/src/state/presentation.ts+1-1
......@@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react";
22import type { EnvironmentPresentation } from "@t3tools/client-runtime/connection";
33import { createEnvironmentPresentationAtoms } from "@t3tools/client-runtime/state/presentation";
44import type { EnvironmentId } from "@t3tools/contracts";
5import { Atom } from "effect/unstable/reactivity";
5import { Atom } from "effect/reactivity";
66
77import { environmentCatalog } from "../connection/catalog";
88import { serverEnvironment } from "./server";
apps/mobile/src/state/project-grouping.ts+1-1
......@@ -1,5 +1,5 @@
11import { useAtomValue } from "@effect/atom-react";
2import { AsyncResult } from "effect/unstable/reactivity";
2import { AsyncResult } from "effect/reactivity";
33
44import { mobilePreferencesAtom } from "./preferences";
55import {
apps/mobile/src/state/projectClones.ts+1-1
......@@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react";
22import { parseScopedProjectKey, scopedProjectKey } from "@t3tools/client-runtime/environment";
33import type { EnvironmentId, ProjectCloneSnapshot, ScopedProjectRef } from "@t3tools/contracts";
44import * as Option from "effect/Option";
5import { AsyncResult, Atom } from "effect/unstable/reactivity";
5import { AsyncResult, Atom } from "effect/reactivity";
66
77import { serverEnvironment } from "./server";
88import { sourceControlEnvironment } from "./sourceControl";
apps/mobile/src/state/queries.ts+1-1
......@@ -17,7 +17,7 @@ import { useAtomValue } from "@effect/atom-react";
1717import * as Cause from "effect/Cause";
1818import { turnItemDetailRevision } from "@t3tools/client-runtime/work-log/item-detail";
1919import * as Option from "effect/Option";
20import { AsyncResult, Atom } from "effect/unstable/reactivity";
20import { AsyncResult, Atom } from "effect/reactivity";
2121import { useCallback, useEffect, useMemo, useState } from "react";
2222
2323import { appAtomRegistry } from "./atom-registry";
apps/mobile/src/state/query.ts+1-1
......@@ -1,7 +1,7 @@
11import { useAtomRefresh, useAtomValue } from "@effect/atom-react";
22import * as Cause from "effect/Cause";
33import * as Option from "effect/Option";
4import { AsyncResult, Atom } from "effect/unstable/reactivity";
4import { AsyncResult, Atom } from "effect/reactivity";
55
66const EMPTY_ASYNC_RESULT_ATOM = Atom.make(AsyncResult.initial<never, never>(false)).pipe(
77 Atom.withLabel("mobile-environment-query:empty"),
apps/mobile/src/state/question-attachments.ts+1-1
......@@ -1,5 +1,5 @@
11import type { EnvironmentId, ThreadId } from "@t3tools/contracts";
2import { Atom } from "effect/unstable/reactivity";
2import { Atom } from "effect/reactivity";
33import { appAtomRegistry } from "./atom-registry";
44
55export function questionAttachmentDraftPrefix(
apps/mobile/src/state/queued-run-edit.ts+1-1
......@@ -20,7 +20,7 @@ import type {
2020 RunId,
2121 UploadChatAttachment,
2222} from "@t3tools/contracts";
23import { Atom } from "effect/unstable/reactivity";
23import { Atom } from "effect/reactivity";
2424import { useAtomValue } from "@effect/atom-react";
2525
2626import { uploadedComposerContext } from "../lib/composerContext";
apps/mobile/src/state/remote-environment-projections.test.ts+1-1
......@@ -7,7 +7,7 @@ import type { ServerConfig } from "@t3tools/contracts";
77import { EnvironmentId } from "@t3tools/contracts";
88import { describe, expect, it } from "@effect/vitest";
99import * as Option from "effect/Option";
10import { Atom, AtomRegistry } from "effect/unstable/reactivity";
10import { Atom, AtomRegistry } from "effect/reactivity";
1111
1212import { createRemoteEnvironmentProjectionAtoms } from "./remote-environment-projections";
1313
apps/mobile/src/state/remote-environment-projections.ts+1-1
......@@ -5,7 +5,7 @@ import type {
55import { connectionCatalogDisplayUrl } from "@t3tools/client-runtime/connection";
66import type { EnvironmentId, ServerConfig } from "@t3tools/contracts";
77import * as Option from "effect/Option";
8import { Atom } from "effect/unstable/reactivity";
8import { Atom } from "effect/reactivity";
99
1010import type { SavedRemoteConnection } from "../lib/connection";
1111import type { EnvironmentRuntimeState } from "./remote-runtime-types";
apps/mobile/src/state/session.ts+1-1
......@@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react";
22import { createEnvironmentSessionAtoms } from "@t3tools/client-runtime/state/session";
33import type { EnvironmentId } from "@t3tools/contracts";
44import * as Option from "effect/Option";
5import { Atom } from "effect/unstable/reactivity";
5import { Atom } from "effect/reactivity";
66
77import { connectionAtomRuntime } from "../connection/runtime";
88
apps/mobile/src/state/shell.ts+1-1
......@@ -8,7 +8,7 @@ import {
88import { useAtomValue } from "@effect/atom-react";
99import type { EnvironmentId } from "@t3tools/contracts";
1010import * as Option from "effect/Option";
11import { Atom } from "effect/unstable/reactivity";
11import { Atom } from "effect/reactivity";
1212
1313import { environmentCatalog } from "../connection/catalog";
1414import { connectionAtomRuntime } from "../connection/runtime";
apps/mobile/src/state/thread-composer-error.ts+1-1
......@@ -1,4 +1,4 @@
1import { Atom } from "effect/unstable/reactivity";
1import { Atom } from "effect/reactivity";
22
33import { appAtomRegistry } from "./atom-registry";
44
apps/mobile/src/state/thread-list-environments.test.ts+1-1
......@@ -6,7 +6,7 @@ import {
66 type ServerProvider,
77} from "@t3tools/contracts";
88import { describe, expect, it } from "@effect/vitest";
9import { Atom, AtomRegistry } from "effect/unstable/reactivity";
9import { Atom, AtomRegistry } from "effect/reactivity";
1010import { createThreadListEnvironmentsAtom } from "./thread-list-environments";
1111
1212const ID = EnvironmentId.make("one");
apps/mobile/src/state/thread-list-environments.ts+1-1
......@@ -5,7 +5,7 @@ import {
55 type ServerConfig,
66 type ServerProvider,
77} from "@t3tools/contracts";
8import { Atom } from "effect/unstable/reactivity";
8import { Atom } from "effect/reactivity";
99
1010export type ThreadListProvider = Pick<
1111 ServerProvider,
apps/mobile/src/state/thread-order.test.ts+5-5
......@@ -1,6 +1,6 @@
11import type { EnvironmentThreadShell } from "@t3tools/client-runtime/state/shell";
22import { EnvironmentId, ThreadId } from "@t3tools/contracts";
3import type { Atom } from "effect/unstable/reactivity";
3import type { Atom } from "effect/reactivity";
44import { afterEach, describe, expect, it, vi } from "vite-plus/test";
55
66import { createPendingThreadOrder } from "../features/threads/threadOrder";
......@@ -14,19 +14,19 @@ import {
1414import { environmentThreadShells } from "./threads";
1515
1616vi.mock("./atom-registry", async () => {
17 const { AtomRegistry } = await import("effect/unstable/reactivity");
17 const { AtomRegistry } = await import("effect/reactivity");
1818 return { appAtomRegistry: AtomRegistry.make() };
1919});
2020vi.mock("./threads", async () => {
21 const { Atom } = await import("effect/unstable/reactivity");
21 const { Atom } = await import("effect/reactivity");
2222 return { environmentThreadShells: { threadShellsAtom: Atom.make([]).pipe(Atom.keepAlive) } };
2323});
2424vi.mock("./server", async () => {
25 const { Atom } = await import("effect/unstable/reactivity");
25 const { Atom } = await import("effect/reactivity");
2626 return { environmentServerConfigsAtom: Atom.make(new Map()).pipe(Atom.keepAlive) };
2727});
2828vi.mock("./use-thread-outbox", async () => {
29 const { Atom } = await import("effect/unstable/reactivity");
29 const { Atom } = await import("effect/reactivity");
3030 return { queuedThreadKeysAtom: Atom.make(new Set<string>()).pipe(Atom.keepAlive) };
3131});
3232
apps/mobile/src/state/thread-order.ts+1-1
......@@ -1,6 +1,6 @@
11import { useAtomValue } from "@effect/atom-react";
22import { useEffect } from "react";
3import { Atom } from "effect/unstable/reactivity";
3import { Atom } from "effect/reactivity";
44
55import {
66 reconcilePendingThreadOrder,
apps/mobile/src/state/thread-outbox-manager.ts+1-1
......@@ -1,6 +1,6 @@
11import { EnvironmentId, MessageId, ThreadId } from "@t3tools/contracts";
22import * as Schema from "effect/Schema";
3import { Atom, type AtomRegistry } from "effect/unstable/reactivity";
3import { Atom, type AtomRegistry } from "effect/reactivity";
44
55import {
66 flattenQueuedThreadMessages,
apps/mobile/src/state/thread-outbox.test.ts+3-3
......@@ -13,9 +13,9 @@ import {
1313 ProviderInstanceId,
1414 ThreadId,
1515} from "@t3tools/contracts";
16import { AtomRegistry } from "effect/unstable/reactivity";
17import * as RpcClientError from "effect/unstable/rpc/RpcClientError";
18import * as Socket from "effect/unstable/socket/Socket";
16import { AtomRegistry } from "effect/reactivity";
17import * as RpcClientError from "effect/rpc/RpcClientError";
18import * as Socket from "effect/socket/Socket";
1919import { onTestFinished, vi } from "vite-plus/test";
2020
2121const outboxFiles = vi.hoisted(() => new Map<string, string | Error>());
apps/mobile/src/state/threads.ts+1-1
......@@ -9,7 +9,7 @@ import {
99} from "@t3tools/client-runtime/state/threads";
1010import type { EnvironmentId, ThreadId } from "@t3tools/contracts";
1111import * as Option from "effect/Option";
12import { AsyncResult, Atom } from "effect/unstable/reactivity";
12import { AsyncResult, Atom } from "effect/reactivity";
1313
1414import { environmentCatalog } from "../connection/catalog";
1515import { connectionAtomRuntime } from "../connection/runtime";
apps/mobile/src/state/usage.ts+1-1
......@@ -19,7 +19,7 @@ import {
1919import { needsCursorKeychainAccess, refreshUsage } from "@t3tools/client-runtime/state/usage";
2020import { mergeUsage, type EnvironmentUsage, type MergedUsage } from "@t3tools/shared/usageMerge";
2121import * as Option from "effect/Option";
22import { AsyncResult, Atom } from "effect/unstable/reactivity";
22import { AsyncResult, Atom } from "effect/reactivity";
2323import { useCallback, useMemo } from "react";
2424
2525import { appAtomRegistry } from "./atom-registry";
apps/mobile/src/state/use-atom-query-runner.ts+1-1
......@@ -4,7 +4,7 @@ import {
44 type AtomQueryOptions,
55 type AtomCommandResult,
66} from "@t3tools/client-runtime/state/runtime";
7import { AsyncResult, type Atom } from "effect/unstable/reactivity";
7import { AsyncResult, type Atom } from "effect/reactivity";
88import { useCallback, useContext } from "react";
99
1010export function useAtomQueryRunner<T, A, E>(
apps/mobile/src/state/use-composer-drafts.ts+1-1
......@@ -21,7 +21,7 @@ import {
2121} from "@t3tools/contracts";
2222import * as Schema from "effect/Schema";
2323import { useEffect } from "react";
24import { Atom } from "effect/unstable/reactivity";
24import { Atom } from "effect/reactivity";
2525
2626import { writeFileAtomically } from "../lib/atomic-file";
2727import { createComposerContextHistory, referencedComposerContext } from "../lib/composerContext";
apps/mobile/src/state/use-remote-environment-registry.ts+1-1
......@@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react";
22import { useNavigation } from "@react-navigation/native";
33import type { EnvironmentId } from "@t3tools/contracts";
44import * as Cause from "effect/Cause";
5import { AsyncResult, Atom } from "effect/unstable/reactivity";
5import { AsyncResult, Atom } from "effect/reactivity";
66import { useCallback } from "react";
77import { Alert } from "react-native";
88
apps/mobile/src/state/use-selected-thread-git-actions.ts+1-1
......@@ -13,7 +13,7 @@ import {
1313 sanitizeFeatureBranchName,
1414} from "@t3tools/shared/git";
1515import * as Cause from "effect/Cause";
16import { AsyncResult } from "effect/unstable/reactivity";
16import { AsyncResult } from "effect/reactivity";
1717
1818import { useBranches } from "../state/queries";
1919import { threadEnvironment } from "../state/threads";
apps/mobile/src/state/use-selected-thread-requests.ts+1-1
......@@ -19,7 +19,7 @@ import {
1919 type PendingThreadRequests,
2020 type ThreadUserInputQuestion,
2121} from "@t3tools/client-runtime/state/thread-requests";
22import { Atom } from "effect/unstable/reactivity";
22import { Atom } from "effect/reactivity";
2323
2424import { threadEnvironment } from "../state/threads";
2525import { scopedRequestKey } from "../lib/scopedEntities";
apps/mobile/src/state/use-thread-composer-state.ts+2-2
......@@ -81,8 +81,8 @@ import {
8181 resolveComposerDispatchMode,
8282 type ActiveTurnComposerAction,
8383} from "@t3tools/client-runtime/state/composer-dispatch";
84import { Atom } from "effect/unstable/reactivity";
85import { AsyncResult } from "effect/unstable/reactivity";
84import { Atom } from "effect/reactivity";
85import { AsyncResult } from "effect/reactivity";
8686import { prepareTurnAttachments } from "../lib/attachmentUpload";
8787import { DEFAULT_FOLLOW_UP_BEHAVIOR } from "../lib/followUpBehavior";
8888import { mobilePreferencesAtom } from "./preferences";
apps/mobile/src/state/use-thread-detail.ts+1-1
......@@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react";
22import type { PendingThreadRequests } from "@t3tools/client-runtime/state/thread-requests";
33import type { EnvironmentThread } from "@t3tools/client-runtime/state/shell";
44import type { EnvironmentId, OrchestrationV2ThreadProjection, ThreadId } from "@t3tools/contracts";
5import { Atom } from "effect/unstable/reactivity";
5import { Atom } from "effect/reactivity";
66
77import { environmentThreadDetails, useEnvironmentThread } from "./threads";
88import { useThreadSelection } from "./use-thread-selection";
apps/mobile/src/state/use-thread-outbox-drain.test.ts+2-2
......@@ -83,7 +83,7 @@ vi.mock("./entities", () => ({
8383}));
8484
8585vi.mock("./server", async () => {
86 const { Atom } = await import("effect/unstable/reactivity");
86 const { Atom } = await import("effect/reactivity");
8787 return { serverEnvironment: { configValueAtom: Atom.family(() => Atom.make(null)) } };
8888});
8989
......@@ -96,7 +96,7 @@ vi.mock("./use-atom-command", () => ({
9696}));
9797
9898vi.mock("./use-thread-outbox", async () => {
99 const { Atom } = await import("effect/unstable/reactivity");
99 const { Atom } = await import("effect/reactivity");
100100 return {
101101 editingQueuedMessageIdsAtom: Atom.make<Record<string, boolean>>({}).pipe(Atom.keepAlive),
102102 useThreadOutboxMessages: () => ({}),
apps/mobile/src/state/use-thread-outbox-drain.ts+1-1
......@@ -15,7 +15,7 @@ import {
1515} from "@t3tools/contracts";
1616import { buildTemporaryWorktreeBranchName } from "@t3tools/shared/git";
1717import * as Cause from "effect/Cause";
18import { AsyncResult } from "effect/unstable/reactivity";
18import { AsyncResult } from "effect/reactivity";
1919import { useCallback, useEffect, useRef, useState } from "react";
2020import { Alert } from "react-native";
2121
apps/mobile/src/state/use-thread-outbox.ts+1-1
......@@ -1,7 +1,7 @@
11import { useAtomValue } from "@effect/atom-react";
22import type { EnvironmentShellStatus } from "@t3tools/client-runtime/state/shell";
33import type { EnvironmentId, MessageId } from "@t3tools/contracts";
4import { Atom } from "effect/unstable/reactivity";
4import { Atom } from "effect/reactivity";
55
66import { appAtomRegistry } from "./atom-registry";
77import { environmentShell } from "./shell";
apps/mobile/src/state/use-thread-pr.ts+1-1
......@@ -5,7 +5,7 @@ import {
55 createLinkedPullRequestSummaryAtomFamily,
66 pullRequestDetailToVcsStatus,
77} from "@t3tools/client-runtime/state/pull-requests";
8import { Atom } from "effect/unstable/reactivity";
8import { Atom } from "effect/reactivity";
99import { useCallback, useEffect, useMemo } from "react";
1010
1111import { connectionAtomRuntime } from "../connection/runtime";
apps/mobile/src/state/use-vcs-action-state.ts+1-1
......@@ -1,6 +1,6 @@
11import { useAtomValue } from "@effect/atom-react";
22import { type VcsActionState, type VcsActionTarget } from "@t3tools/client-runtime/state/vcs";
3import { Atom } from "effect/unstable/reactivity";
3import { Atom } from "effect/reactivity";
44import { useCallback, useEffect, useRef, useState } from "react";
55
66import { appAtomRegistry } from "./atom-registry";
apps/mobile/src/state/v2-item-support.ts+1-1
......@@ -7,7 +7,7 @@ import {
77 type V2ItemSupport,
88} from "@t3tools/client-runtime/state/item-support";
99import type { EnvironmentId, ThreadId, TurnItemId } from "@t3tools/contracts";
10import { Atom } from "effect/unstable/reactivity";
10import { Atom } from "effect/reactivity";
1111
1212import { environmentThreadDetails } from "./threads";
1313
apps/mobile/src/state/workspace-connection-atoms.test.ts+1-1
......@@ -8,7 +8,7 @@ import type { EnvironmentCatalogState } from "@t3tools/client-runtime/state/conn
88import type { EnvironmentShellSummary } from "@t3tools/client-runtime/state/shell";
99import { EnvironmentId, type ServerConfig } from "@t3tools/contracts";
1010import * as Option from "effect/Option";
11import { Atom, AtomRegistry } from "effect/unstable/reactivity";
11import { Atom, AtomRegistry } from "effect/reactivity";
1212
1313import { createWorkspaceConnectionAtoms } from "./workspace-connection-atoms";
1414import { projectWorkspaceEnvironment, projectWorkspaceState } from "./workspaceModel";
apps/mobile/src/state/workspace-connection-atoms.ts+1-1
......@@ -2,7 +2,7 @@ import type { EnvironmentPresentation, NetworkStatus } from "@t3tools/client-run
22import type { EnvironmentCatalogState } from "@t3tools/client-runtime/state/connections";
33import type { EnvironmentId } from "@t3tools/contracts";
44import { createEnvironmentSummaryAtoms } from "@t3tools/client-runtime/state/presentation";
5import { Atom } from "effect/unstable/reactivity";
5import { Atom } from "effect/reactivity";
66
77import { projectWorkspaceConnectionState } from "./workspaceModel";
88
apps/mobile/src/widgets/SubscriptionUsageCoordinator.tsx+1-1
......@@ -1,5 +1,5 @@
11import { useAtomValue } from "@effect/atom-react";
2import { Atom } from "effect/unstable/reactivity";
2import { Atom } from "effect/reactivity";
33import * as Linking from "expo-linking";
44import { useEffect } from "react";
55import { Platform } from "react-native";
apps/server/integration/NetworkTransferMeasurement.integration.ts+2-2
......@@ -9,8 +9,8 @@ import * as Exit from "effect/Exit";
99import * as Layer from "effect/Layer";
1010import * as Schema from "effect/Schema";
1111import * as Scope from "effect/Scope";
12import { RpcClient, RpcSerialization } from "effect/unstable/rpc";
13import * as Socket from "effect/unstable/socket/Socket";
12import { RpcClient, RpcSerialization } from "effect/rpc";
13import * as Socket from "effect/socket/Socket";
1414
1515export class TransferHttpRequestError extends Schema.TaggedError<TransferHttpRequestError>()(
1616 "TransferHttpRequestError",
apps/server/integration/transferBudgetV2.integration.test.ts+4-4
......@@ -31,10 +31,10 @@ import * as Queue from "effect/Queue";
3131import * as Schema from "effect/Schema";
3232import * as Scope from "effect/Scope";
3333import * as Stream from "effect/Stream";
34import * as HttpApi from "effect/unstable/httpapi/HttpApi";
35import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder";
36import { HttpRouter, HttpServer } from "effect/unstable/http";
37import { Rpc, RpcGroup, RpcServer, RpcSerialization } from "effect/unstable/rpc";
34import * as HttpApi from "effect/http-api/HttpApi";
35import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder";
36import { HttpRouter, HttpServer } from "effect/http";
37import { Rpc, RpcGroup, RpcServer, RpcSerialization } from "effect/rpc";
3838import { SqlitePersistenceMemory } from "../src/persistence/Layers/Sqlite.ts";
3939import { OrchestrationEventStoreLive } from "../src/persistence/Layers/OrchestrationEventStore.ts";
4040import * as EventStore from "../src/orchestration-v2/EventStore.ts";
apps/server/package.json+3-3
......@@ -35,9 +35,9 @@
3535 "@ff-labs/fff-node": "0.9.4",
3636 "@napi-rs/keyring": "^1.3.0",
3737 "@opencode-ai/sdk": "^1.3.15",
38 "@opencode/client": "2.0.18",
39 "@opencode/protocol": "2.0.18",
40 "@opencode/schema": "2.0.18",
38 "@opencode/client": "2.0.23",
39 "@opencode/protocol": "2.0.23",
40 "@opencode/schema": "2.0.23",
4141 "diff": "8.0.3",
4242 "effect": "catalog:",
4343 "jose": "catalog:",
apps/server/scripts/cli.ts+2-2
......@@ -6,8 +6,8 @@ import * as FileSystem from "effect/FileSystem";
66import * as Logger from "effect/Logger";
77import * as Option from "effect/Option";
88import * as Path from "effect/Path";
9import { Command, Flag } from "effect/unstable/cli";
10import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
9import { Command, Flag } from "effect/cli";
10import { ChildProcess, ChildProcessSpawner } from "effect/process";
1111
1212import { DEVELOPMENT_ICON_OVERRIDES } from "../../../scripts/lib/brand-assets.ts";
1313import { findEsmImportsOfExternalPackages } from "../../../scripts/lib/cli-executable-imports.ts";
apps/server/scripts/evaluate-thread-titles.ts+1-1
......@@ -6,7 +6,7 @@
66// Add --initial to evaluate only the opening request.
77import * as NodeUtil from "node:util";
88import * as NodeCrypto from "node:crypto";
9import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
9import * as FetchHttpClient from "effect/http/FetchHttpClient";
1010import * as NodeServices from "@effect/platform-node/NodeServices";
1111import { CodexSettings, ProviderInstanceId } from "@t3tools/contracts";
1212import * as Effect from "effect/Effect";
apps/server/scripts/migrate-dev-db.test.ts+1-1
......@@ -3,7 +3,7 @@ import { assert, it } from "@effect/vitest";
33import * as Effect from "effect/Effect";
44import * as FileSystem from "effect/FileSystem";
55import * as Path from "effect/Path";
6import * as SqlClient from "effect/unstable/sql/SqlClient";
6import * as SqlClient from "effect/sql/SqlClient";
77
88import { runMigrations } from "../src/persistence/Migrations.ts";
99import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/scripts/migrate-dev-db.ts+2-2
......@@ -36,8 +36,8 @@ import * as Layer from "effect/Layer";
3636import * as Option from "effect/Option";
3737import * as Path from "effect/Path";
3838import * as Schema from "effect/Schema";
39import * as SqlClient from "effect/unstable/sql/SqlClient";
40import { Command, Flag } from "effect/unstable/cli";
39import * as SqlClient from "effect/sql/SqlClient";
40import { Command, Flag } from "effect/cli";
4141
4242import * as ProjectionStore from "../src/orchestration-v2/ProjectionStore.ts";
4343import { migrationManifest, runMigrations } from "../src/persistence/Migrations.ts";
apps/server/scripts/record-codex-app-server-replay-fixture.ts+1-1
......@@ -14,7 +14,7 @@ import * as Layer from "effect/Layer";
1414import * as Path from "effect/Path";
1515import * as PlatformError from "effect/PlatformError";
1616import * as Effect from "effect/Effect";
17import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
17import { ChildProcess, ChildProcessSpawner } from "effect/process";
1818
1919import * as CodexClient from "effect-codex-app-server/client";
2020import type * as CodexSchema from "effect-codex-app-server/schema";
apps/server/scripts/record-cursor-agent-sdk-replay-fixture.ts+1-1
......@@ -9,7 +9,7 @@ import * as Path from "effect/Path";
99import * as Redacted from "effect/Redacted";
1010import * as Schema from "effect/Schema";
1111import * as Struct from "effect/Struct";
12import { Command, Flag } from "effect/unstable/cli";
12import { Command, Flag } from "effect/cli";
1313
1414import {
1515 recordCursorAgentSdkReplayTranscript,
apps/server/scripts/record-grok-acp-replay-fixture.ts+1-1
......@@ -21,7 +21,7 @@ import * as FileSystem from "effect/FileSystem";
2121import * as Layer from "effect/Layer";
2222import * as Path from "effect/Path";
2323import * as Schema from "effect/Schema";
24import { ChildProcessSpawner } from "effect/unstable/process";
24import { ChildProcessSpawner } from "effect/process";
2525import type * as EffectAcpProtocol from "effect-acp/protocol";
2626
2727import * as ServerConfig from "../src/config.ts";
apps/server/scripts/record-pi-rpc-replay-fixture.ts+1-1
......@@ -20,7 +20,7 @@ import * as Layer from "effect/Layer";
2020import * as Path from "effect/Path";
2121import * as Schema from "effect/Schema";
2222import { TestClock } from "effect/testing";
23import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
23import { ChildProcess, ChildProcessSpawner } from "effect/process";
2424
2525import {
2626 makePiProviderAdapterRegistryLayer,
apps/server/scripts/t3-sqlite-state.test.ts+1-1
......@@ -3,7 +3,7 @@ import { assert, it } from "@effect/vitest";
33import * as Effect from "effect/Effect";
44import * as FileSystem from "effect/FileSystem";
55import * as Path from "effect/Path";
6import * as SqlClient from "effect/unstable/sql/SqlClient";
6import * as SqlClient from "effect/sql/SqlClient";
77
88import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
99import { runSqliteState } from "./t3-sqlite-state.ts";
apps/server/scripts/t3-sqlite-state.ts+2-2
......@@ -11,8 +11,8 @@ import * as FileSystem from "effect/FileSystem";
1111import * as Option from "effect/Option";
1212import * as Path from "effect/Path";
1313import * as Schema from "effect/Schema";
14import * as SqlClient from "effect/unstable/sql/SqlClient";
15import { Argument, Command, Flag } from "effect/unstable/cli";
14import * as SqlClient from "effect/sql/SqlClient";
15import { Argument, Command, Flag } from "effect/cli";
1616
1717import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
1818
apps/server/scripts/verify-background-live.ts+2-2
......@@ -18,8 +18,8 @@ import * as Effect from "effect/Effect";
1818import * as Layer from "effect/Layer";
1919import * as Schema from "effect/Schema";
2020import * as Stream from "effect/Stream";
21import { Socket } from "effect/unstable/socket";
22import { RpcClient, RpcSerialization } from "effect/unstable/rpc";
21import { Socket } from "effect/socket";
22import { RpcClient, RpcSerialization } from "effect/rpc";
2323import {
2424 ORCHESTRATION_PROTOCOL_VERSION,
2525 ORCHESTRATION_PROTOCOL_HEADER,
apps/server/src/assets/AssetAccess.test.ts+2-2
......@@ -14,8 +14,8 @@ import * as Path from "effect/Path";
1414import * as PlatformError from "effect/PlatformError";
1515import * as Schema from "effect/Schema";
1616import * as TestClock from "effect/testing/TestClock";
17import { HttpClient, HttpClientResponse, HttpServerResponse } from "effect/unstable/http";
18import { ChildProcessSpawner } from "effect/unstable/process";
17import { HttpClient, HttpClientResponse, HttpServerResponse } from "effect/http";
18import { ChildProcessSpawner } from "effect/process";
1919import { vi } from "vite-plus/test";
2020
2121import * as ServerSecretStore from "../auth/ServerSecretStore.ts";
apps/server/src/assets/AssetAccess.ts+2-2
......@@ -33,7 +33,7 @@ import { PROJECT_FAVICON_FALLBACK_MARKER } from "@t3tools/shared/projectFavicon"
3333import * as Clock from "effect/Clock";
3434import * as Crypto from "effect/Crypto";
3535import * as Effect from "effect/Effect";
36import * as Encoding from "effect/Encoding";
36import * as Hex from "effect/encoding/Hex";
3737import * as FileSystem from "effect/FileSystem";
3838import * as Option from "effect/Option";
3939import * as Path from "effect/Path";
......@@ -657,7 +657,7 @@ export const issueAssetUrl = Effect.fn("AssetAccess.issueAssetUrl")(function* (i
657657 ),
658658 );
659659 const revision = yield* crypto.digest("SHA-256", faviconBytes).pipe(
660 Effect.map(Encoding.encodeHex),
660 Effect.map(Hex.encode),
661661 Effect.mapError(
662662 (cause) =>
663663 new AssetProjectFaviconInspectionError({
apps/server/src/assets/AttachmentUpload.ts+1-1
......@@ -12,7 +12,7 @@ import * as Option from "effect/Option";
1212import * as Path from "effect/Path";
1313import * as Schema from "effect/Schema";
1414import * as Stream from "effect/Stream";
15import type * as HttpServerRequest from "effect/unstable/http/HttpServerRequest";
15import type * as HttpServerRequest from "effect/http/HttpServerRequest";
1616
1717import {
1818 attachmentFileExtension,
apps/server/src/assets/GitHubMediaFetch.ts+2-2
......@@ -1,4 +1,4 @@
1import * as Mime from "effect/unstable/http/Mime";
1import * as Mime from "effect/http/Mime";
22import { githubMediaFileName } from "@t3tools/shared/githubMedia";
33import * as Clock from "effect/Clock";
44import * as Effect from "effect/Effect";
......@@ -10,7 +10,7 @@ import {
1010 HttpClientRequest,
1111 HttpServerResponse,
1212 type HttpClientResponse,
13} from "effect/unstable/http";
13} from "effect/http";
1414
1515import * as GitHubCli from "../sourceControl/GitHubCli.ts";
1616
apps/server/src/assets/NativeAppIconResolver.test.ts+1-1
......@@ -4,7 +4,7 @@ import * as Effect from "effect/Effect";
44import * as Layer from "effect/Layer";
55import * as Sink from "effect/Sink";
66import * as Stream from "effect/Stream";
7import { ChildProcessSpawner } from "effect/unstable/process";
7import { ChildProcessSpawner } from "effect/process";
88import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
99
1010import * as ServerConfig from "../config.ts";
apps/server/src/assets/NativeAppIconResolver.ts+1-1
......@@ -13,7 +13,7 @@ import * as Option from "effect/Option";
1313import * as Path from "effect/Path";
1414import * as PlatformError from "effect/PlatformError";
1515import * as Semaphore from "effect/Semaphore";
16import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
16import { ChildProcess, ChildProcessSpawner } from "effect/process";
1717import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
1818
1919import * as ServerConfig from "../config.ts";
apps/server/src/auth/EnvironmentAuth.test.ts+1-1
......@@ -5,7 +5,7 @@ import * as Effect from "effect/Effect";
55import * as Layer from "effect/Layer";
66import * as Redacted from "effect/Redacted";
77import * as Schema from "effect/Schema";
8import * as SqlClient from "effect/unstable/sql/SqlClient";
8import * as SqlClient from "effect/sql/SqlClient";
99
1010import * as ServerConfig from "../config.ts";
1111import * as ServerEnvironment from "../environment/ServerEnvironment.ts";
apps/server/src/auth/EnvironmentAuth.ts+1-1
......@@ -28,7 +28,7 @@ import * as Effect from "effect/Effect";
2828import * as Layer from "effect/Layer";
2929import * as Option from "effect/Option";
3030import * as Schema from "effect/Schema";
31import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest";
31import * as HttpServerRequest from "effect/http/HttpServerRequest";
3232
3333import * as ServerEnvironment from "../environment/ServerEnvironment.ts";
3434import * as ServerConfig from "../config.ts";
apps/server/src/auth/RpcAuthorization.test.ts+1-1
......@@ -9,7 +9,7 @@ import {
99import { describe, expect, it } from "@effect/vitest";
1010import * as Effect from "effect/Effect";
1111import * as Layer from "effect/Layer";
12import * as RpcTest from "effect/unstable/rpc/RpcTest";
12import * as RpcTest from "effect/rpc/RpcTest";
1313
1414import {
1515 RPC_REQUIRED_SCOPES,
apps/server/src/auth/RpcAuthorization.ts+1-1
......@@ -16,7 +16,7 @@ import {
1616} from "@t3tools/contracts";
1717import * as Effect from "effect/Effect";
1818import * as Layer from "effect/Layer";
19import type * as RpcGroup from "effect/unstable/rpc/RpcGroup";
19import type * as RpcGroup from "effect/rpc/RpcGroup";
2020
2121type WsRpcMethod = RpcGroup.Rpcs<typeof WsRpcGroup>["_tag"];
2222
apps/server/src/auth/SessionStore.test.ts+1-1
......@@ -10,7 +10,7 @@ import * as Queue from "effect/Queue";
1010import * as Redacted from "effect/Redacted";
1111import * as Stream from "effect/Stream";
1212import * as TestClock from "effect/testing/TestClock";
13import * as SqlClient from "effect/unstable/sql/SqlClient";
13import * as SqlClient from "effect/sql/SqlClient";
1414
1515import * as ServerConfig from "../config.ts";
1616import * as ServerEnvironment from "../environment/ServerEnvironment.ts";
apps/server/src/auth/dpop.ts+3-3
......@@ -6,9 +6,9 @@ import type { DpopFailureReason } from "@t3tools/contracts";
66import * as Crypto from "effect/Crypto";
77import * as DateTime from "effect/DateTime";
88import * as Effect from "effect/Effect";
9import * as Encoding from "effect/Encoding";
9import * as Base64Url from "effect/encoding/Base64Url";
1010import * as Option from "effect/Option";
11import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest";
11import * as HttpServerRequest from "effect/http/HttpServerRequest";
1212
1313import {
1414 ServerAuthDpopReplayKeyCalculationError,
......@@ -89,7 +89,7 @@ export const verifyRequestDpopProof = (input: {
8989 Effect.flatMap((crypto) =>
9090 crypto.digest("SHA-256", new TextEncoder().encode(`${result.thumbprint}:${result.jti}`)),
9191 ),
92 Effect.map(Encoding.encodeBase64Url),
92 Effect.map(Base64Url.encode),
9393 Effect.mapError(
9494 (cause) =>
9595 new ServerAuthDpopReplayKeyCalculationError({
apps/server/src/auth/http.test.ts+5-5
......@@ -7,11 +7,11 @@ import * as Effect from "effect/Effect";
77import * as Layer from "effect/Layer";
88import * as Redacted from "effect/Redacted";
99import * as Schema from "effect/Schema";
10import * as Etag from "effect/unstable/http/Etag";
11import * as HttpPlatform from "effect/unstable/http/HttpPlatform";
12import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder";
13import * as HttpApi from "effect/unstable/httpapi/HttpApi";
14import * as HttpRouter from "effect/unstable/http/HttpRouter";
10import * as Etag from "effect/http/Etag";
11import * as HttpPlatform from "effect/http/HttpPlatform";
12import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder";
13import * as HttpApi from "effect/http-api/HttpApi";
14import * as HttpRouter from "effect/http/HttpRouter";
1515
1616import * as ServerConfig from "../config.ts";
1717import * as ServerEnvironment from "../environment/ServerEnvironment.ts";
apps/server/src/auth/http.ts+4-4
......@@ -29,10 +29,10 @@ import * as DateTime from "effect/DateTime";
2929import * as Effect from "effect/Effect";
3030import { identity } from "effect/Function";
3131import * as Layer from "effect/Layer";
32import * as Cookies from "effect/unstable/http/Cookies";
33import * as HttpEffect from "effect/unstable/http/HttpEffect";
34import { HttpServerRequest, HttpServerResponse } from "effect/unstable/http";
35import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder";
32import * as Cookies from "effect/http/Cookies";
33import * as HttpEffect from "effect/http/HttpEffect";
34import { HttpServerRequest, HttpServerResponse } from "effect/http";
35import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder";
3636
3737import * as EnvironmentAuth from "./EnvironmentAuth.ts";
3838import * as SessionStore from "./SessionStore.ts";
apps/server/src/auth/replayMarkers.ts+1-1
......@@ -40,7 +40,7 @@ export const pruneExpiredReplayMarkers = Effect.fn("replayMarkers.pruneExpired")
4040 name.endsWith(".bin") && REPLAY_MARKER_PREFIXES.some((prefix) => name.startsWith(prefix)),
4141 );
4242 // `partition` visits every marker, so one locked file does not stop the sweep.
43 const [failures, removed] = yield* Effect.partition(markers, (name) => {
43 const [removed, failures] = yield* Effect.partition(markers, (name) => {
4444 const markerPath = path.join(secretsDir, name);
4545 return fileSystem.stat(markerPath).pipe(
4646 Effect.flatMap((info) =>
apps/server/src/auth/utils.ts+5-5
......@@ -3,9 +3,9 @@ import type {
33 AuthClientMetadataDeviceType,
44 AuthClientPresentationMetadata,
55} from "@t3tools/contracts";
6import type * as HttpServerRequest from "effect/unstable/http/HttpServerRequest";
6import type * as HttpServerRequest from "effect/http/HttpServerRequest";
77import * as NodeCrypto from "node:crypto";
8import * as Encoding from "effect/Encoding";
8import * as Base64Url from "effect/encoding/Base64Url";
99import * as Result from "effect/Result";
1010
1111const SESSION_COOKIE_NAME = "t3_session";
......@@ -81,12 +81,12 @@ export function isRemoteReachableHost(host: string | undefined): boolean {
8181
8282export function base64UrlEncode(input: string | Uint8Array): string {
8383 return typeof input === "string"
84 ? Encoding.encodeBase64Url(new TextEncoder().encode(input))
85 : Encoding.encodeBase64Url(input);
84 ? Base64Url.encode(new TextEncoder().encode(input))
85 : Base64Url.encode(input);
8686}
8787
8888export function base64UrlDecodeUtf8(input: string): string {
89 return Result.getOrThrow(Encoding.decodeBase64UrlString(input));
89 return Result.getOrThrow(Base64Url.decodeString(input));
9090}
9191
9292export function signPayload(payload: string, secret: Uint8Array): string {
apps/server/src/binCli.ts+2-2
......@@ -2,8 +2,8 @@ import * as NodeRuntime from "@effect/platform-node/NodeRuntime";
22import * as NodeServices from "@effect/platform-node/NodeServices";
33import * as Effect from "effect/Effect";
44import * as Layer from "effect/Layer";
5import { Argument, Command } from "effect/unstable/cli";
6import * as CliError from "effect/unstable/cli/CliError";
5import { Argument, Command } from "effect/cli";
6import * as CliError from "effect/cli/CliError";
77
88import * as NetService from "@t3tools/shared/Net";
99import packageJson from "../package.json" with { type: "json" };
apps/server/src/checkpointing/Utils.ts+2-2
......@@ -1,11 +1,11 @@
1import * as Encoding from "effect/Encoding";
1import * as Base64Url from "effect/encoding/Base64Url";
22import { CheckpointRef, ProjectId, type ThreadId } from "@t3tools/contracts";
33
44const CHECKPOINT_REFS_PREFIX = "refs/t3/checkpoints";
55
66export function checkpointRefForThreadTurn(threadId: ThreadId, turnCount: number): CheckpointRef {
77 return CheckpointRef.make(
8 `${CHECKPOINT_REFS_PREFIX}/${Encoding.encodeBase64Url(threadId)}/turn/${turnCount}`,
8 `${CHECKPOINT_REFS_PREFIX}/${Base64Url.encode(threadId)}/turn/${turnCount}`,
99 );
1010}
1111
apps/server/src/cli/acpMcpBridge.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import { Argument, Command } from "effect/unstable/cli";
2import { Argument, Command } from "effect/cli";
33
44import { runAcpMcpCliFastPath } from "../mcp/AcpMcpStdioBridge.ts";
55
apps/server/src/cli/app.test.ts+1-1
......@@ -18,7 +18,7 @@ import * as ConfigProvider from "effect/ConfigProvider";
1818import * as Effect from "effect/Effect";
1919import * as Layer from "effect/Layer";
2020import * as Schema from "effect/Schema";
21import { Command } from "effect/unstable/cli";
21import { Command } from "effect/cli";
2222import { afterEach, describe, expect, vi } from "vite-plus/test";
2323
2424import { makeCli } from "../binCli.ts";
apps/server/src/cli/app.ts+1-1
......@@ -22,7 +22,7 @@ import * as Effect from "effect/Effect";
2222import * as Option from "effect/Option";
2323import * as Path from "effect/Path";
2424import * as Schema from "effect/Schema";
25import { Argument, Command } from "effect/unstable/cli";
25import { Argument, Command } from "effect/cli";
2626
2727import { expandHomePath, resolveBaseDir } from "../os-jank.ts";
2828import { baseDirFlag } from "./config.ts";
apps/server/src/cli/auth.ts+1-1
......@@ -8,7 +8,7 @@ import * as Effect from "effect/Effect";
88import * as Layer from "effect/Layer";
99import * as Option from "effect/Option";
1010import * as References from "effect/References";
11import { Argument, Command, Flag, GlobalFlag } from "effect/unstable/cli";
11import { Argument, Command, Flag, GlobalFlag } from "effect/cli";
1212
1313import * as EnvironmentAuth from "../auth/EnvironmentAuth.ts";
1414
apps/server/src/cli/claudeHistory.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import { Argument, Command } from "effect/unstable/cli";
2import { Argument, Command } from "effect/cli";
33
44import { runClaudeHistoryWorker } from "../claudeHistoryWorker.ts";
55
apps/server/src/cli/config.ts+2-2
......@@ -18,8 +18,8 @@ import * as Redacted from "effect/Redacted";
1818import * as Schema from "effect/Schema";
1919import * as SchemaIssue from "effect/SchemaIssue";
2020import * as SchemaTransformation from "effect/SchemaTransformation";
21import { Argument, Flag } from "effect/unstable/cli";
22import * as CliError from "effect/unstable/cli/CliError";
21import { Argument, Flag } from "effect/cli";
22import * as CliError from "effect/cli/CliError";
2323
2424import { readBootstrapEnvelope } from "../bootstrap.ts";
2525import * as ServerConfig from "../config.ts";
apps/server/src/cli/connect.ts+3-8
......@@ -20,14 +20,9 @@ import * as Layer from "effect/Layer";
2020import * as Option from "effect/Option";
2121import * as References from "effect/References";
2222import * as Schema from "effect/Schema";
23import { Command, Flag, GlobalFlag, Prompt } from "effect/unstable/cli";
24import {
25 FetchHttpClient,
26 HttpClient,
27 HttpClientRequest,
28 HttpClientResponse,
29} from "effect/unstable/http";
30import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient";
23import { Command, Flag, GlobalFlag, Prompt } from "effect/cli";
24import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
25import * as HttpApiClient from "effect/http-api/HttpApiClient";
3126
3227import * as EnvironmentAuth from "../auth/EnvironmentAuth.ts";
3328import * as ServerSecretStore from "../auth/ServerSecretStore.ts";
apps/server/src/cli/pair.test.ts+1-1
......@@ -11,7 +11,7 @@ import { assert, describe, expect, it } from "@effect/vitest";
1111import * as Effect from "effect/Effect";
1212import * as Layer from "effect/Layer";
1313import * as TestConsole from "effect/testing/TestConsole";
14import { Command } from "effect/unstable/cli";
14import { Command } from "effect/cli";
1515
1616import { cli } from "../binCli.ts";
1717import {
apps/server/src/cli/pair.ts+2-7
......@@ -32,13 +32,8 @@ import * as Layer from "effect/Layer";
3232import * as Option from "effect/Option";
3333import * as References from "effect/References";
3434import * as Schema from "effect/Schema";
35import { Command, Flag, GlobalFlag } from "effect/unstable/cli";
36import {
37 FetchHttpClient,
38 HttpClient,
39 HttpClientRequest,
40 HttpClientResponse,
41} from "effect/unstable/http";
35import { Command, Flag, GlobalFlag } from "effect/cli";
36import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
4237
4338import * as EnvironmentAuth from "../auth/EnvironmentAuth.ts";
4439import * as ServerConfig from "../config.ts";
apps/server/src/cli/project.test.ts+1-1
......@@ -23,7 +23,7 @@ import * as FileSystem from "effect/FileSystem";
2323import * as Layer from "effect/Layer";
2424import * as References from "effect/References";
2525import * as Stream from "effect/Stream";
26import { Command } from "effect/unstable/cli";
26import { Command } from "effect/cli";
2727
2828import { cli } from "../binCli.ts";
2929import * as ServerConfig from "../config.ts";
apps/server/src/cli/project.ts+3-3
......@@ -17,9 +17,9 @@ import * as Option from "effect/Option";
1717import * as Path from "effect/Path";
1818import * as References from "effect/References";
1919import * as Schema from "effect/Schema";
20import { Argument, Command, Flag, GlobalFlag } from "effect/unstable/cli";
21import { FetchHttpClient, HttpClient, HttpClientError } from "effect/unstable/http";
22import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient";
20import { Argument, Command, Flag, GlobalFlag } from "effect/cli";
21import { FetchHttpClient, HttpClient, HttpClientError } from "effect/http";
22import * as HttpApiClient from "effect/http-api/HttpApiClient";
2323
2424import * as EnvironmentAuth from "../auth/EnvironmentAuth.ts";
2525
apps/server/src/cli/server.ts+2-2
......@@ -3,8 +3,8 @@ import * as Effect from "effect/Effect";
33import * as FileSystem from "effect/FileSystem";
44import * as Option from "effect/Option";
55import * as Schema from "effect/Schema";
6import { Command, GlobalFlag } from "effect/unstable/cli";
7import * as CliError from "effect/unstable/cli/CliError";
6import { Command, GlobalFlag } from "effect/cli";
7import * as CliError from "effect/cli/CliError";
88
99import * as ServerConfig from "../config.ts";
1010import { runServer } from "../server.ts";
apps/server/src/cli/service.test.ts+1-1
......@@ -7,7 +7,7 @@ import * as Effect from "effect/Effect";
77import * as FileSystem from "effect/FileSystem";
88import * as Layer from "effect/Layer";
99import * as Terminal from "effect/Terminal";
10import { Command } from "effect/unstable/cli";
10import { Command } from "effect/cli";
1111import { afterEach, vi } from "vite-plus/test";
1212
1313import packageJson from "../../package.json" with { type: "json" };
apps/server/src/cli/service.ts+2-2
......@@ -3,8 +3,8 @@ import * as Console from "effect/Console";
33import * as Effect from "effect/Effect";
44import * as Layer from "effect/Layer";
55import * as Terminal from "effect/Terminal";
6import { Command, Flag, GlobalFlag, Prompt } from "effect/unstable/cli";
7import { FetchHttpClient } from "effect/unstable/http";
6import { Command, Flag, GlobalFlag, Prompt } from "effect/cli";
7import { FetchHttpClient } from "effect/http";
88
99import packageJson from "../../package.json" with { type: "json" };
1010import * as BootService from "../cloud/bootService.ts";
apps/server/src/cli/serviceLauncher.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import { Command } from "effect/unstable/cli";
2import { Command } from "effect/cli";
33
44import { main as runServiceLauncher } from "../serviceLauncher.ts";
55
apps/server/src/cli/servicePreflight.ts+1-1
......@@ -1,6 +1,6 @@
11import * as Console from "effect/Console";
22import * as Effect from "effect/Effect";
3import { Command, Flag } from "effect/unstable/cli";
3import { Command, Flag } from "effect/cli";
44
55import { runServicePreflight } from "../cloud/servicePreflight.ts";
66
apps/server/src/cli/sshHelper.ts+1-1
......@@ -8,7 +8,7 @@ import * as NodeHttp from "node:http";
88import * as NodeNet from "node:net";
99
1010import * as Effect from "effect/Effect";
11import { Argument, Command } from "effect/unstable/cli";
11import { Argument, Command } from "effect/cli";
1212
1313/**
1414 * Small helpers the SSH launch script needs on the remote host. The script
apps/server/src/cli/theme.test.ts+1-1
......@@ -10,7 +10,7 @@ import { assert, describe, it } from "@effect/vitest";
1010import * as Effect from "effect/Effect";
1111import * as Layer from "effect/Layer";
1212import * as TestConsole from "effect/testing/TestConsole";
13import { Command } from "effect/unstable/cli";
13import { Command } from "effect/cli";
1414
1515import { cli } from "../binCli.ts";
1616import { symlinksSupported } from "@t3tools/shared/testing/symlinks";
apps/server/src/cli/theme.ts+1-1
......@@ -33,7 +33,7 @@ import * as FileSystem from "effect/FileSystem";
3333import * as Option from "effect/Option";
3434import * as Path from "effect/Path";
3535import * as Schema from "effect/Schema";
36import { Argument, Command, Flag } from "effect/unstable/cli";
36import { Argument, Command, Flag } from "effect/cli";
3737
3838import { writeFileStringAtomically } from "../atomicWrite.ts";
3939import * as ServerConfig from "../config.ts";
apps/server/src/cli/trace.ts+1-1
......@@ -13,7 +13,7 @@ import * as Effect from "effect/Effect";
1313import * as FileSystem from "effect/FileSystem";
1414import * as Option from "effect/Option";
1515import * as Schema from "effect/Schema";
16import { Command, Flag } from "effect/unstable/cli";
16import { Command, Flag } from "effect/cli";
1717
1818import * as ServerConfig from "../config.ts";
1919import { streamTraceFileLines, toRotatedTracePaths } from "../diagnostics/TraceDiagnostics.ts";
apps/server/src/cli/triage.ts+1-1
......@@ -24,7 +24,7 @@ import * as FileSystem from "effect/FileSystem";
2424import * as Option from "effect/Option";
2525import * as Path from "effect/Path";
2626import * as Schema from "effect/Schema";
27import { Command, Flag } from "effect/unstable/cli";
27import { Command, Flag } from "effect/cli";
2828
2929import packageJson from "../../package.json" with { type: "json" };
3030import * as BootService from "../cloud/bootService.ts";
apps/server/src/cli/uninstall.ts+1-1
......@@ -15,7 +15,7 @@ import * as FileSystem from "effect/FileSystem";
1515import * as Option from "effect/Option";
1616import * as Path from "effect/Path";
1717import * as Schema from "effect/Schema";
18import { Command, Flag, GlobalFlag, Prompt } from "effect/unstable/cli";
18import { Command, Flag, GlobalFlag, Prompt } from "effect/cli";
1919
2020import * as BootService from "../cloud/bootService.ts";
2121import { pinnedRuntimeVersionsDir } from "../cloud/pinnedRuntime.ts";
apps/server/src/cli/update.ts+2-7
......@@ -22,13 +22,8 @@ import * as Layer from "effect/Layer";
2222import * as Option from "effect/Option";
2323import * as Path from "effect/Path";
2424import * as Schema from "effect/Schema";
25import { Argument, Command, Flag, GlobalFlag, Prompt } from "effect/unstable/cli";
26import {
27 FetchHttpClient,
28 HttpClient,
29 HttpClientRequest,
30 HttpClientResponse,
31} from "effect/unstable/http";
25import { Argument, Command, Flag, GlobalFlag, Prompt } from "effect/cli";
26import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
3227
3328import packageJson from "../../package.json" with { type: "json" };
3429import * as BootService from "../cloud/bootService.ts";
apps/server/src/cloud/CliTokenManager.test.ts+5-7
......@@ -4,7 +4,7 @@ import * as ConfigProvider from "effect/ConfigProvider";
44import * as Deferred from "effect/Deferred";
55import * as Duration from "effect/Duration";
66import * as Effect from "effect/Effect";
7import * as Encoding from "effect/Encoding";
7import * as Base64Url from "effect/encoding/Base64Url";
88import * as Fiber from "effect/Fiber";
99import * as Layer from "effect/Layer";
1010import * as Option from "effect/Option";
......@@ -12,8 +12,8 @@ import * as Queue from "effect/Queue";
1212import * as Schema from "effect/Schema";
1313import * as Terminal from "effect/Terminal";
1414import * as TestClock from "effect/testing/TestClock";
15import * as HttpClient from "effect/unstable/http/HttpClient";
16import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
15import * as HttpClient from "effect/http/HttpClient";
16import * as HttpClientResponse from "effect/http/HttpClientResponse";
1717
1818import * as CliTokenManager from "./CliTokenManager.ts";
1919
......@@ -36,10 +36,8 @@ const TestIdTokenPayloadJson = Schema.fromJsonString(Schema.Struct({ email: Sche
3636const encodeTestIdTokenHeader = Schema.encodeSync(TestIdTokenHeaderJson);
3737const encodeTestIdTokenPayload = Schema.encodeSync(TestIdTokenPayloadJson);
3838const idTokenWithEmail = (() => {
39 const header = Encoding.encodeBase64Url(encodeTestIdTokenHeader({ alg: "none" }));
40 const payload = Encoding.encodeBase64Url(
41 encodeTestIdTokenPayload({ email: "theo@example.test" }),
42 );
39 const header = Base64Url.encode(encodeTestIdTokenHeader({ alg: "none" }));
40 const payload = Base64Url.encode(encodeTestIdTokenPayload({ email: "theo@example.test" }));
4341 return `${header}.${payload}.`;
4442})();
4543
apps/server/src/cloud/CliTokenManager.ts+12-12
......@@ -10,20 +10,20 @@ import * as Crypto from "effect/Crypto";
1010import * as Deferred from "effect/Deferred";
1111import * as Duration from "effect/Duration";
1212import * as Effect from "effect/Effect";
13import * as Encoding from "effect/Encoding";
13import * as Base64Url from "effect/encoding/Base64Url";
1414import * as Layer from "effect/Layer";
1515import * as Option from "effect/Option";
1616import * as Queue from "effect/Queue";
1717import * as Schema from "effect/Schema";
1818import * as Semaphore from "effect/Semaphore";
1919import * as Terminal from "effect/Terminal";
20import * as HttpClient from "effect/unstable/http/HttpClient";
21import * as HttpClientError from "effect/unstable/http/HttpClientError";
22import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
23import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
24import * as HttpRouter from "effect/unstable/http/HttpRouter";
25import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest";
26import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
20import * as HttpClient from "effect/http/HttpClient";
21import * as HttpClientError from "effect/http/HttpClientError";
22import * as HttpClientRequest from "effect/http/HttpClientRequest";
23import * as HttpClientResponse from "effect/http/HttpClientResponse";
24import * as HttpRouter from "effect/http/HttpRouter";
25import * as HttpServerRequest from "effect/http/HttpServerRequest";
26import * as HttpServerResponse from "effect/http/HttpServerResponse";
2727
2828import { buildConnectAuthorizeRequestUrl } from "@t3tools/shared/connectAuth";
2929
......@@ -170,7 +170,7 @@ function idTokenIdentity(idToken: string | undefined): string | null {
170170 if (!idToken) return null;
171171 const payload = idToken.split(".")[1];
172172 if (!payload) return null;
173 const decoded = Encoding.decodeBase64UrlString(payload);
173 const decoded = Base64Url.decodeString(payload);
174174 if (decoded._tag !== "Success") return null;
175175 const claims = decodeOidcIdentityClaimsJson(decoded.success);
176176 if (Option.isNone(claims)) return null;
......@@ -299,11 +299,11 @@ const exchangeToken = Effect.fn("cloud.cli_token.exchange")(function* (
299299
300300const makePkceRequest = Effect.gen(function* () {
301301 const crypto = yield* Crypto.Crypto;
302 const verifier = Encoding.encodeBase64Url(yield* crypto.randomBytes(32));
303 const challenge = Encoding.encodeBase64Url(
302 const verifier = Base64Url.encode(yield* crypto.randomBytes(32));
303 const challenge = Base64Url.encode(
304304 yield* crypto.digest("SHA-256", new TextEncoder().encode(verifier)),
305305 );
306 const state = Encoding.encodeBase64Url(yield* crypto.randomBytes(16));
306 const state = Base64Url.encode(yield* crypto.randomBytes(16));
307307 return { verifier, challenge, state };
308308});
309309
apps/server/src/cloud/ManagedEndpointRuntime.test.ts+1-1
......@@ -11,7 +11,7 @@ import * as Queue from "effect/Queue";
1111import * as Sink from "effect/Sink";
1212import * as Stream from "effect/Stream";
1313import * as TestClock from "effect/testing/TestClock";
14import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
14import { ChildProcess, ChildProcessSpawner } from "effect/process";
1515import type { RelayManagedEndpointRuntimeConfig } from "@t3tools/contracts/relay";
1616import * as RelayClient from "@t3tools/shared/relayClient";
1717
apps/server/src/cloud/ManagedEndpointRuntime.ts+2-2
......@@ -12,8 +12,8 @@ import * as Result from "effect/Result";
1212import * as Semaphore from "effect/Semaphore";
1313import * as Scope from "effect/Scope";
1414import * as Stream from "effect/Stream";
15import * as ChildProcess from "effect/unstable/process/ChildProcess";
16import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
15import * as ChildProcess from "effect/process/ChildProcess";
16import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1717
1818export type CloudManagedEndpointRuntimeStatus =
1919 | {
apps/server/src/cloud/bootService.test.ts+2-2
......@@ -11,8 +11,8 @@ import * as Effect from "effect/Effect";
1111import * as FileSystem from "effect/FileSystem";
1212import * as Layer from "effect/Layer";
1313import * as Path from "effect/Path";
14import { HttpClient } from "effect/unstable/http";
15import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
14import { HttpClient } from "effect/http";
15import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1616
1717import * as ProcessRunner from "../processRunner.ts";
1818import * as BootService from "./bootService.ts";
apps/server/src/cloud/bootService.ts+1-1
......@@ -13,7 +13,7 @@ import * as FileSystem from "effect/FileSystem";
1313import * as Layer from "effect/Layer";
1414import * as Option from "effect/Option";
1515import * as Path from "effect/Path";
16import { HttpClient } from "effect/unstable/http";
16import { HttpClient } from "effect/http";
1717import * as Schema from "effect/Schema";
1818
1919import { CLI_RELEASE_BASE_URL_ENV } from "@t3tools/shared/cliRelease";
apps/server/src/cloud/http.test.ts+1-1
......@@ -18,7 +18,7 @@ import {
1818 HttpClientResponse,
1919 HttpServerRequest,
2020 type HttpClientRequest,
21} from "effect/unstable/http";
21} from "effect/http";
2222
2323import { DESKTOP_UPDATE_RESTART_MARKER_FILE, EnvironmentId } from "@t3tools/contracts";
2424import { RelayClientTracer } from "@t3tools/shared/relayTracing";
apps/server/src/cloud/http.ts+5-5
......@@ -58,11 +58,11 @@ import * as Option from "effect/Option";
5858import * as Path from "effect/Path";
5959import * as Schema from "effect/Schema";
6060import * as Schedule from "effect/Schedule";
61import * as HttpEffect from "effect/unstable/http/HttpEffect";
62import { HttpServerRequest, HttpServerResponse } from "effect/unstable/http";
63import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
64import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder";
65import * as HttpServer from "effect/unstable/http/HttpServer";
61import * as HttpEffect from "effect/http/HttpEffect";
62import { HttpServerRequest, HttpServerResponse } from "effect/http";
63import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
64import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder";
65import * as HttpServer from "effect/http/HttpServer";
6666
6767import * as EnvironmentAuth from "../auth/EnvironmentAuth.ts";
6868import * as ServerSecretStore from "../auth/ServerSecretStore.ts";
apps/server/src/cloud/pinnedRuntime.test.ts+2-2
......@@ -5,8 +5,8 @@ import * as Effect from "effect/Effect";
55import * as FileSystem from "effect/FileSystem";
66import * as Fiber from "effect/Fiber";
77import * as Path from "effect/Path";
8import { HttpClient, HttpClientResponse } from "effect/unstable/http";
9import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
8import { HttpClient, HttpClientResponse } from "effect/http";
9import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1010
1111import * as ProcessRunner from "../processRunner.ts";
1212import {
apps/server/src/cloud/pinnedRuntime.ts+3-3
......@@ -1,13 +1,13 @@
11import * as Duration from "effect/Duration";
22import * as Effect from "effect/Effect";
3import * as Encoding from "effect/Encoding";
3import * as Hex from "effect/encoding/Hex";
44import * as FileSystem from "effect/FileSystem";
55import * as Path from "effect/Path";
66import * as Schema from "effect/Schema";
77import * as Option from "effect/Option";
88import * as Stream from "effect/Stream";
99import * as Semaphore from "effect/Semaphore";
10import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
10import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
1111
1212import {
1313 CLI_RELEASE_CHECKSUMS_FILE,
......@@ -224,7 +224,7 @@ const installFromArchive = Effect.fn("cloud.pinned_runtime.install_archive")(fun
224224 catch: (cause) =>
225225 new PinnedRuntimeInstallError({ step: "verifying the t3 release archive", cause }),
226226 });
227 if (Encoding.encodeHex(new Uint8Array(digest)) !== expected) {
227 if (Hex.encode(new Uint8Array(digest)) !== expected) {
228228 return yield* new PinnedRuntimeInstallError({
229229 step: "verifying the t3 release archive checksum",
230230 });
apps/server/src/cloud/relayResponse.test.ts+2-2
......@@ -1,7 +1,7 @@
11import { expect, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
3import { HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
4import * as HttpClientError from "effect/unstable/http/HttpClientError";
3import { HttpClientRequest, HttpClientResponse } from "effect/http";
4import * as HttpClientError from "effect/http/HttpClientError";
55
66import { filterRelayResponse, relayRequestError, shouldRetryCloudLink } from "./relayResponse.ts";
77
apps/server/src/cloud/relayResponse.ts+2-2
......@@ -9,8 +9,8 @@ import { RelayProtectedError } from "@t3tools/contracts/relay";
99import * as Effect from "effect/Effect";
1010import * as Option from "effect/Option";
1111import * as Schema from "effect/Schema";
12import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
13import { isHttpClientError } from "effect/unstable/http/HttpClientError";
12import * as HttpClientResponse from "effect/http/HttpClientResponse";
13import { isHttpClientError } from "effect/http/HttpClientError";
1414
1515const isRelayResponseError = Schema.is(
1616 Schema.Union([
apps/server/src/cloud/selfUpdate.test.ts+2-2
......@@ -8,8 +8,8 @@ import * as Effect from "effect/Effect";
88import * as FileSystem from "effect/FileSystem";
99import * as Fiber from "effect/Fiber";
1010import * as Path from "effect/Path";
11import { HttpClient, HttpClientResponse } from "effect/unstable/http";
12import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
11import { HttpClient, HttpClientResponse } from "effect/http";
12import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1313
1414import * as ServerConfig from "../config.ts";
1515import * as DesktopAppUpdate from "../desktopUpdate/DesktopAppUpdate.ts";
apps/server/src/cloud/selfUpdate.ts+1-1
......@@ -18,7 +18,7 @@ import * as Ref from "effect/Ref";
1818import * as FileSystem from "effect/FileSystem";
1919import * as Layer from "effect/Layer";
2020import * as Path from "effect/Path";
21import { HttpClient } from "effect/unstable/http";
21import { HttpClient } from "effect/http";
2222
2323import { CLI_RELEASE_BASE_URL_ENV } from "@t3tools/shared/cliRelease";
2424
apps/server/src/cloud/traceRelayRequest.ts+1-1
......@@ -1,7 +1,7 @@
11import { withRelayClientTracing } from "@t3tools/shared/relayTracing";
22import * as Effect from "effect/Effect";
33import * as Option from "effect/Option";
4import { HttpServerRequest, HttpTraceContext } from "effect/unstable/http";
4import { HttpServerRequest, HttpTraceContext } from "effect/http";
55
66export const traceRelayRequest = <A, E, R>(
77 effect: Effect.Effect<A, E, R>,
apps/server/src/device/DeviceHubProxy.test.ts+1-1
......@@ -8,7 +8,7 @@ import {
88} from "@t3tools/contracts";
99import * as Effect from "effect/Effect";
1010import * as Layer from "effect/Layer";
11import { HttpClient, HttpClientResponse, HttpRouter } from "effect/unstable/http";
11import { HttpClient, HttpClientResponse, HttpRouter } from "effect/http";
1212import * as EnvironmentAuth from "../auth/EnvironmentAuth.ts";
1313import * as DeviceService from "./DeviceService.ts";
1414import { deviceHubProxyRouteLayer } from "./DeviceHubProxy.ts";
apps/server/src/device/DeviceHubProxy.ts+2-2
......@@ -24,8 +24,8 @@ import {
2424 HttpRouter,
2525 HttpServerRequest,
2626 HttpServerResponse,
27} from "effect/unstable/http";
28import * as Socket from "effect/unstable/socket/Socket";
27} from "effect/http";
28import * as Socket from "effect/socket/Socket";
2929import * as NodeSocket from "@effect/platform-node/NodeSocket";
3030
3131import * as EnvironmentAuth from "../auth/EnvironmentAuth.ts";
apps/server/src/device/DeviceMultiHost.test.ts+1-1
......@@ -3,7 +3,7 @@ import { ThreadId } from "@t3tools/contracts";
33import * as Deferred from "effect/Deferred";
44import * as Fiber from "effect/Fiber";
55import * as Effect from "effect/Effect";
6import { HttpClient, HttpClientResponse } from "effect/unstable/http";
6import { HttpClient, HttpClientResponse } from "effect/http";
77import * as ServerSettings from "../serverSettings.ts";
88import * as DeviceHost from "./DeviceHost.ts";
99import * as DeviceService from "./DeviceService.ts";
apps/server/src/device/DeviceService.test.ts+1-1
......@@ -15,7 +15,7 @@ import * as PubSub from "effect/PubSub";
1515import * as Ref from "effect/Ref";
1616import * as Schema from "effect/Schema";
1717import * as Stream from "effect/Stream";
18import { HttpClient, HttpClientResponse } from "effect/unstable/http";
18import { HttpClient, HttpClientResponse } from "effect/http";
1919import * as ServerSettings from "../serverSettings.ts";
2020import * as DeviceHost from "./DeviceHost.ts";
2121import { NodeRuntimeUnavailableError } from "@t3tools/shared/nodeRuntime";
apps/server/src/device/DeviceService.ts+1-1
......@@ -56,7 +56,7 @@ import * as Scope from "effect/Scope";
5656import * as Semaphore from "effect/Semaphore";
5757import * as Stream from "effect/Stream";
5858import * as SynchronizedRef from "effect/SynchronizedRef";
59import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
59import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
6060
6161import * as ServerSettings from "../serverSettings.ts";
6262import { isLocalSshDeviceHost, remoteSshDeviceHosts } from "./localSshDeviceHost.ts";
apps/server/src/device/DeviceToolchain.test.ts+1-1
......@@ -4,7 +4,7 @@ import * as NodeServices from "@effect/platform-node/NodeServices";
44import * as Effect from "effect/Effect";
55import * as FileSystem from "effect/FileSystem";
66import * as Path from "effect/Path";
7import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
7import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
88
99import * as ProcessRunner from "../processRunner.ts";
1010import {
apps/server/src/device/LocalDeviceHost.test.ts+2-2
......@@ -14,8 +14,8 @@ import * as FileSystem from "effect/FileSystem";
1414
1515import * as LocalDeviceHost from "./LocalDeviceHost.ts";
1616import * as NodeServices from "@effect/platform-node/NodeServices";
17import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
18import { HttpClient } from "effect/unstable/http";
17import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
18import { HttpClient } from "effect/http";
1919import * as NetService from "@t3tools/shared/Net";
2020import * as ServerConfig from "../config.ts";
2121import * as ProcessRunner from "../processRunner.ts";
apps/server/src/device/LocalDeviceHost.ts+3-3
......@@ -43,9 +43,9 @@ import * as Schema from "effect/Schema";
4343import * as Scope from "effect/Scope";
4444import * as Semaphore from "effect/Semaphore";
4545import * as Stream from "effect/Stream";
46import { HttpClient } from "effect/unstable/http";
47import * as ChildProcess from "effect/unstable/process/ChildProcess";
48import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
46import { HttpClient } from "effect/http";
47import * as ChildProcess from "effect/process/ChildProcess";
48import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
4949
5050import * as ServerConfig from "../config.ts";
5151import * as ProcessRunner from "../processRunner.ts";
apps/server/src/device/SshDeviceHost.test.ts+3-3
......@@ -8,9 +8,9 @@ import * as Layer from "effect/Layer";
88import * as PlatformError from "effect/PlatformError";
99import * as Sink from "effect/Sink";
1010import * as Stream from "effect/Stream";
11import * as HttpClient from "effect/unstable/http/HttpClient";
12import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
13import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
11import * as HttpClient from "effect/http/HttpClient";
12import * as HttpClientResponse from "effect/http/HttpClientResponse";
13import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1414import * as ServerConfig from "../config.ts";
1515import * as DeviceHost from "./DeviceHost.ts";
1616import * as SshDeviceHost from "./SshDeviceHost.ts";
apps/server/src/device/SshDeviceHost.ts+3-3
......@@ -17,9 +17,9 @@ import * as Scope from "effect/Scope";
1717import * as Semaphore from "effect/Semaphore";
1818import * as Schema from "effect/Schema";
1919import * as Stream from "effect/Stream";
20import * as HttpClient from "effect/unstable/http/HttpClient";
21import * as ChildProcess from "effect/unstable/process/ChildProcess";
22import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
20import * as HttpClient from "effect/http/HttpClient";
21import * as ChildProcess from "effect/process/ChildProcess";
22import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
2323import * as ServerConfig from "../config.ts";
2424import * as DeviceHost from "./DeviceHost.ts";
2525import { quoteRemoteArg, remoteDeviceEnvironment, remoteDeviceScript } from "./sshDeviceScript.ts";
apps/server/src/device/deviceToolMaintenance.test.ts+1-1
......@@ -1,7 +1,7 @@
11import * as Effect from "effect/Effect";
22import * as NodePathLayer from "@effect/platform-node/NodePath";
33import * as ProcessRunner from "../processRunner.ts";
4import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
4import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
55// @effect-diagnostics nodeBuiltinImport:off - tests the same standalone script used by local and SSH hosts.
66import { describe, expect, it } from "@effect/vitest";
77import * as NodeFSP from "node:fs/promises";
apps/server/src/device/localSshDeviceHost.test.ts+1-1
......@@ -3,7 +3,7 @@ import * as NodeServices from "@effect/platform-node/NodeServices";
33import * as Effect from "effect/Effect";
44import * as Sink from "effect/Sink";
55import * as Stream from "effect/Stream";
6import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
6import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
77import {
88 isLocalSshDeviceHost,
99 LocalDeviceHostAddresses,
apps/server/src/environment/DirectEndpoints.test.ts+3-3
......@@ -5,9 +5,9 @@ import * as Effect from "effect/Effect";
55import * as Layer from "effect/Layer";
66import * as Sink from "effect/Sink";
77import * as Stream from "effect/Stream";
8import * as HttpClient from "effect/unstable/http/HttpClient";
9import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
10import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
8import * as HttpClient from "effect/http/HttpClient";
9import * as HttpClientResponse from "effect/http/HttpClientResponse";
10import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1111import { describe, expect, it } from "vite-plus/test";
1212
1313import * as ServerConfig from "../config.ts";
apps/server/src/environment/DirectEndpoints.ts+2-2
......@@ -19,8 +19,8 @@ import * as Duration from "effect/Duration";
1919import * as Effect from "effect/Effect";
2020import * as Layer from "effect/Layer";
2121import * as Option from "effect/Option";
22import { HttpClient } from "effect/unstable/http";
23import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
22import { HttpClient } from "effect/http";
23import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
2424import * as NodeNet from "node:net";
2525import * as NodeOS from "node:os";
2626
apps/server/src/environment/RemoteOpenTargets.test.ts+1-1
......@@ -5,7 +5,7 @@ import * as Effect from "effect/Effect";
55import * as Layer from "effect/Layer";
66import * as Sink from "effect/Sink";
77import * as Stream from "effect/Stream";
8import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
8import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
99import { describe, expect } from "vite-plus/test";
1010
1111import * as RemoteOpenTargets from "./RemoteOpenTargets.ts";
apps/server/src/environment/RemoteOpenTargets.ts+1-1
......@@ -15,7 +15,7 @@ import { readTailscaleStatus } from "@t3tools/tailscale";
1515import * as Context from "effect/Context";
1616import * as Effect from "effect/Effect";
1717import * as Layer from "effect/Layer";
18import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
18import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1919
2020const SSH_PORT = 22;
2121
apps/server/src/environment/ServerEnvironmentLabel.test.ts+1-1
......@@ -6,7 +6,7 @@ import * as Logger from "effect/Logger";
66import * as PlatformError from "effect/PlatformError";
77import * as References from "effect/References";
88import * as Schema from "effect/Schema";
9import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
9import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1010import { HostProcessHostname, HostProcessPlatform } from "@t3tools/shared/hostProcess";
1111import { vi } from "vite-plus/test";
1212
apps/server/src/environment/ServerEnvironmentMachine.test.ts+1-1
......@@ -3,7 +3,7 @@ import * as Effect from "effect/Effect";
33import * as FileSystem from "effect/FileSystem";
44import * as Layer from "effect/Layer";
55import * as PlatformError from "effect/PlatformError";
6import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
6import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
77import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
88import { vi } from "vite-plus/test";
99
apps/server/src/git/GitManager.test.ts+1-1
......@@ -17,7 +17,7 @@ import * as Result from "effect/Result";
1717import * as Schema from "effect/Schema";
1818import * as Scope from "effect/Scope";
1919import { TestClock } from "effect/testing";
20import { ChildProcessSpawner } from "effect/unstable/process";
20import { ChildProcessSpawner } from "effect/process";
2121import { expect } from "vite-plus/test";
2222import type {
2323 GitActionProgressEvent,
apps/server/src/http.test.ts+47-10
......@@ -12,12 +12,8 @@ import * as FileSystem from "effect/FileSystem";
1212import * as Layer from "effect/Layer";
1313import * as Path from "effect/Path";
1414import * as Queue from "effect/Queue";
15import {
16 HttpClient,
17 HttpClientRequest,
18 HttpRouter,
19 HttpServerResponse,
20} from "effect/unstable/http";
15import * as Tracer from "effect/Tracer";
16import { HttpClient, HttpClientRequest, HttpRouter, HttpServerResponse } from "effect/http";
2117import { openMediaFile } from "./assets/MediaFile.ts";
2218
2319import { ORCHESTRATION_PROTOCOL_HEADER } from "@t3tools/contracts";
......@@ -33,8 +29,48 @@ import {
3329 isLoopbackHostname,
3430 resolveDevRedirectUrl,
3531 staticAndDevRouteLayer,
32 withUntracedRequests,
3633} from "./http.ts";
3734
35describe("untraced requests", () => {
36 it.effect("drops the HTTP server span for browser trace exports, query string included", () => {
37 const spanNames: Array<string> = [];
38 return Effect.gen(function* () {
39 const routes = Layer.effectDiscard(
40 Effect.gen(function* () {
41 const router = yield* HttpRouter.HttpRouter;
42 yield* router.add("POST", "/api/observability/v1/traces", HttpServerResponse.empty());
43 yield* router.add("GET", "/api/environment", HttpServerResponse.empty());
44 }),
45 );
46 const services = yield* Layer.build(
47 withUntracedRequests(HttpRouter.serve(routes, { disableListenLog: true })).pipe(
48 Layer.provideMerge(NodeHttpServer.layerTest),
49 ),
50 );
51 const client = Context.get(services, HttpClient.HttpClient);
52
53 yield* client.post("/api/observability/v1/traces");
54 yield* client.post("/api/observability/v1/traces?x=1");
55 expect(spanNames).toEqual([]);
56
57 yield* client.get("/api/environment");
58 expect(spanNames).toContain("http.server GET");
59 }).pipe(
60 Effect.scoped,
61 Effect.provideService(
62 Tracer.Tracer,
63 Tracer.make({
64 span: (options) => {
65 if (options.kind === "server") spanNames.push(options.name);
66 return new Tracer.NativeSpan(options);
67 },
68 }),
69 ),
70 );
71 });
72});
73
3874describe("browser API CORS", () => {
3975 it("accepts protocol negotiation with authenticated browser headers", async () => {
4076 const routeLayer = Layer.effectDiscard(
......@@ -86,15 +122,16 @@ const fileResponseLayer = Layer.mergeAll(NodeHttpPlatform.layer, NodeServices.la
86122const makeStaticRequest = Effect.fn("HttpTest.makeStaticRequest")(function* (staticDir: string) {
87123 const config = yield* ServerConfig.ServerConfig;
88124 const fileSystem = yield* FileSystem.FileSystem;
89 const path = yield* Path.Path;
90125 const appLayer = Layer.merge(staticAndDevRouteLayer, httpCompressionLayer).pipe(
91 Layer.provideMerge(ServerConfig.layer({ ...config, staticDir })),
92126 Layer.provideMerge(NodeHttpPlatform.layer),
93 Layer.provideMerge(Layer.succeed(FileSystem.FileSystem, fileSystem)),
94 Layer.provideMerge(Layer.succeed(Path.Path, path)),
95127 );
128 // HttpRouter.serve reuses services from the layers around it before the
129 // app's own, and NodeHttpServer.layerTest brings a real FileSystem, so the
130 // caller's FileSystem and static directory go between the two.
96131 const services = yield* Layer.build(
97132 HttpRouter.serve(appLayer, { disableListenLog: true }).pipe(
133 Layer.provideMerge(ServerConfig.layer({ ...config, staticDir })),
134 Layer.provideMerge(Layer.succeed(FileSystem.FileSystem, fileSystem)),
98135 Layer.provideMerge(NodeHttpServer.layerTest),
99136 ),
100137 );
apps/server/src/http.ts+11-9
......@@ -1,4 +1,4 @@
1import * as Mime from "effect/unstable/http/Mime";
1import * as Mime from "effect/http/Mime";
22import {
33 AuthOrchestrationOperateScope,
44 AuthOrchestrationReadScope,
......@@ -23,9 +23,9 @@ import {
2323 HttpServerResponse,
2424 HttpServerRequest,
2525 HttpServerRespondable,
26} from "effect/unstable/http";
27import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder";
28import { OtlpTracer, OtlpSerialization } from "effect/unstable/observability";
26} from "effect/http";
27import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder";
28import { OtlpTracer, OtlpSerialization } from "effect/observability";
2929
3030import * as ServerConfig from "./config.ts";
3131import { ASSET_ROUTE_PREFIX, resolveAsset } from "./assets/AssetAccess.ts";
......@@ -375,17 +375,19 @@ const UNTRACED_REQUEST_PATHS: ReadonlySet<string> = new Set([OTLP_TRACES_PROXY_P
375375
376376// Skips the HTTP server span for UNTRACED_REQUEST_PATHS. That span starts
377377// before routing, so a route handler cannot skip it. TracerDisabledWhen is one
378// predicate for the whole server and the last layer to provide it wins, so
379// makeRoutesLayer provides this one last. Add paths here instead of providing
380// TracerDisabledWhen again; server.test.ts fails if a later layer replaces it.
381// The query string is ignored, as in routing.
382export const untracedRequestsLayer = Layer.succeed(HttpMiddleware.TracerDisabledWhen)((request) => {
378// predicate for the whole server, and HttpRouter.serve builds its routes
379// privately, so it is provided to the served layer, never merged into the
380// routes. Add paths here instead of providing it again. The query string is
381// ignored, as in routing.
382const untracedRequestsLayer = Layer.succeed(HttpMiddleware.TracerDisabledWhen)((request) => {
383383 const queryIndex = request.url.indexOf("?");
384384 return UNTRACED_REQUEST_PATHS.has(
385385 queryIndex === -1 ? request.url : request.url.slice(0, queryIndex),
386386 );
387387});
388388
389export const withUntracedRequests = Layer.provide(untracedRequestsLayer);
390
389391export const assetRouteLayer = HttpRouter.add(
390392 "GET",
391393 `${ASSET_ROUTE_PREFIX}/*`,
apps/server/src/imageMime.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Option from "effect/Option";
2import * as Mime from "effect/unstable/http/Mime";
2import * as Mime from "effect/http/Mime";
33
44const IMAGE_EXTENSION_BY_MIME_TYPE: Record<string, string> = {
55 "image/avif": ".avif",
apps/server/src/mcp/McpDeviceToolkit.test.ts+1-1
......@@ -8,7 +8,7 @@ import {
88} from "@t3tools/contracts";
99import * as Effect from "effect/Effect";
1010import * as Layer from "effect/Layer";
11import { McpSchema, McpServer } from "effect/unstable/ai";
11import { McpSchema, McpServer } from "effect/ai";
1212
1313import * as ServerConfig from "../config.ts";
1414import * as DeviceService from "../device/DeviceService.ts";
apps/server/src/mcp/McpHttpServer.test.ts+2-2
......@@ -11,8 +11,8 @@ import * as Layer from "effect/Layer";
1111import * as Path from "effect/Path";
1212import * as Schema from "effect/Schema";
1313import * as Stream from "effect/Stream";
14import { McpProtocol, McpSchema, McpServer } from "effect/unstable/ai";
15import { HttpBody, HttpClient, HttpRouter, HttpServerResponse } from "effect/unstable/http";
14import { McpProtocol, McpSchema, McpServer } from "effect/ai";
15import { HttpBody, HttpClient, HttpRouter, HttpServerResponse } from "effect/http";
1616
1717import * as ProjectService from "../project/ProjectService.ts";
1818import * as ServerConfig from "../config.ts";
apps/server/src/mcp/McpHttpServer.ts+2-2
......@@ -11,8 +11,8 @@ import * as Schema from "effect/Schema";
1111import * as Sink from "effect/Sink";
1212import * as Stream from "effect/Stream";
1313import type * as Types from "effect/Types";
14import { McpProtocol, McpSchema, McpServer, Tool } from "effect/unstable/ai";
15import { HttpRouter, HttpServerRequest, HttpServerResponse } from "effect/unstable/http";
14import { McpProtocol, McpSchema, McpServer, Tool } from "effect/ai";
15import { HttpRouter, HttpServerRequest, HttpServerResponse } from "effect/http";
1616import { PreviewAutomationError } from "@t3tools/contracts";
1717
1818import packageJson from "../../package.json" with { type: "json" };
apps/server/src/mcp/McpSessionRegistry.test.ts+2-2
......@@ -2,8 +2,8 @@ import * as NodeServices from "@effect/platform-node/NodeServices";
22import { expect, it } from "@effect/vitest";
33import { EnvironmentId, ProviderInstanceId, ThreadId } from "@t3tools/contracts";
44import * as Effect from "effect/Effect";
5import { HttpServer } from "effect/unstable/http";
6import * as NetAddress from "effect/unstable/net/NetAddress";
5import { HttpServer } from "effect/http";
6import * as NetAddress from "effect/net/NetAddress";
77
88import * as ServerEnvironment from "../environment/ServerEnvironment.ts";
99import * as McpSessionRegistry from "./McpSessionRegistry.ts";
apps/server/src/mcp/McpSessionRegistry.ts+2-2
......@@ -5,8 +5,8 @@ import * as Crypto from "effect/Crypto";
55import * as Effect from "effect/Effect";
66import * as Layer from "effect/Layer";
77import * as SynchronizedRef from "effect/SynchronizedRef";
8import { HttpServer } from "effect/unstable/http";
9import * as NetAddress from "effect/unstable/net/NetAddress";
8import { HttpServer } from "effect/http";
9import * as NetAddress from "effect/net/NetAddress";
1010
1111import * as ServerEnvironment from "../environment/ServerEnvironment.ts";
1212import * as McpInvocationContext from "./McpInvocationContext.ts";
apps/server/src/mcp/OrchestratorMcpToolkit.integration.test.ts+12-5
......@@ -45,7 +45,7 @@ import * as PubSub from "effect/PubSub";
4545import * as Ref from "effect/Ref";
4646import * as Schema from "effect/Schema";
4747import * as Stream from "effect/Stream";
48import { McpSchema, McpServer } from "effect/unstable/ai";
48import { McpSchema, McpServer } from "effect/ai";
4949
5050import { ClaudeProviderCapabilitiesV2 } from "../orchestration-v2/Adapters/ClaudeAdapterV2.ts";
5151import { CodexProviderCapabilitiesV2 } from "../orchestration-v2/Adapters/CodexAdapterV2.ts";
......@@ -77,6 +77,13 @@ import * as McpHttpServer from "./McpHttpServer.ts";
7777import * as McpInvocationContext from "./McpInvocationContext.ts";
7878import { delegatedTaskRun, hasPendingChildRuns } from "./OrchestratorMcpService.ts";
7979
80// Effect returns a declared tool failure as `isError` with its encoded payload
81// as JSON text, never as `structuredContent`.
82const declaredFailure = (result: McpSchema.CallToolResult) => {
83 const text = result.content[0];
84 return result.isError === true && text?.type === "text" ? JSON.parse(text.text) : undefined;
85};
86
8087const parentThreadId = ThreadId.make("thread:mcp-orchestrator-parent");
8188const projectId = ProjectId.make("project:mcp-orchestrator");
8289const codexInstanceId = ProviderInstanceId.make("codex");
......@@ -1173,7 +1180,7 @@ describe("orchestrator MCP toolkit", () => {
11731180 truncated: true,
11741181 });
11751182 const missingQueueRead = yield* invoke("t3_queue_read", { queuedRunId: parentRun.id });
1176 expect(missingQueueRead.structuredContent).toMatchObject({ code: "invalid_request" });
1183 expect(declaredFailure(missingQueueRead)).toMatchObject({ code: "invalid_request" });
11771184 const queueRaceStatus = yield* invoke("task_status", { taskId: queueRace.task.id });
11781185 expect(queueRaceStatus.isError).toBe(false);
11791186 yield* waitForProjection(
......@@ -1327,7 +1334,7 @@ describe("orchestrator MCP toolkit", () => {
13271334 "t3_thread_update",
13281335 { action: "rename", title: "Denied title" },
13291336 );
1330 expect(deniedThreadUpdate.structuredContent).toMatchObject({
1337 expect(declaredFailure(deniedThreadUpdate)).toMatchObject({
13311338 _tag: "OrchestratorMcpFailure",
13321339 code: "capability_denied",
13331340 });
......@@ -1748,7 +1755,7 @@ describe("orchestrator MCP toolkit", () => {
17481755 mode: "async",
17491756 clientRequestId: "delegate-rejected-options-1",
17501757 });
1751 expect(rejectedOptionsCall.structuredContent).toMatchObject({
1758 expect(declaredFailure(rejectedOptionsCall)).toMatchObject({
17521759 _tag: "OrchestratorMcpFailure",
17531760 code: "invalid_request",
17541761 message: expect.stringContaining("rejected options"),
......@@ -1769,7 +1776,7 @@ describe("orchestrator MCP toolkit", () => {
17691776 mode: "async",
17701777 clientRequestId: "delegate-duplicate-options-1",
17711778 });
1772 expect(duplicateOptionsCall.structuredContent).toMatchObject({
1779 expect(declaredFailure(duplicateOptionsCall)).toMatchObject({
17731780 _tag: "OrchestratorMcpFailure",
17741781 code: "invalid_request",
17751782 message: expect.stringContaining("more than once"),
apps/server/src/mcp/PreviewAutomationBroker.test.ts+2-2
......@@ -26,8 +26,8 @@ import * as Result from "effect/Result";
2626import * as Scheduler from "effect/Scheduler";
2727import * as Stream from "effect/Stream";
2828import * as TestClock from "effect/testing/TestClock";
29import * as RpcGroup from "effect/unstable/rpc/RpcGroup";
30import * as RpcTest from "effect/unstable/rpc/RpcTest";
29import * as RpcGroup from "effect/rpc/RpcGroup";
30import * as RpcTest from "effect/rpc/RpcTest";
3131
3232import { rpcScopeAuthorizationLayer } from "../auth/RpcAuthorization.ts";
3333import * as PreviewAutomationBroker from "./PreviewAutomationBroker.ts";
apps/server/src/mcp/toolkits/attachment/tools.ts+1-1
......@@ -12,7 +12,7 @@ import {
1212import * as Crypto from "effect/Crypto";
1313import * as FileSystem from "effect/FileSystem";
1414import * as Schema from "effect/Schema";
15import { Tool, Toolkit } from "effect/unstable/ai";
15import { Tool, Toolkit } from "effect/ai";
1616import * as ServerSecretStore from "../../../auth/ServerSecretStore.ts";
1717import * as ServerConfig from "../../../config.ts";
1818import * as ThreadManagementService from "../../../orchestration-v2/ThreadManagementService.ts";
apps/server/src/mcp/toolkits/core.test.ts+17-10
......@@ -11,7 +11,7 @@ import * as Effect from "effect/Effect";
1111import * as Layer from "effect/Layer";
1212import * as Schema from "effect/Schema";
1313import { McpAttachmentInput } from "./attachment/input.ts";
14import { McpSchema, McpServer, Tool } from "effect/unstable/ai";
14import { McpSchema, McpServer, Tool } from "effect/ai";
1515
1616import { OrchestratorProjectionError } from "../../orchestration-v2/Orchestrator.ts";
1717import * as ProviderAdapterRegistry from "../../orchestration-v2/ProviderAdapterRegistry.ts";
......@@ -32,6 +32,13 @@ import * as AttachmentHandlers from "./attachment/handlers.ts";
3232import { ThreadToolkit } from "./thread/tools.ts";
3333import { WorktreeToolkit } from "./worktree/tools.ts";
3434import { DeviceToolkit } from "./device/tools.ts";
35
36// Effect returns a declared tool failure as `isError` with its encoded payload
37// as JSON text, never as `structuredContent`.
38const declaredFailure = (result: McpSchema.CallToolResult) => {
39 const text = result.content[0];
40 return result.isError === true && text?.type === "text" ? JSON.parse(text.text) : undefined;
41};
3542import { PullRequestsToolkit } from "./pullRequests/tools.ts";
3643import {
3744 resolveT3McpToolDefinition,
......@@ -118,7 +125,7 @@ it.effect("checks capability before accessing services through the production re
118125 }),
119126 Effect.provideService(McpSchema.McpServerClient, client),
120127 );
121 expect(result.structuredContent).toMatchObject({ code: "capability_denied" });
128 expect(declaredFailure(result)).toMatchObject({ code: "capability_denied" });
122129 }).pipe(
123130 Effect.provide(
124131 McpHttpServer.ThreadToolkitRegistrationLive.pipe(
......@@ -139,7 +146,7 @@ it.effect("returns a bounded public failure without serializing storage causes",
139146 Effect.provideService(McpInvocationContext.McpInvocationContext, scope),
140147 Effect.provideService(McpSchema.McpServerClient, client),
141148 );
142 expect(result.structuredContent).toEqual({
149 expect(declaredFailure(result)).toEqual({
143150 _tag: "OrchestratorMcpFailure",
144151 code: "orchestration_error",
145152 message: "The operation could not be completed.",
......@@ -243,7 +250,7 @@ it.effect("a client caller targets any thread within its ceiling and cannot act
243250 );
244251
245252 const untargeted = yield* call("t3_thread_organize", { action: "pin" }, clientScope("auto"));
246 expect(untargeted.structuredContent).toMatchObject({ code: "target_required" });
253 expect(declaredFailure(untargeted)).toMatchObject({ code: "target_required" });
247254
248255 const pinned = yield* call(
249256 "t3_thread_organize",
......@@ -258,7 +265,7 @@ it.effect("a client caller targets any thread within its ceiling and cannot act
258265 { action: "pin", threadId: "other-project-thread" },
259266 clientScope("approval-required"),
260267 );
261 expect(aboveCeiling.structuredContent).toMatchObject({
268 expect(declaredFailure(aboveCeiling)).toMatchObject({
262269 code: "runtime_mode_escalation_denied",
263270 });
264271
......@@ -267,7 +274,7 @@ it.effect("a client caller targets any thread within its ceiling and cannot act
267274 { sourcePoint: { type: "latest_stable" } },
268275 clientScope("auto"),
269276 );
270 expect(forked.structuredContent).toMatchObject({ code: "target_required" });
277 expect(declaredFailure(forked)).toMatchObject({ code: "target_required" });
271278 }).pipe(
272279 Effect.provide(
273280 McpHttpServer.ThreadToolkitRegistrationLive.pipe(
......@@ -314,7 +321,7 @@ it.effect("refuses act-as-caller tools to a client caller", () =>
314321 ),
315322 Effect.provideService(McpSchema.McpServerClient, client),
316323 );
317 expect(result.structuredContent).toMatchObject({ code: "thread_credential_required" });
324 expect(declaredFailure(result)).toMatchObject({ code: "thread_credential_required" });
318325 }).pipe(
319326 Effect.provide(
320327 McpHttpServer.OrchestratorToolkitRegistrationLive.pipe(
......@@ -344,9 +351,9 @@ it.effect("a caller cannot rewrite a scheduled task that runs above its own mode
344351 scheduledTaskId: "task-full-access",
345352 prompt: "Run something else",
346353 });
347 expect(update.structuredContent).toMatchObject({ code: "runtime_mode_escalation_denied" });
354 expect(declaredFailure(update)).toMatchObject({ code: "runtime_mode_escalation_denied" });
348355 const remove = yield* call("delete_scheduled_task", { scheduledTaskId: "task-full-access" });
349 expect(remove.structuredContent).toMatchObject({ code: "runtime_mode_escalation_denied" });
356 expect(declaredFailure(remove)).toMatchObject({ code: "runtime_mode_escalation_denied" });
350357 const allowed = yield* call("update_scheduled_task", {
351358 scheduledTaskId: "task-auto",
352359 enabled: false,
......@@ -416,7 +423,7 @@ it.effect("a caller cannot interrupt a thread that runs above its own modes", ()
416423 Effect.provideService(McpInvocationContext.McpInvocationContext, clientScope("auto")),
417424 Effect.provideService(McpSchema.McpServerClient, client),
418425 );
419 expect(result.structuredContent).toMatchObject({ code: "runtime_mode_escalation_denied" });
426 expect(declaredFailure(result)).toMatchObject({ code: "runtime_mode_escalation_denied" });
420427 }).pipe(
421428 Effect.provide(
422429 McpHttpServer.OrchestratorToolkitRegistrationLive.pipe(
apps/server/src/mcp/toolkits/device/tools.ts+1-1
......@@ -11,7 +11,7 @@ import * as Schema from "effect/Schema";
1111import * as FileSystem from "effect/FileSystem";
1212import * as Path from "effect/Path";
1313import * as ServerConfig from "../../../config.ts";
14import { Tool, Toolkit } from "effect/unstable/ai";
14import { Tool, Toolkit } from "effect/ai";
1515
1616import * as McpInvocationContext from "../../McpInvocationContext.ts";
1717import * as DeviceService from "../../../device/DeviceService.ts";
apps/server/src/mcp/toolkits/environment/tools.ts+1-1
......@@ -7,7 +7,7 @@ import {
77 ServerSettingsPatch,
88} from "@t3tools/contracts";
99import * as Schema from "effect/Schema";
10import { Tool, Toolkit } from "effect/unstable/ai";
10import { Tool, Toolkit } from "effect/ai";
1111import * as ServerEnvironment from "../../../environment/ServerEnvironment.ts";
1212import * as ThreadCommandExecutor from "../../../orchestration-v2/ThreadCommandExecutor.ts";
1313import * as ThreadManagementService from "../../../orchestration-v2/ThreadManagementService.ts";
apps/server/src/mcp/toolkits/orchestrator/tools.test.ts+1-1
......@@ -1,5 +1,5 @@
11import { assert, describe, it } from "@effect/vitest";
2import { Tool } from "effect/unstable/ai";
2import { Tool } from "effect/ai";
33
44import {
55 CreateThreadsTool,
apps/server/src/mcp/toolkits/orchestrator/tools.ts+1-1
......@@ -28,7 +28,7 @@ import {
2828 ThreadMetadataMcpUpdateInput,
2929 ThreadMetadataMcpUpdateResult,
3030} from "@t3tools/contracts";
31import { Tool, Toolkit } from "effect/unstable/ai";
31import { Tool, Toolkit } from "effect/ai";
3232
3333import * as McpInvocationContext from "../../McpInvocationContext.ts";
3434import * as OrchestratorMcpService from "../../OrchestratorMcpService.ts";
apps/server/src/mcp/toolkits/preview/tools.test.ts+1-1
......@@ -1,5 +1,5 @@
11import { expect, it } from "@effect/vitest";
2import { Tool } from "effect/unstable/ai";
2import { Tool } from "effect/ai";
33
44import { PreviewToolkit } from "./tools.ts";
55
apps/server/src/mcp/toolkits/preview/tools.ts+1-1
......@@ -21,7 +21,7 @@ import {
2121} from "@t3tools/contracts";
2222import * as Schema from "effect/Schema";
2323import * as FileSystem from "effect/FileSystem";
24import { Tool, Toolkit } from "effect/unstable/ai";
24import { Tool, Toolkit } from "effect/ai";
2525
2626import * as McpInvocationContext from "../../McpInvocationContext.ts";
2727import * as PreviewAutomationBroker from "../../PreviewAutomationBroker.ts";
apps/server/src/mcp/toolkits/previewControls/tools.ts+1-1
......@@ -6,7 +6,7 @@ import {
66 PreviewTabId,
77} from "@t3tools/contracts";
88import * as Schema from "effect/Schema";
9import { Tool, Toolkit } from "effect/unstable/ai";
9import { Tool, Toolkit } from "effect/ai";
1010import * as PreviewManager from "../../../preview/Manager.ts";
1111import * as McpInvocationContext from "../../McpInvocationContext.ts";
1212
apps/server/src/mcp/toolkits/project/tools.ts+1-1
......@@ -22,7 +22,7 @@ import * as ServerConfig from "../../../config.ts";
2222import * as ThreadLaunchService from "../../../orchestration-v2/ThreadLaunchService.ts";
2323import * as Crypto from "effect/Crypto";
2424import * as Schema from "effect/Schema";
25import { Tool, Toolkit } from "effect/unstable/ai";
25import { Tool, Toolkit } from "effect/ai";
2626import * as ProjectService from "../../../project/ProjectService.ts";
2727import * as ManagedProjectFolders from "../../../project/ManagedProjectFolders.ts";
2828import * as ThreadManagementService from "../../../orchestration-v2/ThreadManagementService.ts";
apps/server/src/mcp/toolkits/pullRequests/handlers.test.ts+1-1
......@@ -14,7 +14,7 @@ import * as Layer from "effect/Layer";
1414import * as Option from "effect/Option";
1515import * as Ref from "effect/Ref";
1616import * as Stream from "effect/Stream";
17import type { Tool } from "effect/unstable/ai";
17import type { Tool } from "effect/ai";
1818
1919import * as Orchestrator from "../../../orchestration-v2/Orchestrator.ts";
2020import {
apps/server/src/mcp/toolkits/pullRequests/tools.ts+2-2
......@@ -7,8 +7,8 @@ import {
77 ThreadId,
88} from "@t3tools/contracts";
99import * as Schema from "effect/Schema";
10import * as Tool from "effect/unstable/ai/Tool";
11import * as Toolkit from "effect/unstable/ai/Toolkit";
10import * as Tool from "effect/ai/Tool";
11import * as Toolkit from "effect/ai/Toolkit";
1212
1313import * as McpInvocationContext from "../../McpInvocationContext.ts";
1414import * as Orchestrator from "../../../orchestration-v2/Orchestrator.ts";
apps/server/src/mcp/toolkits/thread/tools.ts+1-1
......@@ -21,7 +21,7 @@ import {
2121} from "@t3tools/contracts";
2222import * as Crypto from "effect/Crypto";
2323import * as Schema from "effect/Schema";
24import { Tool, Toolkit } from "effect/unstable/ai";
24import { Tool, Toolkit } from "effect/ai";
2525
2626import * as ThreadSearch from "../../../orchestration-v2/ThreadSearch.ts";
2727import * as ScheduledTaskService from "../../../scheduledTasks/ScheduledTaskService.ts";
apps/server/src/mcp/toolkits/worktree/registration.test.ts+1-1
......@@ -9,7 +9,7 @@ import { ProviderInstanceId, ThreadId } from "@t3tools/contracts";
99import * as Effect from "effect/Effect";
1010import * as Layer from "effect/Layer";
1111import * as Schema from "effect/Schema";
12import { HttpBody, HttpClient, HttpRouter } from "effect/unstable/http";
12import { HttpBody, HttpClient, HttpRouter } from "effect/http";
1313
1414import * as ServerEnvironment from "../../../environment/ServerEnvironment.ts";
1515import * as GitWorkflowService from "../../../git/GitWorkflowService.ts";
apps/server/src/mcp/toolkits/worktree/tools.ts+1-1
......@@ -12,7 +12,7 @@ import * as Schema from "effect/Schema";
1212import * as GitWorkflowService from "../../../git/GitWorkflowService.ts";
1313import * as ProjectService from "../../../project/ProjectService.ts";
1414import * as ThreadManagementService from "../../../orchestration-v2/ThreadManagementService.ts";
15import { Tool, Toolkit } from "effect/unstable/ai";
15import { Tool, Toolkit } from "effect/ai";
1616
1717import * as McpInvocationContext from "../../McpInvocationContext.ts";
1818import * as WorktreeMcpService from "../../WorktreeMcpService.ts";
apps/server/src/observability/Layers/Observability.ts+3-3
......@@ -9,9 +9,9 @@ import * as Effect from "effect/Effect";
99import * as Layer from "effect/Layer";
1010import * as References from "effect/References";
1111import * as Tracer from "effect/Tracer";
12import * as OtlpExporter from "effect/unstable/observability/OtlpExporter";
13import * as OtlpMetrics from "effect/unstable/observability/OtlpMetrics";
14import * as OtlpTracer from "effect/unstable/observability/OtlpTracer";
12import * as OtlpExporter from "effect/observability/OtlpExporter";
13import * as OtlpMetrics from "effect/observability/OtlpMetrics";
14import * as OtlpTracer from "effect/observability/OtlpTracer";
1515
1616import * as ServerConfig from "../../config.ts";
1717import * as ResourceAttribution from "../../resourceTelemetry/ResourceAttribution.ts";
apps/server/src/orchestration-v2/AcpRegistryOrchestratorV2.live.test.ts+1-1
......@@ -16,7 +16,7 @@ import * as Console from "effect/Console";
1616import * as Effect from "effect/Effect";
1717import * as Layer from "effect/Layer";
1818import * as ResetCreditCoordinator from "../provider/Layers/resetCreditCoordinator.ts";
19import { FetchHttpClient } from "effect/unstable/http";
19import { FetchHttpClient } from "effect/http";
2020import { describe } from "vite-plus/test";
2121
2222import * as CheckpointStore from "../checkpointing/CheckpointStore.ts";
apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts+1-1
......@@ -49,7 +49,7 @@ import * as Sink from "effect/Sink";
4949import * as Stream from "effect/Stream";
5050import * as Scope from "effect/Scope";
5151import * as TestClock from "effect/testing/TestClock";
52import { ChildProcessSpawner } from "effect/unstable/process";
52import { ChildProcessSpawner } from "effect/process";
5353import * as EffectAcpErrors from "effect-acp/errors";
5454import type * as EffectAcpProtocol from "effect-acp/protocol";
5555import type * as EffectAcpSchema from "effect-acp/compat";
apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.testkit.ts+1-1
......@@ -10,7 +10,7 @@ import * as Layer from "effect/Layer";
1010import * as Schema from "effect/Schema";
1111import type * as Scope from "effect/Scope";
1212import * as Stream from "effect/Stream";
13import { ChildProcessSpawner } from "effect/unstable/process";
13import { ChildProcessSpawner } from "effect/process";
1414import * as EffectAcpErrors from "effect-acp/errors";
1515
1616import * as AcpSessionRuntime from "../../provider/acp/AcpSessionRuntime.ts";
apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.ts+1-1
......@@ -51,7 +51,7 @@ import * as Result from "effect/Result";
5151import * as Scope from "effect/Scope";
5252import * as Semaphore from "effect/Semaphore";
5353import * as Stream from "effect/Stream";
54import type { ChildProcessSpawner } from "effect/unstable/process";
54import type { ChildProcessSpawner } from "effect/process";
5555import * as EffectAcpErrors from "effect-acp/errors";
5656import type * as EffectAcpProtocol from "effect-acp/protocol";
5757import type * as EffectAcpSchema from "effect-acp/compat";
apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.test.ts+2-2
......@@ -10,8 +10,8 @@ import * as Layer from "effect/Layer";
1010import * as Option from "effect/Option";
1111import * as Path from "effect/Path";
1212import * as Schema from "effect/Schema";
13import { HttpClient, HttpClientResponse } from "effect/unstable/http";
14import { ChildProcessSpawner } from "effect/unstable/process";
13import { HttpClient, HttpClientResponse } from "effect/http";
14import { ChildProcessSpawner } from "effect/process";
1515import * as EffectAcpErrors from "effect-acp/errors";
1616
1717import * as ServerConfig from "../../config.ts";
apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.testkit.ts+1-1
......@@ -7,7 +7,7 @@ import * as FileSystem from "effect/FileSystem";
77import * as Layer from "effect/Layer";
88import * as Path from "effect/Path";
99import * as Schema from "effect/Schema";
10import { ChildProcessSpawner } from "effect/unstable/process";
10import { ChildProcessSpawner } from "effect/process";
1111
1212import * as ServerConfig from "../../config.ts";
1313import * as IdAllocator from "../IdAllocator.ts";
apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.ts+1-1
......@@ -18,7 +18,7 @@ import * as Layer from "effect/Layer";
1818import * as Option from "effect/Option";
1919import * as Schema from "effect/Schema";
2020import type * as Scope from "effect/Scope";
21import { ChildProcessSpawner } from "effect/unstable/process";
21import { ChildProcessSpawner } from "effect/process";
2222import * as EffectAcpErrors from "effect-acp/errors";
2323
2424import * as ServerConfig from "../../config.ts";
apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts+1-1
......@@ -19,7 +19,7 @@ import * as FileSystem from "effect/FileSystem";
1919import * as Layer from "effect/Layer";
2020import * as Path from "effect/Path";
2121import * as Stream from "effect/Stream";
22import { ChildProcessSpawner } from "effect/unstable/process";
22import { ChildProcessSpawner } from "effect/process";
2323import type * as EffectAcpSchema from "effect-acp/compat";
2424
2525import * as ServerConfig from "../../config.ts";
apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.ts+12-10
......@@ -131,16 +131,18 @@ export function makeAntigravityAcpAdapterFlavor(
131131 const makeRuntime = (input: AcpAdapterV2RuntimeInput) =>
132132 Effect.gen(function* () {
133133 // AcpAdapterV2 owns the runtime scope; sign-in and sign-out stop the
134 // process by closing it, and the adapter respawns on the next turn.
135 const scope = yield* Effect.scope;
136 const runtime = yield* options.withProcess(
137 Scope.close(scope, Exit.void),
138 options.makeRuntime({
139 ...input,
140 clientFileSystem: true,
141 additionalDirectories: [options.serverConfig.attachmentsDir],
142 }),
143 );
134 // process by closing a child of it, and the adapter respawns on the next turn.
135 const scope = yield* Scope.fork(yield* Effect.scope);
136 const runtime = yield* options
137 .withProcess(
138 Scope.close(scope, Exit.void),
139 options.makeRuntime({
140 ...input,
141 clientFileSystem: true,
142 additionalDirectories: [options.serverConfig.attachmentsDir],
143 }),
144 )
145 .pipe(Effect.provideService(Scope.Scope, scope));
144146 return {
145147 ...runtime,
146148 start: () =>
apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts+1-1
......@@ -43,7 +43,7 @@ import * as Queue from "effect/Queue";
4343import * as Schema from "effect/Schema";
4444import * as Scope from "effect/Scope";
4545import * as Stream from "effect/Stream";
46import { Tool } from "effect/unstable/ai";
46import { Tool } from "effect/ai";
4747import { formatClaudeResumeCompactionQuestion } from "@t3tools/shared/claudeCompaction";
4848import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
4949import { SpawnExecutableResolution } from "@t3tools/shared/shell";
apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.test.ts+1-1
......@@ -46,7 +46,7 @@ import * as Ref from "effect/Ref";
4646import * as Schema from "effect/Schema";
4747import * as Stream from "effect/Stream";
4848import { TestClock } from "effect/testing";
49import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
49import { ChildProcess, ChildProcessSpawner } from "effect/process";
5050
5151import packageJson from "../../../package.json" with { type: "json" };
5252import * as ServerConfig from "../../config.ts";
apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.ts+1-1
......@@ -78,7 +78,7 @@ import * as Schema from "effect/Schema";
7878import * as Scope from "effect/Scope";
7979import * as Semaphore from "effect/Semaphore";
8080import * as Stream from "effect/Stream";
81import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
81import { ChildProcess, ChildProcessSpawner } from "effect/process";
8282
8383import { resolveAttachmentPath } from "../../attachmentStore.ts";
8484import { getCodexServiceTierOptionValue } from "../../codexModelOptions.ts";
apps/server/src/orchestration-v2/Adapters/GrokAdapterV2.test.ts+1-1
......@@ -19,7 +19,7 @@ import * as FileSystem from "effect/FileSystem";
1919import * as Layer from "effect/Layer";
2020import * as PlatformError from "effect/PlatformError";
2121import * as Schema from "effect/Schema";
22import { ChildProcessSpawner } from "effect/unstable/process";
22import { ChildProcessSpawner } from "effect/process";
2323import type * as EffectAcpSchema from "effect-acp/compat";
2424
2525import * as ServerConfig from "../../config.ts";
apps/server/src/orchestration-v2/Adapters/GrokAdapterV2.testkit.ts+1-1
......@@ -6,7 +6,7 @@ import * as FileSystem from "effect/FileSystem";
66import * as Layer from "effect/Layer";
77import * as Path from "effect/Path";
88import * as Schema from "effect/Schema";
9import { ChildProcessSpawner } from "effect/unstable/process";
9import { ChildProcessSpawner } from "effect/process";
1010import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
1111import { resolveSelfInvocation } from "@t3tools/shared/nodeRuntime";
1212
apps/server/src/orchestration-v2/Adapters/GrokAdapterV2.ts+1-1
......@@ -20,7 +20,7 @@ import * as Path from "effect/Path";
2020import * as Layer from "effect/Layer";
2121import * as Schema from "effect/Schema";
2222import type * as Scope from "effect/Scope";
23import { ChildProcessSpawner } from "effect/unstable/process";
23import { ChildProcessSpawner } from "effect/process";
2424import * as EffectAcpErrors from "effect-acp/errors";
2525
2626import * as ServerConfig from "../../config.ts";
apps/server/src/orchestration-v2/Adapters/OpenCode2AdapterV2.test.ts+4-1
......@@ -3218,6 +3218,8 @@ describe("OpenCode2 adapter", () => {
32183218 const seen: Array<string> = [];
32193219 const ended = yield* Deferred.make<void>();
32203220 const nextEnded = yield* Deferred.make<void>();
3221 // One consumer reads every terminal; a second reader would race it for the queue.
3222 const thirdEnded = yield* Deferred.make<void>();
32213223 yield* runtime.events.pipe(
32223224 Stream.tap((event) =>
32233225 Effect.gen(function* () {
......@@ -3225,6 +3227,7 @@ describe("OpenCode2 adapter", () => {
32253227 seen.push(event.status);
32263228 if (seen.length === 1) yield* Deferred.succeed(ended, undefined);
32273229 if (seen.length === 2) yield* Deferred.succeed(nextEnded, undefined);
3230 if (seen.length === 3) yield* Deferred.succeed(thirdEnded, undefined);
32283231 }),
32293232 ),
32303233 Stream.runDrain,
......@@ -3256,7 +3259,7 @@ describe("OpenCode2 adapter", () => {
32563259 providerTurnOrdinal: 3,
32573260 attemptId: RunAttemptId.make("attempt:opencode2-adapter:3"),
32583261 });
3259 yield* terminalOf(runtime);
3262 yield* Deferred.await(thirdEnded);
32603263 }).pipe(Effect.scoped),
32613264 );
32623265
apps/server/src/orchestration-v2/Adapters/OpenCode2AdapterV2.testkit.ts+4-4
......@@ -15,10 +15,10 @@ import {
1515import * as Effect from "effect/Effect";
1616import * as Layer from "effect/Layer";
1717import * as Schema from "effect/Schema";
18import * as HttpClient from "effect/unstable/http/HttpClient";
19import * as HttpClientError from "effect/unstable/http/HttpClientError";
20import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
21import * as UrlParams from "effect/unstable/http/UrlParams";
18import * as HttpClient from "effect/http/HttpClient";
19import * as HttpClientError from "effect/http/HttpClientError";
20import * as HttpClientResponse from "effect/http/HttpClientResponse";
21import * as UrlParams from "effect/http/UrlParams";
2222
2323import * as ServerConfig from "../../config.ts";
2424import * as OpenCode2Client from "../../provider/opencode2/OpenCode2Client.ts";
apps/server/src/orchestration-v2/Adapters/PiAdapterV2.test.ts+1-1
......@@ -29,7 +29,7 @@ import * as Schema from "effect/Schema";
2929import * as Sink from "effect/Sink";
3030import * as Stream from "effect/Stream";
3131import * as TestClock from "effect/testing/TestClock";
32import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
32import { ChildProcess, ChildProcessSpawner } from "effect/process";
3333
3434import * as ServerConfig from "../../config.ts";
3535import * as McpProviderSession from "../../mcp/McpProviderSession.ts";
apps/server/src/orchestration-v2/Adapters/PiAdapterV2.testkit.ts+1-1
......@@ -28,7 +28,7 @@ import * as Queue from "effect/Queue";
2828import * as Schema from "effect/Schema";
2929import * as Sink from "effect/Sink";
3030import * as Stream from "effect/Stream";
31import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
31import { ChildProcess, ChildProcessSpawner } from "effect/process";
3232
3333import * as ServerConfig from "../../config.ts";
3434import * as IdAllocator from "../IdAllocator.ts";
apps/server/src/orchestration-v2/Adapters/PiAdapterV2.ts+1-1
......@@ -57,7 +57,7 @@ import * as Queue from "effect/Queue";
5757import * as Schema from "effect/Schema";
5858import * as Semaphore from "effect/Semaphore";
5959import * as Stream from "effect/Stream";
60import { ChildProcessSpawner } from "effect/unstable/process";
60import { ChildProcessSpawner } from "effect/process";
6161
6262import { resolveAttachmentPath } from "../../attachmentStore.ts";
6363import * as ServerConfig from "../../config.ts";
apps/server/src/orchestration-v2/Adapters/PiRpc.ts+1-1
......@@ -26,7 +26,7 @@ import * as Queue from "effect/Queue";
2626import * as Scope from "effect/Scope";
2727import * as Schema from "effect/Schema";
2828import * as Stream from "effect/Stream";
29import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
29import { ChildProcess, ChildProcessSpawner } from "effect/process";
3030import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
3131import { resolveSpawnCommand } from "@t3tools/shared/shell";
3232
apps/server/src/orchestration-v2/CheckpointCaptureService.test.ts+1-1
......@@ -19,7 +19,7 @@ import * as DateTime from "effect/DateTime";
1919import * as Effect from "effect/Effect";
2020import * as Layer from "effect/Layer";
2121import * as Ref from "effect/Ref";
22import * as SqlClient from "effect/unstable/sql/SqlClient";
22import * as SqlClient from "effect/sql/SqlClient";
2323
2424import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts";
2525import * as CheckpointStore from "../checkpointing/CheckpointStore.ts";
apps/server/src/orchestration-v2/CheckpointService.ts+2-2
......@@ -13,7 +13,7 @@ import * as NodeCrypto from "node:crypto";
1313import * as Context from "effect/Context";
1414import * as DateTime from "effect/DateTime";
1515import * as Effect from "effect/Effect";
16import * as Encoding from "effect/Encoding";
16import * as Base64Url from "effect/encoding/Base64Url";
1717import * as KeyedLock from "@t3tools/shared/KeyedLock";
1818import * as Layer from "effect/Layer";
1919import * as Schema from "effect/Schema";
......@@ -163,7 +163,7 @@ export function checkpointRefForScopeOrdinal(input: {
163163}): CheckpointRef {
164164 const scopeKey = NodeCrypto.createHash("sha256").update(input.scopeId).digest("hex").slice(0, 32);
165165 return CheckpointRef.make(
166 `${CHECKPOINT_REFS_PREFIX}/${Encoding.encodeBase64Url(scopeKey)}/ordinal/${input.ordinalWithinScope}`,
166 `${CHECKPOINT_REFS_PREFIX}/${Base64Url.encode(scopeKey)}/ordinal/${input.ordinalWithinScope}`,
167167 );
168168}
169169
apps/server/src/orchestration-v2/CursorOrchestratorV2.live.test.ts+1-1
......@@ -14,7 +14,7 @@ import * as Console from "effect/Console";
1414import * as Effect from "effect/Effect";
1515import * as Layer from "effect/Layer";
1616import * as ResetCreditCoordinator from "../provider/Layers/resetCreditCoordinator.ts";
17import { FetchHttpClient } from "effect/unstable/http";
17import { FetchHttpClient } from "effect/http";
1818import { describe } from "vite-plus/test";
1919
2020import * as CheckpointStore from "../checkpointing/CheckpointStore.ts";
apps/server/src/orchestration-v2/EffectOutbox.ts+1-1
......@@ -21,7 +21,7 @@ import * as Layer from "effect/Layer";
2121import * as Option from "effect/Option";
2222import * as Queue from "effect/Queue";
2323import * as Schema from "effect/Schema";
24import * as SqlClient from "effect/unstable/sql/SqlClient";
24import * as SqlClient from "effect/sql/SqlClient";
2525
2626export const OrchestrationEffectRequestV2 = Schema.Union([
2727 Schema.Struct({
apps/server/src/orchestration-v2/EventSink.ts+1-1
......@@ -20,7 +20,7 @@ import * as PubSub from "effect/PubSub";
2020import * as Semaphore from "effect/Semaphore";
2121import * as Schema from "effect/Schema";
2222import * as Stream from "effect/Stream";
23import * as SqlClient from "effect/unstable/sql/SqlClient";
23import * as SqlClient from "effect/sql/SqlClient";
2424
2525import { replayAndBufferProjectedLiveEvents } from "./LiveStreamBudget.ts";
2626import type { UnsequencedProjectEvent } from "../persistence/Services/OrchestrationEventStore.ts";
apps/server/src/orchestration-v2/EventStore.ts+1-1
......@@ -11,7 +11,7 @@ import * as Effect from "effect/Effect";
1111import * as Layer from "effect/Layer";
1212import * as Schema from "effect/Schema";
1313import * as Stream from "effect/Stream";
14import type * as SqlClient from "effect/unstable/sql/SqlClient";
14import type * as SqlClient from "effect/sql/SqlClient";
1515
1616import { OrchestrationEventStoreLive } from "../persistence/Layers/OrchestrationEventStore.ts";
1717import * as OrchestrationEventStore from "../persistence/Services/OrchestrationEventStore.ts";
apps/server/src/orchestration-v2/FoundationPersistence.test.ts+2-2
......@@ -37,8 +37,8 @@ import * as Schema from "effect/Schema";
3737import * as Stream from "effect/Stream";
3838import * as TestClock from "effect/testing/TestClock";
3939import * as Tracer from "effect/Tracer";
40import * as SqlClient from "effect/unstable/sql/SqlClient";
41import * as Statement from "effect/unstable/sql/Statement";
40import * as SqlClient from "effect/sql/SqlClient";
41import * as Statement from "effect/sql/Statement";
4242
4343import { LIVE_STREAM_MAX_ITEMS, LiveStreamBufferError } from "./LiveStreamBudget.ts";
4444import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts";
apps/server/src/orchestration-v2/GrokOrchestratorV2.live.test.ts+1-1
......@@ -14,7 +14,7 @@ import * as Console from "effect/Console";
1414import * as Effect from "effect/Effect";
1515import * as Layer from "effect/Layer";
1616import * as ResetCreditCoordinator from "../provider/Layers/resetCreditCoordinator.ts";
17import { FetchHttpClient } from "effect/unstable/http";
17import { FetchHttpClient } from "effect/http";
1818import { describe } from "vite-plus/test";
1919
2020import * as CheckpointStore from "../checkpointing/CheckpointStore.ts";
apps/server/src/orchestration-v2/OpenCode2OrchestratorV2.live.test.ts+2-2
......@@ -39,8 +39,8 @@ import * as FileSystem from "effect/FileSystem";
3939import * as Layer from "effect/Layer";
4040import * as Path from "effect/Path";
4141import * as Schema from "effect/Schema";
42import { FetchHttpClient, HttpClient } from "effect/unstable/http";
43import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
42import { FetchHttpClient, HttpClient } from "effect/http";
43import { ChildProcess, ChildProcessSpawner } from "effect/process";
4444import { describe } from "vite-plus/test";
4545
4646import * as ResetCreditCoordinator from "../provider/Layers/resetCreditCoordinator.ts";
apps/server/src/orchestration-v2/Orchestrator.control-reads.test.ts+1-1
......@@ -20,7 +20,7 @@ import {
2020import * as DateTime from "effect/DateTime";
2121import * as Effect from "effect/Effect";
2222import * as Layer from "effect/Layer";
23import * as SqlClient from "effect/unstable/sql/SqlClient";
23import * as SqlClient from "effect/sql/SqlClient";
2424import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts";
2525import { CodexProviderCapabilitiesV2 } from "./Adapters/CodexAdapterV2.ts";
2626import * as Orchestrator from "./Orchestrator.ts";
apps/server/src/orchestration-v2/ProjectSettingsUpgrade.integration.test.ts+1-1
......@@ -7,7 +7,7 @@ import * as Layer from "effect/Layer";
77import * as Path from "effect/Path";
88import * as Schema from "effect/Schema";
99import * as Stream from "effect/Stream";
10import * as SqlClient from "effect/unstable/sql/SqlClient";
10import * as SqlClient from "effect/sql/SqlClient";
1111
1212import * as CheckpointStore from "../checkpointing/CheckpointStore.ts";
1313import * as ServerConfig from "../config.ts";
apps/server/src/orchestration-v2/ProjectStore.test.ts+1-1
......@@ -3,7 +3,7 @@ import { EventId, ProjectId, ProviderInstanceId } from "@t3tools/contracts";
33import * as Effect from "effect/Effect";
44import * as Layer from "effect/Layer";
55import * as Option from "effect/Option";
6import * as SqlClient from "effect/unstable/sql/SqlClient";
6import * as SqlClient from "effect/sql/SqlClient";
77
88import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts";
99import * as ProjectStore from "./ProjectStore.ts";
apps/server/src/orchestration-v2/ProjectStore.ts+2-2
......@@ -13,8 +13,8 @@ import * as Effect from "effect/Effect";
1313import * as Layer from "effect/Layer";
1414import * as Option from "effect/Option";
1515import * as Schema from "effect/Schema";
16import * as SqlClient from "effect/unstable/sql/SqlClient";
17import * as SqlSchema from "effect/unstable/sql/SqlSchema";
16import * as SqlClient from "effect/sql/SqlClient";
17import * as SqlSchema from "effect/sql/SqlSchema";
1818
1919export class ProjectStoreV2Error extends Schema.TaggedError<ProjectStoreV2Error>()(
2020 "ProjectStoreV2Error",
apps/server/src/orchestration-v2/ProjectionControlReads.test.ts+1-1
......@@ -19,7 +19,7 @@ import * as DateTime from "effect/DateTime";
1919import * as Effect from "effect/Effect";
2020import * as Layer from "effect/Layer";
2121import * as Option from "effect/Option";
22import * as SqlClient from "effect/unstable/sql/SqlClient";
22import * as SqlClient from "effect/sql/SqlClient";
2323import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts";
2424import * as ProjectionStore from "./ProjectionStore.ts";
2525import * as ProviderSessionManager from "./ProviderSessionManager.ts";
apps/server/src/orchestration-v2/ProjectionMaintenance.ts+1-1
......@@ -5,7 +5,7 @@ import * as Effect from "effect/Effect";
55import * as Layer from "effect/Layer";
66import * as Schema from "effect/Schema";
77import * as Stream from "effect/Stream";
8import * as SqlClient from "effect/unstable/sql/SqlClient";
8import * as SqlClient from "effect/sql/SqlClient";
99
1010import * as EventStore from "./EventStore.ts";
1111import * as ProjectionStore from "./ProjectionStore.ts";
apps/server/src/orchestration-v2/ProjectionRecovery.test.ts+1-1
......@@ -20,7 +20,7 @@ import {
2020import * as DateTime from "effect/DateTime";
2121import * as Effect from "effect/Effect";
2222import * as Layer from "effect/Layer";
23import * as SqlClient from "effect/unstable/sql/SqlClient";
23import * as SqlClient from "effect/sql/SqlClient";
2424
2525import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts";
2626import { CodexProviderCapabilitiesV2 } from "./Adapters/CodexAdapterV2.ts";
apps/server/src/orchestration-v2/ProjectionSettlement.test.ts+2-2
......@@ -18,8 +18,8 @@ import * as DateTime from "effect/DateTime";
1818import * as Effect from "effect/Effect";
1919import * as Layer from "effect/Layer";
2020import * as Schema from "effect/Schema";
21import * as SqlClient from "effect/unstable/sql/SqlClient";
22import * as Statement from "effect/unstable/sql/Statement";
21import * as SqlClient from "effect/sql/SqlClient";
22import * as Statement from "effect/sql/Statement";
2323
2424import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts";
2525import * as ProjectionStore from "./ProjectionStore.ts";
apps/server/src/orchestration-v2/ProjectionStore.test.ts+1-1
......@@ -25,7 +25,7 @@ import * as DateTime from "effect/DateTime";
2525import * as Effect from "effect/Effect";
2626import * as Layer from "effect/Layer";
2727import * as Schema from "effect/Schema";
28import * as SqlClient from "effect/unstable/sql/SqlClient";
28import * as SqlClient from "effect/sql/SqlClient";
2929import { projectThreadAwarenessV2 } from "@t3tools/shared/agentAwareness";
3030
3131import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts";
apps/server/src/orchestration-v2/ProjectionStore.ts+2-2
......@@ -67,8 +67,8 @@ import * as Effect from "effect/Effect";
6767import * as Layer from "effect/Layer";
6868import * as Ref from "effect/Ref";
6969import * as Schema from "effect/Schema";
70import * as SqlClient from "effect/unstable/sql/SqlClient";
71import type * as Statement from "effect/unstable/sql/Statement";
70import * as SqlClient from "effect/sql/SqlClient";
71import type * as Statement from "effect/sql/Statement";
7272
7373import {
7474 isThreadHistoryUserTurn,
apps/server/src/orchestration-v2/ProviderRuntimeRecoveryPerformance.test.ts+1-1
......@@ -23,7 +23,7 @@ import * as Console from "effect/Console";
2323import * as DateTime from "effect/DateTime";
2424import * as Effect from "effect/Effect";
2525import * as Layer from "effect/Layer";
26import * as SqlClient from "effect/unstable/sql/SqlClient";
26import * as SqlClient from "effect/sql/SqlClient";
2727
2828import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts";
2929import * as ServerSettings from "../serverSettings.ts";
apps/server/src/orchestration-v2/ProviderSessionManager.test.ts+2-2
......@@ -1,4 +1,4 @@
1import * as NetAddress from "effect/unstable/net/NetAddress";
1import * as NetAddress from "effect/net/NetAddress";
22import * as NodeServices from "@effect/platform-node/NodeServices";
33import { assert, it } from "@effect/vitest";
44import {
......@@ -29,7 +29,7 @@ import * as Queue from "effect/Queue";
2929import * as Ref from "effect/Ref";
3030import * as Stream from "effect/Stream";
3131import { TestClock } from "effect/testing";
32import { HttpServer } from "effect/unstable/http";
32import { HttpServer } from "effect/http";
3333
3434import { ProviderWorkspaceMissingError } from "../provider/Errors.ts";
3535import * as ServerEnvironment from "../environment/ServerEnvironment.ts";
apps/server/src/orchestration-v2/RunCompletionReads.test.ts+1-1
......@@ -12,7 +12,7 @@ import {
1212import * as DateTime from "effect/DateTime";
1313import * as Effect from "effect/Effect";
1414import * as Layer from "effect/Layer";
15import * as SqlClient from "effect/unstable/sql/SqlClient";
15import * as SqlClient from "effect/sql/SqlClient";
1616import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts";
1717import * as ProjectionStore from "./ProjectionStore.ts";
1818
apps/server/src/orchestration-v2/ThreadSearch.test.ts+1-1
......@@ -10,7 +10,7 @@ import {
1010import * as DateTime from "effect/DateTime";
1111import * as Effect from "effect/Effect";
1212import * as Layer from "effect/Layer";
13import * as SqlClient from "effect/unstable/sql/SqlClient";
13import * as SqlClient from "effect/sql/SqlClient";
1414
1515import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts";
1616import * as ProjectionStore from "./ProjectionStore.ts";
apps/server/src/orchestration-v2/ThreadSearch.ts+2-2
......@@ -10,8 +10,8 @@ import * as Context from "effect/Context";
1010import * as Effect from "effect/Effect";
1111import * as Layer from "effect/Layer";
1212import * as Schema from "effect/Schema";
13import * as SqlClient from "effect/unstable/sql/SqlClient";
14import * as SqlSchema from "effect/unstable/sql/SqlSchema";
13import * as SqlClient from "effect/sql/SqlClient";
14import * as SqlSchema from "effect/sql/SqlSchema";
1515
1616/** Carries no query text: search input is user content. */
1717export class ThreadSearchError extends Schema.TaggedError<ThreadSearchError>()(
apps/server/src/orchestration-v2/ThreadTransportPerformance.test.ts+1-1
......@@ -13,7 +13,7 @@ import {
1313} from "@t3tools/contracts";
1414import * as DateTime from "effect/DateTime";
1515import * as Schema from "effect/Schema";
16import type * as RpcMessage from "effect/unstable/rpc/RpcMessage";
16import type * as RpcMessage from "effect/rpc/RpcMessage";
1717import { describe, expect, it } from "vite-plus/test";
1818
1919import { buildBoundedThreadStreamSnapshot } from "./ThreadStream.ts";
apps/server/src/orchestration-v2/TurnItemPositionStore.ts+1-1
......@@ -3,7 +3,7 @@ import * as Context from "effect/Context";
33import * as Effect from "effect/Effect";
44import * as Layer from "effect/Layer";
55import * as Schema from "effect/Schema";
6import * as SqlClient from "effect/unstable/sql/SqlClient";
6import * as SqlClient from "effect/sql/SqlClient";
77
88export class TurnItemPositionStoreError extends Schema.TaggedError<TurnItemPositionStoreError>()(
99 "TurnItemPositionStoreError",
apps/server/src/orchestration-v2/TurnStartReads.test.ts+1-1
......@@ -15,7 +15,7 @@ import {
1515import * as DateTime from "effect/DateTime";
1616import * as Effect from "effect/Effect";
1717import * as Layer from "effect/Layer";
18import * as SqlClient from "effect/unstable/sql/SqlClient";
18import * as SqlClient from "effect/sql/SqlClient";
1919import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts";
2020import * as ProjectionStore from "./ProjectionStore.ts";
2121
apps/server/src/orchestration-v2/http.ts+2-2
......@@ -7,8 +7,8 @@ import {
77} from "@t3tools/contracts";
88import * as Effect from "effect/Effect";
99import * as Predicate from "effect/Predicate";
10import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder";
11import * as SqlClient from "effect/unstable/sql/SqlClient";
10import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder";
11import * as SqlClient from "effect/sql/SqlClient";
1212
1313import {
1414 annotateEnvironmentRequest,
apps/server/src/orchestration-v2/legacy/LegacyV1Cutover.integration.test.ts+1-1
......@@ -24,7 +24,7 @@ import * as PubSub from "effect/PubSub";
2424import * as References from "effect/References";
2525import * as Ref from "effect/Ref";
2626import * as Stream from "effect/Stream";
27import * as SqlClient from "effect/unstable/sql/SqlClient";
27import * as SqlClient from "effect/sql/SqlClient";
2828
2929import { runMigrations } from "../../persistence/Migrations.ts";
3030import { makeSqlitePersistenceLive } from "../../persistence/Layers/Sqlite.ts";
apps/server/src/orchestration-v2/legacy/LegacyV1ThreadImporter.test.ts+1-1
......@@ -4,7 +4,7 @@ import * as DateTime from "effect/DateTime";
44import * as Effect from "effect/Effect";
55import * as Layer from "effect/Layer";
66import * as Tracer from "effect/Tracer";
7import * as SqlClient from "effect/unstable/sql/SqlClient";
7import * as SqlClient from "effect/sql/SqlClient";
88
99import { SqlitePersistenceMemory } from "../../persistence/Layers/Sqlite.ts";
1010import { listLinkedPullRequestThreads } from "../../pullRequest/linkedThreads.ts";
apps/server/src/orchestration-v2/legacy/LegacyV1ThreadImporter.ts+1-1
......@@ -28,7 +28,7 @@ import * as Effect from "effect/Effect";
2828import * as Layer from "effect/Layer";
2929import * as Option from "effect/Option";
3030import * as Schema from "effect/Schema";
31import * as SqlClient from "effect/unstable/sql/SqlClient";
31import * as SqlClient from "effect/sql/SqlClient";
3232
3333import * as EventSink from "../EventSink.ts";
3434import { randomUuidV4 } from "../RandomUuid.ts";
apps/server/src/orchestration-v2/runtimeLayer.test.ts+1-1
......@@ -37,7 +37,7 @@ import * as Option from "effect/Option";
3737import * as Queue from "effect/Queue";
3838import * as Stream from "effect/Stream";
3939import * as TestClock from "effect/testing/TestClock";
40import * as SqlClient from "effect/unstable/sql/SqlClient";
40import * as SqlClient from "effect/sql/SqlClient";
4141
4242import * as CheckpointStore from "../checkpointing/CheckpointStore.ts";
4343import * as GitWorkflow from "../git/GitWorkflowService.ts";
apps/server/src/orchestration-v2/testkit/ProviderReplayHarness.ts+3-3
......@@ -7,9 +7,9 @@ import * as FileSystem from "effect/FileSystem";
77import * as Layer from "effect/Layer";
88import * as Path from "effect/Path";
99import * as PlatformError from "effect/PlatformError";
10import type * as SqlClient from "effect/unstable/sql/SqlClient";
11import type { MigrationError } from "effect/unstable/sql/Migrator";
12import type { SqlError } from "effect/unstable/sql/SqlError";
10import type * as SqlClient from "effect/sql/SqlClient";
11import type { MigrationError } from "effect/sql/Migrator";
12import type { SqlError } from "effect/sql/SqlError";
1313
1414import * as CheckpointStore from "../../checkpointing/CheckpointStore.ts";
1515import * as ServerConfig from "../../config.ts";
apps/server/src/orchestration-v2/testkit/ProviderSwitch.integration.test.ts+1-1
......@@ -30,7 +30,7 @@ import * as PubSub from "effect/PubSub";
3030import * as Ref from "effect/Ref";
3131import * as Stream from "effect/Stream";
3232import * as Schema from "effect/Schema";
33import * as SqlClient from "effect/unstable/sql/SqlClient";
33import * as SqlClient from "effect/sql/SqlClient";
3434
3535import { SqlitePersistenceMemory } from "../../persistence/Layers/Sqlite.ts";
3636import { CommandPolicyCapabilityUnsupportedError } from "../CommandPolicy.ts";
apps/server/src/orchestration-v2/testkit/ReplayFixtureWorkspace.ts+1-1
......@@ -4,7 +4,7 @@ import * as FileSystem from "effect/FileSystem";
44import * as Path from "effect/Path";
55import * as PlatformError from "effect/PlatformError";
66import * as Schema from "effect/Schema";
7import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
7import { ChildProcess, ChildProcessSpawner } from "effect/process";
88
99class ReplayFixtureGitCommandError extends Schema.TaggedError<ReplayFixtureGitCommandError>()(
1010 "ReplayFixtureGitCommandError",
apps/server/src/orchestration-v2/testkit/ThreadFork.integration.test.ts+1-1
......@@ -14,7 +14,7 @@ import * as FileSystem from "effect/FileSystem";
1414import * as Path from "effect/Path";
1515import * as PlatformError from "effect/PlatformError";
1616import * as Schema from "effect/Schema";
17import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
17import { ChildProcess, ChildProcessSpawner } from "effect/process";
1818
1919import { ClaudeOrchestratorReplayHarness } from "../Adapters/ClaudeAdapterV2.testkit.ts";
2020import { CodexOrchestratorReplayHarness } from "../Adapters/CodexAdapterV2.testkit.ts";
apps/server/src/persistence/AuthPairingLinks.ts+2-2
......@@ -3,8 +3,8 @@ import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
44import * as Option from "effect/Option";
55import * as Schema from "effect/Schema";
6import * as SqlClient from "effect/unstable/sql/SqlClient";
7import * as SqlSchema from "effect/unstable/sql/SqlSchema";
6import * as SqlClient from "effect/sql/SqlClient";
7import * as SqlSchema from "effect/sql/SqlSchema";
88
99import { AuthEnvironmentScopes } from "@t3tools/contracts";
1010
apps/server/src/persistence/AuthSessions.ts+2-2
......@@ -3,8 +3,8 @@ import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
44import * as Option from "effect/Option";
55import * as Schema from "effect/Schema";
6import * as SqlClient from "effect/unstable/sql/SqlClient";
7import * as SqlSchema from "effect/unstable/sql/SqlSchema";
6import * as SqlClient from "effect/sql/SqlClient";
7import * as SqlSchema from "effect/sql/SqlSchema";
88
99import {
1010 AuthClientMetadataDeviceType,
apps/server/src/persistence/Errors.test.ts+1-1
......@@ -2,7 +2,7 @@ import { assert, it } from "@effect/vitest";
22import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
33import * as Effect from "effect/Effect";
44import * as Schema from "effect/Schema";
5import * as SqlClient from "effect/unstable/sql/SqlClient";
5import * as SqlClient from "effect/sql/SqlClient";
66
77import { PersistenceDecodeError, PersistenceSqlError, toPersistenceSqlError } from "./Errors.ts";
88
apps/server/src/persistence/Layers/OrchestrationCommandReceipts.ts+2-2
......@@ -1,5 +1,5 @@
1import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlSchema from "effect/unstable/sql/SqlSchema";
1import * as SqlClient from "effect/sql/SqlClient";
2import * as SqlSchema from "effect/sql/SqlSchema";
33import * as Effect from "effect/Effect";
44import * as Layer from "effect/Layer";
55
apps/server/src/persistence/Layers/OrchestrationEventStore.sequence.test.ts+1-1
......@@ -6,7 +6,7 @@ import * as Layer from "effect/Layer";
66import * as Schema from "effect/Schema";
77import * as Stream from "effect/Stream";
88import * as Tracer from "effect/Tracer";
9import * as SqlClient from "effect/unstable/sql/SqlClient";
9import * as SqlClient from "effect/sql/SqlClient";
1010
1111import { runMigrations } from "../Migrations.ts";
1212import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Layers/OrchestrationEventStore.test.ts+2-2
......@@ -17,8 +17,8 @@ import * as Effect from "effect/Effect";
1717import * as Layer from "effect/Layer";
1818import * as Schema from "effect/Schema";
1919import * as Stream from "effect/Stream";
20import * as SqlClient from "effect/unstable/sql/SqlClient";
21import * as Statement from "effect/unstable/sql/Statement";
20import * as SqlClient from "effect/sql/SqlClient";
21import * as Statement from "effect/sql/Statement";
2222
2323import {
2424 LIVE_STREAM_MAX_ITEMS,
apps/server/src/persistence/Layers/OrchestrationEventStore.ts+2-2
......@@ -13,8 +13,8 @@ import {
1313 ThreadId,
1414 type OrchestrationV2DomainEvent,
1515} from "@t3tools/contracts";
16import * as SqlClient from "effect/unstable/sql/SqlClient";
17import * as SqlSchema from "effect/unstable/sql/SqlSchema";
16import * as SqlClient from "effect/sql/SqlClient";
17import * as SqlSchema from "effect/sql/SqlSchema";
1818import * as Effect from "effect/Effect";
1919import * as Layer from "effect/Layer";
2020import * as PubSub from "effect/PubSub";
apps/server/src/persistence/Layers/Sqlite.test.ts+1-1
......@@ -8,7 +8,7 @@ import * as NodeServices from "@effect/platform-node/NodeServices";
88import { assert, it } from "@effect/vitest";
99import * as Effect from "effect/Effect";
1010import * as Layer from "effect/Layer";
11import * as SqlClient from "effect/unstable/sql/SqlClient";
11import * as SqlClient from "effect/sql/SqlClient";
1212
1313import {
1414 SqlitePersistenceMemory,
apps/server/src/persistence/Layers/Sqlite.ts+1-1
......@@ -2,7 +2,7 @@ import * as Effect from "effect/Effect";
22import * as Layer from "effect/Layer";
33import * as FileSystem from "effect/FileSystem";
44import * as Path from "effect/Path";
5import * as SqlClient from "effect/unstable/sql/SqlClient";
5import * as SqlClient from "effect/sql/SqlClient";
66import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
77
88import { runMigrations } from "../Migrations.ts";
apps/server/src/persistence/Migrations.ts+2-2
......@@ -8,9 +8,9 @@
88 * schema is always up to date before the application starts.
99 */
1010
11import * as Migrator from "effect/unstable/sql/Migrator";
11import * as Migrator from "effect/sql/Migrator";
1212import * as Effect from "effect/Effect";
13import * as SqlClient from "effect/unstable/sql/SqlClient";
13import * as SqlClient from "effect/sql/SqlClient";
1414import { reconcileV2PreviewMigration } from "./reconcileV2PreviewMigration.ts";
1515
1616// Import all migrations statically
apps/server/src/persistence/Migrations/001_OrchestrationEvents.ts+1-1
......@@ -1,4 +1,4 @@
1import * as SqlClient from "effect/unstable/sql/SqlClient";
1import * as SqlClient from "effect/sql/SqlClient";
22import * as Effect from "effect/Effect";
33
44export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/002_OrchestrationCommandReceipts.ts+1-1
......@@ -1,4 +1,4 @@
1import * as SqlClient from "effect/unstable/sql/SqlClient";
1import * as SqlClient from "effect/sql/SqlClient";
22import * as Effect from "effect/Effect";
33
44export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/003_CheckpointDiffBlobs.ts+1-1
......@@ -1,4 +1,4 @@
1import * as SqlClient from "effect/unstable/sql/SqlClient";
1import * as SqlClient from "effect/sql/SqlClient";
22import * as Effect from "effect/Effect";
33
44export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/004_ProviderSessionRuntime.ts+1-1
......@@ -1,4 +1,4 @@
1import * as SqlClient from "effect/unstable/sql/SqlClient";
1import * as SqlClient from "effect/sql/SqlClient";
22import * as Effect from "effect/Effect";
33
44export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/005_Projections.ts+1-1
......@@ -1,4 +1,4 @@
1import * as SqlClient from "effect/unstable/sql/SqlClient";
1import * as SqlClient from "effect/sql/SqlClient";
22import * as Effect from "effect/Effect";
33
44export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/006_ProjectionThreadSessionRuntimeModeColumns.ts+1-1
......@@ -1,4 +1,4 @@
1import * as SqlClient from "effect/unstable/sql/SqlClient";
1import * as SqlClient from "effect/sql/SqlClient";
22import * as Effect from "effect/Effect";
33
44const DEFAULT_RUNTIME_MODE = "full-access";
apps/server/src/persistence/Migrations/007_ProjectionThreadMessageAttachments.ts+1-1
......@@ -1,4 +1,4 @@
1import * as SqlClient from "effect/unstable/sql/SqlClient";
1import * as SqlClient from "effect/sql/SqlClient";
22import * as Effect from "effect/Effect";
33
44export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/008_ProjectionThreadActivitySequence.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/009_ProviderSessionRuntimeMode.ts+1-1
......@@ -1,4 +1,4 @@
1import * as SqlClient from "effect/unstable/sql/SqlClient";
1import * as SqlClient from "effect/sql/SqlClient";
22import * as Effect from "effect/Effect";
33
44export default Effect.asVoid(SqlClient.SqlClient);
apps/server/src/persistence/Migrations/010_ProjectionThreadsRuntimeMode.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/011_OrchestrationThreadCreatedRuntimeMode.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/012_ProjectionThreadsInteractionMode.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/013_ProjectionThreadProposedPlans.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/014_ProjectionThreadProposedPlanImplementation.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/015_ProjectionTurnsSourceProposedPlan.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/016_CanonicalizeModelSelections.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/016_CanonicalizeModelSelections.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/017_ProjectionThreadsArchivedAt.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/018_ProjectionThreadsArchivedAtIndex.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/019_ProjectionSnapshotLookupIndexes.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/019_ProjectionSnapshotLookupIndexes.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/020_AuthAccessManagement.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/021_AuthSessionClientMetadata.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/022_AuthSessionLastConnectedAt.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/023_ProjectionThreadShellSummary.ts+1-1
......@@ -1,4 +1,4 @@
1import * as SqlClient from "effect/unstable/sql/SqlClient";
1import * as SqlClient from "effect/sql/SqlClient";
22import * as Effect from "effect/Effect";
33
44export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/024_BackfillProjectionThreadShellSummary.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/024_BackfillProjectionThreadShellSummary.ts+1-1
......@@ -1,4 +1,4 @@
1import * as SqlClient from "effect/unstable/sql/SqlClient";
1import * as SqlClient from "effect/sql/SqlClient";
22import * as Effect from "effect/Effect";
33
44export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/025_CleanupInvalidProjectionPendingApprovals.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/025_CleanupInvalidProjectionPendingApprovals.ts+1-1
......@@ -1,4 +1,4 @@
1import * as SqlClient from "effect/unstable/sql/SqlClient";
1import * as SqlClient from "effect/sql/SqlClient";
22import * as Effect from "effect/Effect";
33
44export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/026_CanonicalizeModelSelectionOptions.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/026_CanonicalizeModelSelectionOptions.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44/**
55 * Canonicalize `modelSelection.options` / `defaultModelSelection.options` from
apps/server/src/persistence/Migrations/027_028_ProviderInstanceIdColumns.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/027_ProviderSessionRuntimeInstanceId.ts+1-1
......@@ -15,7 +15,7 @@
1515 * multiple instances of the same driver. Keeping that compatibility at the
1616 * persistence boundary keeps the fallback out of active routing code.
1717 */
18import * as SqlClient from "effect/unstable/sql/SqlClient";
18import * as SqlClient from "effect/sql/SqlClient";
1919import * as Effect from "effect/Effect";
2020
2121export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/028_ProjectionThreadSessionInstanceId.ts+1-1
......@@ -1,4 +1,4 @@
1import * as SqlClient from "effect/unstable/sql/SqlClient";
1import * as SqlClient from "effect/sql/SqlClient";
22import * as Effect from "effect/Effect";
33
44export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/029_ProjectionThreadDetailOrderingIndexes.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/029_ProjectionThreadDetailOrderingIndexes.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/030_ProjectionThreadShellArchiveIndexes.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/031_AuthAuthorizationScopes.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/031_AuthAuthorizationScopes.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44/**
55 * This is an intentional alpha cutover: role-bearing credentials and sessions
apps/server/src/persistence/Migrations/032_AuthPairingProofKeyThumbprint.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/033_ProjectionThreadsSettled.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/034_ProjectionThreadsSnoozed.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/035_ProjectionThreadTitleRegeneration.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/035_ProjectionThreadTitleRegeneration.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/036_ProjectionThreadsPinned.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/037_ProjectionTurnsKeysetIndex.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44/**
55 * Composite index for windowed thread detail reads. Pagination orders turns by
apps/server/src/persistence/Migrations/038_ProjectionThreadsPinOrderKey.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/039_ProjectionProjectsDefaultThreadEnvMode.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/040_ProjectionProjectFaviconPath.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/040_ProjectionProjectFaviconPath.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/041_AuthSessionClientConnection.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/041_AuthSessionClientConnection.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44// Client-declared surface (web/desktop/mobile) and app version, refreshed on
55// every WebSocket connect so the row tracks the client's current build instead
apps/server/src/persistence/Migrations/042_ProjectionThreadLinkedPullRequest.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/042_ProjectionThreadLinkedPullRequest.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/043_ProjectionThreadsUnsettledAt.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/044_ClearAutomaticProjectModelDefaults.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/045_ProjectionProjectsAutoPull.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/046_RepairAutomaticSettlementTimestamps.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/046_RepairAutomaticSettlementTimestamps.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44// Server auto-settlement used to stamp settledAt with the sweep time instead
55// of the thread's last activity. Repair the projection only: the engine and
apps/server/src/persistence/Migrations/047_ProjectionProjectIcon.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/047_ProjectionProjectIcon.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/048_ProjectionThreadBranchPullRequest.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/049_ProjectionThreadsActiveOrderKey.test.ts+1-1
......@@ -1,6 +1,6 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
3import * as SqlClient from "effect/unstable/sql/SqlClient";
3import * as SqlClient from "effect/sql/SqlClient";
44import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
55
66import { runMigrations } from "../Migrations.ts";
apps/server/src/persistence/Migrations/049_ProjectionThreadsActiveOrderKey.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/050_ProjectionThreadPullRequests.test.ts+1-1
......@@ -2,7 +2,7 @@ import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Schema from "effect/Schema";
44import * as Layer from "effect/Layer";
5import * as SqlClient from "effect/unstable/sql/SqlClient";
5import * as SqlClient from "effect/sql/SqlClient";
66
77import { runMigrations } from "../Migrations.ts";
88import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/050_ProjectionThreadPullRequests.ts+1-1
......@@ -1,6 +1,6 @@
11import { legacyThreadPullRequestKey } from "@t3tools/shared/threadPullRequests";
22import * as Effect from "effect/Effect";
3import * as SqlClient from "effect/unstable/sql/SqlClient";
3import * as SqlClient from "effect/sql/SqlClient";
44
55interface LegacyLinkedThreadRow {
66 readonly threadId: string;
apps/server/src/persistence/Migrations/051_ProjectionThreadMessageContext.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/051_ProjectionThreadMessageContext.ts+1-1
......@@ -1,4 +1,4 @@
1import * as SqlClient from "effect/unstable/sql/SqlClient";
1import * as SqlClient from "effect/sql/SqlClient";
22import * as Effect from "effect/Effect";
33
44export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/052_ProjectionThreadTitleState.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/053_PullRequestFilesViewed.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/054_ProjectionThreadsAutoSettleDisabledAt.test.ts+1-1
......@@ -1,6 +1,6 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
3import * as SqlClient from "effect/unstable/sql/SqlClient";
3import * as SqlClient from "effect/sql/SqlClient";
44import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
55
66import { runMigrations } from "../Migrations.ts";
apps/server/src/persistence/Migrations/054_ProjectionThreadsAutoSettleDisabledAt.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/055_OrchestrationV2.application-event-source.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/055_OrchestrationV2.effect-cancellation.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/055_OrchestrationV2.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { migrationEntries, runMigrations } from "../Migrations.ts";
77import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
apps/server/src/persistence/Migrations/055_OrchestrationV2.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44import ApplicationEventSequenceIndexes from "./OrchestrationV2/ApplicationEventSequenceIndexes.ts";
55import ApplicationEventSource from "./OrchestrationV2/ApplicationEventSource.ts";
apps/server/src/persistence/Migrations/056_RemoveRedundantProjectionIndexes.test.ts+1-1
......@@ -2,7 +2,7 @@ import { assert, it } from "@effect/vitest";
22import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
33import * as Effect from "effect/Effect";
44import * as Layer from "effect/Layer";
5import * as SqlClient from "effect/unstable/sql/SqlClient";
5import * as SqlClient from "effect/sql/SqlClient";
66
77import { runMigrations } from "../Migrations.ts";
88
apps/server/src/persistence/Migrations/056_RemoveRedundantProjectionIndexes.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44export default Effect.gen(function* () {
55 const sql = yield* SqlClient.SqlClient;
apps/server/src/persistence/Migrations/OrchestrationV2/ApplicationEventSequenceIndexes.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44// Index setup composed by migration 055.
55export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/OrchestrationV2/ApplicationEventSource.ts+1-1
......@@ -1,6 +1,6 @@
11import * as Effect from "effect/Effect";
22import * as Schema from "effect/Schema";
3import * as SqlClient from "effect/unstable/sql/SqlClient";
3import * as SqlClient from "effect/sql/SqlClient";
44
55interface LegacyV2EventRow {
66 readonly event_id: string;
apps/server/src/persistence/Migrations/OrchestrationV2/EffectCancellation.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44// Schema setup composed by migration 055.
55export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/OrchestrationV2/Foundation.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44/**
55 * Production-facing V2 persistence setup composed by migration 055.
apps/server/src/persistence/Migrations/OrchestrationV2/LegacyV1ImportState.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44/**
55 * Tracks the incremental import of v1 materialized thread state into the v2
apps/server/src/persistence/Migrations/OrchestrationV2/ProviderSessionBindings.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44// Schema setup composed by migration 055.
55export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/OrchestrationV2/RecoveryIndexes.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44// Index setup composed by migration 055.
55export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/OrchestrationV2/ScheduledTasks.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44// Schema setup composed by migration 055.
55export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/OrchestrationV2/ShellIndexes.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44// Index setup composed by migration 055.
55export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/OrchestrationV2/Subagents.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44// Schema setup composed by migration 055.
55export default Effect.gen(function* () {
apps/server/src/persistence/Migrations/OrchestrationV2/ThreadLaunchWorkflows.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Effect from "effect/Effect";
2import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as SqlClient from "effect/sql/SqlClient";
33
44// Schema setup composed by migration 055.
55export default Effect.gen(function* () {
apps/server/src/persistence/ProviderSessionRuntime.ts+2-2
......@@ -6,8 +6,8 @@ import * as Option from "effect/Option";
66import * as Result from "effect/Result";
77import * as Schema from "effect/Schema";
88import * as Struct from "effect/Struct";
9import * as SqlClient from "effect/unstable/sql/SqlClient";
10import * as SqlSchema from "effect/unstable/sql/SqlSchema";
9import * as SqlClient from "effect/sql/SqlClient";
10import * as SqlSchema from "effect/sql/SqlSchema";
1111
1212import {
1313 AgentSessionImportSource,
apps/server/src/persistence/PullRequestFilesViewed.ts+2-2
......@@ -2,8 +2,8 @@ import * as Context from "effect/Context";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
44import * as Schema from "effect/Schema";
5import * as SqlClient from "effect/unstable/sql/SqlClient";
6import * as SqlSchema from "effect/unstable/sql/SqlSchema";
5import * as SqlClient from "effect/sql/SqlClient";
6import * as SqlSchema from "effect/sql/SqlSchema";
77
88import { SourceControlProviderKind } from "@t3tools/contracts";
99
apps/server/src/persistence/RepositoryErrorCorrelation.test.ts+1-1
......@@ -3,7 +3,7 @@ import { assert, describe, it } from "@effect/vitest";
33import * as DateTime from "effect/DateTime";
44import * as Effect from "effect/Effect";
55import * as Layer from "effect/Layer";
6import * as SqlClient from "effect/unstable/sql/SqlClient";
6import * as SqlClient from "effect/sql/SqlClient";
77
88import * as AuthPairingLinks from "./AuthPairingLinks.ts";
99import * as AuthSessions from "./AuthSessions.ts";
apps/server/src/persistence/initializeV2Database.test.ts+1-1
......@@ -10,7 +10,7 @@ import { ThreadId } from "@t3tools/contracts";
1010import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
1111import * as Effect from "effect/Effect";
1212import * as Layer from "effect/Layer";
13import * as SqlClient from "effect/unstable/sql/SqlClient";
13import * as SqlClient from "effect/sql/SqlClient";
1414
1515import * as ServerConfig from "../config.ts";
1616import * as SqlitePersistence from "./Layers/Sqlite.ts";
apps/server/src/persistence/reconcileV2PreviewMigration.test.ts+2-2
......@@ -2,8 +2,8 @@ import { assert, describe, it } from "@effect/vitest";
22import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient";
33import * as Effect from "effect/Effect";
44import * as Exit from "effect/Exit";
5import * as Migrator from "effect/unstable/sql/Migrator";
6import * as SqlClient from "effect/unstable/sql/SqlClient";
5import * as Migrator from "effect/sql/Migrator";
6import * as SqlClient from "effect/sql/SqlClient";
77
88import { migrationManifest, runMigrations } from "./Migrations.ts";
99import PullRequestFilesViewed from "./Migrations/053_PullRequestFilesViewed.ts";
apps/server/src/persistence/reconcileV2PreviewMigration.ts+2-2
......@@ -1,6 +1,6 @@
11import * as Effect from "effect/Effect";
2import * as Migrator from "effect/unstable/sql/Migrator";
3import * as SqlClient from "effect/unstable/sql/SqlClient";
2import * as Migrator from "effect/sql/Migrator";
3import * as SqlClient from "effect/sql/SqlClient";
44
55import PullRequestFilesViewed from "./Migrations/053_PullRequestFilesViewed.ts";
66import AutoSettleDisabledAt from "./Migrations/054_ProjectionThreadsAutoSettleDisabledAt.ts";
apps/server/src/preview/PortScanner.test.ts+1-1
......@@ -20,7 +20,7 @@ import * as Scope from "effect/Scope";
2020import * as TestClock from "effect/testing/TestClock";
2121import * as Tracer from "effect/Tracer";
2222import { expect } from "vite-plus/test";
23import { FetchHttpClient } from "effect/unstable/http";
23import { FetchHttpClient } from "effect/http";
2424
2525import * as ProcessRunner from "../processRunner.ts";
2626import * as PortScanner from "./PortScanner.ts";
apps/server/src/preview/PortScanner.ts+1-1
......@@ -36,7 +36,7 @@ import * as Ref from "effect/Ref";
3636import * as Schedule from "effect/Schedule";
3737import * as Scope from "effect/Scope";
3838import * as Semaphore from "effect/Semaphore";
39import { FetchHttpClient, HttpClient } from "effect/unstable/http";
39import { FetchHttpClient, HttpClient } from "effect/http";
4040
4141import * as ProcessRunner from "../processRunner.ts";
4242
apps/server/src/process/externalLauncher.test.ts+1-1
......@@ -15,7 +15,7 @@ import * as Path from "effect/Path";
1515import * as Sink from "effect/Sink";
1616import * as Stream from "effect/Stream";
1717import * as TestClock from "effect/testing/TestClock";
18import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
18import { ChildProcess, ChildProcessSpawner } from "effect/process";
1919
2020import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
2121import { SpawnExecutableResolution } from "@t3tools/shared/shell";
apps/server/src/process/externalLauncher.ts+4-4
......@@ -30,7 +30,7 @@ import * as Config from "effect/Config";
3030import * as Context from "effect/Context";
3131import * as Deferred from "effect/Deferred";
3232import * as Effect from "effect/Effect";
33import * as Encoding from "effect/Encoding";
33import * as Base64 from "effect/encoding/Base64";
3434import * as Exit from "effect/Exit";
3535import * as FileSystem from "effect/FileSystem";
3636import * as Layer from "effect/Layer";
......@@ -39,8 +39,8 @@ import * as Path from "effect/Path";
3939import * as Ref from "effect/Ref";
4040import * as Scope from "effect/Scope";
4141import * as Stream from "effect/Stream";
42import * as ChildProcess from "effect/unstable/process/ChildProcess";
43import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
42import * as ChildProcess from "effect/process/ChildProcess";
43import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
4444
4545// ==============================
4646// Definitions
......@@ -175,7 +175,7 @@ function encodeUtf16LeBase64(input: string): string {
175175 bytes[index * 2] = code & 0xff;
176176 bytes[index * 2 + 1] = code >>> 8;
177177 }
178 return Encoding.encodeBase64(bytes);
178 return Base64.encode(bytes);
179179}
180180
181181function escapePowerShellStringLiteral(input: string): string {
apps/server/src/processRunner.test.ts+1-1
......@@ -8,7 +8,7 @@ import * as PlatformError from "effect/PlatformError";
88import * as Sink from "effect/Sink";
99import * as Stream from "effect/Stream";
1010import { TestClock } from "effect/testing";
11import { ChildProcessSpawner } from "effect/unstable/process";
11import { ChildProcessSpawner } from "effect/process";
1212import { HostProcessEnvironment, HostProcessPlatform } from "@t3tools/shared/hostProcess";
1313import { SpawnExecutableResolution } from "@t3tools/shared/shell";
1414
apps/server/src/processRunner.ts+2-2
......@@ -7,8 +7,8 @@ import * as PlatformError from "effect/PlatformError";
77import * as Schema from "effect/Schema";
88import * as Scope from "effect/Scope";
99import * as Stream from "effect/Stream";
10import * as ChildProcess from "effect/unstable/process/ChildProcess";
11import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
10import * as ChildProcess from "effect/process/ChildProcess";
11import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1212import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
1313import { resolveSpawnCommand } from "@t3tools/shared/shell";
1414import {
apps/server/src/project/ProjectService.deletion.test.ts+1-1
......@@ -14,7 +14,7 @@ import * as Layer from "effect/Layer";
1414import * as Option from "effect/Option";
1515import * as Schema from "effect/Schema";
1616import { TestClock } from "effect/testing";
17import * as SqlClient from "effect/unstable/sql/SqlClient";
17import * as SqlClient from "effect/sql/SqlClient";
1818
1919import * as ServerConfig from "../config.ts";
2020import { OrchestrationEffectRequestV2 } from "../orchestration-v2/EffectOutbox.ts";
apps/server/src/project/ProjectService.test.ts+1-1
......@@ -8,7 +8,7 @@ import * as Layer from "effect/Layer";
88import * as Option from "effect/Option";
99import * as Ref from "effect/Ref";
1010import { TestClock } from "effect/testing";
11import * as SqlClient from "effect/unstable/sql/SqlClient";
11import * as SqlClient from "effect/sql/SqlClient";
1212
1313import * as ServerConfig from "../config.ts";
1414import * as EventSink from "../orchestration-v2/EventSink.ts";
apps/server/src/project/RepositoryIdentityResolver.test.ts+1-1
......@@ -8,7 +8,7 @@ import * as Effect from "effect/Effect";
88import * as FileSystem from "effect/FileSystem";
99import * as Layer from "effect/Layer";
1010import * as Path from "effect/Path";
11import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
11import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1212import { TestClock } from "effect/testing";
1313
1414import * as ProcessRunner from "../processRunner.ts";
apps/server/src/project/http.ts+1-1
......@@ -4,7 +4,7 @@ import {
44 EnvironmentHttpApi,
55} from "@t3tools/contracts";
66import * as Effect from "effect/Effect";
7import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder";
7import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder";
88
99import {
1010 annotateEnvironmentRequest,
apps/server/src/provider/AntigravityInstallation.test.ts+2-2
......@@ -19,8 +19,8 @@ import * as Schema from "effect/Schema";
1919import * as Scope from "effect/Scope";
2020import * as Sink from "effect/Sink";
2121import * as Stream from "effect/Stream";
22import { HttpClient, HttpClientResponse } from "effect/unstable/http";
23import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
22import { HttpClient, HttpClientResponse } from "effect/http";
23import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
2424import * as NodeCrypto from "node:crypto";
2525
2626import * as AntigravityInstallation from "./AntigravityInstallation.ts";
apps/server/src/provider/AntigravityInstallation.ts+2-2
......@@ -23,8 +23,8 @@ import * as Scope from "effect/Scope";
2323import * as Semaphore from "effect/Semaphore";
2424import * as Stream from "effect/Stream";
2525import * as SubscriptionRef from "effect/SubscriptionRef";
26import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
27import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
26import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
27import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
2828import * as NodeCrypto from "node:crypto";
2929import * as NodeFSP from "node:fs/promises";
3030import type * as NodeStream from "node:stream";
apps/server/src/provider/CodexChatGptAuth.test.ts+1-1
......@@ -12,7 +12,7 @@ import * as Fiber from "effect/Fiber";
1212import * as Deferred from "effect/Deferred";
1313import * as TestClock from "effect/testing/TestClock";
1414import { subscribeChatGptHandoff } from "./CodexChatGptHandoff.ts";
15import { FetchHttpClient } from "effect/unstable/http";
15import { FetchHttpClient } from "effect/http";
1616import { exportJWK, generateKeyPair, SignJWT } from "jose";
1717import * as ServerSecretStore from "../auth/ServerSecretStore.ts";
1818import * as ServerEnvironment from "../environment/ServerEnvironment.ts";
apps/server/src/provider/CodexChatGptAuth.ts+1-1
......@@ -20,7 +20,7 @@ import * as Schema from "effect/Schema";
2020import * as Semaphore from "effect/Semaphore";
2121import * as ProviderAuthFlow from "./ProviderAuthFlow.ts";
2222import type { ProviderAuthFlowContext } from "./ProviderAuthFlow.ts";
23import { HttpClient, HttpClientRequest } from "effect/unstable/http";
23import { HttpClient, HttpClientRequest } from "effect/http";
2424import * as ProviderCredentialStore from "./ProviderCredentialStore.ts";
2525import { withChatGptSessionLock } from "./CodexChatGptSessionLock.ts";
2626import * as ServerSecretStore from "../auth/ServerSecretStore.ts";
apps/server/src/provider/CodexChatGptHandoff.ts+1-1
......@@ -3,7 +3,7 @@ import { ProviderSetupError } from "@t3tools/contracts";
33import * as Effect from "effect/Effect";
44import * as Option from "effect/Option";
55import * as Stream from "effect/Stream";
6import { FetchHttpClient } from "effect/unstable/http";
6import { FetchHttpClient } from "effect/http";
77import * as ServerSecretStore from "../auth/ServerSecretStore.ts";
88import * as ServerEnvironment from "../environment/ServerEnvironment.ts";
99import { makeCodexChatGptAuth } from "./CodexChatGptAuth.ts";
apps/server/src/provider/CodexChatGptModels.test.ts+1-1
......@@ -1,7 +1,7 @@
11// @effect-diagnostics preferSchemaOverJson:off - Mock HTTP responses use JSON fixtures.
22import { assert, it } from "@effect/vitest";
33import * as Effect from "effect/Effect";
4import { HttpClient, HttpClientResponse } from "effect/unstable/http";
4import { HttpClient, HttpClientResponse } from "effect/http";
55import { chatGptModels } from "./CodexChatGptModels.ts";
66
77it.effect(
apps/server/src/provider/CodexChatGptModels.ts+1-1
......@@ -1,7 +1,7 @@
11import type { ServerProviderModel } from "@t3tools/contracts";
22import * as Effect from "effect/Effect";
33import * as Schema from "effect/Schema";
4import { HttpClient, HttpClientRequest } from "effect/unstable/http";
4import { HttpClient, HttpClientRequest } from "effect/http";
55
66export class ChatGptCatalogError extends Schema.TaggedError<ChatGptCatalogError>()(
77 "ChatGptCatalogError",
apps/server/src/provider/CodexInstallation.test.ts+1-1
......@@ -13,7 +13,7 @@ import * as Option from "effect/Option";
1313import * as Exit from "effect/Exit";
1414import * as Scope from "effect/Scope";
1515import * as Stream from "effect/Stream";
16import { HttpClient, HttpClientResponse } from "effect/unstable/http";
16import { HttpClient, HttpClientResponse } from "effect/http";
1717import * as NodeCrypto from "node:crypto";
1818import * as CodexInstallation from "./CodexInstallation.ts";
1919
apps/server/src/provider/CodexInstallation.ts+2-2
......@@ -22,8 +22,8 @@ import * as Scope from "effect/Scope";
2222import * as Semaphore from "effect/Semaphore";
2323import * as Stream from "effect/Stream";
2424import * as SubscriptionRef from "effect/SubscriptionRef";
25import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
26import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
25import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
26import { ChildProcess, ChildProcessSpawner } from "effect/process";
2727import * as NodeCrypto from "node:crypto";
2828import * as ServerConfig from "../config.ts";
2929import * as ModelManifest from "./ModelManifest.ts";
apps/server/src/provider/CodexManagedRuntime.test.ts+1-1
......@@ -10,7 +10,7 @@ import * as Path from "effect/Path";
1010import * as Layer from "effect/Layer";
1111import * as Option from "effect/Option";
1212import * as Schema from "effect/Schema";
13import { HttpClient, HttpClientResponse } from "effect/unstable/http";
13import { HttpClient, HttpClientResponse } from "effect/http";
1414import * as ServerConfig from "../config.ts";
1515import * as ServerSecretStore from "../auth/ServerSecretStore.ts";
1616import * as ServerEnvironment from "../environment/ServerEnvironment.ts";
apps/server/src/provider/Drivers/AcpRegistryDriver.ts+1-1
......@@ -19,7 +19,7 @@ import * as Ref from "effect/Ref";
1919import * as Result from "effect/Result";
2020import * as Schema from "effect/Schema";
2121import * as Semaphore from "effect/Semaphore";
22import { ChildProcessSpawner } from "effect/unstable/process";
22import { ChildProcessSpawner } from "effect/process";
2323
2424import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts";
2525import * as ServerConfig from "../../config.ts";
apps/server/src/provider/Drivers/AntigravityDriver.test.ts+1-1
......@@ -19,7 +19,7 @@ import * as Layer from "effect/Layer";
1919import * as Path from "effect/Path";
2020import * as Schema from "effect/Schema";
2121import * as TestClock from "effect/testing/TestClock";
22import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
22import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
2323
2424import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts";
2525import * as ServerConfig from "../../config.ts";
apps/server/src/provider/Drivers/AntigravityDriver.ts+1-1
......@@ -15,7 +15,7 @@ import * as Path from "effect/Path";
1515import * as Schema from "effect/Schema";
1616import * as Scope from "effect/Scope";
1717import * as Stream from "effect/Stream";
18import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
18import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1919import type { AcpError } from "effect-acp/errors";
2020
2121import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts";
apps/server/src/provider/Drivers/ClaudeDriver.ts+2-2
......@@ -20,8 +20,8 @@ import * as Effect from "effect/Effect";
2020import * as FileSystem from "effect/FileSystem";
2121import * as Path from "effect/Path";
2222import * as Schema from "effect/Schema";
23import { HttpClient } from "effect/unstable/http";
24import { ChildProcessSpawner } from "effect/unstable/process";
23import { HttpClient } from "effect/http";
24import { ChildProcessSpawner } from "effect/process";
2525
2626import { makeClaudeTextGeneration } from "../../textGeneration/ClaudeTextGeneration.ts";
2727import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts";
apps/server/src/provider/Drivers/CodexDriver.test.ts+3-3
......@@ -18,9 +18,9 @@ import * as PlatformError from "effect/PlatformError";
1818import * as Schema from "effect/Schema";
1919import * as Sink from "effect/Sink";
2020import * as Stream from "effect/Stream";
21import { HttpClient, HttpClientResponse } from "effect/unstable/http";
22import * as ChildProcess from "effect/unstable/process/ChildProcess";
23import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
21import { HttpClient, HttpClientResponse } from "effect/http";
22import * as ChildProcess from "effect/process/ChildProcess";
23import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
2424
2525import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts";
2626import * as ServerConfig from "../../config.ts";
apps/server/src/provider/Drivers/CodexDriver.ts+2-2
......@@ -27,8 +27,8 @@ import * as Effect from "effect/Effect";
2727import * as FileSystem from "effect/FileSystem";
2828import * as Path from "effect/Path";
2929import * as Schema from "effect/Schema";
30import { HttpClient } from "effect/unstable/http";
31import { ChildProcessSpawner } from "effect/unstable/process";
30import { HttpClient } from "effect/http";
31import { ChildProcessSpawner } from "effect/process";
3232
3333import { makeCodexTextGeneration } from "../../textGeneration/CodexTextGeneration.ts";
3434import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts";
apps/server/src/provider/Drivers/CodexManagedProvider.ts+2-2
......@@ -2,7 +2,7 @@ import { ProviderDriverKind, TextGenerationError, type CodexSettings } from "@t3
22import * as Effect from "effect/Effect";
33import * as Stream from "effect/Stream";
44import * as Option from "effect/Option";
5import { ChildProcessSpawner } from "effect/unstable/process";
5import { ChildProcessSpawner } from "effect/process";
66import { makeCodexTextGeneration } from "../../textGeneration/CodexTextGeneration.ts";
77import { ServerSettingsService } from "../../serverSettings.ts";
88import { chatGptModels } from "../CodexChatGptModels.ts";
......@@ -19,7 +19,7 @@ import { mergeProviderInstanceEnvironment } from "../ProviderInstanceEnvironment
1919import { type ProviderDriverCreateInput, type ProviderInstance } from "../ProviderDriver.ts";
2020import { codexContinuationIdentity } from "./CodexHomeLayout.ts";
2121import { withInstanceIdentity } from "./instanceIdentity.ts";
22import { HttpClient } from "effect/unstable/http";
22import { HttpClient } from "effect/http";
2323const DRIVER = ProviderDriverKind.make("codex");
2424
2525export const makeManagedCodexProvider = Effect.fn("makeManagedCodexProvider")(function* (
apps/server/src/provider/Drivers/CursorDriver.test.ts+2-2
......@@ -8,8 +8,8 @@ import * as Layer from "effect/Layer";
88import * as Option from "effect/Option";
99import * as Stream from "effect/Stream";
1010import { vi } from "vite-plus/test";
11import { HttpClient } from "effect/unstable/http";
12import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
11import { HttpClient } from "effect/http";
12import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1313
1414import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts";
1515import * as ServerConfig from "../../config.ts";
apps/server/src/provider/Drivers/CursorDriver.ts+1-1
......@@ -12,7 +12,7 @@ import * as Crypto from "effect/Crypto";
1212import * as FileSystem from "effect/FileSystem";
1313import * as Path from "effect/Path";
1414import * as Schema from "effect/Schema";
15import { HttpClient } from "effect/unstable/http";
15import { HttpClient } from "effect/http";
1616import { readCursorUsageLimits } from "../Layers/cursorUsageLimits.ts";
1717
1818import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts";
apps/server/src/provider/Drivers/GrokDriver.test.ts+2-2
......@@ -6,8 +6,8 @@ import * as Effect from "effect/Effect";
66import * as FileSystem from "effect/FileSystem";
77import * as Layer from "effect/Layer";
88import * as Path from "effect/Path";
9import { HttpClient } from "effect/unstable/http";
10import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
9import { HttpClient } from "effect/http";
10import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1111
1212import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts";
1313import * as ServerConfig from "../../config.ts";
apps/server/src/provider/Drivers/GrokDriver.ts+2-2
......@@ -4,8 +4,8 @@ import * as Effect from "effect/Effect";
44import * as FileSystem from "effect/FileSystem";
55import * as Path from "effect/Path";
66import * as Schema from "effect/Schema";
7import { HttpClient } from "effect/unstable/http";
8import { ChildProcessSpawner } from "effect/unstable/process";
7import { HttpClient } from "effect/http";
8import { ChildProcessSpawner } from "effect/process";
99
1010import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts";
1111import * as ServerConfig from "../../config.ts";
apps/server/src/provider/Drivers/GrokSkills.test.ts+1-1
......@@ -2,7 +2,7 @@ import { describe, expect, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Sink from "effect/Sink";
44import * as Stream from "effect/Stream";
5import { ChildProcessSpawner } from "effect/unstable/process";
5import { ChildProcessSpawner } from "effect/process";
66
77import { discoverGrokSkills } from "./GrokSkills.ts";
88
apps/server/src/provider/Drivers/GrokSkills.ts+1-1
......@@ -19,7 +19,7 @@ import type { GrokSettings, ServerProviderSkill } from "@t3tools/contracts";
1919import * as Effect from "effect/Effect";
2020import * as Option from "effect/Option";
2121import * as Schema from "effect/Schema";
22import { ChildProcess } from "effect/unstable/process";
22import { ChildProcess } from "effect/process";
2323import { resolveSpawnCommand } from "@t3tools/shared/shell";
2424
2525import { spawnAndCollect } from "../providerSnapshot.ts";
apps/server/src/provider/Drivers/OpenCodeDriver.test.ts+2-2
......@@ -11,8 +11,8 @@ import * as Effect from "effect/Effect";
1111import * as Fiber from "effect/Fiber";
1212import * as Layer from "effect/Layer";
1313import * as TestClock from "effect/testing/TestClock";
14import { HttpClient } from "effect/unstable/http";
15import { ChildProcessSpawner } from "effect/unstable/process";
14import { HttpClient } from "effect/http";
15import { ChildProcessSpawner } from "effect/process";
1616
1717import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts";
1818import * as ServerConfig from "../../config.ts";
apps/server/src/provider/Drivers/OpenCodeDriver.ts+2-2
......@@ -21,8 +21,8 @@ import * as FileSystem from "effect/FileSystem";
2121import * as Path from "effect/Path";
2222import * as Schema from "effect/Schema";
2323import * as Stream from "effect/Stream";
24import { HttpClient } from "effect/unstable/http";
25import { ChildProcessSpawner } from "effect/unstable/process";
24import { HttpClient } from "effect/http";
25import { ChildProcessSpawner } from "effect/process";
2626
2727import * as OpenCode2TextGeneration from "../../textGeneration/OpenCode2TextGeneration.ts";
2828import { makeOpenCodeTextGeneration } from "../../textGeneration/OpenCodeTextGeneration.ts";
apps/server/src/provider/Drivers/PiDriver.ts+2-2
......@@ -11,8 +11,8 @@ import * as Effect from "effect/Effect";
1111import * as FileSystem from "effect/FileSystem";
1212import * as Path from "effect/Path";
1313import * as Schema from "effect/Schema";
14import { HttpClient } from "effect/unstable/http";
15import { ChildProcessSpawner } from "effect/unstable/process";
14import { HttpClient } from "effect/http";
15import { ChildProcessSpawner } from "effect/process";
1616
1717import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts";
1818import * as ServerConfig from "../../config.ts";
apps/server/src/provider/Layers/ClaudeProvider.ts+1-1
......@@ -12,7 +12,7 @@ import * as Option from "effect/Option";
1212import * as Path from "effect/Path";
1313import * as Ref from "effect/Ref";
1414import * as Result from "effect/Result";
15import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
15import { ChildProcess, ChildProcessSpawner } from "effect/process";
1616import { createModelCapabilities } from "@t3tools/shared/model";
1717import { resolveSpawnCommand } from "@t3tools/shared/shell";
1818import {
apps/server/src/provider/Layers/CodexProvider.ts+2-2
......@@ -7,8 +7,8 @@ import * as Result from "effect/Result";
77import * as Schema from "effect/Schema";
88import * as Scope from "effect/Scope";
99import * as Types from "effect/Types";
10import * as ChildProcess from "effect/unstable/process/ChildProcess";
11import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
10import * as ChildProcess from "effect/process/ChildProcess";
11import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1212import * as CodexClient from "effect-codex-app-server/client";
1313import * as CodexSchema from "effect-codex-app-server/schema";
1414import * as CodexErrors from "effect-codex-app-server/errors";
apps/server/src/provider/Layers/GrokProvider.test.ts+1-1
......@@ -7,7 +7,7 @@ import { describe, expect, it } from "@effect/vitest";
77import * as Effect from "effect/Effect";
88import * as FileSystem from "effect/FileSystem";
99import * as Schema from "effect/Schema";
10import { HttpClient, HttpClientResponse } from "effect/unstable/http";
10import { HttpClient, HttpClientResponse } from "effect/http";
1111import { GrokSettings } from "@t3tools/contracts";
1212
1313import {
apps/server/src/provider/Layers/GrokProvider.ts+2-2
......@@ -16,8 +16,8 @@ import * as Exit from "effect/Exit";
1616import * as Option from "effect/Option";
1717import * as Result from "effect/Result";
1818import * as Schema from "effect/Schema";
19import { HttpClient } from "effect/unstable/http";
20import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
19import { HttpClient } from "effect/http";
20import { ChildProcess, ChildProcessSpawner } from "effect/process";
2121import { createModelCapabilities } from "@t3tools/shared/model";
2222import { resolveSpawnCommand } from "@t3tools/shared/shell";
2323
apps/server/src/provider/Layers/OpenCodeProvider.test.ts+1-1
......@@ -10,7 +10,7 @@ import * as FileSystem from "effect/FileSystem";
1010import * as Layer from "effect/Layer";
1111import * as Schema from "effect/Schema";
1212import * as TestClock from "effect/testing/TestClock";
13import { HttpClient, HttpClientResponse } from "effect/unstable/http";
13import { HttpClient, HttpClientResponse } from "effect/http";
1414import { beforeEach } from "vite-plus/test";
1515
1616import { OpenCodeSettings } from "@t3tools/contracts";
apps/server/src/provider/Layers/PiProvider.test.ts+1-1
......@@ -3,7 +3,7 @@ import { assert, describe, it } from "@effect/vitest";
33import * as Effect from "effect/Effect";
44import * as Sink from "effect/Sink";
55import * as Stream from "effect/Stream";
6import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
6import { ChildProcess, ChildProcessSpawner } from "effect/process";
77
88import { checkPiProviderStatus, MINIMUM_PI_VERSION } from "./PiProvider.ts";
99
apps/server/src/provider/Layers/PiProvider.ts+2-2
......@@ -23,8 +23,8 @@ import * as Stream from "effect/Stream";
2323import * as Exit from "effect/Exit";
2424import * as Option from "effect/Option";
2525import * as Result from "effect/Result";
26import { HttpClient } from "effect/unstable/http";
27import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
26import { HttpClient } from "effect/http";
27import { ChildProcess, ChildProcessSpawner } from "effect/process";
2828
2929import {
3030 buildPiRpcLaunch,
apps/server/src/provider/Layers/ProviderInstanceRegistryLive.test.ts+1-1
......@@ -45,7 +45,7 @@ import * as FileSystem from "effect/FileSystem";
4545import * as Layer from "effect/Layer";
4646import * as Path from "effect/Path";
4747import * as Stream from "effect/Stream";
48import { HttpClient, HttpClientResponse } from "effect/unstable/http";
48import { HttpClient, HttpClientResponse } from "effect/http";
4949
5050import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts";
5151import * as AntigravityInstallation from "../AntigravityInstallation.ts";
apps/server/src/provider/Layers/ProviderRegistry.test.ts+2-2
......@@ -31,8 +31,8 @@ import {
3131 type ServerSettings as ContractServerSettings,
3232} from "@t3tools/contracts";
3333import * as PlatformError from "effect/PlatformError";
34import { HttpClient, HttpClientResponse } from "effect/unstable/http";
35import { ChildProcessSpawner } from "effect/unstable/process";
34import { HttpClient, HttpClientResponse } from "effect/http";
35import { ChildProcessSpawner } from "effect/process";
3636import { deepMerge } from "@t3tools/shared/Struct";
3737import { createModelCapabilities } from "@t3tools/shared/model";
3838import { applyServerSettingsPatch } from "@t3tools/shared/serverSettings";
apps/server/src/provider/Layers/claudeResetCredits.test.ts+1-1
......@@ -8,7 +8,7 @@ import * as Fiber from "effect/Fiber";
88import * as Path from "effect/Path";
99import * as Schema from "effect/Schema";
1010import * as TestClock from "effect/testing/TestClock";
11import { HttpClient, HttpClientResponse, UrlParams } from "effect/unstable/http";
11import { HttpClient, HttpClientResponse, UrlParams } from "effect/http";
1212import { describe, expect, it } from "vite-plus/test";
1313
1414import * as ClaudeResetCredits from "./claudeResetCredits.ts";
apps/server/src/provider/Layers/claudeResetCredits.ts+1-1
......@@ -19,7 +19,7 @@ import * as FileSystem from "effect/FileSystem";
1919import * as Option from "effect/Option";
2020import * as Path from "effect/Path";
2121import * as Schema from "effect/Schema";
22import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
22import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
2323
2424const API_BASE = "https://api.anthropic.com";
2525const PROGRAM = "cedar_ember";
apps/server/src/provider/Layers/cursorUsageLimits.test.ts+1-1
......@@ -4,7 +4,7 @@ import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
44import * as Effect from "effect/Effect";
55import * as FileSystem from "effect/FileSystem";
66import * as Path from "effect/Path";
7import { HttpClient, HttpClientResponse } from "effect/unstable/http";
7import { HttpClient, HttpClientResponse } from "effect/http";
88import { cursorUsageResponseToLimits, readCursorUsageLimits } from "./cursorUsageLimits.ts";
99
1010const withNodeServices = <A, E>(effect: Effect.Effect<A, E, FileSystem.FileSystem | Path.Path>) =>
apps/server/src/provider/Layers/cursorUsageLimits.ts+1-1
......@@ -8,7 +8,7 @@ import * as FileSystem from "effect/FileSystem";
88import * as Option from "effect/Option";
99import * as Path from "effect/Path";
1010import * as Schema from "effect/Schema";
11import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
11import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
1212import {
1313 clampPercent,
1414 makeUnavailableUsageLimits,
apps/server/src/provider/Layers/grokUsageLimits.ts+1-1
......@@ -6,7 +6,7 @@ import * as FileSystem from "effect/FileSystem";
66import * as Option from "effect/Option";
77import * as Path from "effect/Path";
88import * as Schema from "effect/Schema";
9import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
9import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
1010import {
1111 clampPercent,
1212 makeUnavailableUsageLimits,
apps/server/src/provider/Layers/openCodeUsageLimits.ts+1-1
......@@ -8,7 +8,7 @@ import * as FileSystem from "effect/FileSystem";
88import * as Option from "effect/Option";
99import * as Path from "effect/Path";
1010import * as Schema from "effect/Schema";
11import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
11import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
1212
1313import {
1414 clampPercent,
apps/server/src/provider/ModelManifest.test.ts+1-1
......@@ -6,7 +6,7 @@ import * as FileSystem from "effect/FileSystem";
66import * as Layer from "effect/Layer";
77import * as Path from "effect/Path";
88import * as TestClock from "effect/testing/TestClock";
9import { HttpClient, HttpClientResponse } from "effect/unstable/http";
9import { HttpClient, HttpClientResponse } from "effect/http";
1010
1111import * as ServerConfig from "../config.ts";
1212import * as ServerSettings from "../serverSettings.ts";
apps/server/src/provider/ModelManifest.ts+1-1
......@@ -28,7 +28,7 @@ import * as Layer from "effect/Layer";
2828import * as Path from "effect/Path";
2929import * as Schema from "effect/Schema";
3030import * as Semaphore from "effect/Semaphore";
31import { HttpClient, HttpClientResponse } from "effect/unstable/http";
31import { HttpClient, HttpClientResponse } from "effect/http";
3232
3333import { ServerConfig } from "../config.ts";
3434import * as ServerSettings from "../serverSettings.ts";
apps/server/src/provider/OpenCodeServerLedger.test.ts+1-1
......@@ -12,7 +12,7 @@ import * as FileSystem from "effect/FileSystem";
1212import * as Layer from "effect/Layer";
1313import * as Path from "effect/Path";
1414import * as Scope from "effect/Scope";
15import { ChildProcessSpawner } from "effect/unstable/process";
15import { ChildProcessSpawner } from "effect/process";
1616
1717import * as OpenCodeRuntime from "./opencodeRuntime.ts";
1818import * as OpenCodeServerLedger from "./OpenCodeServerLedger.ts";
apps/server/src/provider/OpenCodeServerLedger.ts+1-1
......@@ -6,7 +6,7 @@ import * as Layer from "effect/Layer";
66import * as Option from "effect/Option";
77import * as Path from "effect/Path";
88import * as Schema from "effect/Schema";
9import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
9import { ChildProcess, ChildProcessSpawner } from "effect/process";
1010
1111import * as ServerConfig from "../config.ts";
1212import { signalProcessGroup } from "../process/processGroup.ts";
apps/server/src/provider/acp/AcpClientTerminals.test.ts+1-1
......@@ -2,7 +2,7 @@ import * as NodeServices from "@effect/platform-node/NodeServices";
22import { describe, expect, it } from "@effect/vitest";
33import * as Effect from "effect/Effect";
44import * as Result from "effect/Result";
5import { ChildProcessSpawner } from "effect/unstable/process";
5import { ChildProcessSpawner } from "effect/process";
66
77import {
88 makeAcpClientTerminals,
apps/server/src/provider/acp/AcpClientTerminals.ts+1-1
......@@ -6,7 +6,7 @@ import * as Fiber from "effect/Fiber";
66import * as Scope from "effect/Scope";
77import * as Semaphore from "effect/Semaphore";
88import * as Stream from "effect/Stream";
9import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
9import { ChildProcess, ChildProcessSpawner } from "effect/process";
1010import * as EffectAcpErrors from "effect-acp/errors";
1111import type * as EffectAcpSchema from "effect-acp/compat";
1212import * as NodeBuffer from "node:buffer";
apps/server/src/provider/acp/AcpRegistryAuth.ts+1-1
......@@ -12,7 +12,7 @@ import * as Layer from "effect/Layer";
1212import * as Option from "effect/Option";
1313import * as Queue from "effect/Queue";
1414import * as Scope from "effect/Scope";
15import { ChildProcessSpawner } from "effect/unstable/process";
15import { ChildProcessSpawner } from "effect/process";
1616import type * as AcpSchema from "effect-acp/compat";
1717
1818import * as PtyAdapter from "../../terminal/PtyAdapter.ts";
apps/server/src/provider/acp/AcpRegistryProbe.ts+1-1
......@@ -19,7 +19,7 @@ import * as Layer from "effect/Layer";
1919import * as Option from "effect/Option";
2020import * as Ref from "effect/Ref";
2121import * as Result from "effect/Result";
22import { ChildProcessSpawner } from "effect/unstable/process";
22import { ChildProcessSpawner } from "effect/process";
2323import type * as EffectAcpErrors from "effect-acp/errors";
2424import type * as EffectAcpSchema from "effect-acp/compat";
2525
apps/server/src/provider/acp/AcpRegistrySupport.test.ts+2-2
......@@ -14,10 +14,10 @@ import * as Path from "effect/Path";
1414import * as Fiber from "effect/Fiber";
1515import * as Layer from "effect/Layer";
1616import * as Schema from "effect/Schema";
17import { HttpClient, HttpClientResponse } from "effect/unstable/http";
17import { HttpClient, HttpClientResponse } from "effect/http";
1818import * as TestClock from "effect/testing/TestClock";
1919import * as NodeCrypto from "node:crypto";
20import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
20import { ChildProcess, ChildProcessSpawner } from "effect/process";
2121
2222import * as AcpRegistrySupport from "./AcpRegistrySupport.ts";
2323import * as ServerSettings from "../../serverSettings.ts";
apps/server/src/provider/acp/AcpRegistrySupport.ts+2-2
......@@ -35,8 +35,8 @@ import * as Ref from "effect/Ref";
3535import * as Schema from "effect/Schema";
3636import * as Semaphore from "effect/Semaphore";
3737import * as Stream from "effect/Stream";
38import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
39import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
38import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
39import { ChildProcess, ChildProcessSpawner } from "effect/process";
4040import * as NodeCrypto from "node:crypto";
4141
4242import { collectUint8StreamText } from "../../stream/collectUint8StreamText.ts";
apps/server/src/provider/acp/AcpSessionRuntime.ts+4-3
......@@ -20,8 +20,8 @@ import * as Schema from "effect/Schema";
2020import * as Scope from "effect/Scope";
2121import * as Semaphore from "effect/Semaphore";
2222import * as Stream from "effect/Stream";
23import * as ChildProcess from "effect/unstable/process/ChildProcess";
24import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
23import * as ChildProcess from "effect/process/ChildProcess";
24import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
2525import * as EffectAcpClient from "effect-acp/client";
2626import * as EffectAcpErrors from "effect-acp/errors";
2727import type * as EffectAcpSchema from "effect-acp/compat";
......@@ -1387,7 +1387,8 @@ export const make = (
13871387 Effect.gen(function* () {
13881388 const crypto = yield* Crypto.Crypto;
13891389 const spawner = yield* ChildProcessSpawner.ChildProcessSpawner;
1390 const runtimeScope = yield* Scope.Scope;
1390 // A child of the caller's scope, so termination can close the runtime without closing the caller's.
1391 const runtimeScope = yield* Scope.fork(yield* Scope.Scope);
13911392 const eventQueue = yield* Queue.unbounded<AcpSessionRuntimeEvent>();
13921393 const modeStateRef = yield* Ref.make<AcpSessionModeState | undefined>(undefined);
13931394 const toolCallsRef = yield* Ref.make(new Map<string, AcpToolCallTrackedState>());
apps/server/src/provider/acp/AntigravityAcpSupport.ts+1-1
......@@ -13,7 +13,7 @@ import * as Layer from "effect/Layer";
1313import * as Path from "effect/Path";
1414import * as Scope from "effect/Scope";
1515import * as Stream from "effect/Stream";
16import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
16import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1717import * as EffectAcpErrors from "effect-acp/errors";
1818import type * as EffectAcpSchema from "effect-acp/compat";
1919
apps/server/src/provider/acp/GrokAcpCliProbe.test.ts+1-1
......@@ -15,7 +15,7 @@ import * as Deferred from "effect/Deferred";
1515import * as Fiber from "effect/Fiber";
1616import * as FileSystem from "effect/FileSystem";
1717import * as Stream from "effect/Stream";
18import { ChildProcessSpawner } from "effect/unstable/process";
18import { ChildProcessSpawner } from "effect/process";
1919import { describe, expect } from "vite-plus/test";
2020
2121import { makeGrokAcpRuntime } from "./GrokAcpSupport.ts";
apps/server/src/provider/acp/GrokAcpSupport.ts+1-1
......@@ -10,7 +10,7 @@ import * as Crypto from "effect/Crypto";
1010import * as Effect from "effect/Effect";
1111import * as Layer from "effect/Layer";
1212import * as Scope from "effect/Scope";
13import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
13import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1414import * as EffectAcpErrors from "effect-acp/errors";
1515import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
1616import { normalizeModelSlug } from "@t3tools/shared/model";
apps/server/src/provider/antigravityAuthSupport.test.ts+3-3
......@@ -18,9 +18,9 @@ import * as Path from "effect/Path";
1818import * as Result from "effect/Result";
1919import * as Schema from "effect/Schema";
2020import * as Stream from "effect/Stream";
21import * as Ndjson from "effect/unstable/encoding/Ndjson";
22import * as ChildProcess from "effect/unstable/process/ChildProcess";
23import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
21import * as Ndjson from "effect/encoding/Ndjson";
22import * as ChildProcess from "effect/process/ChildProcess";
23import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
2424import * as AcpErrors from "effect-acp/errors";
2525import { symlinksSupported } from "@t3tools/shared/testing/symlinks";
2626
apps/server/src/provider/antigravityAuthSupport.ts+4-6
......@@ -6,14 +6,14 @@ import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
66import { resolveNodeExecutable, nodeRuntimeUnavailableMessage } from "@t3tools/shared/nodeRuntime";
77import * as Crypto from "effect/Crypto";
88import * as Effect from "effect/Effect";
9import * as Encoding from "effect/Encoding";
9import * as Hex from "effect/encoding/Hex";
1010import * as FileSystem from "effect/FileSystem";
1111import * as Path from "effect/Path";
1212import type * as PlatformError from "effect/PlatformError";
1313import * as Schema from "effect/Schema";
1414import * as Stream from "effect/Stream";
15import * as ChildProcess from "effect/unstable/process/ChildProcess";
16import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
15import * as ChildProcess from "effect/process/ChildProcess";
16import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1717import * as AcpErrors from "effect-acp/errors";
1818
1919import { collectUint8StreamText } from "../stream/collectUint8StreamText.ts";
......@@ -202,9 +202,7 @@ export const resolveAntigravityInstanceDirectories = Effect.fn(
202202)(function* (stateDir: string, instanceId: ProviderInstanceId) {
203203 const crypto = yield* Crypto.Crypto;
204204 const path = yield* Path.Path;
205 const key = Encoding.encodeHex(
206 yield* crypto.digest("SHA-256", new TextEncoder().encode(instanceId)),
207 );
205 const key = Hex.encode(yield* crypto.digest("SHA-256", new TextEncoder().encode(instanceId)));
208206 return {
209207 profile: path.join(stateDir, "providers", "antigravity", key),
210208 runtimeTemp: path.join(stateDir, "antigravity-tmp", key.slice(0, 12)),
apps/server/src/provider/opencode2/OpenCode2Client.events.test.ts+1-1
......@@ -7,7 +7,7 @@ import * as Layer from "effect/Layer";
77import * as Schema from "effect/Schema";
88import * as Stream from "effect/Stream";
99import { TestClock } from "effect/testing";
10import { HttpClient, HttpClientResponse } from "effect/unstable/http";
10import { HttpClient, HttpClientResponse } from "effect/http";
1111import { describe } from "vite-plus/test";
1212
1313import * as OpenCode2Client from "./OpenCode2Client.ts";
apps/server/src/provider/opencode2/OpenCode2Client.live.test.ts+5-5
......@@ -11,7 +11,7 @@ import * as NodeServices from "@effect/platform-node/NodeServices";
1111import { AbsolutePath, Location, Model, Provider } from "@opencode/client/effect";
1212import { assert, it } from "@effect/vitest";
1313import * as Effect from "effect/Effect";
14import * as Encoding from "effect/Encoding";
14import * as Base64Url from "effect/encoding/Base64Url";
1515import * as Fiber from "effect/Fiber";
1616import * as FileSystem from "effect/FileSystem";
1717import * as Filter from "effect/Filter";
......@@ -19,8 +19,8 @@ import * as Layer from "effect/Layer";
1919import * as Option from "effect/Option";
2020import * as Path from "effect/Path";
2121import * as Stream from "effect/Stream";
22import { FetchHttpClient } from "effect/unstable/http";
23import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
22import { FetchHttpClient } from "effect/http";
23import { ChildProcess, ChildProcessSpawner } from "effect/process";
2424import * as NodeCrypto from "node:crypto";
2525import { describe } from "vite-plus/test";
2626
......@@ -36,7 +36,7 @@ const startServer = Effect.fn("OpenCode2ClientLive.startServer")(function* (bina
3636 const directory = path.join(root, "work");
3737 yield* fs.makeDirectory(directory);
3838 // Non-ASCII on purpose: OpenCode decodes Basic credentials as UTF-8.
39 const password = `${Encoding.encodeBase64Url(NodeCrypto.randomBytes(32))}-pässwörd€`;
39 const password = `${Base64Url.encode(NodeCrypto.randomBytes(32))}-pässwörd€`;
4040 const child = yield* spawner.spawn(
4141 ChildProcess.make(binary, ["serve", "--hostname=127.0.0.1", "--port=0"], {
4242 cwd: directory,
......@@ -89,7 +89,7 @@ describe.runIf(binaryPath !== undefined)("OpenCode2Client live", () => {
8989 });
9090
9191 const info = yield* client.server.info();
92 assert.strictEqual(info.version, "2.0.18");
92 assert.strictEqual(info.version, "2.0.23");
9393 assert.strictEqual(info.pid, server.pid);
9494
9595 const session = yield* client.session.create({
apps/server/src/provider/opencode2/OpenCode2Client.test.ts+1-1
......@@ -2,7 +2,7 @@ import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
44import * as Redacted from "effect/Redacted";
5import { HttpClient, HttpClientResponse } from "effect/unstable/http";
5import { HttpClient, HttpClientResponse } from "effect/http";
66import { describe } from "vite-plus/test";
77
88import * as OpenCode2Client from "./OpenCode2Client.ts";
apps/server/src/provider/opencode2/OpenCode2Client.ts+5-5
......@@ -8,11 +8,11 @@ import * as Redacted from "effect/Redacted";
88import * as Result from "effect/Result";
99import * as Schema from "effect/Schema";
1010import * as Stream from "effect/Stream";
11import * as Sse from "effect/unstable/encoding/Sse";
12import * as HttpClient from "effect/unstable/http/HttpClient";
13import * as HttpClientError from "effect/unstable/http/HttpClientError";
14import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
15import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
11import * as Sse from "effect/encoding/Sse";
12import * as HttpClient from "effect/http/HttpClient";
13import * as HttpClientError from "effect/http/HttpClientError";
14import * as HttpClientRequest from "effect/http/HttpClientRequest";
15import * as HttpClientResponse from "effect/http/HttpClientResponse";
1616
1717/** OpenCode 2 accepts only HTTP Basic auth, always with this user name. */
1818const OPENCODE_USERNAME = "opencode";
apps/server/src/provider/opencode2/OpenCode2Server.live.test.ts+2-2
......@@ -19,8 +19,8 @@ import * as Path from "effect/Path";
1919import * as Redacted from "effect/Redacted";
2020import * as Scope from "effect/Scope";
2121import * as Stream from "effect/Stream";
22import { FetchHttpClient } from "effect/unstable/http";
23import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
22import { FetchHttpClient } from "effect/http";
23import { ChildProcess, ChildProcessSpawner } from "effect/process";
2424import { describe } from "vite-plus/test";
2525
2626import * as OpenCodeRuntime from "../opencodeRuntime.ts";
apps/server/src/provider/opencode2/OpenCode2Server.test.ts+1-1
......@@ -12,7 +12,7 @@ import * as Layer from "effect/Layer";
1212import * as Path from "effect/Path";
1313import * as Redacted from "effect/Redacted";
1414import * as TestClock from "effect/testing/TestClock";
15import { FetchHttpClient, HttpClient, HttpClientResponse } from "effect/unstable/http";
15import { FetchHttpClient, HttpClient, HttpClientResponse } from "effect/http";
1616import { describe } from "vite-plus/test";
1717
1818import * as OpenCodeRuntime from "../opencodeRuntime.ts";
apps/server/src/provider/opencode2/OpenCode2Server.ts+3-3
......@@ -9,11 +9,11 @@ import type { OpenCodeClient } from "@opencode/client/effect";
99import * as Context from "effect/Context";
1010import * as Crypto from "effect/Crypto";
1111import * as Effect from "effect/Effect";
12import * as Encoding from "effect/Encoding";
12import * as Base64Url from "effect/encoding/Base64Url";
1313import * as Layer from "effect/Layer";
1414import * as P from "effect/Predicate";
1515import * as Redacted from "effect/Redacted";
16import * as HttpClientError from "effect/unstable/http/HttpClientError";
16import * as HttpClientError from "effect/http/HttpClientError";
1717
1818import { OpenCodeRuntimeError } from "../opencodeRuntime.ts";
1919import * as OpenCodeServerOwner from "../OpenCodeServerOwner.ts";
......@@ -45,7 +45,7 @@ export class OpenCode2Server extends Context.Service<
4545export const generatePassword = Effect.gen(function* () {
4646 const crypto = yield* Crypto.Crypto;
4747 const bytes = yield* crypto.randomBytes(32).pipe(Effect.orDie);
48 return Redacted.make(Encoding.encodeBase64Url(bytes), { label: "OPENCODE_PASSWORD" });
48 return Redacted.make(Base64Url.encode(bytes), { label: "OPENCODE_PASSWORD" });
4949});
5050
5151/**
apps/server/src/provider/opencodeRuntime.environment.test.ts+1-1
......@@ -12,7 +12,7 @@ import * as FileSystem from "effect/FileSystem";
1212import * as Layer from "effect/Layer";
1313import * as Path from "effect/Path";
1414import * as TestClock from "effect/testing/TestClock";
15import { FetchHttpClient, HttpClient } from "effect/unstable/http";
15import { FetchHttpClient, HttpClient } from "effect/http";
1616import { describe, expect, it } from "vite-plus/test";
1717
1818import * as OpenCodeRuntime from "./opencodeRuntime.ts";
apps/server/src/provider/opencodeRuntime.ts+1-1
......@@ -28,7 +28,7 @@ import * as Result from "effect/Result";
2828import * as Scope from "effect/Scope";
2929import * as Schema from "effect/Schema";
3030import * as Stream from "effect/Stream";
31import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
31import { ChildProcess, ChildProcessSpawner } from "effect/process";
3232
3333import { signalProcessGroup } from "../process/processGroup.ts";
3434import { isWindowsCommandNotFound } from "../processRunner.ts";
apps/server/src/provider/opencodeVersionProbe.test.ts+1-1
......@@ -1,6 +1,6 @@
11import { assert, describe, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
3import { HttpClient, HttpClientError, HttpClientRequest } from "effect/unstable/http";
3import { HttpClient, HttpClientError, HttpClientRequest } from "effect/http";
44
55import * as OpenCodeRuntime from "./opencodeRuntime.ts";
66import {
apps/server/src/provider/opencodeVersionProbe.ts+1-1
......@@ -6,7 +6,7 @@ import * as Effect from "effect/Effect";
66import * as Exit from "effect/Exit";
77import * as Option from "effect/Option";
88import * as Schema from "effect/Schema";
9import { HttpClient, HttpClientRequest } from "effect/unstable/http";
9import { HttpClient, HttpClientRequest } from "effect/http";
1010
1111import * as OpenCodeRuntime from "./opencodeRuntime.ts";
1212import { parseGenericCliVersion } from "./providerSnapshot.ts";
apps/server/src/provider/providerMaintenance.test.ts+2-2
......@@ -11,8 +11,8 @@ import * as Crypto from "effect/Crypto";
1111import * as Effect from "effect/Effect";
1212import * as Sink from "effect/Sink";
1313import * as Stream from "effect/Stream";
14import { HttpClient } from "effect/unstable/http";
15import { ChildProcessSpawner } from "effect/unstable/process";
14import { HttpClient } from "effect/http";
15import { ChildProcessSpawner } from "effect/process";
1616import {
1717 createProviderVersionAdvisory,
1818 makeTargetedProviderUpdateAction,
apps/server/src/provider/providerMaintenance.ts+2-2
......@@ -17,8 +17,8 @@ import * as Option from "effect/Option";
1717import * as Path from "effect/Path";
1818import * as Schema from "effect/Schema";
1919import * as Stream from "effect/Stream";
20import { HttpClient, HttpClientRequest } from "effect/unstable/http";
21import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
20import { HttpClient, HttpClientRequest } from "effect/http";
21import { ChildProcess, ChildProcessSpawner } from "effect/process";
2222
2323import { collectUint8StreamText } from "../stream/collectUint8StreamText.ts";
2424
apps/server/src/provider/providerMaintenanceRunner.test.ts+2-2
......@@ -15,8 +15,8 @@ import * as Ref from "effect/Ref";
1515import * as Schema from "effect/Schema";
1616import * as Sink from "effect/Sink";
1717import * as Stream from "effect/Stream";
18import { HttpClient, HttpClientResponse } from "effect/unstable/http";
19import { ChildProcessSpawner } from "effect/unstable/process";
18import { HttpClient, HttpClientResponse } from "effect/http";
19import { ChildProcessSpawner } from "effect/process";
2020import { HostProcessEnvironment, HostProcessPlatform } from "@t3tools/shared/hostProcess";
2121import { SpawnExecutableResolution } from "@t3tools/shared/shell";
2222
apps/server/src/provider/providerMaintenanceRunner.ts+2-2
......@@ -18,8 +18,8 @@ import * as Layer from "effect/Layer";
1818import * as Option from "effect/Option";
1919import * as Ref from "effect/Ref";
2020import * as Schema from "effect/Schema";
21import { HttpClient } from "effect/unstable/http";
22import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
21import { HttpClient } from "effect/http";
22import { ChildProcess, ChildProcessSpawner } from "effect/process";
2323
2424import * as ModelManifest from "./ModelManifest.ts";
2525import { resolveProviderCompatibility } from "./providerCompatibility.ts";
apps/server/src/provider/providerSnapshot.test.ts+1-1
......@@ -7,7 +7,7 @@ import * as Layer from "effect/Layer";
77import * as PlatformError from "effect/PlatformError";
88import * as Sink from "effect/Sink";
99import * as Stream from "effect/Stream";
10import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
10import { ChildProcess, ChildProcessSpawner } from "effect/process";
1111
1212import {
1313 isCommandMissingCause,
apps/server/src/provider/providerSnapshot.ts+1-1
......@@ -15,7 +15,7 @@ import * as Effect from "effect/Effect";
1515import * as PlatformError from "effect/PlatformError";
1616import * as Schema from "effect/Schema";
1717import * as Stream from "effect/Stream";
18import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
18import { ChildProcess, ChildProcessSpawner } from "effect/process";
1919import { readCustomModelEntries } from "@t3tools/shared/model";
2020import { isWindowsCommandNotFound } from "../processRunner.ts";
2121import { createProviderVersionAdvisory } from "./providerMaintenance.ts";
apps/server/src/provider/testFixtures/opencodeProbeResponses.ts+1-1
......@@ -3,7 +3,7 @@
33 * `HttpClient` so the version probe runs against real bytes.
44 */
55import * as Effect from "effect/Effect";
6import { HttpClient, HttpClientResponse } from "effect/unstable/http";
6import { HttpClient, HttpClientResponse } from "effect/http";
77
88interface RecordedResponse {
99 readonly status: number;
apps/server/src/pullRequest/AzureDevOpsPullRequestCli.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { afterEach, assert, expect, it, vi } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import { ChildProcessSpawner } from "effect/unstable/process";
4import { ChildProcessSpawner } from "effect/process";
55
66import * as AzureDevOpsCli from "../sourceControl/AzureDevOpsCli.ts";
77import * as AzureDevOpsPullRequestCli from "./AzureDevOpsPullRequestCli.ts";
apps/server/src/pullRequest/GitHubPullRequestCli.test.ts+1-1
......@@ -6,7 +6,7 @@ import * as Fiber from "effect/Fiber";
66import * as Layer from "effect/Layer";
77import * as Schema from "effect/Schema";
88import * as TestClock from "effect/testing/TestClock";
9import { ChildProcessSpawner } from "effect/unstable/process";
9import { ChildProcessSpawner } from "effect/process";
1010
1111import * as GitHubCli from "../sourceControl/GitHubCli.ts";
1212import * as VcsProcess from "../vcs/VcsProcess.ts";
apps/server/src/pullRequest/GitLabPullRequestCli.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { afterEach, assert, expect, it, vi } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import { ChildProcessSpawner } from "effect/unstable/process";
4import { ChildProcessSpawner } from "effect/process";
55
66import * as GitLabCli from "../sourceControl/GitLabCli.ts";
77import * as GitLabPullRequestCli from "./GitLabPullRequestCli.ts";
apps/server/src/pullRequest/PullRequestReadCache.test.ts+1-1
......@@ -6,7 +6,7 @@ import * as Effect from "effect/Effect";
66import * as Fiber from "effect/Fiber";
77import * as FileSystem from "effect/FileSystem";
88import * as TestClock from "effect/testing/TestClock";
9import * as KeyValueStore from "effect/unstable/persistence/KeyValueStore";
9import * as KeyValueStore from "effect/persistence/KeyValueStore";
1010import * as PullRequestReadCache from "./PullRequestReadCache.ts";
1111
1212const cacheLayer = (directory: string) =>
apps/server/src/pullRequest/PullRequestReadCache.ts+6-6
......@@ -4,7 +4,7 @@ import * as Equal from "effect/Equal";
44import * as Hash from "effect/Hash";
55import { PullRequestOperationError, PullRequestUnavailableError } from "@t3tools/contracts";
66import * as Crypto from "effect/Crypto";
7import * as Encoding from "effect/Encoding";
7import * as Hex from "effect/encoding/Hex";
88import * as Context from "effect/Context";
99import * as Duration from "effect/Duration";
1010import * as Effect from "effect/Effect";
......@@ -13,10 +13,10 @@ import * as Layer from "effect/Layer";
1313import * as Path from "effect/Path";
1414import * as Schema from "effect/Schema";
1515import * as Semaphore from "effect/Semaphore";
16import * as KeyValueStore from "effect/unstable/persistence/KeyValueStore";
17import * as Persistable from "effect/unstable/persistence/Persistable";
18import * as PersistedCache from "effect/unstable/persistence/PersistedCache";
19import * as Persistence from "effect/unstable/persistence/Persistence";
16import * as KeyValueStore from "effect/persistence/KeyValueStore";
17import * as Persistable from "effect/persistence/Persistable";
18import * as PersistedCache from "effect/persistence/PersistedCache";
19import * as Persistence from "effect/persistence/Persistence";
2020import * as ServerConfig from "../config.ts";
2121
2222const CONCURRENT_READS = 512;
......@@ -72,7 +72,7 @@ export const make = Effect.gen(function* () {
7272 let enabled = true;
7373 const lock = yield* Semaphore.make(CONCURRENT_READS);
7474 const digest = (key: string) =>
75 crypto.digest("SHA-256", new TextEncoder().encode(key)).pipe(Effect.map(Encoding.encodeHex));
75 crypto.digest("SHA-256", new TextEncoder().encode(key)).pipe(Effect.map(Hex.encode));
7676 const revisions = yield* Cache.makeWith(
7777 () =>
7878 backing
apps/server/src/pullRequest/PullRequestService.test.ts+2-2
......@@ -1,6 +1,6 @@
11import * as NodeServices from "@effect/platform-node/NodeServices";
2import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
3import * as KeyValueStore from "effect/unstable/persistence/KeyValueStore";
2import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
3import * as KeyValueStore from "effect/persistence/KeyValueStore";
44import { assert, it } from "@effect/vitest";
55import * as Cause from "effect/Cause";
66import * as Clock from "effect/Clock";
apps/server/src/pullRequest/gitHubConditionalChecks.test.ts+1-1
......@@ -4,7 +4,7 @@ import * as Effect from "effect/Effect";
44import * as Layer from "effect/Layer";
55import * as Schema from "effect/Schema";
66import * as Redacted from "effect/Redacted";
7import { ChildProcessSpawner } from "effect/unstable/process";
7import { ChildProcessSpawner } from "effect/process";
88import type { PullRequestCheck } from "@t3tools/contracts";
99
1010import * as GitHubCli from "../sourceControl/GitHubCli.ts";
apps/server/src/pullRequest/githubStackActions.test.ts+1-1
......@@ -3,7 +3,7 @@ import * as Layer from "effect/Layer";
33import * as Effect from "effect/Effect";
44import * as Fiber from "effect/Fiber";
55import * as TestClock from "effect/testing/TestClock";
6import { ChildProcessSpawner } from "effect/unstable/process";
6import { ChildProcessSpawner } from "effect/process";
77import * as GitHubCli from "../sourceControl/GitHubCli.ts";
88import { runGitHubStackAction as runStackAction } from "./githubStackActions.ts";
99
apps/server/src/pullRequest/http.ts+1-1
......@@ -1,6 +1,6 @@
11import { AuthOrchestrationReadScope, EnvironmentHttpApi } from "@t3tools/contracts";
22import * as Effect from "effect/Effect";
3import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder";
3import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder";
44
55import { annotateEnvironmentRequest, requireEnvironmentScope } from "../auth/http.ts";
66import * as PullRequestService from "./PullRequestService.ts";
apps/server/src/pullRequest/linkedThreads.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, expect, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Schema from "effect/Schema";
4import * as SqlClient from "effect/unstable/sql/SqlClient";
4import * as SqlClient from "effect/sql/SqlClient";
55
66import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts";
77import { listLinkedPullRequestThreads } from "./linkedThreads.ts";
apps/server/src/pullRequest/linkedThreads.ts+1-1
......@@ -10,7 +10,7 @@ import {
1010} from "@t3tools/contracts";
1111import * as Effect from "effect/Effect";
1212import * as Schema from "effect/Schema";
13import * as SqlClient from "effect/unstable/sql/SqlClient";
13import * as SqlClient from "effect/sql/SqlClient";
1414
1515const decodeLinkedThreads = Schema.decodeUnknownEffect(PullRequestLinkedThreadsResult);
1616
apps/server/src/relay/AgentAwarenessRelay.test.ts+1-1
......@@ -25,7 +25,7 @@ import * as Ref from "effect/Ref";
2525import * as Schema from "effect/Schema";
2626import * as Stream from "effect/Stream";
2727import * as TestClock from "effect/testing/TestClock";
28import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
28import * as FetchHttpClient from "effect/http/FetchHttpClient";
2929
3030import * as ServerSecretStore from "../auth/ServerSecretStore.ts";
3131import {
apps/server/src/relay/AgentAwarenessRelay.ts+4-4
......@@ -32,10 +32,10 @@ import * as Queue from "effect/Queue";
3232import * as Ref from "effect/Ref";
3333import type * as Scope from "effect/Scope";
3434import * as Stream from "effect/Stream";
35import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
36import * as HttpClient from "effect/unstable/http/HttpClient";
37import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
38import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient";
35import * as FetchHttpClient from "effect/http/FetchHttpClient";
36import * as HttpClient from "effect/http/HttpClient";
37import * as HttpClientRequest from "effect/http/HttpClientRequest";
38import * as HttpApiClient from "effect/http-api/HttpApiClient";
3939
4040import * as ServerSecretStore from "../auth/ServerSecretStore.ts";
4141import {
apps/server/src/resourceTelemetry/DesktopTelemetryReceiver.ts+1-1
......@@ -23,7 +23,7 @@ import * as Schema from "effect/Schema";
2323import * as Semaphore from "effect/Semaphore";
2424import * as Scope from "effect/Scope";
2525import * as Stream from "effect/Stream";
26import * as Ndjson from "effect/unstable/encoding/Ndjson";
26import * as Ndjson from "effect/encoding/Ndjson";
2727
2828import * as ServerConfig from "../config.ts";
2929import * as ServerSettings from "../serverSettings.ts";
apps/server/src/resourceTelemetry/HostResources.ts+1-1
......@@ -7,7 +7,7 @@ import * as DateTime from "effect/DateTime";
77import * as Effect from "effect/Effect";
88import * as FileSystem from "effect/FileSystem";
99import * as Layer from "effect/Layer";
10import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
10import { ChildProcess, ChildProcessSpawner } from "effect/process";
1111
1212export class HostResources extends Context.Service<
1313 HostResources,
apps/server/src/resourceTelemetry/NativeTelemetryClient.ts+2-2
......@@ -32,8 +32,8 @@ import * as Schema from "effect/Schema";
3232import * as Semaphore from "effect/Semaphore";
3333import * as Scope from "effect/Scope";
3434import * as Stream from "effect/Stream";
35import * as Ndjson from "effect/unstable/encoding/Ndjson";
36import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
35import * as Ndjson from "effect/encoding/Ndjson";
36import { ChildProcess, ChildProcessSpawner } from "effect/process";
3737
3838import * as ResourceMonitorBinary from "./ResourceMonitorBinary.ts";
3939import * as ServerConfig from "../config.ts";
apps/server/src/scheduledTasks/ScheduledTaskService.test.ts+1-1
......@@ -8,7 +8,7 @@ import * as DateTime from "effect/DateTime";
88import * as Effect from "effect/Effect";
99import * as Layer from "effect/Layer";
1010import * as Logger from "effect/Logger";
11import * as SqlClient from "effect/unstable/sql/SqlClient";
11import * as SqlClient from "effect/sql/SqlClient";
1212
1313import * as Deferred from "effect/Deferred";
1414import * as Ref from "effect/Ref";
apps/server/src/scheduledTasks/ScheduledTaskService.ts+1-1
......@@ -26,7 +26,7 @@ import * as Ref from "effect/Ref";
2626import * as Result from "effect/Result";
2727import * as Schema from "effect/Schema";
2828import * as Stream from "effect/Stream";
29import * as SqlClient from "effect/unstable/sql/SqlClient";
29import * as SqlClient from "effect/sql/SqlClient";
3030
3131import * as ThreadLaunchService from "../orchestration-v2/ThreadLaunchService.ts";
3232import * as ThreadManagementService from "../orchestration-v2/ThreadManagementService.ts";
apps/server/src/scheduling/Scheduler.integration.test.ts+1-1
......@@ -15,7 +15,7 @@ import * as Effect from "effect/Effect";
1515import * as Layer from "effect/Layer";
1616import * as Queue from "effect/Queue";
1717import * as Ref from "effect/Ref";
18import * as SqlClient from "effect/unstable/sql/SqlClient";
18import * as SqlClient from "effect/sql/SqlClient";
1919import * as TestClock from "effect/testing/TestClock";
2020
2121import * as ProjectionStore from "../orchestration-v2/ProjectionStore.ts";
apps/server/src/server.ts+7-6
......@@ -18,8 +18,8 @@ import * as Effect from "effect/Effect";
1818import * as Layer from "effect/Layer";
1919import * as Stream from "effect/Stream";
2020import * as Schedule from "effect/Schedule";
21import { FetchHttpClient, HttpRouter, HttpServer } from "effect/unstable/http";
22import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder";
21import { FetchHttpClient, HttpRouter, HttpServer } from "effect/http";
22import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder";
2323
2424import * as BackgroundPolicy from "./background/BackgroundPolicy.ts";
2525import * as HostPowerMonitor from "./background/HostPowerMonitor.ts";
......@@ -32,7 +32,7 @@ import {
3232 staticAndDevRouteLayer,
3333 browserApiCorsLayer,
3434 httpCompressionLayer,
35 untracedRequestsLayer,
35 withUntracedRequests,
3636} from "./http.ts";
3737import { guardHttpResponseWriteErrors } from "./httpResponseErrorGuard.ts";
3838import { fixPath } from "./os-jank.ts";
......@@ -660,8 +660,6 @@ const makeRoutesLayer = Layer.mergeAll(
660660 McpHttpServer.layer.pipe(
661661 Layer.provide(ProviderAdapterRegistry.layerFromProviderInstanceRegistry),
662662 ),
663 // Last, so no route layer can replace the server's one TracerDisabledWhen.
664 untracedRequestsLayer,
665663).pipe(
666664 // Both transports consume the same service instance, so caches single-flight across clients
667665 // and mutations observed on WebSocket invalidate patches subsequently read over HTTP.
......@@ -1012,7 +1010,10 @@ const makeServerLayer = Layer.unwrap(
10121010 const routesLayer = HttpRouter.serve(makeRoutesLayer.pipe(Layer.provide(launcherLayer)), {
10131011 disableLogger: !config.logWebSocketEvents,
10141012 routerConfig: HTTP_ROUTER_CONFIG,
1015 }).pipe(Layer.tap(() => Deferred.succeed(routesReady, undefined).pipe(Effect.orDie)));
1013 }).pipe(
1014 withUntracedRequests,
1015 Layer.tap(() => Deferred.succeed(routesReady, undefined).pipe(Effect.orDie)),
1016 );
10161017 const serverApplicationLayer = Layer.mergeAll(
10171018 routesLayer,
10181019 httpListeningLayer,
apps/server/src/serverLogger.test.ts+2-2
......@@ -6,8 +6,8 @@ import * as Effect from "effect/Effect";
66import * as Layer from "effect/Layer";
77import * as Path from "effect/Path";
88import * as Tracer from "effect/Tracer";
9import * as HttpClient from "effect/unstable/http/HttpClient";
10import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
9import * as HttpClient from "effect/http/HttpClient";
10import * as HttpClientResponse from "effect/http/HttpClientResponse";
1111
1212import { DEFAULT_SIGNAL_EXPORT } from "@t3tools/shared/observability";
1313import * as OtelEnvironment from "@t3tools/shared/otelEnvironment";
apps/server/src/serverLogger.ts+2-2
......@@ -3,8 +3,8 @@ import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
44import * as Logger from "effect/Logger";
55import * as References from "effect/References";
6import * as OtlpExporter from "effect/unstable/observability/OtlpExporter";
7import * as OtlpLogger from "effect/unstable/observability/OtlpLogger";
6import * as OtlpExporter from "effect/observability/OtlpExporter";
7import * as OtlpLogger from "effect/observability/OtlpLogger";
88
99import * as ServerConfig from "./config.ts";
1010
apps/server/src/serverSettings.test.ts+1-1
......@@ -24,7 +24,7 @@ import * as PlatformError from "effect/PlatformError";
2424import * as Schema from "effect/Schema";
2525import * as Stream from "effect/Stream";
2626import * as TestClock from "effect/testing/TestClock";
27import * as SqlClient from "effect/unstable/sql/SqlClient";
27import * as SqlClient from "effect/sql/SqlClient";
2828import * as ServerSecretStore from "./auth/ServerSecretStore.ts";
2929import * as ServerConfig from "./config.ts";
3030import { SqlitePersistenceMemory } from "./persistence/Layers/Sqlite.ts";
apps/server/src/serverSettings.ts+1-1
......@@ -50,7 +50,7 @@ import * as SchemaTransformation from "effect/SchemaTransformation";
5050import * as Semaphore from "effect/Semaphore";
5151import * as Scope from "effect/Scope";
5252import * as Stream from "effect/Stream";
53import * as SqlClient from "effect/unstable/sql/SqlClient";
53import * as SqlClient from "effect/sql/SqlClient";
5454import { writeFileStringAtomically } from "./atomicWrite.ts";
5555import { resolveSymlinkTarget } from "@t3tools/shared/symlink";
5656import * as ServerConfig from "./config.ts";
apps/server/src/sourceControl/AzureDevOpsCli.test.ts+1-1
......@@ -5,7 +5,7 @@ import * as FileSystem from "effect/FileSystem";
55import * as Layer from "effect/Layer";
66import * as Option from "effect/Option";
77import * as PlatformError from "effect/PlatformError";
8import { ChildProcessSpawner } from "effect/unstable/process";
8import { ChildProcessSpawner } from "effect/process";
99import { VcsProcessExitError, VcsProcessSpawnError } from "@t3tools/contracts";
1010
1111import * as VcsProcess from "../vcs/VcsProcess.ts";
apps/server/src/sourceControl/BitbucketApi.test.ts+1-6
......@@ -7,12 +7,7 @@ import * as FileSystem from "effect/FileSystem";
77import * as Layer from "effect/Layer";
88import * as Option from "effect/Option";
99import * as TestClock from "effect/testing/TestClock";
10import {
11 HttpClient,
12 HttpClientError,
13 HttpClientRequest,
14 HttpClientResponse,
15} from "effect/unstable/http";
10import { HttpClient, HttpClientError, HttpClientRequest, HttpClientResponse } from "effect/http";
1611
1712import { GitCommandError } from "@t3tools/contracts";
1813import * as BitbucketApi from "./BitbucketApi.ts";
apps/server/src/sourceControl/BitbucketApi.ts+1-1
......@@ -15,7 +15,7 @@ import {
1515 type SourceControlRepositoryCloneUrls,
1616 type SourceControlRepositoryVisibility,
1717} from "@t3tools/contracts";
18import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
18import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
1919import { sanitizeBranchFragment } from "@t3tools/shared/git";
2020import {
2121 detectSourceControlProviderFromRemoteUrl,
apps/server/src/sourceControl/ForgejoCli.ts+2-2
......@@ -9,8 +9,8 @@ import * as Semaphore from "effect/Semaphore";
99import * as NodeOS from "node:os";
1010// @effect-diagnostics-next-line nodeBuiltinImport:off - fj storage paths use explicit Windows and POSIX layouts, independently of this process's platform.
1111import * as NodePath from "node:path";
12import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/http";
13import { ChildProcessSpawner } from "effect/unstable/process";
12import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/http";
13import { ChildProcessSpawner } from "effect/process";
1414import { decodeJsonResult } from "@t3tools/shared/schemaJson";
1515import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
1616import * as VcsProcess from "../vcs/VcsProcess.ts";
apps/server/src/sourceControl/GitHubCli.test.ts+1-1
......@@ -9,7 +9,7 @@ import * as Layer from "effect/Layer";
99import * as PlatformError from "effect/PlatformError";
1010import * as Redacted from "effect/Redacted";
1111import * as Schema from "effect/Schema";
12import { ChildProcessSpawner } from "effect/unstable/process";
12import { ChildProcessSpawner } from "effect/process";
1313import { VcsProcessExitError, VcsProcessSpawnError } from "@t3tools/contracts";
1414
1515import * as VcsProcess from "../vcs/VcsProcess.ts";
apps/server/src/sourceControl/GitHubSourceControlProvider.test.ts+1-1
......@@ -3,7 +3,7 @@ import * as DateTime from "effect/DateTime";
33import * as Effect from "effect/Effect";
44import * as Layer from "effect/Layer";
55import * as Option from "effect/Option";
6import { ChildProcessSpawner } from "effect/unstable/process";
6import { ChildProcessSpawner } from "effect/process";
77
88import * as VcsProcess from "../vcs/VcsProcess.ts";
99import * as GitHubCli from "./GitHubCli.ts";
apps/server/src/sourceControl/GitLabCli.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, it, afterEach, expect, vi } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import { ChildProcessSpawner } from "effect/unstable/process";
4import { ChildProcessSpawner } from "effect/process";
55
66import { VcsProcessExitError } from "@t3tools/contracts";
77
apps/server/src/sourceControl/GitLabSourceControlProvider.test.ts+1-1
......@@ -2,7 +2,7 @@ import { assert, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
44import * as Option from "effect/Option";
5import { ChildProcessSpawner } from "effect/unstable/process";
5import { ChildProcessSpawner } from "effect/process";
66
77import * as GitLabCli from "./GitLabCli.ts";
88import { parseGitLabAuthStatusHosts } from "./gitLabAuthStatus.ts";
apps/server/src/sourceControl/SourceControlDiscovery.test.ts+2-2
......@@ -7,8 +7,8 @@ import * as Layer from "effect/Layer";
77import * as Option from "effect/Option";
88import * as Path from "effect/Path";
99import * as Schema from "effect/Schema";
10import { ChildProcessSpawner } from "effect/unstable/process";
11import { FetchHttpClient, HttpClient, HttpClientResponse } from "effect/unstable/http";
10import { ChildProcessSpawner } from "effect/process";
11import { FetchHttpClient, HttpClient, HttpClientResponse } from "effect/http";
1212import { VcsProcessSpawnError } from "@t3tools/contracts";
1313
1414import * as ServerConfig from "../config.ts";
apps/server/src/sourceControl/SourceControlProviderRegistry.test.ts+1-1
......@@ -4,7 +4,7 @@ import * as DateTime from "effect/DateTime";
44import * as Effect from "effect/Effect";
55import * as Layer from "effect/Layer";
66import * as Option from "effect/Option";
7import { ChildProcessSpawner } from "effect/unstable/process";
7import { ChildProcessSpawner } from "effect/process";
88import { VcsRepositoryDetectionError } from "@t3tools/contracts";
99
1010import * as ServerConfig from "../config.ts";
apps/server/src/sourceControl/SourceControlRepositoryService.test.ts+1-1
......@@ -6,7 +6,7 @@ import * as FileSystem from "effect/FileSystem";
66import * as Path from "effect/Path";
77import * as Layer from "effect/Layer";
88import * as PlatformError from "effect/PlatformError";
9import { ChildProcessSpawner } from "effect/unstable/process";
9import { ChildProcessSpawner } from "effect/process";
1010
1111import { GitCommandError, SourceControlProviderError } from "@t3tools/contracts";
1212
apps/server/src/startupAccess.ts+1-1
......@@ -2,7 +2,7 @@ import * as NodeOS from "node:os";
22
33import { QrCode } from "@t3tools/shared/qrCode";
44import * as Effect from "effect/Effect";
5import { HttpServer } from "effect/unstable/http";
5import { HttpServer } from "effect/http";
66
77import * as ServerConfig from "./config.ts";
88import * as EnvironmentAuth from "./auth/EnvironmentAuth.ts";
apps/server/src/storageCleanup.ts+1-1
......@@ -3,7 +3,7 @@ import {
33 OrchestrationV2ProviderSessionJson,
44} from "@t3tools/contracts";
55import * as Schema from "effect/Schema";
6import * as SqlClient from "effect/unstable/sql/SqlClient";
6import * as SqlClient from "effect/sql/SqlClient";
77import type {
88 OrchestrationV2ThreadShell,
99 ProjectId,
apps/server/src/telemetry/AnalyticsService.test.ts+5-5
......@@ -6,11 +6,11 @@ import * as Effect from "effect/Effect";
66import * as Layer from "effect/Layer";
77import * as Schema from "effect/Schema";
88import * as TestClock from "effect/testing/TestClock";
9import * as HttpClient from "effect/unstable/http/HttpClient";
10import * as HttpClientError from "effect/unstable/http/HttpClientError";
11import * as HttpServer from "effect/unstable/http/HttpServer";
12import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest";
13import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
9import * as HttpClient from "effect/http/HttpClient";
10import * as HttpClientError from "effect/http/HttpClientError";
11import * as HttpServer from "effect/http/HttpServer";
12import * as HttpServerRequest from "effect/http/HttpServerRequest";
13import * as HttpServerResponse from "effect/http/HttpServerResponse";
1414import { HostProcessArchitecture, HostProcessPlatform } from "@t3tools/shared/hostProcess";
1515
1616import * as ServerConfig from "../config.ts";
apps/server/src/telemetry/AnalyticsService.ts+3-3
......@@ -23,9 +23,9 @@ import * as Random from "effect/Random";
2323import * as Ref from "effect/Ref";
2424import * as Result from "effect/Result";
2525import * as Semaphore from "effect/Semaphore";
26import * as HttpClient from "effect/unstable/http/HttpClient";
27import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
28import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
26import * as HttpClient from "effect/http/HttpClient";
27import * as HttpClientRequest from "effect/http/HttpClientRequest";
28import * as HttpClientResponse from "effect/http/HttpClientResponse";
2929
3030import packageJson from "../../package.json" with { type: "json" };
3131import * as ServerConfig from "../config.ts";
apps/server/src/telemetry/Identify.ts+2-2
......@@ -1,7 +1,7 @@
11import * as NodeOS from "node:os";
22import * as Crypto from "effect/Crypto";
33import * as Effect from "effect/Effect";
4import * as Encoding from "effect/Encoding";
4import * as Hex from "effect/encoding/Hex";
55import * as FileSystem from "effect/FileSystem";
66import * as Option from "effect/Option";
77import * as Path from "effect/Path";
......@@ -157,7 +157,7 @@ const readIdentityFile = (
157157const hash = (source: TelemetryIdentitySource, value: string) =>
158158 Crypto.Crypto.pipe(
159159 Effect.flatMap((crypto) => crypto.digest("SHA-256", new TextEncoder().encode(value))),
160 Effect.map(Encoding.encodeHex),
160 Effect.map(Hex.encode),
161161 Effect.mapError(
162162 (cause) =>
163163 new TelemetryIdentityHashError({
apps/server/src/terminal/Manager.test.ts+5-5
......@@ -18,7 +18,7 @@ import * as Clock from "effect/Clock";
1818import * as Deferred from "effect/Deferred";
1919import * as Duration from "effect/Duration";
2020import * as Effect from "effect/Effect";
21import * as Encoding from "effect/Encoding";
21import * as Base64Url from "effect/encoding/Base64Url";
2222import * as Exit from "effect/Exit";
2323import * as Fiber from "effect/Fiber";
2424import * as FileSystem from "effect/FileSystem";
......@@ -32,7 +32,7 @@ import * as Schema from "effect/Schema";
3232import * as Scope from "effect/Scope";
3333import * as Stream from "effect/Stream";
3434import * as TestClock from "effect/testing/TestClock";
35import { ChildProcessSpawner } from "effect/unstable/process";
35import { ChildProcessSpawner } from "effect/process";
3636import { expect } from "vite-plus/test";
3737
3838import * as ServerSecretStore from "../auth/ServerSecretStore.ts";
......@@ -200,7 +200,7 @@ function restartInput(overrides: Partial<TerminalRestartInput> = {}): TerminalRe
200200
201201const historyLogPath = (logsDir: string, threadId = "thread-1") =>
202202 Effect.service(Path.Path).pipe(
203 Effect.map(({ join }) => join(logsDir, `terminal_${Encoding.encodeBase64Url(threadId)}.log`)),
203 Effect.map(({ join }) => join(logsDir, `terminal_${Base64Url.encode(threadId)}.log`)),
204204 );
205205
206206const multiTerminalHistoryLogPath = (
......@@ -210,12 +210,12 @@ const multiTerminalHistoryLogPath = (
210210) =>
211211 Effect.service(Path.Path).pipe(
212212 Effect.map(({ join }) => {
213 const threadPart = `terminal_${Encoding.encodeBase64Url(threadId)}`;
213 const threadPart = `terminal_${Base64Url.encode(threadId)}`;
214214 return join(
215215 logsDir,
216216 terminalId === DEFAULT_TERMINAL_ID
217217 ? `${threadPart}.log`
218 : `${threadPart}_${Encoding.encodeBase64Url(terminalId)}.log`,
218 : `${threadPart}_${Base64Url.encode(terminalId)}.log`,
219219 );
220220 }),
221221 );
apps/server/src/terminal/Manager.ts+3-3
......@@ -49,7 +49,7 @@ import { getTerminalLabel } from "@t3tools/shared/terminalLabels";
4949import * as DateTime from "effect/DateTime";
5050import * as Context from "effect/Context";
5151import * as Effect from "effect/Effect";
52import * as Encoding from "effect/Encoding";
52import * as Base64Url from "effect/encoding/Base64Url";
5353import * as Equal from "effect/Equal";
5454import * as Exit from "effect/Exit";
5555import * as Fiber from "effect/Fiber";
......@@ -1228,11 +1228,11 @@ function legacySafeThreadId(threadId: string): string {
12281228}
12291229
12301230function toSafeThreadId(threadId: string): string {
1231 return `terminal_${Encoding.encodeBase64Url(threadId)}`;
1231 return `terminal_${Base64Url.encode(threadId)}`;
12321232}
12331233
12341234function toSafeTerminalId(terminalId: string): string {
1235 return Encoding.encodeBase64Url(terminalId);
1235 return Base64Url.encode(terminalId);
12361236}
12371237
12381238function toSessionKey(threadId: string, terminalId: string): string {
apps/server/src/terminal/OutputProtocol.test.ts+1-1
......@@ -6,7 +6,7 @@ import * as Queue from "effect/Queue";
66import * as Schema from "effect/Schema";
77import * as Stream from "effect/Stream";
88import * as TestClock from "effect/testing/TestClock";
9import { Rpc, RpcGroup, RpcMessage, RpcSerialization, RpcServer } from "effect/unstable/rpc";
9import { Rpc, RpcGroup, RpcMessage, RpcSerialization, RpcServer } from "effect/rpc";
1010
1111import { withTerminalOutputWindow } from "./OutputProtocol.ts";
1212
apps/server/src/terminal/OutputProtocol.ts+1-1
......@@ -1,6 +1,6 @@
11import { WS_METHODS } from "@t3tools/contracts";
22import * as Effect from "effect/Effect";
3import type { RpcServer } from "effect/unstable/rpc";
3import type { RpcServer } from "effect/rpc";
44
55const MAX_PENDING_CHUNKS = 8;
66const MAX_PENDING_BYTES = 64 * 1024;
apps/server/src/textGeneration/ClaudeTextGeneration.ts+1-1
......@@ -12,7 +12,7 @@ import * as FileSystem from "effect/FileSystem";
1212import * as Option from "effect/Option";
1313import * as Schema from "effect/Schema";
1414import * as Stream from "effect/Stream";
15import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
15import { ChildProcess, ChildProcessSpawner } from "effect/process";
1616
1717import { type ClaudeSettings, type ModelSelection } from "@t3tools/contracts";
1818import { formatGeneratedBranchName, sanitizeFeatureBranchName } from "@t3tools/shared/git";
apps/server/src/textGeneration/CodexTextGeneration.ts+1-1
......@@ -5,7 +5,7 @@ import * as Path from "effect/Path";
55import * as Schema from "effect/Schema";
66import * as Scope from "effect/Scope";
77import * as Stream from "effect/Stream";
8import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
8import { ChildProcess, ChildProcessSpawner } from "effect/process";
99
1010import {
1111 type CodexSettings,
apps/server/src/textGeneration/GrokTextGeneration.ts+1-1
......@@ -3,7 +3,7 @@ import * as Effect from "effect/Effect";
33import * as Option from "effect/Option";
44import * as Ref from "effect/Ref";
55import * as Schema from "effect/Schema";
6import { ChildProcessSpawner } from "effect/unstable/process";
6import { ChildProcessSpawner } from "effect/process";
77import type * as EffectAcpErrors from "effect-acp/errors";
88
99import { type GrokSettings, type ModelSelection } from "@t3tools/contracts";
apps/server/src/textGeneration/PiTextGeneration.ts+1-1
......@@ -8,7 +8,7 @@ import * as Effect from "effect/Effect";
88import * as Option from "effect/Option";
99import * as Queue from "effect/Queue";
1010import * as Schema from "effect/Schema";
11import { ChildProcessSpawner } from "effect/unstable/process";
11import { ChildProcessSpawner } from "effect/process";
1212
1313import { TextGenerationError, type ModelSelection, type PiSettings } from "@t3tools/contracts";
1414import { formatGeneratedBranchName, sanitizeFeatureBranchName } from "@t3tools/shared/git";
apps/server/src/usage/UsageService.test.ts+1-1
......@@ -27,7 +27,7 @@ import * as Layer from "effect/Layer";
2727import * as Scheduler from "effect/Scheduler";
2828import * as Schema from "effect/Schema";
2929import * as TestClock from "effect/testing/TestClock";
30import { HttpClient, HttpClientResponse } from "effect/unstable/http";
30import { HttpClient, HttpClientResponse } from "effect/http";
3131
3232import * as ServerConfig from "../config.ts";
3333import * as ServerSettings from "../serverSettings.ts";
apps/server/src/usage/UsageService.ts+1-1
......@@ -42,7 +42,7 @@ import * as Option from "effect/Option";
4242import * as Path from "effect/Path";
4343import * as Schema from "effect/Schema";
4444import * as Semaphore from "effect/Semaphore";
45import { HttpClient, HttpClientResponse } from "effect/unstable/http";
45import { HttpClient, HttpClientResponse } from "effect/http";
4646
4747import * as ServerConfig from "../config.ts";
4848import { expandHomePath } from "../pathExpansion.ts";
apps/server/src/usage/cliproxyApi.test.ts+1-1
......@@ -2,7 +2,7 @@ import { describe, expect, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Schema from "effect/Schema";
44import * as TestClock from "effect/testing/TestClock";
5import { HttpClient, HttpClientResponse } from "effect/unstable/http";
5import { HttpClient, HttpClientResponse } from "effect/http";
66
77import { creditRedeemRequestId, makeCliproxyApi } from "./cliproxyApi.ts";
88
apps/server/src/usage/cliproxyApi.ts+1-1
......@@ -10,7 +10,7 @@ import {
1010import * as DateTime from "effect/DateTime";
1111import * as Effect from "effect/Effect";
1212import * as Schema from "effect/Schema";
13import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
13import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
1414
1515import { codexPlanLabel } from "../provider/Layers/CodexProvider.ts";
1616import { codexRateLimitsToLimits } from "../provider/Layers/codexUsageLimits.ts";
apps/server/src/vcs/GitVcsDriver.test.ts+1-1
......@@ -11,7 +11,7 @@ import * as FileSystem from "effect/FileSystem";
1111import * as Layer from "effect/Layer";
1212import * as Path from "effect/Path";
1313import * as PlatformError from "effect/PlatformError";
14import { ChildProcessSpawner } from "effect/unstable/process";
14import { ChildProcessSpawner } from "effect/process";
1515import { assert, it } from "@effect/vitest";
1616
1717import { CheckpointRef, GitCommandError, VcsProcessExitError } from "@t3tools/contracts";
apps/server/src/vcs/GitVcsDriver.ts+1-1
......@@ -8,7 +8,7 @@ import * as FileSystem from "effect/FileSystem";
88import * as Layer from "effect/Layer";
99import * as Option from "effect/Option";
1010import * as Path from "effect/Path";
11import { ChildProcessSpawner } from "effect/unstable/process";
11import { ChildProcessSpawner } from "effect/process";
1212
1313import {
1414 GitCommandError,
apps/server/src/vcs/GitVcsDriverCore.test.ts+1-1
......@@ -20,7 +20,7 @@ import * as Schema from "effect/Schema";
2020import * as Sink from "effect/Sink";
2121import * as Stream from "effect/Stream";
2222import * as TestClock from "effect/testing/TestClock";
23import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
23import { ChildProcess, ChildProcessSpawner } from "effect/process";
2424
2525import {
2626 GitCommandError,
apps/server/src/vcs/GitVcsDriverCore.ts+3-3
......@@ -4,7 +4,7 @@ import * as Crypto from "effect/Crypto";
44import * as DateTime from "effect/DateTime";
55import * as Duration from "effect/Duration";
66import * as Effect from "effect/Effect";
7import * as Encoding from "effect/Encoding";
7import * as Hex from "effect/encoding/Hex";
88import * as Exit from "effect/Exit";
99import * as FileSystem from "effect/FileSystem";
1010import * as Option from "effect/Option";
......@@ -16,7 +16,7 @@ import * as Schema from "effect/Schema";
1616import * as Scope from "effect/Scope";
1717import * as Semaphore from "effect/Semaphore";
1818import * as Stream from "effect/Stream";
19import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
19import { ChildProcess, ChildProcessSpawner } from "effect/process";
2020
2121import {
2222 GitCommandError,
......@@ -2782,7 +2782,7 @@ export const makeGitVcsDriverCore = Effect.fn("makeGitVcsDriverCore")(function*
27822782 const baseDiff = baseResult.stdout;
27832783 const hashDiff = (diff: string, files: ReadonlyArray<ReviewDiffFileStat>) =>
27842784 crypto.digest("SHA-256", new TextEncoder().encode(JSON.stringify([diff, files]))).pipe(
2785 Effect.map(Encoding.encodeHex),
2785 Effect.map(Hex.encode),
27862786 Effect.mapError(
27872787 (cause) =>
27882788 new GitCommandError({
apps/server/src/vcs/VcsDriverRegistry.test.ts+1-1
......@@ -2,7 +2,7 @@ import { assert, it, describe } from "@effect/vitest";
22import * as NodeServices from "@effect/platform-node/NodeServices";
33import * as Effect from "effect/Effect";
44import * as Layer from "effect/Layer";
5import { ChildProcessSpawner } from "effect/unstable/process";
5import { ChildProcessSpawner } from "effect/process";
66
77import * as VcsProcess from "./VcsProcess.ts";
88import * as VcsProjectConfig from "./VcsProjectConfig.ts";
apps/server/src/vcs/VcsProcess.test.ts+1-1
......@@ -12,7 +12,7 @@ import * as Queue from "effect/Queue";
1212import * as Ref from "effect/Ref";
1313import * as Schema from "effect/Schema";
1414import { TestClock } from "effect/testing";
15import { ChildProcessSpawner } from "effect/unstable/process";
15import { ChildProcessSpawner } from "effect/process";
1616
1717import {
1818 VcsProcessExitError,
apps/server/src/vcs/VcsProcess.ts+1-1
......@@ -5,7 +5,7 @@ import * as Layer from "effect/Layer";
55import * as Match from "effect/Match";
66import * as Schedule from "effect/Schedule";
77import * as Semaphore from "effect/Semaphore";
8import { ChildProcessSpawner } from "effect/unstable/process";
8import { ChildProcessSpawner } from "effect/process";
99
1010import {
1111 type VcsError,
apps/server/src/vcs/VcsProvisioningService.test.ts+1-1
......@@ -3,7 +3,7 @@ import * as DateTime from "effect/DateTime";
33import * as Effect from "effect/Effect";
44import * as Layer from "effect/Layer";
55import * as Option from "effect/Option";
6import { ChildProcessSpawner } from "effect/unstable/process";
6import { ChildProcessSpawner } from "effect/process";
77
88import * as VcsDriver from "./VcsDriver.ts";
99import * as VcsDriverRegistry from "./VcsDriverRegistry.ts";
apps/server/src/ws.test.ts+1-1
......@@ -16,7 +16,7 @@ import * as Path from "effect/Path";
1616import * as Queue from "effect/Queue";
1717import * as Stream from "effect/Stream";
1818import * as TestClock from "effect/testing/TestClock";
19import { ChildProcessSpawner } from "effect/unstable/process";
19import { ChildProcessSpawner } from "effect/process";
2020
2121import * as ExternalLauncher from "./process/externalLauncher.ts";
2222import {
apps/server/src/ws.ts+5-5
......@@ -5,7 +5,7 @@ import * as NodeCrypto from "node:crypto";
55
66import * as DateTime from "effect/DateTime";
77import * as Duration from "effect/Duration";
8import * as Encoding from "effect/Encoding";
8import * as Base64 from "effect/encoding/Base64";
99import * as Effect from "effect/Effect";
1010import * as Fiber from "effect/Fiber";
1111import * as FileSystem from "effect/FileSystem";
......@@ -105,8 +105,8 @@ import {
105105 HttpServerRequest,
106106 HttpServerRespondable,
107107 HttpServerResponse,
108} from "effect/unstable/http";
109import { RpcSerialization, RpcServer } from "effect/unstable/rpc";
108} from "effect/http";
109import { RpcSerialization, RpcServer } from "effect/rpc";
110110
111111import * as CheckpointDiffQuery from "./checkpointing/CheckpointDiffQuery.ts";
112112import * as ServerConfig from "./config.ts";
......@@ -223,7 +223,7 @@ import * as TraceDiagnostics from "./diagnostics/TraceDiagnostics.ts";
223223import * as PullRequestService from "./pullRequest/PullRequestService.ts";
224224import { listLinkedPullRequestThreads } from "./pullRequest/linkedThreads.ts";
225225import { pullRequestSyncKey } from "./pullRequest/pullRequestSyncKey.ts";
226import * as SqlClient from "effect/unstable/sql/SqlClient";
226import * as SqlClient from "effect/sql/SqlClient";
227227import * as PullRequestSyncReactor from "./orchestration-v2/PullRequestSyncReactor.ts";
228228import * as SourceControlDiscovery from "./sourceControl/SourceControlDiscovery.ts";
229229import * as SourceControlRepositoryService from "./sourceControl/SourceControlRepositoryService.ts";
......@@ -383,7 +383,7 @@ const persistChatAttachments = Effect.fn("ws.assets.persistChatAttachments")(fun
383383 message: `Attachment ${attachment.name} has an invalid image payload.`,
384384 });
385385 }
386 const bytes = yield* Effect.fromResult(Encoding.decodeBase64(parsed.base64)).pipe(
386 const bytes = yield* Effect.fromResult(Base64.decode(parsed.base64)).pipe(
387387 Effect.mapError(
388388 (cause) =>
389389 new PersistChatAttachmentsError({
apps/web/src/assets/assetUrls.ts+1-1
......@@ -7,7 +7,7 @@ import {
77} from "@t3tools/client-runtime/state/assets";
88import { squashAtomCommandFailure } from "@t3tools/client-runtime/state/runtime";
99import type { AssetResource, EnvironmentId } from "@t3tools/contracts";
10import { AsyncResult } from "effect/unstable/reactivity";
10import { AsyncResult } from "effect/reactivity";
1111import { useCallback, useMemo } from "react";
1212
1313import { assetEnvironment } from "~/state/assets";
apps/web/src/authBootstrap.test.ts+1-1
......@@ -7,7 +7,7 @@ import {
77} from "@t3tools/contracts";
88import * as DateTime from "effect/DateTime";
99import * as Effect from "effect/Effect";
10import { HttpClientError, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
10import { HttpClientError, HttpClientRequest, HttpClientResponse } from "effect/http";
1111import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test";
1212
1313import { installEnvironmentHttpTest } from "../test/environmentHttpTest";
apps/web/src/browser/browserRecording.ts+1-1
......@@ -2,7 +2,7 @@ import { DESKTOP_PREVIEW_RECORDING_CAPTURE_TRIGGER } from "@t3tools/contracts";
22import type { DesktopPreviewRecordingArtifact, ScopedThreadRef } from "@t3tools/contracts";
33import { useAtomValue } from "@effect/atom-react";
44import * as Schema from "effect/Schema";
5import { Atom } from "effect/unstable/reactivity";
5import { Atom } from "effect/reactivity";
66
77import { previewBridge } from "~/components/preview/previewBridge";
88import { ensureClientSettingsHydrated, getClientSettings } from "~/hooks/useSettings";
apps/web/src/browser/openFileInPreview.ts+1-1
......@@ -13,7 +13,7 @@ import {
1313} from "@t3tools/client-runtime/state/runtime";
1414import * as Cause from "effect/Cause";
1515import * as Data from "effect/Data";
16import { AsyncResult } from "effect/unstable/reactivity";
16import { AsyncResult } from "effect/reactivity";
1717
1818import { resolveAssetUrl } from "~/assets/assetUrls";
1919import {
apps/web/src/browser/previewWebviewConfigState.ts+1-1
......@@ -7,7 +7,7 @@ import type {
77import * as Effect from "effect/Effect";
88import * as Option from "effect/Option";
99import * as Schema from "effect/Schema";
10import { AsyncResult, Atom } from "effect/unstable/reactivity";
10import { AsyncResult, Atom } from "effect/reactivity";
1111
1212import { previewBridge } from "~/components/preview/previewBridge";
1313
apps/web/src/cloud/linkEnvironment.test.ts+1-1
......@@ -11,7 +11,7 @@ import * as Layer from "effect/Layer";
1111import * as Option from "effect/Option";
1212import * as Stream from "effect/Stream";
1313import * as SubscriptionRef from "effect/SubscriptionRef";
14import { HttpClient } from "effect/unstable/http";
14import { HttpClient } from "effect/http";
1515import { afterEach, beforeEach, vi } from "vite-plus/test";
1616import {
1717 AVAILABLE_CONNECTION_STATE,
apps/web/src/cloud/linkEnvironment.ts+1-1
......@@ -3,7 +3,7 @@ import * as Effect from "effect/Effect";
33import * as Option from "effect/Option";
44import * as Schema from "effect/Schema";
55import * as Stream from "effect/Stream";
6import { HttpClient } from "effect/unstable/http";
6import { HttpClient } from "effect/http";
77import {
88 EnvironmentCloudEndpointUnavailableError,
99 type EnvironmentCloudLinkStateResult,
apps/web/src/cloud/managedRelayState.ts+1-1
......@@ -18,7 +18,7 @@ import type { EnvironmentId } from "@t3tools/contracts";
1818import * as Context from "effect/Context";
1919import * as Effect from "effect/Effect";
2020import * as Layer from "effect/Layer";
21import { AsyncResult, Atom } from "effect/unstable/reactivity";
21import { AsyncResult, Atom } from "effect/reactivity";
2222import { useCallback, useEffect } from "react";
2323
2424import { runtime } from "../lib/runtime";
apps/web/src/cloud/primaryCloudLinkState.ts+2-2
......@@ -5,8 +5,8 @@ import * as Context from "effect/Context";
55import * as Effect from "effect/Effect";
66import * as Layer from "effect/Layer";
77import * as Option from "effect/Option";
8import { AsyncResult, Atom } from "effect/unstable/reactivity";
9import { HttpClient } from "effect/unstable/http";
8import { AsyncResult, Atom } from "effect/reactivity";
9import { HttpClient } from "effect/http";
1010import { useCallback, useMemo } from "react";
1111
1212import { usePrimaryEnvironment } from "../state/environments";
apps/web/src/components/ChatMarkdown.tsx+1-1
......@@ -53,7 +53,7 @@ import { inlineCodeFilePathCandidate } from "@t3tools/client-runtime/markdown-li
5353import { mediaFileReference, mediaUrlReference } from "@t3tools/client-runtime/media-reference";
5454import { mediaKindFromPath, mediaMimeTypeFromExtension } from "@t3tools/shared/filePreview";
5555import * as Cause from "effect/Cause";
56import { AsyncResult } from "effect/unstable/reactivity";
56import { AsyncResult } from "effect/reactivity";
5757import React, {
5858 Children,
5959 Suspense,
apps/web/src/components/ChatView.logic.test.ts+1-1
......@@ -28,7 +28,7 @@ import type { CodexArtifactTemplate } from "@t3tools/client-runtime/codex-artifa
2828import * as DateTime from "effect/DateTime";
2929import * as Option from "effect/Option";
3030import { afterEach, describe, expect, it, vi } from "vite-plus/test";
31import { Atom, AsyncResult } from "effect/unstable/reactivity";
31import { Atom, AsyncResult } from "effect/reactivity";
3232import { appAtomRegistry } from "../rpc/atomRegistry";
3333import { environmentThreadDetails } from "../state/threads";
3434
apps/web/src/components/ChatView.tsx+2-2
......@@ -139,7 +139,7 @@ import { resolveThreadReferenceCopyTarget } from "@t3tools/shared/threadReferenc
139139import { nextTerminalId, resolveTerminalSessionLabel } from "@t3tools/shared/terminalLabels";
140140import { Debouncer } from "@tanstack/react-pacer";
141141import { useAtomValue } from "@effect/atom-react";
142import { Atom } from "effect/unstable/reactivity";
142import { Atom } from "effect/reactivity";
143143import {
144144 Fragment,
145145 lazy,
......@@ -168,7 +168,7 @@ import {
168168 type AtomCommandResult,
169169} from "@t3tools/client-runtime/state/runtime";
170170import * as Cause from "effect/Cause";
171import { AsyncResult } from "effect/unstable/reactivity";
171import { AsyncResult } from "effect/reactivity";
172172import { isElectron } from "../env";
173173import { readLocalApi } from "../localApi";
174174import { useDiffPanelStore } from "../diffPanelStore";
apps/web/src/components/ProviderUpdateEnvironmentRows.test.tsx+1-1
......@@ -6,7 +6,7 @@ import {
66 ProviderInstanceId,
77 type ServerProvider,
88} from "@t3tools/contracts";
9import { AsyncResult } from "effect/unstable/reactivity";
9import { AsyncResult } from "effect/reactivity";
1010
1111import type {
1212 LocalEnvironmentUpdateGroup,
apps/web/src/components/ProviderUpdateLaunchNotification.logic.test.ts+1-1
......@@ -6,7 +6,7 @@ import {
66 type ServerProvider,
77} from "@t3tools/contracts";
88import * as Cause from "effect/Cause";
9import { AsyncResult } from "effect/unstable/reactivity";
9import { AsyncResult } from "effect/reactivity";
1010
1111import {
1212 buildLocalEnvironmentUpdateGroups,
apps/web/src/components/ServerUpdateAction.test.tsx+1-1
......@@ -3,7 +3,7 @@ import { create, type ReactTestRenderer } from "react-test-renderer";
33import { renderToStaticMarkup } from "react-dom/server";
44import type { EnvironmentId, ServerInstallation } from "@t3tools/contracts";
55import * as Cause from "effect/Cause";
6import { AsyncResult } from "effect/unstable/reactivity";
6import { AsyncResult } from "effect/reactivity";
77import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test";
88
99const testState = vi.hoisted(() => ({
apps/web/src/components/Sidebar.logic.test.ts+1-1
......@@ -4,7 +4,7 @@ import { deriveActiveWorkStartedAt } from "../session-logic.ts";
44import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test";
55import { defaultAnimateLayoutChanges, type AnimateLayoutChanges } from "@dnd-kit/sortable";
66import * as Cause from "effect/Cause";
7import { AsyncResult } from "effect/unstable/reactivity";
7import { AsyncResult } from "effect/reactivity";
88import {
99 animateSidebarLayoutChanges,
1010 archiveSelectedThreadEntries,
apps/web/src/components/Sidebar.logic.ts+1-1
......@@ -10,7 +10,7 @@ import { defaultAnimateLayoutChanges, type AnimateLayoutChanges } from "@dnd-kit
1010import { threadSearchMatchKey } from "@t3tools/client-runtime/state/thread-search";
1111import type { ContextMenuItem, EnvironmentId, ThreadId } from "@t3tools/contracts";
1212import type { SidebarProjectSortOrder, SidebarThreadSortOrder } from "@t3tools/contracts/settings";
13import type { AsyncResult } from "effect/unstable/reactivity";
13import type { AsyncResult } from "effect/reactivity";
1414import { planPinnedReorder } from "@t3tools/client-runtime/state/thread-sort";
1515import {
1616 effectiveSnoozed,
apps/web/src/components/ThreadStatusIndicators.subscriptions.test.tsx+2-2
......@@ -11,7 +11,7 @@ const state = vi.hoisted(() => ({ queries: [] as string[] }));
1111vi.mock("../state/entities", () => ({ useProject: () => null, useServerConfigs: () => new Map() }));
1212vi.mock("../uiStateStore", () => ({ useUiStateStore: () => undefined }));
1313vi.mock("../state/vcs", async () => {
14 const { AsyncResult, Atom } = await import("effect/unstable/reactivity");
14 const { AsyncResult, Atom } = await import("effect/reactivity");
1515 const statuses = Atom.family((cwd: string) =>
1616 Atom.make(() => {
1717 state.queries.push(`vcs:${cwd}`);
......@@ -42,7 +42,7 @@ vi.mock("../state/vcs", async () => {
4242});
4343vi.mock("../state/pullRequests", async (importOriginal) => {
4444 const original = await importOriginal<typeof import("../state/pullRequests")>();
45 const { AsyncResult, Atom } = await import("effect/unstable/reactivity");
45 const { AsyncResult, Atom } = await import("effect/reactivity");
4646 const { ProjectId } = await import("@t3tools/contracts");
4747 const summaries = Atom.family((number: number) =>
4848 Atom.make(() => {
apps/web/src/components/ThreadStatusIndicators.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { ProjectId, type PullRequestSummary, type VcsStatusResult } from "@t3tools/contracts";
22import { describe, expect, it } from "@effect/vitest";
33import * as Effect from "effect/Effect";
4import { AtomRegistry } from "effect/unstable/reactivity";
4import { AtomRegistry } from "effect/reactivity";
55import type { AnimationEvent } from "react";
66
77import {
apps/web/src/components/ThreadStatusIndicators.tsx+1-1
......@@ -13,7 +13,7 @@ import {
1313 type ThreadPullRequestLink,
1414 type VcsStatusResult,
1515} from "@t3tools/contracts";
16import { Atom } from "effect/unstable/reactivity";
16import { Atom } from "effect/reactivity";
1717import { FolderGit2Icon, TerminalIcon } from "lucide-react";
1818import { useCallback, useMemo } from "react";
1919import { appAtomRegistry } from "../rpc/atomRegistry";
apps/web/src/components/chat/useAutoBalanceUpdateBanner.tsx+1-1
......@@ -1,6 +1,6 @@
11import { useAtomValue } from "@effect/atom-react";
22import type { ServerUpdateState } from "@t3tools/client-runtime/state/server";
3import { Atom } from "effect/unstable/reactivity";
3import { Atom } from "effect/reactivity";
44import { useMemo, useState } from "react";
55
66import type { EnvironmentPresentation } from "~/state/environments";
apps/web/src/components/cloud/CloudEnvironmentConnectList.test.tsx+1-1
......@@ -2,7 +2,7 @@ import type { Discovery } from "@t3tools/client-runtime/relay";
22import type { AtomCommandResult } from "@t3tools/client-runtime/state/runtime";
33import { EnvironmentId, ORCHESTRATION_PROTOCOL_VERSION } from "@t3tools/contracts";
44import * as Option from "effect/Option";
5import { AsyncResult } from "effect/unstable/reactivity";
5import { AsyncResult } from "effect/reactivity";
66import { act, useState, type ButtonHTMLAttributes, type ReactNode } from "react";
77import { create, type ReactTestRenderer } from "react-test-renderer";
88import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test";
apps/web/src/components/diffs/useReviewFilePatches.ts+2-2
......@@ -1,8 +1,8 @@
11import { RegistryContext, useAtomValue } from "@effect/atom-react";
22import type { FileDiffMetadata } from "@pierre/diffs";
33import type { EnvironmentId, ReviewDiffPreviewSource } from "@t3tools/contracts";
4import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
5import * as Atom from "effect/unstable/reactivity/Atom";
4import * as AsyncResult from "effect/reactivity/AsyncResult";
5import * as Atom from "effect/reactivity/Atom";
66import { useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
77import { getRenderablePatch, resolveFileDiffPath, type RenderablePatch } from "~/lib/diffRendering";
88import { reviewEnvironment } from "~/state/review";
apps/web/src/components/files/fileSaveCoordinator.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { afterEach, describe, expect, it, vi } from "vite-plus/test";
22import type { AtomCommandResult } from "@t3tools/client-runtime/state/runtime";
33import * as Cause from "effect/Cause";
4import { AsyncResult } from "effect/unstable/reactivity";
4import { AsyncResult } from "effect/reactivity";
55
66import { FileSaveCoordinator } from "./fileSaveCoordinator";
77
apps/web/src/components/files/projectFilesQueryState.test.tsx+1-1
......@@ -5,7 +5,7 @@ import {
55 type ProjectReadFileResult,
66} from "@t3tools/contracts";
77import * as Effect from "effect/Effect";
8import { Atom, AtomRegistry } from "effect/unstable/reactivity";
8import { Atom, AtomRegistry } from "effect/reactivity";
99import { beforeEach, describe, expect, it, vi } from "vite-plus/test";
1010
1111const projectMocks = vi.hoisted(() => ({
apps/web/src/components/files/projectFilesQueryState.ts+1-1
......@@ -8,7 +8,7 @@ import {
88import * as Cause from "effect/Cause";
99import * as Option from "effect/Option";
1010import * as Schema from "effect/Schema";
11import { AsyncResult, Atom } from "effect/unstable/reactivity";
11import { AsyncResult, Atom } from "effect/reactivity";
1212import { useCallback } from "react";
1313
1414import { appAtomRegistry } from "~/rpc/atomRegistry";
apps/web/src/components/files/useFileSaveCoordinator.test.tsx+1-1
......@@ -1,5 +1,5 @@
11import { EnvironmentId } from "@t3tools/contracts";
2import { AsyncResult } from "effect/unstable/reactivity";
2import { AsyncResult } from "effect/reactivity";
33import { act, StrictMode } from "react";
44import { create, type ReactTestRenderer } from "react-test-renderer";
55import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test";
apps/web/src/components/onboarding/FirstRunGate.tsx+1-1
......@@ -1,7 +1,7 @@
11import { RefreshIcon } from "~/components/ui/refresh-icon";
22import { useAtomValue } from "@effect/atom-react";
33import { useLocation, useNavigate } from "@tanstack/react-router";
4import { Atom } from "effect/unstable/reactivity";
4import { Atom } from "effect/reactivity";
55import { useEffect, useState } from "react";
66
77import {
apps/web/src/components/preview/PreviewAutomationHosts.test.tsx+1-1
......@@ -10,7 +10,7 @@ import {
1010} from "@t3tools/contracts";
1111import type { AtomCommandResult } from "@t3tools/client-runtime/state/runtime";
1212import * as Cause from "effect/Cause";
13import { AsyncResult, Atom } from "effect/unstable/reactivity";
13import { AsyncResult, Atom } from "effect/reactivity";
1414import { act } from "react";
1515import { create, type ReactTestRenderer } from "react-test-renderer";
1616import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test";
apps/web/src/components/preview/PreviewAutomationHosts.tsx+1-1
......@@ -22,7 +22,7 @@ import {
2222} from "@t3tools/contracts";
2323import { resolvePreviewViewport } from "@t3tools/shared/previewViewport";
2424import { useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
25import { Atom } from "effect/unstable/reactivity";
25import { Atom } from "effect/reactivity";
2626import { useShallow } from "zustand/react/shallow";
2727
2828import {
apps/web/src/components/preview/addBrowserSurface.test.ts+1-1
......@@ -6,7 +6,7 @@ import {
66 type PreviewSessionSnapshot,
77 type ScopedThreadRef,
88} from "@t3tools/contracts";
9import { AsyncResult } from "effect/unstable/reactivity";
9import { AsyncResult } from "effect/reactivity";
1010import { beforeEach, describe, expect, it, vi } from "vite-plus/test";
1111
1212import {
apps/web/src/components/preview/closePreviewSession.test.ts+1-1
......@@ -4,7 +4,7 @@ import type {
44 ScopedThreadRef,
55} from "@t3tools/contracts";
66import * as Cause from "effect/Cause";
7import { AsyncResult } from "effect/unstable/reactivity";
7import { AsyncResult } from "effect/reactivity";
88import { beforeEach, describe, expect, it, vi } from "vite-plus/test";
99
1010import {
apps/web/src/components/preview/openPreviewSession.test.ts+1-1
......@@ -7,7 +7,7 @@ import {
77 type ScopedThreadRef,
88} from "@t3tools/contracts";
99import * as Cause from "effect/Cause";
10import { AsyncResult } from "effect/unstable/reactivity";
10import { AsyncResult } from "effect/reactivity";
1111import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test";
1212
1313import * as browserDefaults from "~/browser/browserDefaults";
apps/web/src/components/preview/openPreviewSession.ts+1-1
......@@ -7,7 +7,7 @@ import type {
77} from "@t3tools/contracts";
88import type { AtomCommandResult } from "@t3tools/client-runtime/state/runtime";
99import * as Cause from "effect/Cause";
10import { AsyncResult } from "effect/unstable/reactivity";
10import { AsyncResult } from "effect/reactivity";
1111
1212import {
1313 browserDefaultOpenProfileId,
apps/web/src/components/preview/openTerminalLinkInPreview.test.ts+1-1
......@@ -1,6 +1,6 @@
11import type { PreviewSessionSnapshot, ScopedThreadRef } from "@t3tools/contracts";
22import * as Cause from "effect/Cause";
3import { AsyncResult } from "effect/unstable/reactivity";
3import { AsyncResult } from "effect/reactivity";
44import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test";
55
66import {
apps/web/src/components/preview/previewAutomationRequestConsumer.test.ts+1-1
......@@ -6,7 +6,7 @@ import {
66 PreviewTabId,
77 ThreadId,
88} from "@t3tools/contracts";
9import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
9import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
1010import { describe, expect, it, vi } from "vite-plus/test";
1111
1212import {
apps/web/src/components/preview/previewAutomationRequestConsumer.ts+1-1
......@@ -4,7 +4,7 @@ import type {
44 PreviewAutomationResponse,
55 PreviewAutomationStreamEvent,
66} from "@t3tools/contracts";
7import { AsyncResult, Atom } from "effect/unstable/reactivity";
7import { AsyncResult, Atom } from "effect/reactivity";
88
99import {
1010 PreviewAutomationOperationError,
apps/web/src/components/preview/usePreviewSession.ts+1-1
......@@ -4,7 +4,7 @@ import { useAtomValue } from "@effect/atom-react";
44import { parseScopedThreadKey, scopedThreadKey } from "@t3tools/client-runtime/environment";
55import type { ScopedThreadRef } from "@t3tools/contracts";
66import * as Schema from "effect/Schema";
7import { AsyncResult, Atom } from "effect/unstable/reactivity";
7import { AsyncResult, Atom } from "effect/reactivity";
88
99import {
1010 applyPreviewServerEvent,
apps/web/src/components/projectScriptEditor.test.tsx+1-1
......@@ -1,5 +1,5 @@
11import * as Cause from "effect/Cause";
2import { AsyncResult } from "effect/unstable/reactivity";
2import { AsyncResult } from "effect/reactivity";
33import { act, StrictMode, type ReactNode } from "react";
44import { create, type ReactTestRenderer } from "react-test-renderer";
55import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test";
apps/web/src/components/pullRequest/LinkPullRequestDialog.tsx+1-1
......@@ -13,7 +13,7 @@ import { parsePullRequestReference } from "~/pullRequestReference";
1313import { useProjects, useThreadShell } from "~/state/entities";
1414import { usePullRequestLinking } from "~/hooks/usePullRequestLinking";
1515import { appAtomRegistry } from "~/rpc/atomRegistry";
16import { Atom } from "effect/unstable/reactivity";
16import { Atom } from "effect/reactivity";
1717import { Button } from "../ui/button";
1818import {
1919 Dialog,
apps/web/src/components/pullRequest/usePullRequestFilesViewed.test.tsx+1-1
......@@ -4,7 +4,7 @@ import {
44 type PullRequestFilesViewedResult,
55 type PullRequestRef,
66} from "@t3tools/contracts";
7import { AsyncResult } from "effect/unstable/reactivity";
7import { AsyncResult } from "effect/reactivity";
88import { act, StrictMode } from "react";
99import { create, type ReactTestRenderer } from "react-test-renderer";
1010import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test";
apps/web/src/components/settings/ConnectionsSettings.tsx+1-1
......@@ -8,7 +8,7 @@ import {
88 TerminalIcon,
99} from "lucide-react";
1010import { useAtomValue } from "@effect/atom-react";
11import { Atom } from "effect/unstable/reactivity";
11import { Atom } from "effect/reactivity";
1212import {
1313 type KeyboardEvent,
1414 type ReactNode,
apps/web/src/components/settings/ProjectSettingsPanel.tsx+1-1
......@@ -6,7 +6,7 @@ import {
66 type AtomCommandResult,
77} from "@t3tools/client-runtime/state/runtime";
88import { scopeProjectRef, scopeThreadRef } from "@t3tools/client-runtime/environment";
9import { AsyncResult } from "effect/unstable/reactivity";
9import { AsyncResult } from "effect/reactivity";
1010import { type EnvironmentId, type ProjectIconOverride } from "@t3tools/contracts";
1111import { useLocation, useNavigate } from "@tanstack/react-router";
1212import * as Cause from "effect/Cause";
apps/web/src/components/settings/SettingsScopeContext.tsx+1-1
......@@ -2,7 +2,7 @@ import { T3_PROJECT_FILE_NAME, type T3ProjectFile } from "@t3tools/contracts";
22import { parseT3ProjectFile } from "@t3tools/shared/t3ProjectFile";
33import { useAtomValue } from "@effect/atom-react";
44import * as Option from "effect/Option";
5import { AsyncResult, Atom } from "effect/unstable/reactivity";
5import { AsyncResult, Atom } from "effect/reactivity";
66import { createContext, type ReactNode, useContext, useMemo } from "react";
77
88import { useEnvironments, usePrimaryEnvironmentId } from "../../state/environments";
apps/web/src/components/settings/useProjectScriptSettings.ts+1-1
......@@ -14,7 +14,7 @@ import {
1414import { resolveProjectScripts } from "@t3tools/shared/projectScripts";
1515import { clearProjectSettingsOverrides } from "@t3tools/shared/projectSettings";
1616import * as Cause from "effect/Cause";
17import { AsyncResult } from "effect/unstable/reactivity";
17import { AsyncResult } from "effect/reactivity";
1818import { useRef, useState } from "react";
1919
2020import { isElectron } from "../../env";
apps/web/src/components/usage/UsagePriceOverrides.tsx+1-1
......@@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react";
22import type { EnvironmentId } from "@t3tools/contracts";
33import { ChevronDownIcon, PlusIcon, RotateCcwIcon, XIcon } from "lucide-react";
44import * as Option from "effect/Option";
5import { AsyncResult, Atom } from "effect/unstable/reactivity";
5import { AsyncResult, Atom } from "effect/reactivity";
66import { useRef, useState } from "react";
77
88import { isElectron } from "../../env";
apps/web/src/connection/platform.ts+1-1
......@@ -37,7 +37,7 @@ import * as Option from "effect/Option";
3737import * as Queue from "effect/Queue";
3838import * as Ref from "effect/Ref";
3939import * as Stream from "effect/Stream";
40import { FetchHttpClient } from "effect/unstable/http";
40import { FetchHttpClient } from "effect/http";
4141
4242import { APP_VERSION } from "../branding";
4343import { readDesktopPrimaryBearerToken } from "../environments/primary/desktopAuth";
apps/web/src/connection/runtime.ts+1-1
......@@ -6,7 +6,7 @@ import {
66} from "@t3tools/client-runtime/state/threads";
77import { PullRequestDiffLoader } from "@t3tools/client-runtime/state/pull-requests";
88import * as Layer from "effect/Layer";
9import { Atom } from "effect/unstable/reactivity";
9import { Atom } from "effect/reactivity";
1010
1111import { runtimeContextLayer } from "../lib/runtime";
1212import {
apps/web/src/editorPreferences.ts+1-1
......@@ -6,7 +6,7 @@ import {
66} from "@t3tools/client-runtime/state/runtime";
77import * as Cause from "effect/Cause";
88import * as Schema from "effect/Schema";
9import { AsyncResult } from "effect/unstable/reactivity";
9import { AsyncResult } from "effect/reactivity";
1010import { getLocalStorageItem, setLocalStorageItem, useLocalStorage } from "./hooks/useLocalStorage";
1111import { useCallback, useMemo } from "react";
1212import { shellEnvironment } from "./state/shell";
apps/web/src/environments/primary/auth.ts+1-1
......@@ -11,7 +11,7 @@ import { EnvironmentHttpCommonError, PRIMARY_LOCAL_ENVIRONMENT_ID } from "@t3too
1111import type { EnvironmentHttpCommonError as EnvironmentHttpCommonErrorType } from "@t3tools/contracts";
1212import * as Effect from "effect/Effect";
1313import * as Schema from "effect/Schema";
14import { HttpClientError } from "effect/unstable/http";
14import { HttpClientError } from "effect/http";
1515
1616import {
1717 getPairingTokenFromUrl,
apps/web/src/environments/primary/httpLayer.test.ts+1-1
......@@ -1,7 +1,7 @@
11import type { DesktopBridge } from "@t3tools/contracts";
22import { afterEach, describe, expect, it, vi } from "@effect/vitest";
33import * as Effect from "effect/Effect";
4import { HttpClient } from "effect/unstable/http";
4import { HttpClient } from "effect/http";
55
66import { __resetDesktopPrimaryAuthForTests } from "./desktopAuth";
77import { makePrimaryEnvironmentHttpLayer } from "./httpLayer";
apps/web/src/environments/primary/httpLayer.ts+1-1
......@@ -1,7 +1,7 @@
11import { remoteHttpClientLayer } from "@t3tools/client-runtime/rpc";
22import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/http";
4import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/http";
55
66import { readDesktopPrimaryBearerToken } from "./desktopAuth";
77import { resolvePrimaryEnvironmentHttpUrl } from "./target";
apps/web/src/environments/primary/sessionState.ts+1-1
......@@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react";
22import * as Cause from "effect/Cause";
33import * as Effect from "effect/Effect";
44import * as Option from "effect/Option";
5import { AsyncResult, Atom } from "effect/unstable/reactivity";
5import { AsyncResult, Atom } from "effect/reactivity";
66import { useCallback } from "react";
77
88import { isLocalEnvironmentDisabled } from "../../localEnvironment";
apps/web/src/hooks/showThreadUndoNotice.test.ts+1-1
......@@ -1,4 +1,4 @@
1import { AsyncResult } from "effect/unstable/reactivity";
1import { AsyncResult } from "effect/reactivity";
22import * as Cause from "effect/Cause";
33import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test";
44
apps/web/src/hooks/useLoadBalancedEnvironment.ts+1-1
......@@ -1,7 +1,7 @@
11import { RegistryContext, useAtomValue } from "@effect/atom-react";
22import { chooseLoadBalancedEnvironment } from "@t3tools/client-runtime/load-balancing";
33import type { EnvironmentId } from "@t3tools/contracts";
4import { Atom } from "effect/unstable/reactivity";
4import { Atom } from "effect/reactivity";
55import { useCallback, useContext, useMemo } from "react";
66
77import { serverEnvironment } from "../state/server";
apps/web/src/hooks/useThreadActions.ts+1-1
......@@ -11,7 +11,7 @@ import { EnvironmentId, type ScopedThreadRef, ThreadId } from "@t3tools/contract
1111import { resolveWorktreeCleanup } from "@t3tools/shared/projectSettings";
1212import * as Cause from "effect/Cause";
1313import * as Schema from "effect/Schema";
14import { AsyncResult } from "effect/unstable/reactivity";
14import { AsyncResult } from "effect/reactivity";
1515import { useRouter } from "@tanstack/react-router";
1616import { useCallback, useMemo, useRef } from "react";
1717
apps/web/src/lib/assistantCitationNavigation.ts+3-3
......@@ -3,7 +3,7 @@ import {
33 formatAssistantCitationHref,
44 parseAssistantCitationHref,
55} from "@t3tools/shared/assistantCitations";
6import * as Encoding from "effect/Encoding";
6import * as Base64Url from "effect/encoding/Base64Url";
77import * as Result from "effect/Result";
88
99import { randomUUID } from "./utils";
......@@ -18,7 +18,7 @@ const CITATION_HASH_PREFIX = "assistant-citation=";
1818
1919/** Base64url keeps router hash normalization from decoding quote whitespace or source IDs. */
2020export function assistantCitationHash(citation: AssistantCitation) {
21 return `${CITATION_HASH_PREFIX}${Encoding.encodeBase64Url(formatAssistantCitationHref(citation))}`;
21 return `${CITATION_HASH_PREFIX}${Base64Url.encode(formatAssistantCitationHref(citation))}`;
2222}
2323
2424export function assistantCitationFromLocation(href: string) {
......@@ -28,7 +28,7 @@ export function assistantCitationFromLocation(href: string) {
2828 if (!hash.startsWith(CITATION_HASH_PREFIX) || hash.length > 140_000) return null;
2929 try {
3030 return parseAssistantCitationHref(
31 Result.getOrThrow(Encoding.decodeBase64UrlString(hash.slice(CITATION_HASH_PREFIX.length))),
31 Result.getOrThrow(Base64Url.decodeString(hash.slice(CITATION_HASH_PREFIX.length))),
3232 );
3333 } catch {
3434 return null;
apps/web/src/lib/attachmentUploadQueue.test.ts+2-2
......@@ -1,6 +1,6 @@
11import { EnvironmentId } from "@t3tools/contracts";
22import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test";
3import { Atom, AsyncResult } from "effect/unstable/reactivity";
3import { Atom, AsyncResult } from "effect/reactivity";
44import { appAtomRegistry } from "../rpc/atomRegistry";
55
66import {
......@@ -28,7 +28,7 @@ vi.mock("@t3tools/client-runtime/state/runtime", () => ({
2828}));
2929
3030vi.mock("../rpc/atomRegistry", async () => {
31 const { AtomRegistry } = await import("effect/unstable/reactivity");
31 const { AtomRegistry } = await import("effect/reactivity");
3232 return { appAtomRegistry: AtomRegistry.make() };
3333});
3434
apps/web/src/lib/attachmentUploadQueue.ts+1-1
......@@ -13,7 +13,7 @@ import {
1313} from "@t3tools/client-runtime/state/attachments";
1414import { create } from "zustand";
1515import * as Option from "effect/Option";
16import { AsyncResult } from "effect/unstable/reactivity";
16import { AsyncResult } from "effect/reactivity";
1717
1818import {
1919 DraftId,
apps/web/src/lib/diffFileContents.test.ts+1-1
......@@ -1,7 +1,7 @@
11import type { FileDiffMetadata } from "@pierre/diffs";
22import { EnvironmentId, type ReviewDiffFileContentsResult } from "@t3tools/contracts";
33import * as Cause from "effect/Cause";
4import { AsyncResult } from "effect/unstable/reactivity";
4import { AsyncResult } from "effect/reactivity";
55import { describe, expect, it, vi } from "vite-plus/test";
66
77import { createGitDiffFileContentsLoader } from "./diffFileContents";
apps/web/src/lib/discardComposerDraft.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Cause from "effect/Cause";
2import { AsyncResult } from "effect/unstable/reactivity";
2import { AsyncResult } from "effect/reactivity";
33
44import {
55 type ComposerThreadTarget,
apps/web/src/lib/runtime.ts+1-1
......@@ -1,7 +1,7 @@
11import * as ManagedRuntime from "effect/ManagedRuntime";
22import type * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
4import * as Socket from "effect/unstable/socket/Socket";
4import * as Socket from "effect/socket/Socket";
55
66import { remoteHttpClientLayer } from "@t3tools/client-runtime/rpc";
77import { makeRelayClientTracingLayer } from "@t3tools/shared/relayTracing";
apps/web/src/lib/utils.ts+2-2
......@@ -1,6 +1,6 @@
11import { MessageId, ProjectId, ThreadId } from "@t3tools/contracts";
22import { type CxOptions, cx } from "class-variance-authority";
3import * as Encoding from "effect/Encoding";
3import * as Hex from "effect/encoding/Hex";
44import { extendTailwindMerge } from "tailwind-merge";
55import { DraftId } from "../composerDraftStore";
66
......@@ -38,7 +38,7 @@ export function randomUUID(): string {
3838 const bytes = globalThis.crypto.getRandomValues(new Uint8Array(16));
3939 bytes[6] = (bytes[6]! & 0x0f) | 0x40;
4040 bytes[8] = (bytes[8]! & 0x3f) | 0x80;
41 const hex = Encoding.encodeHex(bytes);
41 const hex = Hex.encode(bytes);
4242 return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`;
4343}
4444
apps/web/src/observability/clientTracing.ts+2-2
......@@ -2,8 +2,8 @@ import * as Exit from "effect/Exit";
22import * as Layer from "effect/Layer";
33import * as ManagedRuntime from "effect/ManagedRuntime";
44import * as Scope from "effect/Scope";
5import { HttpClient } from "effect/unstable/http";
6import { OtlpExporter, OtlpSerialization, OtlpTracer } from "effect/unstable/observability";
5import { HttpClient } from "effect/http";
6import { OtlpExporter, OtlpSerialization, OtlpTracer } from "effect/observability";
77
88import { settleAsyncResult, squashAtomCommandFailure } from "@t3tools/client-runtime/state/runtime";
99import { safeErrorLogAttributes } from "@t3tools/client-runtime/errors";
apps/web/src/onboarding/useProjectScans.ts+1-1
......@@ -1,7 +1,7 @@
11import { RegistryContext, useAtomValue } from "@effect/atom-react";
22import type { EnvironmentId } from "@t3tools/contracts";
33import * as Option from "effect/Option";
4import { AsyncResult, Atom } from "effect/unstable/reactivity";
4import { AsyncResult, Atom } from "effect/reactivity";
55import { useContext, useMemo } from "react";
66
77import { agentSessionScan } from "../state/agentSessions";
apps/web/src/previewStateStore.ts+1-1
......@@ -15,7 +15,7 @@ import {
1515 type PreviewSessionSnapshot,
1616 type ScopedThreadRef,
1717} from "@t3tools/contracts";
18import { Atom } from "effect/unstable/reactivity";
18import { Atom } from "effect/reactivity";
1919
2020import { PREVIEW_RECENT_URL_LIMIT } from "./components/preview/previewConstants";
2121import { appAtomRegistry } from "./rpc/atomRegistry";
apps/web/src/rpc/atomRegistry.ts+1-1
......@@ -1,5 +1,5 @@
11import { RegistryContext } from "@effect/atom-react";
2import { AtomRegistry } from "effect/unstable/reactivity";
2import { AtomRegistry } from "effect/reactivity";
33import { createElement } from "react";
44
55export const appAtomRegistry = AtomRegistry.make();
apps/web/src/rpc/requestLatencyState.ts+1-1
......@@ -1,6 +1,6 @@
11import { useAtomValue } from "@effect/atom-react";
22import { WS_METHODS } from "@t3tools/contracts";
3import { Atom } from "effect/unstable/reactivity";
3import { Atom } from "effect/reactivity";
44
55import { appAtomRegistry } from "./atomRegistry";
66
apps/web/src/state/assets.ts+1-1
......@@ -2,7 +2,7 @@ import {
22 createAssetEnvironmentAtoms,
33 createProjectFaviconUrlAtomFamily,
44} from "@t3tools/client-runtime/state/assets";
5import { Atom } from "effect/unstable/reactivity";
5import { Atom } from "effect/reactivity";
66
77import { connectionAtomRuntime } from "../connection/runtime";
88import { projectFaviconCache } from "../assets/projectFaviconCache";
apps/web/src/state/desktopNetworkAccess.test.ts+2-2
......@@ -1,7 +1,7 @@
11import type { AdvertisedEndpoint, DesktopServerExposureState } from "@t3tools/contracts";
22import * as Cause from "effect/Cause";
3import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
4import { AtomRegistry } from "effect/unstable/reactivity";
3import * as AsyncResult from "effect/reactivity/AsyncResult";
4import { AtomRegistry } from "effect/reactivity";
55import { describe, expect, it, vi } from "vite-plus/test";
66
77import { createDesktopNetworkAccessStateAtom } from "./desktopNetworkAccess";
apps/web/src/state/desktopNetworkAccess.ts+1-1
......@@ -5,7 +5,7 @@ import type {
55} from "@t3tools/contracts";
66import * as Effect from "effect/Effect";
77import * as Schema from "effect/Schema";
8import { Atom } from "effect/unstable/reactivity";
8import { Atom } from "effect/reactivity";
99
1010import { appAtomRegistry } from "~/rpc/atomRegistry";
1111
apps/web/src/state/desktopSshHosts.test.ts+2-2
......@@ -1,7 +1,7 @@
11import type { DesktopDiscoveredSshHost } from "@t3tools/contracts";
22import * as Cause from "effect/Cause";
3import { AtomRegistry } from "effect/unstable/reactivity";
4import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
3import { AtomRegistry } from "effect/reactivity";
4import * as AsyncResult from "effect/reactivity/AsyncResult";
55import { describe, expect, it, vi } from "vite-plus/test";
66
77import { createDesktopSshHostsStateAtom, filterDiscoveredSshHosts } from "./desktopSshHosts";
apps/web/src/state/desktopSshHosts.ts+1-1
......@@ -1,7 +1,7 @@
11import type { DesktopBridge, DesktopDiscoveredSshHost } from "@t3tools/contracts";
22import * as Effect from "effect/Effect";
33import * as Schema from "effect/Schema";
4import { Atom } from "effect/unstable/reactivity";
4import { Atom } from "effect/reactivity";
55
66type DesktopSshDiscoveryBridge = Pick<DesktopBridge, "discoverSshHosts">;
77
apps/web/src/state/desktopUpdate.test.ts+2-2
......@@ -1,6 +1,6 @@
11import type { DesktopUpdateState } from "@t3tools/contracts";
2import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
3import { AtomRegistry } from "effect/unstable/reactivity";
2import * as AsyncResult from "effect/reactivity/AsyncResult";
3import { AtomRegistry } from "effect/reactivity";
44import { afterEach, describe, expect, it, vi } from "vite-plus/test";
55
66import { createDesktopUpdateStateAtom, DesktopUpdateStateReadError } from "./desktopUpdate";
apps/web/src/state/desktopUpdate.ts+2-2
......@@ -4,8 +4,8 @@ import * as Effect from "effect/Effect";
44import * as Queue from "effect/Queue";
55import * as Schema from "effect/Schema";
66import * as Stream from "effect/Stream";
7import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
8import { Atom } from "effect/unstable/reactivity";
7import * as AsyncResult from "effect/reactivity/AsyncResult";
8import { Atom } from "effect/reactivity";
99
1010type DesktopUpdateBridge = Pick<DesktopBridge, "getUpdateState" | "onUpdateState">;
1111
apps/web/src/state/desktopWslState.test.ts+2-2
......@@ -1,7 +1,7 @@
11import type { DesktopWslState } from "@t3tools/contracts";
22import * as Cause from "effect/Cause";
3import * as AsyncResult from "effect/unstable/reactivity/AsyncResult";
4import { AtomRegistry } from "effect/unstable/reactivity";
3import * as AsyncResult from "effect/reactivity/AsyncResult";
4import { AtomRegistry } from "effect/reactivity";
55import { describe, expect, it, vi } from "vite-plus/test";
66
77import { createDesktopWslStateAtom } from "./desktopWslState";
apps/web/src/state/desktopWslState.ts+1-1
......@@ -1,7 +1,7 @@
11import type { DesktopBridge, DesktopWslState } from "@t3tools/contracts";
22import * as Effect from "effect/Effect";
33import * as Schema from "effect/Schema";
4import { Atom } from "effect/unstable/reactivity";
4import { Atom } from "effect/reactivity";
55
66import { appAtomRegistry } from "~/rpc/atomRegistry";
77
apps/web/src/state/device.ts+1-1
......@@ -8,7 +8,7 @@ import {
88import type { DeviceServiceState, EnvironmentId } from "@t3tools/contracts";
99import * as Effect from "effect/Effect";
1010import * as Option from "effect/Option";
11import { AsyncResult, Atom } from "effect/unstable/reactivity";
11import { AsyncResult, Atom } from "effect/reactivity";
1212
1313import { connectionAtomRuntime } from "../connection/runtime";
1414import { appAtomRegistry } from "../rpc/atomRegistry";
apps/web/src/state/entities.ts+1-1
......@@ -11,7 +11,7 @@ import {
1111} from "@t3tools/client-runtime/state/threads";
1212import type { ScopedProjectRef, ScopedThreadRef, ServerConfig } from "@t3tools/contracts";
1313import type { EnvironmentId, OrchestrationV2ProjectedTurnItem } from "@t3tools/contracts";
14import { Atom } from "effect/unstable/reactivity";
14import { Atom } from "effect/reactivity";
1515import { appAtomRegistry } from "../rpc/atomRegistry";
1616import { environmentProjects } from "./projects";
1717import { environmentServerConfigsAtom } from "./server";
apps/web/src/state/paginatedBranches.test.ts+1-1
......@@ -1,5 +1,5 @@
11import type { VcsListRefsResult } from "@t3tools/contracts";
2import { AsyncResult } from "effect/unstable/reactivity";
2import { AsyncResult } from "effect/reactivity";
33import { describe, expect, it } from "vite-plus/test";
44
55import {
apps/web/src/state/paginatedBranches.ts+1-1
......@@ -1,6 +1,6 @@
11import type { VcsListRefsResult } from "@t3tools/contracts";
22import * as Option from "effect/Option";
3import { AsyncResult } from "effect/unstable/reactivity";
3import { AsyncResult } from "effect/reactivity";
44
55const DEFAULT_NEXT_PAGE_DISTANCE_PX = 96;
66
apps/web/src/state/presentation.ts+1-1
......@@ -5,7 +5,7 @@ import {
55 createEnvironmentSummaryAtoms,
66} from "@t3tools/client-runtime/state/presentation";
77import type { EnvironmentId } from "@t3tools/contracts";
8import { Atom } from "effect/unstable/reactivity";
8import { Atom } from "effect/reactivity";
99
1010import { environmentCatalog } from "../connection/catalog";
1111import { serverEnvironment } from "./server";
apps/web/src/state/primaryEnvironment.ts+1-1
......@@ -1,4 +1,4 @@
1import { Atom } from "effect/unstable/reactivity";
1import { Atom } from "effect/reactivity";
22
33import { environmentCatalog } from "../connection/catalog";
44
apps/web/src/state/projectClones.ts+1-1
......@@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react";
22import { parseScopedProjectKey, scopedProjectKey } from "@t3tools/client-runtime/environment";
33import type { EnvironmentId, ProjectCloneSnapshot, ScopedProjectRef } from "@t3tools/contracts";
44import * as Option from "effect/Option";
5import { AsyncResult, Atom } from "effect/unstable/reactivity";
5import { AsyncResult, Atom } from "effect/reactivity";
66
77import { environmentServerConfigsAtom } from "./server";
88import { sourceControlEnvironment } from "./sourceControl";
apps/web/src/state/pullRequests.ts+1-1
......@@ -13,7 +13,7 @@ import type {
1313 PullRequestSummary,
1414} from "@t3tools/contracts";
1515import * as Option from "effect/Option";
16import { AsyncResult, Atom } from "effect/unstable/reactivity";
16import { AsyncResult, Atom } from "effect/reactivity";
1717import { useCallback, useLayoutEffect, useMemo } from "react";
1818
1919import { connectionAtomRuntime } from "../connection/runtime";
apps/web/src/state/queries.ts+1-1
......@@ -20,7 +20,7 @@ import type {
2020} from "@t3tools/contracts";
2121import * as Cause from "effect/Cause";
2222import * as Option from "effect/Option";
23import { AsyncResult, Atom } from "effect/unstable/reactivity";
23import { AsyncResult, Atom } from "effect/reactivity";
2424import { useCallback, useEffect, useMemo, useState } from "react";
2525
2626import { appAtomRegistry } from "../rpc/atomRegistry";
apps/web/src/state/query.ts+1-1
......@@ -1,7 +1,7 @@
11import { useAtomRefresh, useAtomValue } from "@effect/atom-react";
22import * as Cause from "effect/Cause";
33import * as Option from "effect/Option";
4import { AsyncResult, Atom } from "effect/unstable/reactivity";
4import { AsyncResult, Atom } from "effect/reactivity";
55
66const EMPTY_ASYNC_RESULT_ATOM = Atom.make(AsyncResult.initial<never, never>(false)).pipe(
77 Atom.withLabel("web-environment-query:empty"),
apps/web/src/state/server.ts+1-1
......@@ -14,7 +14,7 @@ import { createOutdatedServerUpdateCommand } from "@t3tools/client-runtime/state
1414import { createEnvironmentServerConfigsAtom } from "@t3tools/client-runtime/state/shell";
1515import { mergeWithDefaultKeybindings } from "@t3tools/shared/keybindings";
1616import * as Option from "effect/Option";
17import { AsyncResult, Atom } from "effect/unstable/reactivity";
17import { AsyncResult, Atom } from "effect/reactivity";
1818
1919import { environmentCatalog } from "../connection/catalog";
2020import { connectionAtomRuntime } from "../connection/runtime";
apps/web/src/state/session.ts+1-1
......@@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react";
22import { createEnvironmentSessionAtoms } from "@t3tools/client-runtime/state/session";
33import type { EnvironmentId } from "@t3tools/contracts";
44import * as Option from "effect/Option";
5import { AsyncResult, Atom } from "effect/unstable/reactivity";
5import { AsyncResult, Atom } from "effect/reactivity";
66
77import { connectionAtomRuntime } from "../connection/runtime";
88import { appAtomRegistry } from "../rpc/atomRegistry";
apps/web/src/state/shell.test.ts+1-1
......@@ -6,7 +6,7 @@ import type { EnvironmentCatalogState } from "@t3tools/client-runtime/state/conn
66import type { EnvironmentShellState } from "@t3tools/client-runtime/state/shell";
77import { EnvironmentId } from "@t3tools/contracts";
88import * as Option from "effect/Option";
9import { Atom, AtomRegistry } from "effect/unstable/reactivity";
9import { Atom, AtomRegistry } from "effect/reactivity";
1010import { describe, expect, it } from "vite-plus/test";
1111
1212import { createAllEnvironmentProjectSnapshotsReadyAtom } from "./shell";
apps/web/src/state/shell.ts+1-1
......@@ -14,7 +14,7 @@ import {
1414} from "@t3tools/client-runtime/state/connections";
1515import type { EnvironmentId } from "@t3tools/contracts";
1616import * as Option from "effect/Option";
17import { AsyncResult, Atom } from "effect/unstable/reactivity";
17import { AsyncResult, Atom } from "effect/reactivity";
1818
1919import { environmentCatalog } from "../connection/catalog";
2020import { connectionAtomRuntime } from "../connection/runtime";
apps/web/src/state/sourceControlActions.ts+1-1
......@@ -18,7 +18,7 @@ import type {
1818} from "@t3tools/contracts";
1919import * as Cause from "effect/Cause";
2020import * as Option from "effect/Option";
21import { AsyncResult } from "effect/unstable/reactivity";
21import { AsyncResult } from "effect/reactivity";
2222import { useCallback } from "react";
2323
2424import { appAtomRegistry } from "../rpc/atomRegistry";
apps/web/src/state/threads.test.ts+1-1
......@@ -11,7 +11,7 @@ import {
1111} from "@t3tools/contracts";
1212import { makeThreadProjectionFixture } from "../test-fixtures";
1313import * as Option from "effect/Option";
14import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
14import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
1515import { describe, expect, it } from "vite-plus/test";
1616
1717import { createRunningThreadKeepAliveAtom } from "./threads";
apps/web/src/state/threads.ts+1-1
......@@ -11,7 +11,7 @@ import {
1111} from "@t3tools/client-runtime/state/threads";
1212import type { EnvironmentId, OrchestrationV2ThreadShell, ThreadId } from "@t3tools/contracts";
1313import * as Option from "effect/Option";
14import { AsyncResult, Atom } from "effect/unstable/reactivity";
14import { AsyncResult, Atom } from "effect/reactivity";
1515
1616import { environmentCatalog } from "../connection/catalog";
1717import { connectionAtomRuntime } from "../connection/runtime";
apps/web/src/state/usage.ts+1-1
......@@ -16,7 +16,7 @@ import {
1616} from "@t3tools/contracts";
1717import { needsCursorKeychainAccess, refreshUsage } from "@t3tools/client-runtime/state/usage";
1818import * as Option from "effect/Option";
19import { AsyncResult, Atom } from "effect/unstable/reactivity";
19import { AsyncResult, Atom } from "effect/reactivity";
2020import { useCallback, useMemo } from "react";
2121
2222import { mergeUsage, type EnvironmentUsage, type MergedUsage } from "@t3tools/shared/usageMerge";
apps/web/src/state/use-atom-query-runner.ts+1-1
......@@ -4,7 +4,7 @@ import {
44 type AtomQueryOptions,
55 type AtomCommandResult,
66} from "@t3tools/client-runtime/state/runtime";
7import { AsyncResult, type Atom } from "effect/unstable/reactivity";
7import { AsyncResult, type Atom } from "effect/reactivity";
88import { useCallback, useContext } from "react";
99
1010export function useAtomQueryRunner<T, A, E>(
apps/web/src/state/v2ItemSupport.ts+1-1
......@@ -7,7 +7,7 @@ import {
77} from "@t3tools/client-runtime/state/item-support";
88import type { EnvironmentId, ThreadId, TurnItemId } from "@t3tools/contracts";
99import { scopeThreadRef } from "@t3tools/client-runtime/environment";
10import { Atom } from "effect/unstable/reactivity";
10import { Atom } from "effect/reactivity";
1111
1212import { environmentThreadDetails } from "./threads";
1313
apps/web/src/state/waitForAtomValue.test.ts+1-1
......@@ -1,4 +1,4 @@
1import { Atom, AtomRegistry } from "effect/unstable/reactivity";
1import { Atom, AtomRegistry } from "effect/reactivity";
22import { describe, expect, it, vi } from "vite-plus/test";
33
44import { waitForAtomValue } from "./waitForAtomValue";
apps/web/src/state/waitForAtomValue.ts+1-1
......@@ -1,4 +1,4 @@
1import type { Atom, AtomRegistry } from "effect/unstable/reactivity";
1import type { Atom, AtomRegistry } from "effect/reactivity";
22
33export async function waitForAtomValue<A>(input: {
44 readonly registry: AtomRegistry.AtomRegistry;
apps/web/test/environmentHttpTest.ts+2-2
......@@ -18,8 +18,8 @@ import type * as Context from "effect/Context";
1818import * as Effect from "effect/Effect";
1919import * as Layer from "effect/Layer";
2020import * as ManagedRuntime from "effect/ManagedRuntime";
21import { HttpApiTest } from "effect/unstable/httpapi";
22import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder";
21import { HttpApiTest } from "effect/http-api";
22import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder";
2323
2424import { PrimaryEnvironmentHttpClient } from "../src/environments/primary/httpClient";
2525import { __setPrimaryHttpRunnerForTests } from "../src/lib/runtime";
infra/relay/package.json+1-1
......@@ -18,7 +18,7 @@
1818 "@t3tools/client-runtime": "workspace:*",
1919 "@t3tools/contracts": "workspace:*",
2020 "@t3tools/shared": "workspace:*",
21 "alchemy": "2.0.0-beta.79",
21 "alchemy": "2.0.0-beta.80",
2222 "drizzle-orm": "1.0.0-rc.5-ab785fc",
2323 "effect": "catalog:"
2424 },
infra/relay/scripts/android-push-smoke.ts+1-1
......@@ -6,7 +6,7 @@ import * as Clock from "effect/Clock";
66import * as Layer from "effect/Layer";
77import * as Redacted from "effect/Redacted";
88import * as Schema from "effect/Schema";
9import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
9import * as FetchHttpClient from "effect/http/FetchHttpClient";
1010
1111import * as RelayConfiguration from "../src/Config.ts";
1212import * as WebCrypto from "../src/WebCrypto.ts";
infra/relay/scripts/android-push-watch.ts+4-4
......@@ -19,10 +19,10 @@ import * as Layer from "effect/Layer";
1919import * as Redacted from "effect/Redacted";
2020import * as Schema from "effect/Schema";
2121import * as Stream from "effect/Stream";
22import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
23import * as RpcClient from "effect/unstable/rpc/RpcClient";
24import * as RpcSerialization from "effect/unstable/rpc/RpcSerialization";
25import * as Socket from "effect/unstable/socket/Socket";
22import * as FetchHttpClient from "effect/http/FetchHttpClient";
23import * as RpcClient from "effect/rpc/RpcClient";
24import * as RpcSerialization from "effect/rpc/RpcSerialization";
25import * as Socket from "effect/socket/Socket";
2626
2727import * as RelayConfiguration from "../src/Config.ts";
2828import { androidActivityData, fitFcmData } from "../src/agentActivity/fcmPayloads.ts";
infra/relay/src/agentActivity/ApnsClient.test.ts+3-3
......@@ -11,9 +11,9 @@ import * as Layer from "effect/Layer";
1111import * as Redacted from "effect/Redacted";
1212import * as Schema from "effect/Schema";
1313import * as TestClock from "effect/testing/TestClock";
14import * as HttpClient from "effect/unstable/http/HttpClient";
15import * as HttpClientError from "effect/unstable/http/HttpClientError";
16import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
14import * as HttpClient from "effect/http/HttpClient";
15import * as HttpClientError from "effect/http/HttpClientError";
16import * as HttpClientResponse from "effect/http/HttpClientResponse";
1717
1818import type { ApnsCredentials } from "../Config.ts";
1919import * as ApnsClient from "./ApnsClient.ts";
infra/relay/src/agentActivity/ApnsClient.ts+3-3
......@@ -4,9 +4,9 @@ import * as Effect from "effect/Effect";
44import * as Layer from "effect/Layer";
55import * as Option from "effect/Option";
66import * as Schema from "effect/Schema";
7import * as Headers from "effect/unstable/http/Headers";
8import * as HttpClient from "effect/unstable/http/HttpClient";
9import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
7import * as Headers from "effect/http/Headers";
8import * as HttpClient from "effect/http/HttpClient";
9import * as HttpClientRequest from "effect/http/HttpClientRequest";
1010import { ApnsEnvironment, type ApnsCredentials } from "../Config.ts";
1111import type { ApnsLiveActivityAlert, ApnsNotificationPayload } from "./apnsDeliveryJobs.ts";
1212import type { ApnsJwtEncodingError, ApnsJwtSigningError } from "./apnsJwt.ts";
infra/relay/src/agentActivity/ApnsDeliveries.test.ts+1-6
......@@ -14,12 +14,7 @@ import * as Redacted from "effect/Redacted";
1414import * as References from "effect/References";
1515import * as Stream from "effect/Stream";
1616import * as TestClock from "effect/testing/TestClock";
17import {
18 FetchHttpClient,
19 HttpClient,
20 HttpClientRequest,
21 HttpClientResponse,
22} from "effect/unstable/http";
17import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
2318
2419import {
2520 makeApnsDeliveryJobPayload,
infra/relay/src/agentActivity/FcmClient.test.ts+3-3
......@@ -7,9 +7,9 @@ import * as Layer from "effect/Layer";
77import * as Redacted from "effect/Redacted";
88import * as Schema from "effect/Schema";
99import * as TestClock from "effect/testing/TestClock";
10import * as HttpClient from "effect/unstable/http/HttpClient";
11import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
12import type * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
10import * as HttpClient from "effect/http/HttpClient";
11import * as HttpClientResponse from "effect/http/HttpClientResponse";
12import type * as HttpClientRequest from "effect/http/HttpClientRequest";
1313
1414import * as RelayConfiguration from "../Config.ts";
1515import * as FcmClient from "./FcmClient.ts";
infra/relay/src/agentActivity/FcmClient.ts+2-2
......@@ -5,8 +5,8 @@ import * as Layer from "effect/Layer";
55import * as Option from "effect/Option";
66import * as Redacted from "effect/Redacted";
77import * as Schema from "effect/Schema";
8import * as HttpClient from "effect/unstable/http/HttpClient";
9import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest";
8import * as HttpClient from "effect/http/HttpClient";
9import * as HttpClientRequest from "effect/http/HttpClientRequest";
1010
1111import * as RelayConfiguration from "../Config.ts";
1212import * as FcmAssertionSigner from "./FcmAssertionSigner.ts";
infra/relay/src/agentActivity/MobileRegistrations.test.ts+1-1
......@@ -9,7 +9,7 @@ import * as Effect from "effect/Effect";
99import * as Layer from "effect/Layer";
1010import * as Logger from "effect/Logger";
1111import * as Redacted from "effect/Redacted";
12import { FetchHttpClient } from "effect/unstable/http";
12import { FetchHttpClient } from "effect/http";
1313
1414import * as Devices from "./Devices.ts";
1515import * as AgentActivityRows from "./AgentActivityRows.ts";
infra/relay/src/agentActivity/apnsJwt.ts+5-5
......@@ -3,7 +3,7 @@ import * as NodeCrypto from "node:crypto";
33import { p256 } from "@noble/curves/nist";
44import { sha256 } from "@noble/hashes/sha2";
55import * as Effect from "effect/Effect";
6import * as Encoding from "effect/Encoding";
6import * as Base64Url from "effect/encoding/Base64Url";
77import * as Redacted from "effect/Redacted";
88import * as Result from "effect/Result";
99import * as Schema from "effect/Schema";
......@@ -95,8 +95,8 @@ export const makeApnsJwt = Effect.fn("relay.apns.make_jwt")(function* (input: Ap
9595 );
9696
9797 const privateKey = Redacted.value(input.privateKey);
98 const header = Encoding.encodeBase64Url(headerJson);
99 const payload = Encoding.encodeBase64Url(payloadJson);
98 const header = Base64Url.encode(headerJson);
99 const payload = Base64Url.encode(payloadJson);
100100 const signingInput = `${header}.${payload}`;
101101
102102 return yield* Effect.try({
......@@ -110,7 +110,7 @@ export const makeApnsJwt = Effect.fn("relay.apns.make_jwt")(function* (input: Ap
110110 const signature = p256
111111 .sign(sha256(new TextEncoder().encode(signingInput)), scalar, { prehash: false })
112112 .toCompactRawBytes();
113 return `${signingInput}.${Encoding.encodeBase64Url(signature)}`;
113 return `${signingInput}.${Base64Url.encode(signature)}`;
114114 },
115115 catch: (cause) =>
116116 new ApnsJwtSigningError({
......@@ -138,7 +138,7 @@ function apnsSigningScalar(privateKeyPem: string): Uint8Array {
138138 throw new Error("APNs signing key is not a P-256 private key.");
139139 }
140140 const scalar = Result.getOrThrowWith(
141 Encoding.decodeBase64Url(jwk.d),
141 Base64Url.decode(jwk.d),
142142 () => new Error("APNs signing key scalar is not valid base64url."),
143143 );
144144 signingScalarCache.set(privateKeyPem, scalar);
infra/relay/src/environments/EnvironmentConnector.test.ts+1-1
......@@ -25,7 +25,7 @@ import * as Result from "effect/Result";
2525import * as Schema from "effect/Schema";
2626import * as TestClock from "effect/testing/TestClock";
2727import * as Tracer from "effect/Tracer";
28import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
28import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
2929
3030import * as EnvironmentLinks from "./EnvironmentLinks.ts";
3131import * as RelayConfiguration from "../Config.ts";
infra/relay/src/environments/EnvironmentConnector.ts+3-3
......@@ -36,9 +36,9 @@ import * as Layer from "effect/Layer";
3636import * as Option from "effect/Option";
3737import * as Redacted from "effect/Redacted";
3838import * as Schema from "effect/Schema";
39import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient";
40import * as HttpClient from "effect/unstable/http/HttpClient";
41import * as HttpClientError from "effect/unstable/http/HttpClientError";
39import * as FetchHttpClient from "effect/http/FetchHttpClient";
40import * as HttpClient from "effect/http/HttpClient";
41import * as HttpClientError from "effect/http/HttpClientError";
4242
4343import * as EnvironmentLinks from "./EnvironmentLinks.ts";
4444import * as ManagedEndpointAllocations from "./ManagedEndpointAllocations.ts";
infra/relay/src/environments/EnvironmentCredentials.ts+2-4
......@@ -2,7 +2,7 @@ import * as Context from "effect/Context";
22import * as Crypto from "effect/Crypto";
33import * as DateTime from "effect/DateTime";
44import * as Effect from "effect/Effect";
5import * as Encoding from "effect/Encoding";
5import * as Base64Url from "effect/encoding/Base64Url";
66import * as Layer from "effect/Layer";
77import * as Option from "effect/Option";
88import * as Schema from "effect/Schema";
......@@ -85,9 +85,7 @@ const make = Effect.gen(function* () {
8585 const db = yield* RelayDb.RelayDb;
8686 const crypto = yield* Crypto.Crypto;
8787 const hashToken = (token: string) =>
88 crypto
89 .digest("SHA-256", new TextEncoder().encode(token))
90 .pipe(Effect.map(Encoding.encodeBase64Url));
88 crypto.digest("SHA-256", new TextEncoder().encode(token)).pipe(Effect.map(Base64Url.encode));
9189 const randomTokenPart = (segments: number) =>
9290 Effect.map(Effect.all(Array.from({ length: segments }, () => crypto.randomUUIDv4)), (values) =>
9391 values.join("").replaceAll("-", ""),
infra/relay/src/environments/EnvironmentPublishSignatures.ts+2-2
......@@ -14,7 +14,7 @@ import * as Context from "effect/Context";
1414import * as Crypto from "effect/Crypto";
1515import * as DateTime from "effect/DateTime";
1616import * as Effect from "effect/Effect";
17import * as Encoding from "effect/Encoding";
17import * as Base64Url from "effect/encoding/Base64Url";
1818import * as Layer from "effect/Layer";
1919import * as Schema from "effect/Schema";
2020
......@@ -100,7 +100,7 @@ function environmentPublishReplayThumbprintData(input: {
100100}
101101
102102const formatEnvironmentPublishReplayThumbprint = (digest: Uint8Array) =>
103 `env-publish:${Encoding.encodeBase64Url(digest)}`;
103 `env-publish:${Base64Url.encode(digest)}`;
104104
105105const make = Effect.gen(function* () {
106106 const proofReplay = yield* DpopProofs.DpopProofReplay;
infra/relay/src/environments/ManagedEndpointAllocations.ts+1-1
......@@ -7,7 +7,7 @@ import * as Effect from "effect/Effect";
77import * as Layer from "effect/Layer";
88import * as Option from "effect/Option";
99import * as Schema from "effect/Schema";
10import * as SqlError from "effect/unstable/sql/SqlError";
10import * as SqlError from "effect/sql/SqlError";
1111
1212import * as RelayDb from "../db.ts";
1313import { isManagedEndpointHostname, managedEndpointForHostname } from "../deploymentConfig.ts";
infra/relay/src/environments/ManagedEndpointProvider.ts+2-2
......@@ -5,7 +5,7 @@ import * as Context from "effect/Context";
55import * as Crypto from "effect/Crypto";
66import * as DateTime from "effect/DateTime";
77import * as Effect from "effect/Effect";
8import * as Encoding from "effect/Encoding";
8import * as Hex from "effect/encoding/Hex";
99import * as Layer from "effect/Layer";
1010import * as Option from "effect/Option";
1111import * as Schema from "effect/Schema";
......@@ -922,7 +922,7 @@ export const make = Effect.gen(function* () {
922922 ),
923923 )
924924 .pipe(
925 Effect.map(Encoding.encodeHex),
925 Effect.map(Hex.encode),
926926 Effect.mapError(
927927 (cause) =>
928928 new ManagedEndpointProvisioningFailed({
infra/relay/src/http/Api.test.ts+7-7
......@@ -1,4 +1,4 @@
1import * as HttpServer from "effect/unstable/http/HttpServer";
1import * as HttpServer from "effect/http/HttpServer";
22import {
33 RelayClientAuth,
44 RelayClientPrincipal,
......@@ -25,12 +25,12 @@ import * as Predicate from "effect/Predicate";
2525import * as Redacted from "effect/Redacted";
2626import * as TestClock from "effect/testing/TestClock";
2727import * as Tracer from "effect/Tracer";
28import * as Etag from "effect/unstable/http/Etag";
29import * as HttpRouter from "effect/unstable/http/HttpRouter";
30import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest";
31import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
32import * as HttpApi from "effect/unstable/httpapi/HttpApi";
33import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder";
28import * as Etag from "effect/http/Etag";
29import * as HttpRouter from "effect/http/HttpRouter";
30import * as HttpServerRequest from "effect/http/HttpServerRequest";
31import * as HttpServerResponse from "effect/http/HttpServerResponse";
32import * as HttpApi from "effect/http-api/HttpApi";
33import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder";
3434import { EnvironmentId } from "@t3tools/contracts";
3535import {
3636 RelayEnvironmentAuth,
infra/relay/src/http/Api.ts+8-8
......@@ -11,14 +11,14 @@ import * as Record from "effect/Record";
1111import * as Redacted from "effect/Redacted";
1212import * as Schema from "effect/Schema";
1313import * as Tracer from "effect/Tracer";
14import * as HttpEffect from "effect/unstable/http/HttpEffect";
15import * as HttpMiddleware from "effect/unstable/http/HttpMiddleware";
16import * as HttpRouter from "effect/unstable/http/HttpRouter";
17import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest";
18import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
19import * as HttpTraceContext from "effect/unstable/http/HttpTraceContext";
20import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder";
21import * as HttpApiError from "effect/unstable/httpapi/HttpApiError";
14import * as HttpEffect from "effect/http/HttpEffect";
15import * as HttpMiddleware from "effect/http/HttpMiddleware";
16import * as HttpRouter from "effect/http/HttpRouter";
17import * as HttpServerRequest from "effect/http/HttpServerRequest";
18import * as HttpServerResponse from "effect/http/HttpServerResponse";
19import * as HttpTraceContext from "effect/http/HttpTraceContext";
20import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder";
21import * as HttpApiError from "effect/http-api/HttpApiError";
2222import { encodeOAuthScope } from "@t3tools/shared/oauthScope";
2323import { httpHeaderRedactionLayer } from "@t3tools/shared/httpObservability";
2424
infra/relay/src/observability.test.ts+4-4
......@@ -4,10 +4,10 @@ import * as Deferred from "effect/Deferred";
44import * as Effect from "effect/Effect";
55import * as Redacted from "effect/Redacted";
66import * as Schema from "effect/Schema";
7import * as HttpServer from "effect/unstable/http/HttpServer";
8import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest";
9import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
10import type { OtlpTracer } from "effect/unstable/observability";
7import * as HttpServer from "effect/http/HttpServer";
8import * as HttpServerRequest from "effect/http/HttpServerRequest";
9import * as HttpServerResponse from "effect/http/HttpServerResponse";
10import type { OtlpTracer } from "effect/observability";
1111
1212import * as EnvironmentConnector from "./environments/EnvironmentConnector.ts";
1313import { makeRelayTraceLayer } from "./observability.ts";
infra/relay/src/observability.ts+1-1
......@@ -9,7 +9,7 @@ import * as Option from "effect/Option";
99import * as Redacted from "effect/Redacted";
1010import * as Schema from "effect/Schema";
1111import * as Tracer from "effect/Tracer";
12import { OtlpExporter, OtlpSerialization, OtlpTracer } from "effect/unstable/observability";
12import { OtlpExporter, OtlpSerialization, OtlpTracer } from "effect/observability";
1313
1414import { relayResourceNameForStage } from "./deploymentConfig.ts";
1515
infra/relay/src/worker.ts+5-5
......@@ -10,11 +10,11 @@ import * as Layer from "effect/Layer";
1010import * as Option from "effect/Option";
1111import * as Redacted from "effect/Redacted";
1212import * as Stream from "effect/Stream";
13import * as Etag from "effect/unstable/http/Etag";
14import * as HttpPlatform from "effect/unstable/http/HttpPlatform";
15import * as HttpRouter from "effect/unstable/http/HttpRouter";
16import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder";
17import * as HttpApiScalar from "effect/unstable/httpapi/HttpApiScalar";
13import * as Etag from "effect/http/Etag";
14import * as HttpPlatform from "effect/http/HttpPlatform";
15import * as HttpRouter from "effect/http/HttpRouter";
16import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder";
17import * as HttpApiScalar from "effect/http-api/HttpApiScalar";
1818
1919import { RelayApi } from "@t3tools/contracts/relay";
2020
oxlint-plugin-t3code/test/utils.ts+1-1
......@@ -8,7 +8,7 @@ import * as PlatformError from "effect/PlatformError";
88import * as Predicate from "effect/Predicate";
99import * as Schema from "effect/Schema";
1010import * as Stream from "effect/Stream";
11import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
11import { ChildProcess, ChildProcessSpawner } from "effect/process";
1212import * as NodeModule from "node:module";
1313
1414// oxlint is only a transitive dependency (via vite-plus), so its bin placement
packages/client-runtime/src/authorization/service.ts+1-1
......@@ -37,7 +37,7 @@ import * as Ref from "effect/Ref";
3737import * as Result from "effect/Result";
3838import * as Scope from "effect/Scope";
3939import * as Semaphore from "effect/Semaphore";
40import * as HttpClient from "effect/unstable/http/HttpClient";
40import * as HttpClient from "effect/http/HttpClient";
4141
4242import {
4343 DPOP_ACCESS_TOKEN_REFRESH_SKEW_MS,
packages/client-runtime/src/connection/driver.ts+1-1
......@@ -4,7 +4,7 @@ import * as Exit from "effect/Exit";
44import * as Fiber from "effect/Fiber";
55import * as Layer from "effect/Layer";
66import * as Scope from "effect/Scope";
7import * as HttpClient from "effect/unstable/http/HttpClient";
7import * as HttpClient from "effect/http/HttpClient";
88
99import type { ConnectionCatalogEntry, ConnectionRoute } from "./catalog.ts";
1010import type {
packages/client-runtime/src/connection/onboarding.ts+1-1
......@@ -6,7 +6,7 @@ import * as Layer from "effect/Layer";
66import * as Option from "effect/Option";
77import * as Schema from "effect/Schema";
88import * as SubscriptionRef from "effect/SubscriptionRef";
9import * as HttpClient from "effect/unstable/http/HttpClient";
9import * as HttpClient from "effect/http/HttpClient";
1010
1111import { bootstrapRemoteBearerSession } from "../authorization/remote.ts";
1212import { deriveWsBaseUrl, normalizeHttpBaseUrl } from "../environment/endpoint.ts";
packages/client-runtime/src/connection/outdatedHostUpdate.test.ts+3-3
......@@ -10,9 +10,9 @@ import * as Layer from "effect/Layer";
1010import * as Option from "effect/Option";
1111import * as Schema from "effect/Schema";
1212import * as SubscriptionRef from "effect/SubscriptionRef";
13import * as HttpClient from "effect/unstable/http/HttpClient";
14import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse";
15import * as Socket from "effect/unstable/socket/Socket";
13import * as HttpClient from "effect/http/HttpClient";
14import * as HttpClientResponse from "effect/http/HttpClientResponse";
15import * as Socket from "effect/socket/Socket";
1616
1717import type { ConnectionCatalogEntry } from "./catalog.ts";
1818import { orchestrationProtocolCompatibilityError } from "./compatibility.ts";
packages/client-runtime/src/connection/outdatedHostUpdate.ts+4-4
......@@ -15,10 +15,10 @@ import * as Schedule from "effect/Schedule";
1515import * as Schema from "effect/Schema";
1616import * as Stream from "effect/Stream";
1717import * as SubscriptionRef from "effect/SubscriptionRef";
18import * as HttpClient from "effect/unstable/http/HttpClient";
19import * as RpcClient from "effect/unstable/rpc/RpcClient";
20import * as RpcSerialization from "effect/unstable/rpc/RpcSerialization";
21import * as Socket from "effect/unstable/socket/Socket";
18import * as HttpClient from "effect/http/HttpClient";
19import * as RpcClient from "effect/rpc/RpcClient";
20import * as RpcSerialization from "effect/rpc/RpcSerialization";
21import * as Socket from "effect/socket/Socket";
2222
2323import { fetchRemoteEnvironmentDescriptor } from "../environment/descriptor.ts";
2424import { makeWsRpcProtocolClient } from "../rpc/protocol.ts";
packages/client-runtime/src/connection/resolver.ts+1-1
......@@ -8,7 +8,7 @@ import * as Effect from "effect/Effect";
88import * as Layer from "effect/Layer";
99import * as Option from "effect/Option";
1010import * as Schema from "effect/Schema";
11import * as HttpClient from "effect/unstable/http/HttpClient";
11import * as HttpClient from "effect/http/HttpClient";
1212
1313import { appendClientConnectionParams } from "../authorization/remote.ts";
1414import * as RemoteEnvironmentAuthorization from "../authorization/service.ts";
packages/client-runtime/src/operations/commands.performance.test.ts+1-1
......@@ -17,7 +17,7 @@ import * as Layer from "effect/Layer";
1717import * as Option from "effect/Option";
1818import * as Schema from "effect/Schema";
1919import * as SubscriptionRef from "effect/SubscriptionRef";
20import type * as RpcMessage from "effect/unstable/rpc/RpcMessage";
20import type * as RpcMessage from "effect/rpc/RpcMessage";
2121
2222import {
2323 AVAILABLE_CONNECTION_STATE,
packages/client-runtime/src/projectFaviconCache.ts+2-2
......@@ -5,7 +5,7 @@ import {
55 getProjectFaviconResourceKey,
66 isProjectFaviconFallbackUrl,
77} from "@t3tools/shared/projectFavicon";
8import * as Encoding from "effect/Encoding";
8import * as Base64 from "effect/encoding/Base64";
99import * as Option from "effect/Option";
1010import * as Schema from "effect/Schema";
1111
......@@ -111,7 +111,7 @@ export function createProjectFaviconImageLoader(input: {
111111 if (!mimeType) throw new Error("Project icon has no image type.");
112112 const bytes = await readBounded(response, PROJECT_FAVICON_MAX_SOURCE_BYTES);
113113 signal.throwIfAborted();
114 const dataUrl = `data:${mimeType};base64,${Encoding.encodeBase64(bytes)}`;
114 const dataUrl = `data:${mimeType};base64,${Base64.encode(bytes)}`;
115115 if (isImageDataUrl(dataUrl)) return dataUrl;
116116 if (mimeType === "image/svg+xml") throw new Error("Project icon exceeds the cache limit.");
117117 return input.downscale({ url, mimeType, bytes }, signal);
packages/client-runtime/src/relay/managedRelay.ts+3-3
......@@ -41,9 +41,9 @@ import * as Layer from "effect/Layer";
4141import * as Option from "effect/Option";
4242import * as Schema from "effect/Schema";
4343import * as SynchronizedRef from "effect/SynchronizedRef";
44import * as HttpClientError from "effect/unstable/http/HttpClientError";
45import type * as HttpMethod from "effect/unstable/http/HttpMethod";
46import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient";
44import * as HttpClientError from "effect/http/HttpClientError";
45import type * as HttpMethod from "effect/http/HttpMethod";
46import * as HttpApiClient from "effect/http-api/HttpApiClient";
4747import { NETWORK_BLOCKING_HINT } from "../errors/network.ts";
4848
4949export interface ManagedRelayDpopProofInput {
packages/client-runtime/src/relay/managedRelayState.test.ts+1-1
......@@ -10,7 +10,7 @@ import * as Effect from "effect/Effect";
1010import * as Fiber from "effect/Fiber";
1111import * as Layer from "effect/Layer";
1212import * as Stream from "effect/Stream";
13import { Atom, AtomRegistry } from "effect/unstable/reactivity";
13import { Atom, AtomRegistry } from "effect/reactivity";
1414import { afterEach, vi } from "vite-plus/test";
1515
1616import { DPOP_UNKNOWN_HINT } from "./errorPresentation.ts";
packages/client-runtime/src/relay/managedRelayState.ts+1-1
......@@ -15,7 +15,7 @@ import * as Effect from "effect/Effect";
1515import * as Option from "effect/Option";
1616import * as Schema from "effect/Schema";
1717import * as Stream from "effect/Stream";
18import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
18import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
1919
2020import { findErrorTraceId } from "../errors/errorTrace.ts";
2121import * as ManagedRelay from "./managedRelay.ts";
packages/client-runtime/src/remotePerformance.bench.ts+1-1
......@@ -7,7 +7,7 @@ import {
77} from "@t3tools/contracts";
88import * as Effect from "effect/Effect";
99import * as Option from "effect/Option";
10import { HttpClient, HttpClientResponse } from "effect/unstable/http";
10import { HttpClient, HttpClientResponse } from "effect/http";
1111import { describe, test } from "vite-plus/test";
1212
1313import { issueRemoteWebSocketTicket } from "./authorization/remote.ts";
packages/client-runtime/src/rpc/client.test.ts+1-1
......@@ -22,7 +22,7 @@ import * as Ref from "effect/Ref";
2222import * as Stream from "effect/Stream";
2323import * as SubscriptionRef from "effect/SubscriptionRef";
2424import * as TestClock from "effect/testing/TestClock";
25import { RpcClientError } from "effect/unstable/rpc";
25import { RpcClientError } from "effect/rpc";
2626
2727import {
2828 AVAILABLE_CONNECTION_STATE,
packages/client-runtime/src/rpc/client.ts+1-1
......@@ -12,7 +12,7 @@ import * as Schema from "effect/Schema";
1212import * as Schedule from "effect/Schedule";
1313import * as Stream from "effect/Stream";
1414import * as SubscriptionRef from "effect/SubscriptionRef";
15import { RpcClientError } from "effect/unstable/rpc";
15import { RpcClientError } from "effect/rpc";
1616
1717import * as EnvironmentSupervisor from "../connection/supervisor.ts";
1818import type { WsRpcProtocolClient } from "../rpc/protocol.ts";
packages/client-runtime/src/rpc/http.ts+2-2
......@@ -15,8 +15,8 @@ import * as Effect from "effect/Effect";
1515import * as Layer from "effect/Layer";
1616import * as Option from "effect/Option";
1717import * as Schema from "effect/Schema";
18import { FetchHttpClient, HttpClient, HttpClientError } from "effect/unstable/http";
19import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient";
18import { FetchHttpClient, HttpClient, HttpClientError } from "effect/http";
19import * as HttpApiClient from "effect/http-api/HttpApiClient";
2020
2121const isEnvironmentHttpCommonError = Schema.is(EnvironmentHttpCommonError);
2222
packages/client-runtime/src/rpc/protocol.ts+1-1
......@@ -1,6 +1,6 @@
11import { WsRpcGroup } from "@t3tools/contracts";
22import * as Effect from "effect/Effect";
3import { RpcClient } from "effect/unstable/rpc";
3import { RpcClient } from "effect/rpc";
44
55export const makeWsRpcProtocolClient = RpcClient.make(WsRpcGroup);
66type RpcClientFactory = typeof makeWsRpcProtocolClient;
packages/client-runtime/src/rpc/session.test.ts+1-1
......@@ -23,7 +23,7 @@ import * as Schema from "effect/Schema";
2323import * as Stream from "effect/Stream";
2424import * as SubscriptionRef from "effect/SubscriptionRef";
2525import * as TestClock from "effect/testing/TestClock";
26import * as Socket from "effect/unstable/socket/Socket";
26import * as Socket from "effect/socket/Socket";
2727
2828import {
2929 AVAILABLE_CONNECTION_STATE,
packages/client-runtime/src/rpc/session.ts+5-5
......@@ -18,11 +18,11 @@ import * as Schedule from "effect/Schedule";
1818import * as Schema from "effect/Schema";
1919import type * as Scope from "effect/Scope";
2020import * as Stream from "effect/Stream";
21import type * as Rpc from "effect/unstable/rpc/Rpc";
22import * as RpcClient from "effect/unstable/rpc/RpcClient";
23import * as RpcClientError from "effect/unstable/rpc/RpcClientError";
24import * as RpcSerialization from "effect/unstable/rpc/RpcSerialization";
25import * as Socket from "effect/unstable/socket/Socket";
21import type * as Rpc from "effect/rpc/Rpc";
22import * as RpcClient from "effect/rpc/RpcClient";
23import * as RpcClientError from "effect/rpc/RpcClientError";
24import * as RpcSerialization from "effect/rpc/RpcSerialization";
25import * as Socket from "effect/socket/Socket";
2626
2727import { makeWsRpcProtocolClient, type WsRpcProtocolClient } from "./protocol.ts";
2828import { NETWORK_BLOCKING_HINT } from "../errors/network.ts";
packages/client-runtime/src/state/archivedThreads.test.ts+1-1
......@@ -1,6 +1,6 @@
11import { EnvironmentId, type OrchestrationV2ArchivedShellSnapshot } from "@t3tools/contracts";
22import * as Cause from "effect/Cause";
3import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
3import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
44import { expect, it } from "vite-plus/test";
55
66import {
packages/client-runtime/src/state/archivedThreads.ts+1-1
......@@ -3,7 +3,7 @@ import * as Arr from "effect/Array";
33import { pipe } from "effect/Function";
44import * as Option from "effect/Option";
55import * as Order from "effect/Order";
6import { AsyncResult, Atom } from "effect/unstable/reactivity";
6import { AsyncResult, Atom } from "effect/reactivity";
77
88export interface ArchivedSnapshotEntry {
99 readonly environmentId: EnvironmentId;
packages/client-runtime/src/state/assets.test.ts+1-1
......@@ -17,7 +17,7 @@ import * as Stream from "effect/Stream";
1717import * as SubscriptionRef from "effect/SubscriptionRef";
1818import * as Option from "effect/Option";
1919import * as Layer from "effect/Layer";
20import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
20import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
2121
2222import * as EnvironmentRegistry from "../connection/registry.ts";
2323import {
packages/client-runtime/src/state/assets.ts+1-1
......@@ -17,7 +17,7 @@ import * as Effect from "effect/Effect";
1717import * as Option from "effect/Option";
1818import * as Result from "effect/Result";
1919import * as Schema from "effect/Schema";
20import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
20import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
2121
2222import * as EnvironmentRegistry from "../connection/registry.ts";
2323import * as EnvironmentSupervisor from "../connection/supervisor.ts";
packages/client-runtime/src/state/attachments.test.ts+1-1
......@@ -7,7 +7,7 @@ import {
77 type AttachmentDeleteInput,
88} from "@t3tools/contracts";
99import * as Effect from "effect/Effect";
10import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
10import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
1111
1212import type { AtomCommand } from "./runtime.ts";
1313import {
packages/client-runtime/src/state/attachments.ts+1-1
......@@ -6,7 +6,7 @@ import {
66 type AttachmentDeleteInput,
77 type EnvironmentId,
88} from "@t3tools/contracts";
9import type { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
9import type { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
1010
1111import type { EnvironmentRegistry } from "../connection/registry.ts";
1212import {
packages/client-runtime/src/state/auth.ts+1-1
......@@ -5,7 +5,7 @@ import type {
55} from "@t3tools/contracts";
66import { WS_METHODS } from "@t3tools/contracts";
77import * as Stream from "effect/Stream";
8import { Atom } from "effect/unstable/reactivity";
8import { Atom } from "effect/reactivity";
99
1010import type { EnvironmentRegistry } from "../connection/registry.ts";
1111import { subscribe } from "../rpc/client.ts";
packages/client-runtime/src/state/boundedThreadSnapshotHttp.ts+1-1
......@@ -3,7 +3,7 @@ import * as Cause from "effect/Cause";
33import * as Effect from "effect/Effect";
44import * as Layer from "effect/Layer";
55import * as Option from "effect/Option";
6import { HttpClient } from "effect/unstable/http";
6import { HttpClient } from "effect/http";
77
88import * as RemoteEnvironmentAuthorization from "../authorization/service.ts";
99import type { PreparedConnection } from "../connection/model.ts";
packages/client-runtime/src/state/connections.ts+1-1
......@@ -3,7 +3,7 @@ import * as Effect from "effect/Effect";
33import * as Option from "effect/Option";
44import * as Stream from "effect/Stream";
55import * as SubscriptionRef from "effect/SubscriptionRef";
6import { AsyncResult, Atom } from "effect/unstable/reactivity";
6import { AsyncResult, Atom } from "effect/reactivity";
77
88import * as EnvironmentRegistry from "../connection/registry.ts";
99import type { ConnectionCatalogEntry } from "../connection/catalog.ts";
packages/client-runtime/src/state/device.ts+1-1
......@@ -1,5 +1,5 @@
11import { type DeviceToolVersions, WS_METHODS } from "@t3tools/contracts";
2import { Atom } from "effect/unstable/reactivity";
2import { Atom } from "effect/reactivity";
33
44import type { EnvironmentRegistry } from "../connection/registry.ts";
55import {
packages/client-runtime/src/state/deviceHubAccess.ts+1-1
......@@ -12,7 +12,7 @@
1212 * Callers fetch a fresh one each time they (re)connect a stream.
1313 */
1414import * as Effect from "effect/Effect";
15import type { HttpClient } from "effect/unstable/http";
15import type { HttpClient } from "effect/http";
1616
1717import * as RemoteEnvironmentAuthorization from "../authorization/service.ts";
1818import type { PreparedConnection } from "../connection/model.ts";
packages/client-runtime/src/state/environmentHttpAuth.test.ts+1-1
......@@ -17,7 +17,7 @@ import * as Layer from "effect/Layer";
1717import * as Option from "effect/Option";
1818import * as Schema from "effect/Schema";
1919import { TestClock } from "effect/testing";
20import type { HttpClient } from "effect/unstable/http";
20import type { HttpClient } from "effect/http";
2121
2222import * as RemoteEnvironmentAuthorization from "../authorization/service.ts";
2323import {
packages/client-runtime/src/state/environmentHttpAuth.ts+1-1
......@@ -5,7 +5,7 @@ import {
55 ORCHESTRATION_PROTOCOL_VERSION_TEXT,
66} from "@t3tools/contracts";
77import * as Result from "effect/Result";
8import { FetchHttpClient, type HttpMethod } from "effect/unstable/http";
8import { FetchHttpClient, type HttpMethod } from "effect/http";
99
1010import type { RemoteEnvironmentAuthorization } from "../authorization/service.ts";
1111import type { PreparedConnection, PreparedHttpAuthorization } from "../connection/model.ts";
packages/client-runtime/src/state/filesystem.ts+1-1
......@@ -1,5 +1,5 @@
11import { type FilesystemBrowseEntry, WS_METHODS } from "@t3tools/contracts";
2import { Atom } from "effect/unstable/reactivity";
2import { Atom } from "effect/reactivity";
33
44import type { EnvironmentConnectionPhase } from "../connection/presentation.ts";
55import type { EnvironmentRegistry } from "../connection/registry.ts";
packages/client-runtime/src/state/git.ts+1-1
......@@ -1,5 +1,5 @@
11import { WS_METHODS } from "@t3tools/contracts";
2import { Atom } from "effect/unstable/reactivity";
2import { Atom } from "effect/reactivity";
33
44import { createEnvironmentRpcCommand, createEnvironmentRpcQueryAtomFamily } from "./runtime.ts";
55import type { EnvironmentRegistry } from "../connection/registry.ts";
packages/client-runtime/src/state/orchestration.ts+1-1
......@@ -1,5 +1,5 @@
11import { ORCHESTRATION_V2_WS_METHODS } from "@t3tools/contracts";
2import { Atom } from "effect/unstable/reactivity";
2import { Atom } from "effect/reactivity";
33
44import {
55 createEnvironmentRpcCommand,
packages/client-runtime/src/state/outdatedServerUpdate.ts+3-3
......@@ -2,9 +2,9 @@ import type { EnvironmentId, ServerSelfUpdateInput } from "@t3tools/contracts";
22import * as Cause from "effect/Cause";
33import * as Effect from "effect/Effect";
44import * as Exit from "effect/Exit";
5import type * as HttpClient from "effect/unstable/http/HttpClient";
6import type { Atom } from "effect/unstable/reactivity";
7import type * as Socket from "effect/unstable/socket/Socket";
5import type * as HttpClient from "effect/http/HttpClient";
6import type { Atom } from "effect/reactivity";
7import type * as Socket from "effect/socket/Socket";
88
99import { updateOutdatedHost } from "../connection/outdatedHostUpdate.ts";
1010import type * as ConnectionResolver from "../connection/resolver.ts";
packages/client-runtime/src/state/presentation.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { describe, expect, it } from "@effect/vitest";
22import { EnvironmentId, type ServerConfig } from "@t3tools/contracts";
33import * as Option from "effect/Option";
4import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
4import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
55
66import { AVAILABLE_CONNECTION_STATE, PrimaryConnectionTarget } from "../connection/model.ts";
77import {
packages/client-runtime/src/state/presentation.ts+1-1
......@@ -5,7 +5,7 @@ import {
55 type ServerConfig,
66} from "@t3tools/contracts";
77import * as Option from "effect/Option";
8import { AsyncResult, Atom } from "effect/unstable/reactivity";
8import { AsyncResult, Atom } from "effect/reactivity";
99
1010import { AVAILABLE_CONNECTION_STATE, type SupervisorConnectionState } from "../connection/model.ts";
1111import {
packages/client-runtime/src/state/preview.ts+1-1
......@@ -1,5 +1,5 @@
11import { WS_METHODS } from "@t3tools/contracts";
2import { Atom } from "effect/unstable/reactivity";
2import { Atom } from "effect/reactivity";
33
44import type { EnvironmentRegistry } from "../connection/registry.ts";
55import {
packages/client-runtime/src/state/projectCommands.test.ts+1-1
......@@ -6,7 +6,7 @@ import * as Fiber from "effect/Fiber";
66import * as Layer from "effect/Layer";
77import * as Option from "effect/Option";
88import * as SubscriptionRef from "effect/SubscriptionRef";
9import { Atom, AtomRegistry } from "effect/unstable/reactivity";
9import { Atom, AtomRegistry } from "effect/reactivity";
1010
1111import * as EnvironmentRegistry from "../connection/registry.ts";
1212import * as EnvironmentSupervisor from "../connection/supervisor.ts";
packages/client-runtime/src/state/projectCommands.ts+1-1
......@@ -11,7 +11,7 @@ import * as Option from "effect/Option";
1111import * as Predicate from "effect/Predicate";
1212import * as Schema from "effect/Schema";
1313import * as Stream from "effect/Stream";
14import { Atom, AtomRegistry } from "effect/unstable/reactivity";
14import { Atom, AtomRegistry } from "effect/reactivity";
1515
1616import { type EnvironmentRpcInput, request } from "../rpc/client.ts";
1717import type { EnvironmentProject } from "./models.ts";
packages/client-runtime/src/state/projectEntities.ts+1-1
......@@ -5,7 +5,7 @@ import type {
55 ProjectId,
66 ScopedProjectRef,
77} from "@t3tools/contracts";
8import { Atom } from "effect/unstable/reactivity";
8import { Atom } from "effect/reactivity";
99
1010import type { EnvironmentProject } from "./models.ts";
1111import { scopeProject } from "./models.ts";
packages/client-runtime/src/state/pullRequestDiffHttp.ts+1-1
......@@ -8,7 +8,7 @@ import * as Effect from "effect/Effect";
88import * as Layer from "effect/Layer";
99import * as Option from "effect/Option";
1010import * as Schema from "effect/Schema";
11import { HttpClient } from "effect/unstable/http";
11import { HttpClient } from "effect/http";
1212
1313import * as RemoteEnvironmentAuthorization from "../authorization/service.ts";
1414import type { PreparedConnection } from "../connection/model.ts";
packages/client-runtime/src/state/pullRequests.test.ts+1-1
......@@ -17,7 +17,7 @@ import * as Option from "effect/Option";
1717import * as PubSub from "effect/PubSub";
1818import * as Stream from "effect/Stream";
1919import * as SubscriptionRef from "effect/SubscriptionRef";
20import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
20import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
2121
2222import {
2323 AVAILABLE_CONNECTION_STATE,
packages/client-runtime/src/state/pullRequests.ts+1-1
......@@ -15,7 +15,7 @@ import * as Data from "effect/Data";
1515import * as Effect from "effect/Effect";
1616import * as Option from "effect/Option";
1717import * as SubscriptionRef from "effect/SubscriptionRef";
18import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
18import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
1919
2020import {
2121 createAtomCommandScheduler,
packages/client-runtime/src/state/relayDiscovery.ts+1-1
......@@ -2,7 +2,7 @@ import * as Effect from "effect/Effect";
22import * as Option from "effect/Option";
33import * as Stream from "effect/Stream";
44import * as SubscriptionRef from "effect/SubscriptionRef";
5import { AsyncResult, Atom } from "effect/unstable/reactivity";
5import { AsyncResult, Atom } from "effect/reactivity";
66
77import * as RelayEnvironmentDiscovery from "../relay/discovery.ts";
88import { createRuntimeCommand } from "./runtime.ts";
packages/client-runtime/src/state/review.ts+1-1
......@@ -6,7 +6,7 @@ import {
66import * as Effect from "effect/Effect";
77import * as Semaphore from "effect/Semaphore";
88import { request } from "../rpc/client.ts";
9import { Atom } from "effect/unstable/reactivity";
9import { Atom } from "effect/reactivity";
1010
1111import {
1212 createAtomCommandScheduler,
packages/client-runtime/src/state/runtime.test.ts+1-1
......@@ -12,7 +12,7 @@ import * as Queue from "effect/Queue";
1212import * as Schema from "effect/Schema";
1313import * as Stream from "effect/Stream";
1414import * as SubscriptionRef from "effect/SubscriptionRef";
15import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
15import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
1616
1717import {
1818 AVAILABLE_CONNECTION_STATE,
packages/client-runtime/src/state/runtime.ts+1-1
......@@ -5,7 +5,7 @@ import * as Exit from "effect/Exit";
55import * as Option from "effect/Option";
66import * as Stream from "effect/Stream";
77import * as SubscriptionRef from "effect/SubscriptionRef";
8import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
8import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
99
1010import type { ConnectionAttemptError } from "../connection/model.ts";
1111import * as EnvironmentRegistry from "../connection/registry.ts";
packages/client-runtime/src/state/server.test.ts+2-2
......@@ -19,8 +19,8 @@ import * as Scope from "effect/Scope";
1919import * as Stream from "effect/Stream";
2020import * as SubscriptionRef from "effect/SubscriptionRef";
2121import * as TestClock from "effect/testing/TestClock";
22import { RpcClientError } from "effect/unstable/rpc";
23import * as Socket from "effect/unstable/socket/Socket";
22import { RpcClientError } from "effect/rpc";
23import * as Socket from "effect/socket/Socket";
2424
2525import {
2626 AVAILABLE_CONNECTION_STATE,
packages/client-runtime/src/state/server.ts+1-1
......@@ -21,7 +21,7 @@ import * as Result from "effect/Result";
2121import * as Schema from "effect/Schema";
2222import * as Stream from "effect/Stream";
2323import * as SubscriptionRef from "effect/SubscriptionRef";
24import { AsyncResult, Atom } from "effect/unstable/reactivity";
24import { AsyncResult, Atom } from "effect/reactivity";
2525
2626import {
2727 createAtomCommandScheduler,
packages/client-runtime/src/state/serverUsage.test.ts+1-1
......@@ -18,7 +18,7 @@ import * as Option from "effect/Option";
1818import * as Queue from "effect/Queue";
1919import * as Stream from "effect/Stream";
2020import * as SubscriptionRef from "effect/SubscriptionRef";
21import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
21import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
2222
2323import {
2424 AVAILABLE_CONNECTION_STATE,
packages/client-runtime/src/state/session.ts+2-2
......@@ -3,8 +3,8 @@ import * as Effect from "effect/Effect";
33import * as Option from "effect/Option";
44import * as Stream from "effect/Stream";
55import * as SubscriptionRef from "effect/SubscriptionRef";
6import type { HttpClient } from "effect/unstable/http";
7import { AsyncResult, Atom } from "effect/unstable/reactivity";
6import type { HttpClient } from "effect/http";
7import { AsyncResult, Atom } from "effect/reactivity";
88
99import * as RemoteEnvironmentAuthorization from "../authorization/service.ts";
1010import * as EnvironmentRegistry from "../connection/registry.ts";
packages/client-runtime/src/state/shell.test.ts+1-1
......@@ -3,7 +3,7 @@ import { EnvironmentId } from "@t3tools/contracts";
33import { describe, expect, it } from "@effect/vitest";
44import * as Option from "effect/Option";
55import * as DateTime from "effect/DateTime";
6import { Atom, AtomRegistry } from "effect/unstable/reactivity";
6import { Atom, AtomRegistry } from "effect/reactivity";
77
88import { PrimaryConnectionTarget } from "../connection/model.ts";
99import type { EnvironmentShellState } from "./shell.ts";
packages/client-runtime/src/state/shell.ts+1-1
......@@ -13,7 +13,7 @@ import * as Ref from "effect/Ref";
1313import * as Semaphore from "effect/Semaphore";
1414import * as Stream from "effect/Stream";
1515import * as SubscriptionRef from "effect/SubscriptionRef";
16import { AsyncResult, Atom } from "effect/unstable/reactivity";
16import { AsyncResult, Atom } from "effect/reactivity";
1717
1818import * as EnvironmentRegistry from "../connection/registry.ts";
1919import { connectionProjectionPhase } from "../connection/model.ts";
packages/client-runtime/src/state/shellCommands.ts+1-1
......@@ -1,5 +1,5 @@
11import { WS_METHODS } from "@t3tools/contracts";
2import { Atom } from "effect/unstable/reactivity";
2import { Atom } from "effect/reactivity";
33
44import { createEnvironmentRpcCommand } from "./runtime.ts";
55import type { EnvironmentRegistry } from "../connection/registry.ts";
packages/client-runtime/src/state/shellSnapshotHttp.ts+1-1
......@@ -4,7 +4,7 @@ import * as Context from "effect/Context";
44import * as Effect from "effect/Effect";
55import * as Layer from "effect/Layer";
66import * as Option from "effect/Option";
7import { HttpClient } from "effect/unstable/http";
7import { HttpClient } from "effect/http";
88
99import * as RemoteEnvironmentAuthorization from "../authorization/service.ts";
1010import type { PreparedConnection } from "../connection/model.ts";
packages/client-runtime/src/state/snapshots.ts+1-1
......@@ -1,6 +1,6 @@
11import type { EnvironmentId, OrchestrationV2ShellSnapshot } from "@t3tools/contracts";
22import * as Option from "effect/Option";
3import { AsyncResult, Atom } from "effect/unstable/reactivity";
3import { AsyncResult, Atom } from "effect/reactivity";
44
55import type { EnvironmentShellState } from "./shell.ts";
66
packages/client-runtime/src/state/sourceControl.test.ts+1-1
......@@ -8,7 +8,7 @@ import * as Effect from "effect/Effect";
88import * as Layer from "effect/Layer";
99import * as Option from "effect/Option";
1010import * as SubscriptionRef from "effect/SubscriptionRef";
11import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
11import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
1212
1313import {
1414 AVAILABLE_CONNECTION_STATE,
packages/client-runtime/src/state/sourceControl.ts+1-1
......@@ -1,5 +1,5 @@
11import { WS_METHODS } from "@t3tools/contracts";
2import { Atom } from "effect/unstable/reactivity";
2import { Atom } from "effect/reactivity";
33
44import {
55 createAtomCommandScheduler,
packages/client-runtime/src/state/terminal.ts+3-3
......@@ -1,6 +1,6 @@
11import { type TerminalSummary, WS_METHODS } from "@t3tools/contracts";
22import * as Stream from "effect/Stream";
3import { Atom } from "effect/unstable/reactivity";
3import { Atom } from "effect/reactivity";
44
55import {
66 createAtomCommandScheduler,
......@@ -42,7 +42,7 @@ export function createTerminalEnvironmentAtoms<R, E>(
4242 subscribe: (input: EnvironmentRpcInput<typeof WS_METHODS.terminalAttach>) =>
4343 Stream.suspend(() =>
4444 subscribe(WS_METHODS.terminalAttach, input).pipe(
45 Stream.scan(nextTerminalAttachSeedState(), applyTerminalAttachStreamEvent),
45 Stream.scan(nextTerminalAttachSeedState, applyTerminalAttachStreamEvent),
4646 ),
4747 ),
4848 }),
......@@ -54,7 +54,7 @@ export function createTerminalEnvironmentAtoms<R, E>(
5454 label: "environment-data:terminal:metadata",
5555 subscribe: (_input: null) =>
5656 subscribe(WS_METHODS.subscribeTerminalMetadata, {}).pipe(
57 Stream.scan([] as ReadonlyArray<TerminalSummary>, applyTerminalMetadataStreamEvent),
57 Stream.scan((): ReadonlyArray<TerminalSummary> => [], applyTerminalMetadataStreamEvent),
5858 ),
5959 }),
6060 open: createEnvironmentRpcCommand(runtime, {
packages/client-runtime/src/state/threadCommands.test.ts+1-1
......@@ -18,7 +18,7 @@ import * as Layer from "effect/Layer";
1818import * as Option from "effect/Option";
1919import * as Queue from "effect/Queue";
2020import * as SubscriptionRef from "effect/SubscriptionRef";
21import { Atom, AtomRegistry } from "effect/unstable/reactivity";
21import { Atom, AtomRegistry } from "effect/reactivity";
2222
2323import * as EnvironmentRegistry from "../connection/registry.ts";
2424import * as EnvironmentSupervisor from "../connection/supervisor.ts";
packages/client-runtime/src/state/threadCommands.ts+1-1
......@@ -2,7 +2,7 @@ import type { ThreadId } from "@t3tools/contracts";
22import * as Crypto from "effect/Crypto";
33import * as Effect from "effect/Effect";
44import * as Option from "effect/Option";
5import { Atom } from "effect/unstable/reactivity";
5import { Atom } from "effect/reactivity";
66import {
77 WS_METHODS,
88 type EnvironmentId,
packages/client-runtime/src/state/threadDetail.test.ts+1-1
......@@ -11,7 +11,7 @@ import {
1111 type ScopedThreadRef,
1212} from "@t3tools/contracts";
1313import * as Option from "effect/Option";
14import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
14import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
1515import { describe, expect, it } from "vite-plus/test";
1616
1717import { v2Projection, v2Now } from "./orchestrationV2TestFixtures.ts";
packages/client-runtime/src/state/threadDetail.ts+1-1
......@@ -1,6 +1,6 @@
11import type { OrchestrationV2ThreadProjection, ScopedThreadRef } from "@t3tools/contracts";
22import * as Option from "effect/Option";
3import { AsyncResult, Atom } from "effect/unstable/reactivity";
3import { AsyncResult, Atom } from "effect/reactivity";
44
55import {
66 deriveThreadQueueWorkflowState,
packages/client-runtime/src/state/threadFeedback.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { describe, expect, it } from "vite-plus/test";
22import { MessageId } from "@t3tools/contracts";
33import * as Cause from "effect/Cause";
4import { AsyncResult } from "effect/unstable/reactivity";
4import { AsyncResult } from "effect/reactivity";
55
66import {
77 beginCodexFeedbackSubmission,
packages/client-runtime/src/state/threadLifecycle.ts+1-1
......@@ -5,7 +5,7 @@ import type {
55 ThreadId,
66} from "@t3tools/contracts";
77import * as DateTime from "effect/DateTime";
8import { Atom } from "effect/unstable/reactivity";
8import { Atom } from "effect/reactivity";
99
1010import type { AtomCommand } from "./runtime.ts";
1111
packages/client-runtime/src/state/threadSearch.test.ts+1-1
......@@ -5,7 +5,7 @@ import {
55 type OrchestrationSearchThreadsResult,
66} from "@t3tools/contracts";
77import * as Cause from "effect/Cause";
8import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
8import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
99import { expect, it } from "vite-plus/test";
1010
1111import {
packages/client-runtime/src/state/threadSearch.ts+1-1
......@@ -6,7 +6,7 @@ import {
66} from "@t3tools/contracts";
77import * as Option from "effect/Option";
88import * as Schema from "effect/Schema";
9import { AsyncResult, Atom } from "effect/unstable/reactivity";
9import { AsyncResult, Atom } from "effect/reactivity";
1010
1111export interface EnvironmentThreadSearchMatch extends OrchestrationThreadSearchMatch {
1212 readonly environmentId: EnvironmentId;
packages/client-runtime/src/state/threadShell.test.ts+1-1
......@@ -5,7 +5,7 @@ import {
55 type OrchestrationV2ShellSnapshot,
66} from "@t3tools/contracts";
77import * as Option from "effect/Option";
8import { Atom, AtomRegistry } from "effect/unstable/reactivity";
8import { Atom, AtomRegistry } from "effect/reactivity";
99import { describe, expect, it } from "vite-plus/test";
1010
1111import { PrimaryConnectionTarget } from "../connection/model.ts";
packages/client-runtime/src/state/threadShell.ts+1-1
......@@ -7,7 +7,7 @@ import type {
77 ScopedThreadRef,
88 ThreadId,
99} from "@t3tools/contracts";
10import { Atom } from "effect/unstable/reactivity";
10import { Atom } from "effect/reactivity";
1111
1212import type { EnvironmentThreadShell } from "./models.ts";
1313import { presentThreadShell } from "./models.ts";
packages/client-runtime/src/state/threads-atoms.test.ts+2-2
......@@ -13,13 +13,13 @@ import { afterEach, describe, expect, it, vi } from "@effect/vitest";
1313import * as Deferred from "effect/Deferred";
1414import * as Effect from "effect/Effect";
1515import * as Fiber from "effect/Fiber";
16import { HttpClient, HttpClientResponse } from "effect/unstable/http";
16import { HttpClient, HttpClientResponse } from "effect/http";
1717import * as Layer from "effect/Layer";
1818import * as Option from "effect/Option";
1919import * as Queue from "effect/Queue";
2020import * as Stream from "effect/Stream";
2121import * as SubscriptionRef from "effect/SubscriptionRef";
22import { Atom, AtomRegistry } from "effect/unstable/reactivity";
22import { Atom, AtomRegistry } from "effect/reactivity";
2323
2424import type { ConnectionCatalogEntry } from "../connection/catalog.ts";
2525import * as EnvironmentRegistry from "../connection/registry.ts";
packages/client-runtime/src/state/threads-sync.test.ts+1-1
......@@ -23,7 +23,7 @@ import * as Scope from "effect/Scope";
2323import * as Stream from "effect/Stream";
2424import * as SubscriptionRef from "effect/SubscriptionRef";
2525import * as TestClock from "effect/testing/TestClock";
26import { HttpClient, HttpClientResponse } from "effect/unstable/http";
26import { HttpClient, HttpClientResponse } from "effect/http";
2727
2828import type { WsRpcProtocolClient } from "../rpc/protocol.ts";
2929import {
packages/client-runtime/src/state/threads.ts+2-2
......@@ -17,8 +17,8 @@ import * as Result from "effect/Result";
1717import * as Semaphore from "effect/Semaphore";
1818import * as Stream from "effect/Stream";
1919import * as SubscriptionRef from "effect/SubscriptionRef";
20import { HttpClient } from "effect/unstable/http";
21import { Atom } from "effect/unstable/reactivity";
20import { HttpClient } from "effect/http";
21import { Atom } from "effect/reactivity";
2222
2323import * as RemoteEnvironmentAuthorization from "../authorization/service.ts";
2424import * as EnvironmentRegistry from "../connection/registry.ts";
packages/client-runtime/src/state/usage.test.ts+1-1
......@@ -8,7 +8,7 @@ import {
88 type UsageSummary,
99} from "@t3tools/contracts";
1010import * as Effect from "effect/Effect";
11import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
11import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
1212import { afterEach, describe, expect, it, vi } from "vite-plus/test";
1313
1414import type { EnvironmentPresentation } from "../connection/presentation.ts";
packages/client-runtime/src/state/usage.ts+1-1
......@@ -5,7 +5,7 @@ import type {
55 UsageSummaryInput,
66} from "@t3tools/contracts";
77import * as Schema from "effect/Schema";
8import type { AtomRegistry } from "effect/unstable/reactivity";
8import type { AtomRegistry } from "effect/reactivity";
99
1010import { EnvironmentRpcUnavailableError } from "../rpc/client.ts";
1111import type { createEnvironmentPresentationAtoms } from "./presentation.ts";
packages/client-runtime/src/state/vcs.test.ts+1-1
......@@ -13,7 +13,7 @@ import * as Ref from "effect/Ref";
1313import * as Stream from "effect/Stream";
1414import * as SubscriptionRef from "effect/SubscriptionRef";
1515import * as TestClock from "effect/testing/TestClock";
16import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
16import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
1717
1818import {
1919 AVAILABLE_CONNECTION_STATE,
packages/client-runtime/src/state/vcs.ts+1-1
......@@ -13,7 +13,7 @@ import * as Result from "effect/Result";
1313import * as Schedule from "effect/Schedule";
1414import * as Stream from "effect/Stream";
1515import * as SubscriptionRef from "effect/SubscriptionRef";
16import { Atom, AtomRegistry } from "effect/unstable/reactivity";
16import { Atom, AtomRegistry } from "effect/reactivity";
1717
1818import {
1919 createEnvironmentRpcCommand,
packages/client-runtime/src/state/vcsAction.test.ts+1-1
......@@ -15,7 +15,7 @@ import * as Option from "effect/Option";
1515import * as Schema from "effect/Schema";
1616import * as Stream from "effect/Stream";
1717import * as SubscriptionRef from "effect/SubscriptionRef";
18import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity";
18import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity";
1919
2020import {
2121 AVAILABLE_CONNECTION_STATE,
packages/client-runtime/src/state/vcsAction.ts+1-1
......@@ -15,7 +15,7 @@ import * as DateTime from "effect/DateTime";
1515import * as Effect from "effect/Effect";
1616import * as Schema from "effect/Schema";
1717import * as Stream from "effect/Stream";
18import { AsyncResult, Atom, type AtomRegistry } from "effect/unstable/reactivity";
18import { AsyncResult, Atom, type AtomRegistry } from "effect/reactivity";
1919
2020import type { EnvironmentRegistry } from "../connection/registry.ts";
2121import * as Persistence from "../platform/persistence.ts";
packages/client-runtime/src/state/vcsRefInvalidation.ts+1-1
......@@ -1,7 +1,7 @@
11import type { EnvironmentId } from "@t3tools/contracts";
22import * as Effect from "effect/Effect";
33import * as PartitionedSemaphore from "effect/PartitionedSemaphore";
4import { Atom, type AtomRegistry } from "effect/unstable/reactivity";
4import { Atom, type AtomRegistry } from "effect/reactivity";
55
66import { safeErrorLogAttributes } from "../errors/safeLog.ts";
77import * as Persistence from "../platform/persistence.ts";
packages/contracts/src/auth.ts+1-1
......@@ -1,5 +1,5 @@
11import * as Schema from "effect/Schema";
2import * as HttpApiSchema from "effect/unstable/httpapi/HttpApiSchema";
2import * as HttpApiSchema from "effect/http-api/HttpApiSchema";
33
44import {
55 AuthSessionId,
packages/contracts/src/baseSchemas.ts+2-2
......@@ -271,8 +271,8 @@ const knownTags = (
271271/**
272272 * Construct a branded identifier. Enforces non-empty trimmed strings
273273 */
274const makeEntityId = <Brand extends string>(brand: Brand) => {
275 return TrimmedNonEmptyString.pipe(Schema.brand(brand));
274const makeEntityId = <Brand extends string>(brand: Parameters<typeof Schema.brand<Brand>>[0]) => {
275 return TrimmedNonEmptyString.pipe(Schema.brand<Brand>(brand));
276276};
277277
278278export const ThreadId = makeEntityId("ThreadId");
packages/contracts/src/environmentHttp.ts+6-6
......@@ -1,12 +1,12 @@
11import * as Context from "effect/Context";
22import type * as DateTime from "effect/DateTime";
33import * as Schema from "effect/Schema";
4import * as HttpApi from "effect/unstable/httpapi/HttpApi";
5import * as HttpApiEndpoint from "effect/unstable/httpapi/HttpApiEndpoint";
6import * as HttpApiGroup from "effect/unstable/httpapi/HttpApiGroup";
7import * as HttpApiMiddleware from "effect/unstable/httpapi/HttpApiMiddleware";
8import * as HttpServerRespondable from "effect/unstable/http/HttpServerRespondable";
9import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
4import * as HttpApi from "effect/http-api/HttpApi";
5import * as HttpApiEndpoint from "effect/http-api/HttpApiEndpoint";
6import * as HttpApiGroup from "effect/http-api/HttpApiGroup";
7import * as HttpApiMiddleware from "effect/http-api/HttpApiMiddleware";
8import * as HttpServerRespondable from "effect/http/HttpServerRespondable";
9import * as HttpServerResponse from "effect/http/HttpServerResponse";
1010
1111import {
1212 AuthAccessTokenResult,
packages/contracts/src/pullRequest.ts+2-2
......@@ -1,6 +1,6 @@
11import * as Schema from "effect/Schema";
2import * as HttpServerRespondable from "effect/unstable/http/HttpServerRespondable";
3import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse";
2import * as HttpServerRespondable from "effect/http/HttpServerRespondable";
3import * as HttpServerResponse from "effect/http/HttpServerResponse";
44
55import {
66 IsoDateTime,
packages/contracts/src/relay.test.ts+1-1
......@@ -1,5 +1,5 @@
11import { describe, expect, it } from "vite-plus/test";
2import * as OpenApi from "effect/unstable/httpapi/OpenApi";
2import * as OpenApi from "effect/http-api/OpenApi";
33import * as Schema from "effect/Schema";
44
55import { RelayApi, RelayDeviceRegistrationRequest } from "./relay.ts";
packages/contracts/src/relay.ts+7-7
......@@ -1,12 +1,12 @@
11import * as Context from "effect/Context";
22import * as Schema from "effect/Schema";
3import * as HttpApi from "effect/unstable/httpapi/HttpApi";
4import * as HttpApiEndpoint from "effect/unstable/httpapi/HttpApiEndpoint";
5import * as HttpApiGroup from "effect/unstable/httpapi/HttpApiGroup";
6import * as HttpApiMiddleware from "effect/unstable/httpapi/HttpApiMiddleware";
7import * as HttpApiSchema from "effect/unstable/httpapi/HttpApiSchema";
8import * as HttpApiSecurity from "effect/unstable/httpapi/HttpApiSecurity";
9import * as OpenApi from "effect/unstable/httpapi/OpenApi";
3import * as HttpApi from "effect/http-api/HttpApi";
4import * as HttpApiEndpoint from "effect/http-api/HttpApiEndpoint";
5import * as HttpApiGroup from "effect/http-api/HttpApiGroup";
6import * as HttpApiMiddleware from "effect/http-api/HttpApiMiddleware";
7import * as HttpApiSchema from "effect/http-api/HttpApiSchema";
8import * as HttpApiSecurity from "effect/http-api/HttpApiSecurity";
9import * as OpenApi from "effect/http-api/OpenApi";
1010
1111import {
1212 DpopFailureReason,
packages/contracts/src/rpc.ts+3-3
......@@ -7,9 +7,9 @@ import {
77 ChatGptHandoffState,
88} from "./providerSetup.ts";
99import * as Schema from "effect/Schema";
10import * as Rpc from "effect/unstable/rpc/Rpc";
11import * as RpcGroup from "effect/unstable/rpc/RpcGroup";
12import * as RpcMiddleware from "effect/unstable/rpc/RpcMiddleware";
10import * as Rpc from "effect/rpc/Rpc";
11import * as RpcGroup from "effect/rpc/RpcGroup";
12import * as RpcMiddleware from "effect/rpc/RpcMiddleware";
1313import { NonNegativeInt, TrimmedNonEmptyString } from "./baseSchemas.ts";
1414import {
1515 CodexAuthCallbackInput,
packages/effect-acp/scripts/generate.ts+3-3
......@@ -9,9 +9,9 @@ import * as Layer from "effect/Layer";
99import * as Logger from "effect/Logger";
1010import * as Path from "effect/Path";
1111import * as Schema from "effect/Schema";
12import { Command, Flag } from "effect/unstable/cli";
13import { FetchHttpClient, HttpClient, HttpClientResponse } from "effect/unstable/http";
14import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
12import { Command, Flag } from "effect/cli";
13import { FetchHttpClient, HttpClient, HttpClientResponse } from "effect/http";
14import { ChildProcess, ChildProcessSpawner } from "effect/process";
1515
1616const V2_SCHEMA_RELEASE = "schema-v2.0.0-alpha.3";
1717const V1_SCHEMA_RELEASE = "schema-v1.21.0";
packages/effect-acp/src/_internal/shared.ts+1-1
......@@ -1,6 +1,6 @@
11import * as Effect from "effect/Effect";
22import * as Schema from "effect/Schema";
3import { RpcClientError } from "effect/unstable/rpc";
3import { RpcClientError } from "effect/rpc";
44
55import * as AcpSchema from "../_generated/schema.gen.ts";
66import * as AcpError from "../errors.ts";
packages/effect-acp/src/_internal/stdio.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, describe, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as PlatformError from "effect/PlatformError";
4import { ChildProcessSpawner } from "effect/unstable/process";
4import { ChildProcessSpawner } from "effect/process";
55
66import * as AcpError from "../errors.ts";
77import { makeTerminationError } from "./stdio.ts";
packages/effect-acp/src/_internal/stdio.ts+1-1
......@@ -4,7 +4,7 @@ import * as Cause from "effect/Cause";
44import * as Effect from "effect/Effect";
55import * as Sink from "effect/Sink";
66import * as Stdio from "effect/Stdio";
7import { ChildProcessSpawner } from "effect/unstable/process";
7import { ChildProcessSpawner } from "effect/process";
88
99import * as AcpError from "../errors.ts";
1010
packages/effect-acp/src/agent.ts+3-3
......@@ -5,9 +5,9 @@ import * as Schema from "effect/Schema";
55import * as Scope from "effect/Scope";
66import * as Stream from "effect/Stream";
77import * as Stdio from "effect/Stdio";
8import * as RpcClient from "effect/unstable/rpc/RpcClient";
9import * as RpcMessage from "effect/unstable/rpc/RpcMessage";
10import * as RpcServer from "effect/unstable/rpc/RpcServer";
8import * as RpcClient from "effect/rpc/RpcClient";
9import * as RpcMessage from "effect/rpc/RpcMessage";
10import * as RpcServer from "effect/rpc/RpcServer";
1111
1212import * as AcpSchema from "./schema.ts";
1313import { AGENT_METHODS, CLIENT_METHODS } from "./_generated/meta.gen.ts";
packages/effect-acp/src/client.test.ts+1-1
......@@ -10,7 +10,7 @@ import * as Ref from "effect/Ref";
1010import * as Schema from "effect/Schema";
1111import * as Scope from "effect/Scope";
1212import * as Stream from "effect/Stream";
13import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
13import { ChildProcess, ChildProcessSpawner } from "effect/process";
1414
1515import * as NodeServices from "@effect/platform-node/NodeServices";
1616import { it, assert } from "@effect/vitest";
packages/effect-acp/src/client.ts+4-4
......@@ -6,10 +6,10 @@ import * as Schema from "effect/Schema";
66import * as Predicate from "effect/Predicate";
77import * as Scope from "effect/Scope";
88import * as Stream from "effect/Stream";
9import * as RpcClient from "effect/unstable/rpc/RpcClient";
10import * as RpcMessage from "effect/unstable/rpc/RpcMessage";
11import * as RpcServer from "effect/unstable/rpc/RpcServer";
12import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
9import * as RpcClient from "effect/rpc/RpcClient";
10import * as RpcMessage from "effect/rpc/RpcMessage";
11import * as RpcServer from "effect/rpc/RpcServer";
12import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
1313
1414import * as AcpError from "./errors.ts";
1515import * as AcpProtocol from "./protocol.ts";
packages/effect-acp/src/errors.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { describe, expect, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as Schema from "effect/Schema";
4import * as RpcClientError from "effect/unstable/rpc/RpcClientError";
4import * as RpcClientError from "effect/rpc/RpcClientError";
55
66import * as AcpSchema from "./_generated/schema.gen.ts";
77import { callRpc, runHandler } from "./_internal/shared.ts";
packages/effect-acp/src/protocol.test.ts+1-1
......@@ -11,7 +11,7 @@ import * as Sink from "effect/Sink";
1111import * as Stdio from "effect/Stdio";
1212import * as Stream from "effect/Stream";
1313import * as Ref from "effect/Ref";
14import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
14import { ChildProcess, ChildProcessSpawner } from "effect/process";
1515
1616import { it, assert } from "@effect/vitest";
1717import * as NodeServices from "@effect/platform-node/NodeServices";
packages/effect-acp/src/protocol.ts+25-6
......@@ -10,11 +10,11 @@ import * as Schema from "effect/Schema";
1010import * as Scope from "effect/Scope";
1111import * as Stream from "effect/Stream";
1212import * as Stdio from "effect/Stdio";
13import * as RpcClient from "effect/unstable/rpc/RpcClient";
14import * as RpcClientError from "effect/unstable/rpc/RpcClientError";
15import * as RpcMessage from "effect/unstable/rpc/RpcMessage";
16import * as RpcSerialization from "effect/unstable/rpc/RpcSerialization";
17import * as RpcServer from "effect/unstable/rpc/RpcServer";
13import * as RpcClient from "effect/rpc/RpcClient";
14import * as RpcClientError from "effect/rpc/RpcClientError";
15import * as RpcMessage from "effect/rpc/RpcMessage";
16import * as RpcSerialization from "effect/rpc/RpcSerialization";
17import * as RpcServer from "effect/rpc/RpcServer";
1818
1919import * as AcpSchema from "./schema.ts";
2020import * as AcpSchemaV1 from "./_generated/schema-v1.gen.ts";
......@@ -144,6 +144,25 @@ const decodeElicitationComplete = Schema.decodeUnknownEffect(
144144 AcpSchema.CompleteElicitationNotification,
145145);
146146const parserFactory = RpcSerialization.ndJsonRpc();
147// ndJsonRpc skips lines that are not JSON. A malformed agent line has to end the
148// session, so frames are split here and each one goes through the strict codec.
149const makeStrictNdJsonRpcParser = () => {
150 const codec = RpcSerialization.jsonRpc().makeUnsafe();
151 const decoder = new TextDecoder();
152 let buffer = "";
153 return {
154 decode: (bytes: Uint8Array | string): ReadonlyArray<unknown> => {
155 buffer += typeof bytes === "string" ? bytes : decoder.decode(bytes, { stream: true });
156 const lines = buffer.split("\n");
157 buffer = lines.pop() ?? "";
158 return lines.flatMap((line) => codec.decode(line));
159 },
160 encode: (response: Parameters<typeof codec.encode>[0]) => {
161 const encoded = codec.encode(response);
162 return encoded === undefined ? undefined : `${encoded}\n`;
163 },
164 };
165};
147166const MAX_BUFFERED_RAW_NOTIFICATIONS = 32;
148167// Outbound JSON-RPC notification: no `id`, so peers never treat it as a request.
149168const encodeJsonRpcNotification = Schema.encodeUnknownExit(
......@@ -189,7 +208,7 @@ function normalizeAcpJsonRpcError(
189208export const makeAcpPatchedProtocol = Effect.fn("makeAcpPatchedProtocol")(function* (
190209 options: AcpPatchedProtocolOptions,
191210): Effect.fn.Return<AcpPatchedProtocol, never, Scope.Scope> {
192 const parser = parserFactory.makeUnsafe();
211 const parser = makeStrictNdJsonRpcParser();
193212 const serverQueue = yield* Queue.unbounded<RpcMessage.FromClientEncoded>();
194213 const clientQueue = yield* Queue.unbounded<RpcMessage.FromServerEncoded>();
195214 const notificationQueue = yield* Queue.sliding<AcpIncomingNotification>(
packages/effect-acp/src/rpc.ts+2-2
......@@ -1,6 +1,6 @@
11import * as AcpCompat from "./compat.ts";
2import * as Rpc from "effect/unstable/rpc/Rpc";
3import * as RpcGroup from "effect/unstable/rpc/RpcGroup";
2import * as Rpc from "effect/rpc/Rpc";
3import * as RpcGroup from "effect/rpc/RpcGroup";
44import * as Schema from "effect/Schema";
55
66import * as AcpSchema from "./_generated/schema.gen.ts";
packages/effect-codex-app-server/scripts/generate.ts+2-7
......@@ -9,13 +9,8 @@ import * as Layer from "effect/Layer";
99import * as Logger from "effect/Logger";
1010import * as Path from "effect/Path";
1111import * as Schema from "effect/Schema";
12import {
13 FetchHttpClient,
14 HttpClient,
15 HttpClientRequest,
16 HttpClientResponse,
17} from "effect/unstable/http";
18import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
12import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
13import { ChildProcess, ChildProcessSpawner } from "effect/process";
1914
2015const UPSTREAM_REF = "687a119f0fcaace47e1f1abcc77cec6c813fd6da";
2116const USER_AGENT = "effect-codex-app-server-generator";
packages/effect-codex-app-server/src/_internal/stdio.test.ts+1-1
......@@ -1,7 +1,7 @@
11import { assert, describe, it } from "@effect/vitest";
22import * as Effect from "effect/Effect";
33import * as PlatformError from "effect/PlatformError";
4import { ChildProcessSpawner } from "effect/unstable/process";
4import { ChildProcessSpawner } from "effect/process";
55
66import * as CodexError from "../errors.ts";
77import { makeTerminationError } from "./stdio.ts";
packages/effect-codex-app-server/src/_internal/stdio.ts+1-1
......@@ -4,7 +4,7 @@ import * as Queue from "effect/Queue";
44import * as Sink from "effect/Sink";
55import * as Stdio from "effect/Stdio";
66import * as Stream from "effect/Stream";
7import { ChildProcessSpawner } from "effect/unstable/process";
7import { ChildProcessSpawner } from "effect/process";
88
99import * as CodexError from "../errors.ts";
1010
packages/effect-codex-app-server/src/client.test.ts+1-1
......@@ -4,7 +4,7 @@ import * as Path from "effect/Path";
44import * as Effect from "effect/Effect";
55import * as Ref from "effect/Ref";
66import * as Scope from "effect/Scope";
7import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
7import { ChildProcess, ChildProcessSpawner } from "effect/process";
88
99import * as NodeServices from "@effect/platform-node/NodeServices";
1010import { assert, it } from "@effect/vitest";
packages/effect-codex-app-server/src/client.ts+1-1
......@@ -5,7 +5,7 @@ import * as Schema from "effect/Schema";
55import * as Scope from "effect/Scope";
66import * as Stdio from "effect/Stdio";
77import * as Stream from "effect/Stream";
8import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner";
8import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner";
99
1010import * as CodexRpc from "./_generated/meta.gen.ts";
1111import * as CodexSchema from "./_generated/schema.gen.ts";
packages/effect-codex-app-server/test/examples/codex-app-server-probe.ts+1-1
......@@ -1,6 +1,6 @@
11import * as Console from "effect/Console";
22import * as Effect from "effect/Effect";
3import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
3import { ChildProcess, ChildProcessSpawner } from "effect/process";
44
55import * as NodeRuntime from "@effect/platform-node/NodeRuntime";
66import * as NodeServices from "@effect/platform-node/NodeServices";
packages/shared/src/dpop.ts+6-6
......@@ -1,6 +1,6 @@
11import { p256 } from "@noble/curves/nist";
22import { sha256 } from "@noble/hashes/sha2";
3import * as Encoding from "effect/Encoding";
3import * as Base64Url from "effect/encoding/Base64Url";
44import * as Option from "effect/Option";
55import * as Result from "effect/Result";
66import * as Schema from "effect/Schema";
......@@ -69,15 +69,15 @@ export type DpopVerificationResult =
6969 };
7070
7171function base64UrlToBytes(value: string): Uint8Array {
72 return Result.getOrThrow(Encoding.decodeBase64Url(value));
72 return Result.getOrThrow(Base64Url.decode(value));
7373}
7474
7575function decodeBase64UrlDpopJwtHeader(value: string) {
76 return decodeDpopJwtHeaderJson(Result.getOrThrow(Encoding.decodeBase64UrlString(value)));
76 return decodeDpopJwtHeaderJson(Result.getOrThrow(Base64Url.decodeString(value)));
7777}
7878
7979function decodeBase64UrlDpopJwtPayload(value: string) {
80 return decodeDpopJwtPayloadJson(Result.getOrThrow(Encoding.decodeBase64UrlString(value)));
80 return decodeDpopJwtPayloadJson(Result.getOrThrow(Base64Url.decodeString(value)));
8181}
8282
8383function dpopThumbprintInput(jwk: DpopPublicJwkType): string {
......@@ -90,11 +90,11 @@ function dpopThumbprintInput(jwk: DpopPublicJwkType): string {
9090}
9191
9292export function computeDpopJwkThumbprint(jwk: DpopPublicJwkType): string {
93 return Encoding.encodeBase64Url(sha256(new TextEncoder().encode(dpopThumbprintInput(jwk))));
93 return Base64Url.encode(sha256(new TextEncoder().encode(dpopThumbprintInput(jwk))));
9494}
9595
9696export function computeDpopAccessTokenHash(accessToken: string): string {
97 return Encoding.encodeBase64Url(sha256(new TextEncoder().encode(accessToken)));
97 return Base64Url.encode(sha256(new TextEncoder().encode(accessToken)));
9898}
9999
100100function publicKeyBytesFromJwk(jwk: DpopPublicJwkType): Uint8Array {
packages/shared/src/httpObservability.ts+1-1
......@@ -1,6 +1,6 @@
11import * as Effect from "effect/Effect";
22import * as Layer from "effect/Layer";
3import * as Headers from "effect/unstable/http/Headers";
3import * as Headers from "effect/http/Headers";
44
55export const httpHeaderRedactionLayer = Layer.effect(
66 Headers.CurrentRedactedNames,
packages/shared/src/httpReadiness.ts+1-1
......@@ -3,7 +3,7 @@ import * as Effect from "effect/Effect";
33import * as Option from "effect/Option";
44import * as Ref from "effect/Ref";
55import * as Schedule from "effect/Schedule";
6import { HttpClient, HttpClientRequest } from "effect/unstable/http";
6import { HttpClient, HttpClientRequest } from "effect/http";
77
88const DEFAULT_HTTP_READY_PROBE_TIMEOUT_MS = 1_000;
99
packages/shared/src/nodeSqliteClient.test.ts+1-1
......@@ -5,7 +5,7 @@ import * as Effect from "effect/Effect";
55import * as FileSystem from "effect/FileSystem";
66import * as Layer from "effect/Layer";
77import * as Path from "effect/Path";
8import * as SqlClient from "effect/unstable/sql/SqlClient";
8import * as SqlClient from "effect/sql/SqlClient";
99
1010import * as SqliteClient from "./nodeSqliteClient.ts";
1111
packages/shared/src/nodeSqliteClient.ts+5-5
......@@ -19,11 +19,11 @@ import * as Scope from "effect/Scope";
1919import * as Semaphore from "effect/Semaphore";
2020import * as Context from "effect/Context";
2121import * as Stream from "effect/Stream";
22import * as Reactivity from "effect/unstable/reactivity/Reactivity";
23import * as Client from "effect/unstable/sql/SqlClient";
24import type { Connection } from "effect/unstable/sql/SqlConnection";
25import { SqlError, classifySqliteError } from "effect/unstable/sql/SqlError";
26import * as Statement from "effect/unstable/sql/Statement";
22import * as Reactivity from "effect/reactivity/Reactivity";
23import * as Client from "effect/sql/SqlClient";
24import type { Connection } from "effect/sql/SqlConnection";
25import { SqlError, classifySqliteError } from "effect/sql/SqlError";
26import * as Statement from "effect/sql/Statement";
2727
2828const ATTR_DB_SYSTEM_NAME = "db.system.name";
2929
packages/shared/src/observability.ts+1-1
......@@ -7,7 +7,7 @@ import * as Schema from "effect/Schema";
77import * as SchemaIssue from "effect/SchemaIssue";
88import * as SchemaTransformation from "effect/SchemaTransformation";
99import * as Tracer from "effect/Tracer";
10import { OtlpResource, OtlpTracer, OtlpSerialization } from "effect/unstable/observability";
10import { OtlpResource, OtlpTracer, OtlpSerialization } from "effect/observability";
1111
1212import { RotatingFileSink } from "./logging.ts";
1313
packages/shared/src/otelEnvironment.test.ts+1-1
......@@ -2,7 +2,7 @@ import { assert, describe, it } from "@effect/vitest";
22import * as ConfigProvider from "effect/ConfigProvider";
33import * as Effect from "effect/Effect";
44import * as Layer from "effect/Layer";
5import * as OtlpResource from "effect/unstable/observability/OtlpResource";
5import * as OtlpResource from "effect/observability/OtlpResource";
66
77import * as OtelEnvironment from "./otelEnvironment.ts";
88
packages/shared/src/otelEnvironment.ts+3-1
......@@ -65,7 +65,9 @@ interface Flag {
6565const TrimmedLowercase = Schema.String.pipe(
6666 Schema.decodeTo(
6767 Schema.String,
68 SchemaTransformation.trim().compose(SchemaTransformation.toLowerCase()),
68 SchemaTransformation.trim().pipe(
69 SchemaTransformation.composeTransformation(SchemaTransformation.toLowerCase()),
70 ),
6971 ),
7072);
7173
packages/shared/src/relayClient.test.ts+6-6
......@@ -3,13 +3,13 @@ import * as NodeServices from "@effect/platform-node/NodeServices";
33import { describe, expect, it } from "@effect/vitest";
44import * as ConfigProvider from "effect/ConfigProvider";
55import * as Effect from "effect/Effect";
6import * as Encoding from "effect/Encoding";
6import * as Hex from "effect/encoding/Hex";
77import * as FileSystem from "effect/FileSystem";
88import * as Layer from "effect/Layer";
99import * as Sink from "effect/Sink";
1010import * as Stream from "effect/Stream";
11import { HttpClient, HttpClientResponse } from "effect/unstable/http";
12import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
11import { HttpClient, HttpClientResponse } from "effect/http";
12import { ChildProcess, ChildProcessSpawner } from "effect/process";
1313import { HostProcessArchitecture, HostProcessPlatform } from "./hostProcess.ts";
1414
1515import * as RelayClient from "./relayClient.ts";
......@@ -122,7 +122,7 @@ describe("RelayClient", () => {
122122 baseDir,
123123 releaseAsset: {
124124 url: "https://example.test/cloudflared",
125 sha256: Encoding.encodeHex(sha256(bytes)),
125 sha256: Hex.encode(sha256(bytes)),
126126 archive: "binary",
127127 },
128128 });
......@@ -178,7 +178,7 @@ describe("RelayClient", () => {
178178 baseDir,
179179 releaseAsset: {
180180 url: "https://example.test/cloudflared",
181 sha256: Encoding.encodeHex(sha256(new TextEncoder().encode("expected"))),
181 sha256: Hex.encode(sha256(new TextEncoder().encode("expected"))),
182182 archive: "binary",
183183 },
184184 });
......@@ -211,7 +211,7 @@ describe("RelayClient", () => {
211211 baseDir,
212212 releaseAsset: {
213213 url: "https://example.test/cloudflared",
214 sha256: Encoding.encodeHex(sha256(bytes)),
214 sha256: Hex.encode(sha256(bytes)),
215215 archive: "binary",
216216 },
217217 });
packages/shared/src/relayClient.ts+4-4
......@@ -8,15 +8,15 @@ import * as Context from "effect/Context";
88import * as Crypto from "effect/Crypto";
99import * as Data from "effect/Data";
1010import * as Effect from "effect/Effect";
11import * as Encoding from "effect/Encoding";
11import * as Hex from "effect/encoding/Hex";
1212import * as FileSystem from "effect/FileSystem";
1313import * as Layer from "effect/Layer";
1414import * as Option from "effect/Option";
1515import * as Path from "effect/Path";
1616import * as PlatformError from "effect/PlatformError";
1717import * as Semaphore from "effect/Semaphore";
18import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http";
19import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
18import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http";
19import { ChildProcess, ChildProcessSpawner } from "effect/process";
2020import { HostProcessArchitecture, HostProcessPlatform } from "./hostProcess.ts";
2121
2222export const CLOUDFLARED_VERSION = "2026.5.2";
......@@ -316,7 +316,7 @@ export const makeCloudflaredRelayClient = Effect.fn("cloudflared.make")(function
316316 }),
317317 ),
318318 );
319 if (Encoding.encodeHex(checksum) !== asset.sha256) {
319 if (Hex.encode(checksum) !== asset.sha256) {
320320 return yield* new RelayClientInstallError({
321321 reason: "invalid_checksum",
322322 message: "Downloaded relay client checksum did not match the pinned release.",
packages/shared/src/relayTracing.test.ts+1-1
......@@ -3,7 +3,7 @@ import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
44import * as Option from "effect/Option";
55import * as Tracer from "effect/Tracer";
6import { FetchHttpClient } from "effect/unstable/http";
6import { FetchHttpClient } from "effect/http";
77import { vi } from "vite-plus/test";
88
99import {
packages/shared/src/relayTracing.ts+2-2
......@@ -5,8 +5,8 @@ import * as Exit from "effect/Exit";
55import * as Layer from "effect/Layer";
66import * as Option from "effect/Option";
77import * as Tracer from "effect/Tracer";
8import type { HttpClient } from "effect/unstable/http";
9import { OtlpSerialization, OtlpTracer } from "effect/unstable/observability";
8import type { HttpClient } from "effect/http";
9import { OtlpSerialization, OtlpTracer } from "effect/observability";
1010
1111export interface RelayClientTracingConfig {
1212 readonly tracesUrl: string;
packages/shared/src/schemaJson.ts+4-7
......@@ -163,7 +163,7 @@ export const formatSchemaError = (cause: Cause.Cause<Schema.SchemaError>) => {
163163 */
164164const decodeJsonString = Schema.decodeEffect(Schema.fromJsonString(Schema.Unknown));
165165
166const parseLenientJsonGetter = SchemaGetter.onSome((input: string) => {
166const parseLenientJsonGetter = SchemaGetter.transformEffect((input: string) => {
167167 // Strip single-line comments - alternation preserves quoted strings.
168168 let stripped = input.replace(
169169 /("(?:[^"\\]|\\.)*")|\/\/[^\n]*/g,
......@@ -185,10 +185,7 @@ const parseLenientJsonGetter = SchemaGetter.onSome((input: string) => {
185185 stringLiteral ? match : (bracket ?? ""),
186186 );
187187
188 return decodeJsonString(stripped).pipe(
189 Effect.asSome,
190 Effect.mapError((error) => error.issue),
191 );
188 return decodeJsonString(stripped).pipe(Effect.mapError((error) => error.issue));
192189});
193190
194191/**
......@@ -203,8 +200,8 @@ const fromLenientJsonString = new SchemaTransformation.Transformation(
203200 SchemaGetter.stringifyJson(),
204201);
205202
206const prettyJsonString = SchemaGetter.parseJson<string>().compose(
207 SchemaGetter.stringifyJson({ space: 2 }),
203const prettyJsonString = SchemaGetter.parseJson<string>().pipe(
204 SchemaGetter.compose(SchemaGetter.stringifyJson({ space: 2 })),
208205);
209206
210207/**
packages/ssh/src/command.test.ts+1-1
......@@ -8,7 +8,7 @@ import * as Result from "effect/Result";
88import * as Sink from "effect/Sink";
99import * as Stream from "effect/Stream";
1010import * as TestClock from "effect/testing/TestClock";
11import { ChildProcessSpawner } from "effect/unstable/process";
11import { ChildProcessSpawner } from "effect/process";
1212
1313import {
1414 baseSshArgs,
packages/ssh/src/command.ts+1-1
......@@ -9,7 +9,7 @@ import * as Option from "effect/Option";
99import * as Path from "effect/Path";
1010import * as Scope from "effect/Scope";
1111import * as Stream from "effect/Stream";
12import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
12import { ChildProcess, ChildProcessSpawner } from "effect/process";
1313
1414import { buildSshChildEnvironment, type SshAuthOptions } from "./auth.ts";
1515import { SshCommandError, SshInvalidTargetError } from "./errors.ts";
packages/ssh/src/runnerProcess.test.ts+1-1
......@@ -8,7 +8,7 @@ import * as FileSystem from "effect/FileSystem";
88import * as Path from "effect/Path";
99import * as Schema from "effect/Schema";
1010import * as Stream from "effect/Stream";
11import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
11import { ChildProcess, ChildProcessSpawner } from "effect/process";
1212import * as NodeNet from "node:net";
1313
1414import { buildRemoteStopScript, buildRemoteT3RunnerScript } from "./tunnel.ts";
packages/ssh/src/tunnel.test.ts+2-2
......@@ -12,8 +12,8 @@ import * as Result from "effect/Result";
1212import * as Sink from "effect/Sink";
1313import * as Stream from "effect/Stream";
1414import { TestClock } from "effect/testing";
15import { HttpClient, HttpClientResponse } from "effect/unstable/http";
16import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
15import { HttpClient, HttpClientResponse } from "effect/http";
16import { ChildProcess, ChildProcessSpawner } from "effect/process";
1717
1818import * as SshAuth from "./auth.ts";
1919import { SshCommandError } from "./errors.ts";
packages/ssh/src/tunnel.ts+8-6
......@@ -20,8 +20,8 @@ import * as Path from "effect/Path";
2020import * as Schema from "effect/Schema";
2121import * as Scope from "effect/Scope";
2222import * as Stream from "effect/Stream";
23import { HttpClient } from "effect/unstable/http";
24import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
23import { HttpClient } from "effect/http";
24import { ChildProcess, ChildProcessSpawner } from "effect/process";
2525
2626import * as SshAuth from "./auth.ts";
2727import {
......@@ -93,7 +93,7 @@ interface SshTunnelEntry {
9393 readonly httpBaseUrl: string;
9494 readonly wsBaseUrl: string;
9595 readonly process: ChildProcessSpawner.ChildProcessHandle;
96 readonly scope: Scope.Scope;
96 readonly scope: Scope.Closeable;
9797}
9898
9999type SshEnvironmentEffectContext =
......@@ -1104,6 +1104,7 @@ const startSshTunnel = Effect.fn("ssh/tunnel.startSshTunnel")(function* (input:
11041104 readonly wsBaseUrl: string;
11051105 readonly authOptions: SshAuth.SshAuthOptions;
11061106 readonly remoteServerKind: "external" | "managed" | null;
1107 readonly scope: Scope.Closeable;
11071108}): Effect.fn.Return<
11081109 SshTunnelEntry,
11091110 SshCommandError | SshInvalidTargetError | SshReadinessError,
......@@ -1112,7 +1113,6 @@ const startSshTunnel = Effect.fn("ssh/tunnel.startSshTunnel")(function* (input:
11121113 | Path.Path
11131114 | HttpClient.HttpClient
11141115 | NetService.NetService
1115 | Scope.Scope
11161116> {
11171117 const hostSpec = yield* buildSshHostSpecEffect(input.resolvedTarget);
11181118 const childEnvironment = yield* SshAuth.buildSshChildEnvironment({
......@@ -1159,7 +1159,7 @@ const startSshTunnel = Effect.fn("ssh/tunnel.startSshTunnel")(function* (input:
11591159 const sshCommand = yield* resolveSshCommand;
11601160 const tunnelCommand = [sshCommand, ...args];
11611161 const spawner = yield* ChildProcessSpawner.ChildProcessSpawner;
1162 const scope = yield* Scope.Scope;
1162 const { scope } = input;
11631163 yield* Effect.logDebug("ssh.tunnel.spawn.start", {
11641164 ...sshTargetLogFields(input.resolvedTarget),
11651165 command: tunnelCommand,
......@@ -1180,6 +1180,7 @@ const startSshTunnel = Effect.fn("ssh/tunnel.startSshTunnel")(function* (input:
11801180 }),
11811181 )
11821182 .pipe(
1183 Effect.provideService(Scope.Scope, scope),
11831184 Effect.mapError(
11841185 (cause) =>
11851186 new SshCommandError({
......@@ -1528,7 +1529,8 @@ const makeSshEnvironmentManager = Effect.fn("ssh/tunnel.SshEnvironmentManager.ma
15281529 wsBaseUrl,
15291530 authOptions,
15301531 remoteServerKind: remoteLaunch.remoteServerKind,
1531 }).pipe(Effect.provideService(Scope.Scope, entryScope)),
1532 scope: entryScope,
1533 }),
15321534 }).pipe(
15331535 Effect.onExit((exit) =>
15341536 Exit.isSuccess(exit) ? Effect.void : Scope.close(entryScope, Exit.void).pipe(Effect.ignore),
packages/tailscale/src/tailscale.test.ts+1-1
......@@ -7,7 +7,7 @@ import * as PlatformError from "effect/PlatformError";
77import * as Sink from "effect/Sink";
88import * as Stream from "effect/Stream";
99import * as TestClock from "effect/testing/TestClock";
10import { ChildProcessSpawner } from "effect/unstable/process";
10import { ChildProcessSpawner } from "effect/process";
1111import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
1212
1313import {
packages/tailscale/src/tailscale.ts+2-2
......@@ -4,8 +4,8 @@ import * as Effect from "effect/Effect";
44import * as Option from "effect/Option";
55import * as Schema from "effect/Schema";
66import * as Stream from "effect/Stream";
7import { HttpClient, HttpClientRequest } from "effect/unstable/http";
8import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
7import { HttpClient, HttpClientRequest } from "effect/http";
8import { ChildProcess, ChildProcessSpawner } from "effect/process";
99
1010export const DEFAULT_TAILSCALE_SERVE_PORT = 443;
1111export const TAILSCALE_STATUS_TIMEOUT = Duration.millis(1_500);
patches/@effect__vitest@4.0.0-rc.115.patch deleted-106
......@@ -1,106 +0,0 @@
1diff --git a/dist/index.d.ts b/dist/index.d.ts
2index f0b2bcc..1b9bc38 100644
3--- a/dist/index.d.ts
4+++ b/dist/index.d.ts
5@@ -7,11 +7,11 @@ import type * as Layer from "effect/Layer";
6 import type * as Schema from "effect/Schema";
7 import type * as Scope from "effect/Scope";
8 import type * as Arbitrary from "effect/unstable/arbitrary/Arbitrary";
9-import * as V from "vitest";
10+import * as V from "vite-plus/test";
11 /**
12 * @since 4.0.0
13 */
14-export * from "vitest";
15+export * from "vite-plus/test";
16 /**
17 * @since 4.0.0
18 */
19diff --git a/dist/index.js b/dist/index.js
20index d941a25..90e4618 100644
21--- a/dist/index.js
22+++ b/dist/index.js
23@@ -1,9 +1,9 @@
24-import * as V from "vitest";
25+import * as V from "vite-plus/test";
26 import * as internal from "./internal/internal.js";
27 /**
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 25ab056..d5cce3a 100644
37--- a/dist/internal/internal.js
38+++ b/dist/internal/internal.js
39@@ -12,7 +12,7 @@ import * as Scope from "effect/Scope";
40 import * as TestClock from "effect/testing/TestClock";
41 import * as TestConsole from "effect/testing/TestConsole";
42 import * as Arbitrary from "effect/unstable/arbitrary/Arbitrary";
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 4871215..2c46e2b 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/src/index.ts b/src/index.ts
62index 7726aac..7375f10 100644
63--- a/src/index.ts
64+++ b/src/index.ts
65@@ -7,13 +7,13 @@ import type * as Layer from "effect/Layer"
66 import type * as Schema from "effect/Schema"
67 import type * as Scope from "effect/Scope"
68 import type * as Arbitrary from "effect/unstable/arbitrary/Arbitrary"
69-import * as V from "vitest"
70+import * as V from "vite-plus/test"
71 import * as internal from "./internal/internal.ts"
72
73 /**
74 * @since 4.0.0
75 */
76-export * from "vitest"
77+export * from "vite-plus/test"
78
79 /**
80 * @since 4.0.0
81diff --git a/src/internal/internal.ts b/src/internal/internal.ts
82index 3e001b1..5b7aa2a 100644
83--- a/src/internal/internal.ts
84+++ b/src/internal/internal.ts
85@@ -14,7 +14,7 @@ import * as Scope from "effect/Scope"
86 import * as TestClock from "effect/testing/TestClock"
87 import * as TestConsole from "effect/testing/TestConsole"
88 import * as Arbitrary from "effect/unstable/arbitrary/Arbitrary"
89-import * as V from "vitest"
90+import * as V from "vite-plus/test"
91 import type * as Vitest from "../index.ts"
92
93 const getCurrentSuite = V.TestRunner.getCurrentSuite
94diff --git a/src/utils.ts b/src/utils.ts
95index 4a4612c..846bcc9 100644
96--- a/src/utils.ts
97+++ b/src/utils.ts
98@@ -16,7 +16,7 @@ import * as Option from "effect/Option"
99 import * as Predicate from "effect/Predicate"
100 import * as Result from "effect/Result"
101 import * as assert from "node:assert"
102-import { assert as vassert } from "vitest"
103+import { assert as vassert } from "vite-plus/test"
104
105 // ----------------------------
106 // Primitives
patches/@effect__vitest@4.0.1.patch created+120
......@@ -0,0 +1,120 @@
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/@opencode__client@2.0.23.patch created+439
......@@ -0,0 +1,439 @@
1diff --git a/dist/chunks/service-version-21favj1f.js b/dist/chunks/service-version-21favj1f.js
2index 3e26e34..56068ac 100644
3--- a/dist/chunks/service-version-21favj1f.js
4+++ b/dist/chunks/service-version-21favj1f.js
5@@ -22,7 +22,7 @@ __export(exports_client, {
6 make: () => make2
7 });
8 import { Cause, Context, Effect, Stream } from "effect";
9-import { HttpClient, HttpClientRequest } from "effect/unstable/http";
10+import { HttpClient, HttpClientRequest } from "effect/http";
11 var CurrentHeaders = Context.Reference("@opencode/client/effect/rpc/headers", {
12 defaultValue: () => {
13 return;
14diff --git a/dist/chunks/service-version-7yt87z36.js b/dist/chunks/service-version-7yt87z36.js
15index 3559e55..aa2ace8 100644
16--- a/dist/chunks/service-version-7yt87z36.js
17+++ b/dist/chunks/service-version-7yt87z36.js
18@@ -14,9 +14,9 @@ __export(exports_client2, {
19 make: () => make3
20 });
21 import { Effect, Stream, Schema } from "effect";
22-import { Sse } from "effect/unstable/encoding";
23-import { HttpClientError } from "effect/unstable/http";
24-import { HttpApiClient } from "effect/unstable/httpapi";
25+import { Sse } from "effect/encoding";
26+import { HttpClientError } from "effect/http";
27+import { HttpApiClient } from "effect/http-api";
28 var mapClientError = (error) => HttpClientError.isHttpClientError(error) || Schema.isSchemaError(error) || Sse.Retry.is(error) ? new ClientError2({ cause: error }) : error;
29 var preserveEffect = () => (effect) => effect;
30 var preserveStream = () => (stream) => stream;
31diff --git a/dist/effect/client.d.ts b/dist/effect/client.d.ts
32index b6ccbb5..98ab36b 100644
33--- a/dist/effect/client.d.ts
34+++ b/dist/effect/client.d.ts
35@@ -1,6 +1,6 @@
36 export * as OpenCode from "./client.js";
37 import { Effect, Stream } from "effect";
38-import { HttpClient } from "effect/unstable/http";
39+import { HttpClient } from "effect/http";
40 import { ClientError } from "./generated/index.js";
41 import { RpcClientRuntime } from "./rpc.js";
42 import type { RpcCallOptions } from "../promise/rpc.js";
43@@ -2290,239 +2290,239 @@ export declare const make: (options?: {
44 readonly metadata?: {
45 readonly [x: string]: unknown;
46 } | undefined;
47- }, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/unstable/encoding/Sse").Retry | import("effect/unstable/encoding/Sse").SseError, never>;
48+ }, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError | import("effect/encoding/Sse").Retry | import("effect/encoding/Sse").SseError, never>;
49 };
50- rpc: RpcClientRuntime.RpcApi<import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | import("@opencode/schema/rpc").SystemError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, RpcCallOptions, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/unstable/encoding/Sse").Retry | import("effect/unstable/encoding/Sse").SseError> & {
51- call: (input: import("./api.js").RpcCallInput) => Effect.Effect<import("./api.js").RpcCallOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").RpcError | import("@opencode/protocol/errors").RpcInternalError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
52+ rpc: RpcClientRuntime.RpcApi<import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | import("@opencode/schema/rpc").SystemError | ClientError | import("effect/http/HttpClientError").HttpClientError, RpcCallOptions, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError | import("effect/encoding/Sse").Retry | import("effect/encoding/Sse").SseError> & {
53+ call: (input: import("./api.js").RpcCallInput) => Effect.Effect<import("./api.js").RpcCallOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").RpcError | import("@opencode/protocol/errors").RpcInternalError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
54 };
55 server: {
56- info: () => Effect.Effect<import("./api.js").ServerInfoOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
57- pair: () => Effect.Effect<import("./api.js").ServerPairOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
58- connect: (input: import("./api.js").ServerConnectInput) => Effect.Effect<import("./api.js").ServerConnectOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
59+ info: () => Effect.Effect<import("./api.js").ServerInfoOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
60+ pair: () => Effect.Effect<import("./api.js").ServerPairOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
61+ connect: (input: import("./api.js").ServerConnectInput) => Effect.Effect<import("./api.js").ServerConnectOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
62 };
63 location: {
64- get: (input?: import("./api.js").LocationGetInput) => Effect.Effect<import("@opencode/schema/location").PublicInfo, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
65- reload: () => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
66+ get: (input?: import("./api.js").LocationGetInput) => Effect.Effect<import("@opencode/schema/location").PublicInfo, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
67+ reload: () => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
68 };
69 agent: {
70- list: (input?: import("./api.js").AgentListInput) => Effect.Effect<import("./api.js").AgentListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
71- get: (input: import("./api.js").AgentGetInput) => Effect.Effect<import("./api.js").AgentGetOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").AgentNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
72+ list: (input?: import("./api.js").AgentListInput) => Effect.Effect<import("./api.js").AgentListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
73+ get: (input: import("./api.js").AgentGetInput) => Effect.Effect<import("./api.js").AgentGetOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").AgentNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
74 };
75 plugin: {
76- list: (input?: import("./api.js").PluginListInput) => Effect.Effect<import("./api.js").PluginListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
77- check: (input?: import("./api.js").PluginCheckInput) => Effect.Effect<import("./api.js").PluginCheckOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
78- update: (input: import("./api.js").PluginUpdateInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
79+ list: (input?: import("./api.js").PluginListInput) => Effect.Effect<import("./api.js").PluginListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
80+ check: (input?: import("./api.js").PluginCheckInput) => Effect.Effect<import("./api.js").PluginCheckOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
81+ update: (input: import("./api.js").PluginUpdateInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
82 };
83 session: {
84- list: (input?: import("./api.js").SessionListInput) => Effect.Effect<import("./api.js").SessionListOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").InvalidCursorError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
85- stats: (input?: import("./api.js").SessionStatsInput) => Effect.Effect<import("./api.js").SessionStatsOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
86- create: (input?: import("./api.js").SessionCreateInput) => Effect.Effect<import("@opencode/schema/session").Info, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
87- import: (input: import("./api.js").SessionImportInput) => Effect.Effect<import("@opencode/schema/session").Info, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
88- export: (input: import("./api.js").SessionExportInput) => Effect.Effect<import("./api.js").SessionExportOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").UnknownError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
89- active: () => Effect.Effect<import("./api.js").SessionActiveOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
90- get: (input: import("./api.js").SessionGetInput) => Effect.Effect<import("@opencode/schema/session").Info, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
91- remove: (input: import("./api.js").SessionRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
92- fork: (input: import("./api.js").SessionForkInput) => Effect.Effect<import("@opencode/schema/session").Info, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").MessageNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
93- switchAgent: (input: import("./api.js").SessionSwitchAgentInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
94- switchModel: (input: import("./api.js").SessionSwitchModelInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
95- update: (input: import("./api.js").SessionUpdateInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
96- move: (input: import("./api.js").SessionMoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
97- prompt: (input: import("./api.js").SessionPromptInput) => Effect.Effect<import("@opencode/schema/session-inbox").User, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
98- command: (input: import("./api.js").SessionCommandInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").CommandNotFoundError | import("@opencode/protocol/errors").CommandExecutionError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
99- skill: (input: import("./api.js").SessionSkillInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").SkillNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
100- synthetic: (input: import("./api.js").SessionSyntheticInput) => Effect.Effect<import("@opencode/schema/session-inbox").Synthetic, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
101- shell: (input: import("./api.js").SessionShellInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
102- compact: (input: import("./api.js").SessionCompactInput) => Effect.Effect<import("@opencode/schema/session-inbox").Compaction, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
103- wait: (input: import("./api.js").SessionWaitInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
104+ list: (input?: import("./api.js").SessionListInput) => Effect.Effect<import("./api.js").SessionListOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").InvalidCursorError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
105+ stats: (input?: import("./api.js").SessionStatsInput) => Effect.Effect<import("./api.js").SessionStatsOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
106+ create: (input?: import("./api.js").SessionCreateInput) => Effect.Effect<import("@opencode/schema/session").Info, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
107+ import: (input: import("./api.js").SessionImportInput) => Effect.Effect<import("@opencode/schema/session").Info, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
108+ export: (input: import("./api.js").SessionExportInput) => Effect.Effect<import("./api.js").SessionExportOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").UnknownError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
109+ active: () => Effect.Effect<import("./api.js").SessionActiveOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
110+ get: (input: import("./api.js").SessionGetInput) => Effect.Effect<import("@opencode/schema/session").Info, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
111+ remove: (input: import("./api.js").SessionRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
112+ fork: (input: import("./api.js").SessionForkInput) => Effect.Effect<import("@opencode/schema/session").Info, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").MessageNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
113+ switchAgent: (input: import("./api.js").SessionSwitchAgentInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
114+ switchModel: (input: import("./api.js").SessionSwitchModelInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
115+ update: (input: import("./api.js").SessionUpdateInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
116+ move: (input: import("./api.js").SessionMoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
117+ prompt: (input: import("./api.js").SessionPromptInput) => Effect.Effect<import("@opencode/schema/session-inbox").User, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
118+ command: (input: import("./api.js").SessionCommandInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").CommandNotFoundError | import("@opencode/protocol/errors").CommandExecutionError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
119+ skill: (input: import("./api.js").SessionSkillInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").SkillNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
120+ synthetic: (input: import("./api.js").SessionSyntheticInput) => Effect.Effect<import("@opencode/schema/session-inbox").Synthetic, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
121+ shell: (input: import("./api.js").SessionShellInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
122+ compact: (input: import("./api.js").SessionCompactInput) => Effect.Effect<import("@opencode/schema/session-inbox").Compaction, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
123+ wait: (input: import("./api.js").SessionWaitInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
124 revert: {
125- stage: (input: import("./api.js").SessionRevertStageInput) => Effect.Effect<import("@opencode/schema/session-revert").Revert, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionBusyError | import("@opencode/protocol/errors").UnknownError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").MessageNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
126- clear: (input: import("./api.js").SessionRevertClearInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionBusyError | import("@opencode/protocol/errors").UnknownError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
127- commit: (input: import("./api.js").SessionRevertCommitInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionBusyError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
128+ stage: (input: import("./api.js").SessionRevertStageInput) => Effect.Effect<import("@opencode/schema/session-revert").Revert, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionBusyError | import("@opencode/protocol/errors").UnknownError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").MessageNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
129+ clear: (input: import("./api.js").SessionRevertClearInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionBusyError | import("@opencode/protocol/errors").UnknownError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
130+ commit: (input: import("./api.js").SessionRevertCommitInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionBusyError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
131 };
132- context: (input: import("./api.js").SessionContextInput) => Effect.Effect<import("./api.js").SessionContextOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").UnknownError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
133- diff: (input: import("./api.js").SessionDiffInput) => Effect.Effect<import("./api.js").SessionDiffOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").UnknownError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").MessageNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
134+ context: (input: import("./api.js").SessionContextInput) => Effect.Effect<import("./api.js").SessionContextOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").UnknownError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
135+ diff: (input: import("./api.js").SessionDiffInput) => Effect.Effect<import("./api.js").SessionDiffOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").UnknownError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").MessageNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
136 inbox: {
137- list: (input: import("./api.js").SessionInboxListInput) => Effect.Effect<import("./api.js").SessionInboxListOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
138- cancel: (input: import("./api.js").SessionInboxCancelInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
139- update: (input: import("./api.js").SessionInboxUpdateInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
140+ list: (input: import("./api.js").SessionInboxListInput) => Effect.Effect<import("./api.js").SessionInboxListOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
141+ cancel: (input: import("./api.js").SessionInboxCancelInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
142+ update: (input: import("./api.js").SessionInboxUpdateInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
143 };
144 instructions: {
145 entry: {
146- list: (input: import("./api.js").SessionInstructionsEntryListInput) => Effect.Effect<import("./api.js").SessionInstructionsEntryListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
147- put: (input: import("./api.js").SessionInstructionsEntryPutInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/schema/instruction-entry").ValueTooLargeError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
148- remove: (input: import("./api.js").SessionInstructionsEntryRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
149+ list: (input: import("./api.js").SessionInstructionsEntryListInput) => Effect.Effect<import("./api.js").SessionInstructionsEntryListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
150+ put: (input: import("./api.js").SessionInstructionsEntryPutInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/schema/instruction-entry").ValueTooLargeError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
151+ remove: (input: import("./api.js").SessionInstructionsEntryRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
152 };
153 };
154- generate: (input: import("./api.js").SessionGenerateInput) => Effect.Effect<import("./api.js").SessionGenerateOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
155- log: (input: import("./api.js").SessionLogInput) => Stream.Stream<import("./api.js").SessionLogOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError | import("effect/unstable/encoding/Sse").Retry | import("effect/unstable/encoding/Sse").SseError, never>;
156- interrupt: (input: import("./api.js").SessionInterruptInput) => Effect.Effect<import("./api.js").SessionInterruptOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
157- background: (input: import("./api.js").SessionBackgroundInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
158+ generate: (input: import("./api.js").SessionGenerateInput) => Effect.Effect<import("./api.js").SessionGenerateOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
159+ log: (input: import("./api.js").SessionLogInput) => Stream.Stream<import("./api.js").SessionLogOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError | import("effect/encoding/Sse").Retry | import("effect/encoding/Sse").SseError, never>;
160+ interrupt: (input: import("./api.js").SessionInterruptInput) => Effect.Effect<import("./api.js").SessionInterruptOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
161+ background: (input: import("./api.js").SessionBackgroundInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
162 message: {
163- get: (input: import("./api.js").SessionMessageGetInput) => Effect.Effect<import("@opencode/schema/session-message").Info, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").MessageNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
164+ get: (input: import("./api.js").SessionMessageGetInput) => Effect.Effect<import("@opencode/schema/session-message").Info, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").MessageNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
165 };
166 form: {
167- list: (input: import("./api.js").SessionFormListInput) => Effect.Effect<import("./api.js").SessionFormListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
168- create: (input: import("./api.js").SessionFormCreateInput) => Effect.Effect<import("@opencode/schema/form").Info, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
169- get: (input: import("./api.js").SessionFormGetInput) => Effect.Effect<import("@opencode/schema/form").Detail, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").FormNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
170- reply: (input: import("./api.js").SessionFormReplyInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").FormNotFoundError | import("@opencode/protocol/errors").FormAlreadySettledError | import("@opencode/protocol/errors").FormInvalidAnswerError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
171- cancel: (input: import("./api.js").SessionFormCancelInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").FormNotFoundError | import("@opencode/protocol/errors").FormAlreadySettledError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
172+ list: (input: import("./api.js").SessionFormListInput) => Effect.Effect<import("./api.js").SessionFormListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
173+ create: (input: import("./api.js").SessionFormCreateInput) => Effect.Effect<import("@opencode/schema/form").Info, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
174+ get: (input: import("./api.js").SessionFormGetInput) => Effect.Effect<import("@opencode/schema/form").Detail, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").FormNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
175+ reply: (input: import("./api.js").SessionFormReplyInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").FormNotFoundError | import("@opencode/protocol/errors").FormAlreadySettledError | import("@opencode/protocol/errors").FormInvalidAnswerError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
176+ cancel: (input: import("./api.js").SessionFormCancelInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").FormNotFoundError | import("@opencode/protocol/errors").FormAlreadySettledError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
177 };
178- environment: (input: import("./api.js").SessionEnvironmentInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
179- view: (input: import("./api.js").SessionViewInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
180+ environment: (input: import("./api.js").SessionEnvironmentInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
181+ view: (input: import("./api.js").SessionViewInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
182 };
183 message: {
184- list: (input: import("./api.js").MessageListInput) => Effect.Effect<import("./api.js").MessageListOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").UnknownError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").InvalidCursorError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
185+ list: (input: import("./api.js").MessageListInput) => Effect.Effect<import("./api.js").MessageListOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").UnknownError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").InvalidCursorError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
186 };
187 model: {
188- list: (input?: import("./api.js").ModelListInput) => Effect.Effect<import("./api.js").ModelListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
189- default: (input?: import("./api.js").ModelDefaultInput) => Effect.Effect<import("./api.js").ModelDefaultOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
190+ list: (input?: import("./api.js").ModelListInput) => Effect.Effect<import("./api.js").ModelListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
191+ default: (input?: import("./api.js").ModelDefaultInput) => Effect.Effect<import("./api.js").ModelDefaultOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
192 };
193 generate: {
194- text: (input: import("./api.js").GenerateTextInput) => Effect.Effect<import("./api.js").GenerateTextOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
195+ text: (input: import("./api.js").GenerateTextInput) => Effect.Effect<import("./api.js").GenerateTextOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
196 };
197 provider: {
198- list: (input?: import("./api.js").ProviderListInput) => Effect.Effect<import("./api.js").ProviderListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
199- get: (input: import("./api.js").ProviderGetInput) => Effect.Effect<import("./api.js").ProviderGetOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").ProviderNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
200+ list: (input?: import("./api.js").ProviderListInput) => Effect.Effect<import("./api.js").ProviderListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
201+ get: (input: import("./api.js").ProviderGetInput) => Effect.Effect<import("./api.js").ProviderGetOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").ProviderNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
202 };
203 integration: {
204- list: (input?: import("./api.js").IntegrationListInput) => Effect.Effect<import("./api.js").IntegrationListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
205- get: (input: import("./api.js").IntegrationGetInput) => Effect.Effect<import("./api.js").IntegrationGetOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").IntegrationNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
206+ list: (input?: import("./api.js").IntegrationListInput) => Effect.Effect<import("./api.js").IntegrationListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
207+ get: (input: import("./api.js").IntegrationGetInput) => Effect.Effect<import("./api.js").IntegrationGetOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").IntegrationNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
208 wellknown: {
209- add: (input: import("./api.js").IntegrationWellknownAddInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
210+ add: (input: import("./api.js").IntegrationWellknownAddInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
211 };
212 connect: {
213- key: (input: import("./api.js").IntegrationConnectKeyInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").IntegrationNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
214+ key: (input: import("./api.js").IntegrationConnectKeyInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").IntegrationNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
215 };
216 oauth: {
217- connect: (input: import("./api.js").IntegrationOauthConnectInput) => Effect.Effect<import("./api.js").IntegrationOauthConnectOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
218- status: (input: import("./api.js").IntegrationOauthStatusInput) => Effect.Effect<import("./api.js").IntegrationOauthStatusOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").IntegrationNotFoundError | import("@opencode/protocol/errors").IntegrationAttemptNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
219- complete: (input: import("./api.js").IntegrationOauthCompleteInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").IntegrationNotFoundError | import("@opencode/protocol/errors").IntegrationAttemptNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
220- cancel: (input: import("./api.js").IntegrationOauthCancelInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
221+ connect: (input: import("./api.js").IntegrationOauthConnectInput) => Effect.Effect<import("./api.js").IntegrationOauthConnectOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
222+ status: (input: import("./api.js").IntegrationOauthStatusInput) => Effect.Effect<import("./api.js").IntegrationOauthStatusOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").IntegrationNotFoundError | import("@opencode/protocol/errors").IntegrationAttemptNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
223+ complete: (input: import("./api.js").IntegrationOauthCompleteInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").IntegrationNotFoundError | import("@opencode/protocol/errors").IntegrationAttemptNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
224+ cancel: (input: import("./api.js").IntegrationOauthCancelInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
225 };
226 command: {
227- connect: (input: import("./api.js").IntegrationCommandConnectInput) => Effect.Effect<import("./api.js").IntegrationCommandConnectOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").IntegrationNotFoundError | import("@opencode/protocol/errors").IntegrationMethodNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
228- status: (input: import("./api.js").IntegrationCommandStatusInput) => Effect.Effect<import("./api.js").IntegrationCommandStatusOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").IntegrationNotFoundError | import("@opencode/protocol/errors").IntegrationAttemptNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
229- cancel: (input: import("./api.js").IntegrationCommandCancelInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
230+ connect: (input: import("./api.js").IntegrationCommandConnectInput) => Effect.Effect<import("./api.js").IntegrationCommandConnectOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").IntegrationNotFoundError | import("@opencode/protocol/errors").IntegrationMethodNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
231+ status: (input: import("./api.js").IntegrationCommandStatusInput) => Effect.Effect<import("./api.js").IntegrationCommandStatusOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").IntegrationNotFoundError | import("@opencode/protocol/errors").IntegrationAttemptNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
232+ cancel: (input: import("./api.js").IntegrationCommandCancelInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
233 };
234 };
235 mcp: {
236- list: (input?: import("./api.js").McpListInput) => Effect.Effect<import("./api.js").McpListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
237- add: (input: import("./api.js").McpAddInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
238- remove: (input: import("./api.js").McpRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").McpServerNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
239- connect: (input: import("./api.js").McpConnectInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").McpServerNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
240- disconnect: (input: import("./api.js").McpDisconnectInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").McpServerNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
241+ list: (input?: import("./api.js").McpListInput) => Effect.Effect<import("./api.js").McpListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
242+ add: (input: import("./api.js").McpAddInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
243+ remove: (input: import("./api.js").McpRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").McpServerNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
244+ connect: (input: import("./api.js").McpConnectInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").McpServerNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
245+ disconnect: (input: import("./api.js").McpDisconnectInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").McpServerNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
246 resource: {
247- catalog: (input?: import("./api.js").McpResourceCatalogInput) => Effect.Effect<import("./api.js").McpResourceCatalogOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
248+ catalog: (input?: import("./api.js").McpResourceCatalogInput) => Effect.Effect<import("./api.js").McpResourceCatalogOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
249 };
250 };
251 credential: {
252- list: () => Effect.Effect<import("./api.js").CredentialListOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
253- create: (input: import("./api.js").CredentialCreateInput) => Effect.Effect<import("@opencode/schema/credential").Entry, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
254- update: (input: import("./api.js").CredentialUpdateInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
255- activate: (input: import("./api.js").CredentialActivateInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
256- remove: (input: import("./api.js").CredentialRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
257+ list: () => Effect.Effect<import("./api.js").CredentialListOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
258+ create: (input: import("./api.js").CredentialCreateInput) => Effect.Effect<import("@opencode/schema/credential").Entry, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
259+ update: (input: import("./api.js").CredentialUpdateInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
260+ activate: (input: import("./api.js").CredentialActivateInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
261+ remove: (input: import("./api.js").CredentialRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
262 };
263 project: {
264- list: () => Effect.Effect<import("./api.js").ProjectListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
265- update: (input: import("./api.js").ProjectUpdateInput) => Effect.Effect<import("@opencode/schema/project").Info, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ProjectNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
266+ list: () => Effect.Effect<import("./api.js").ProjectListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
267+ update: (input: import("./api.js").ProjectUpdateInput) => Effect.Effect<import("@opencode/schema/project").Info, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ProjectNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
268 };
269 form: {
270- list: (input?: import("./api.js").FormListInput) => Effect.Effect<import("./api.js").FormListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
271+ list: (input?: import("./api.js").FormListInput) => Effect.Effect<import("./api.js").FormListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
272 };
273 permission: {
274 request: {
275- list: (input?: import("./api.js").PermissionRequestListInput) => Effect.Effect<import("./api.js").PermissionRequestListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
276+ list: (input?: import("./api.js").PermissionRequestListInput) => Effect.Effect<import("./api.js").PermissionRequestListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
277 };
278 saved: {
279- list: (input?: import("./api.js").PermissionSavedListInput) => Effect.Effect<import("./api.js").PermissionSavedListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
280- remove: (input: import("./api.js").PermissionSavedRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
281+ list: (input?: import("./api.js").PermissionSavedListInput) => Effect.Effect<import("./api.js").PermissionSavedListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
282+ remove: (input: import("./api.js").PermissionSavedRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
283 };
284- create: (input: import("./api.js").PermissionCreateInput) => Effect.Effect<import("./api.js").PermissionCreateOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
285- list: (input: import("./api.js").PermissionListInput) => Effect.Effect<import("./api.js").PermissionListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
286- get: (input: import("./api.js").PermissionGetInput) => Effect.Effect<import("@opencode/schema/permission").Request, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").PermissionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
287- reply: (input: import("./api.js").PermissionReplyInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").PermissionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
288+ create: (input: import("./api.js").PermissionCreateInput) => Effect.Effect<import("./api.js").PermissionCreateOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
289+ list: (input: import("./api.js").PermissionListInput) => Effect.Effect<import("./api.js").PermissionListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
290+ get: (input: import("./api.js").PermissionGetInput) => Effect.Effect<import("@opencode/schema/permission").Request, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").PermissionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
291+ reply: (input: import("./api.js").PermissionReplyInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").SessionNotFoundError | import("@opencode/protocol/errors").PermissionNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
292 };
293 file: {
294- list: (input?: import("./api.js").FileListInput) => Effect.Effect<import("./api.js").FileListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
295- find: (input: import("./api.js").FileFindInput) => Effect.Effect<import("./api.js").FileFindOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
296+ list: (input?: import("./api.js").FileListInput) => Effect.Effect<import("./api.js").FileListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
297+ find: (input: import("./api.js").FileFindInput) => Effect.Effect<import("./api.js").FileFindOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
298 };
299 command: {
300- list: (input?: import("./api.js").CommandListInput) => Effect.Effect<import("./api.js").CommandListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
301+ list: (input?: import("./api.js").CommandListInput) => Effect.Effect<import("./api.js").CommandListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
302 };
303 skill: {
304- list: (input?: import("./api.js").SkillListInput) => Effect.Effect<import("./api.js").SkillListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
305+ list: (input?: import("./api.js").SkillListInput) => Effect.Effect<import("./api.js").SkillListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
306 };
307 pty: {
308- list: (input?: import("./api.js").PtyListInput) => Effect.Effect<import("./api.js").PtyListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
309- create: (input?: import("./api.js").PtyCreateInput) => Effect.Effect<import("./api.js").PtyCreateOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
310- get: (input: import("./api.js").PtyGetInput) => Effect.Effect<import("./api.js").PtyGetOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
311- update: (input: import("./api.js").PtyUpdateInput) => Effect.Effect<import("./api.js").PtyUpdateOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
312- remove: (input: import("./api.js").PtyRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
313+ list: (input?: import("./api.js").PtyListInput) => Effect.Effect<import("./api.js").PtyListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
314+ create: (input?: import("./api.js").PtyCreateInput) => Effect.Effect<import("./api.js").PtyCreateOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
315+ get: (input: import("./api.js").PtyGetInput) => Effect.Effect<import("./api.js").PtyGetOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
316+ update: (input: import("./api.js").PtyUpdateInput) => Effect.Effect<import("./api.js").PtyUpdateOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
317+ remove: (input: import("./api.js").PtyRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
318 connect: {
319- token: (input: import("./api.js").PtyConnectTokenInput) => Effect.Effect<import("./api.js").PtyConnectTokenOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ForbiddenError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
320+ token: (input: import("./api.js").PtyConnectTokenInput) => Effect.Effect<import("./api.js").PtyConnectTokenOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ForbiddenError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
321 };
322 };
323 experimental: {
324 persistentPty: {
325- read: (input: import("./api.js").ExperimentalPersistentPtyReadInput) => Effect.Effect<import("./api.js").ExperimentalPersistentPtyReadOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
326- list: (input: import("./api.js").ExperimentalPersistentPtyListInput) => Effect.Effect<import("./api.js").ExperimentalPersistentPtyListOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
327- create: (input: import("./api.js").ExperimentalPersistentPtyCreateInput) => Effect.Effect<import("./api.js").ExperimentalPersistentPtyCreateOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
328- shutdown: () => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
329- handoff: () => Effect.Effect<import("./api.js").ExperimentalPersistentPtyHandoffOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
330- get: (input: import("./api.js").ExperimentalPersistentPtyGetInput) => Effect.Effect<import("./api.js").ExperimentalPersistentPtyGetOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
331- update: (input: import("./api.js").ExperimentalPersistentPtyUpdateInput) => Effect.Effect<import("./api.js").ExperimentalPersistentPtyUpdateOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
332- snapshot: (input: import("./api.js").ExperimentalPersistentPtySnapshotInput) => Effect.Effect<import("./api.js").ExperimentalPersistentPtySnapshotOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
333- remove: (input: import("./api.js").ExperimentalPersistentPtyRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
334- connectToken: (input: import("./api.js").ExperimentalPersistentPtyConnectTokenInput) => Effect.Effect<import("@opencode/schema/pty-ticket").ConnectToken, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").ForbiddenError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
335+ read: (input: import("./api.js").ExperimentalPersistentPtyReadInput) => Effect.Effect<import("./api.js").ExperimentalPersistentPtyReadOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
336+ list: (input: import("./api.js").ExperimentalPersistentPtyListInput) => Effect.Effect<import("./api.js").ExperimentalPersistentPtyListOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
337+ create: (input: import("./api.js").ExperimentalPersistentPtyCreateInput) => Effect.Effect<import("./api.js").ExperimentalPersistentPtyCreateOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
338+ shutdown: () => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
339+ handoff: () => Effect.Effect<import("./api.js").ExperimentalPersistentPtyHandoffOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
340+ get: (input: import("./api.js").ExperimentalPersistentPtyGetInput) => Effect.Effect<import("./api.js").ExperimentalPersistentPtyGetOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
341+ update: (input: import("./api.js").ExperimentalPersistentPtyUpdateInput) => Effect.Effect<import("./api.js").ExperimentalPersistentPtyUpdateOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
342+ snapshot: (input: import("./api.js").ExperimentalPersistentPtySnapshotInput) => Effect.Effect<import("./api.js").ExperimentalPersistentPtySnapshotOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
343+ remove: (input: import("./api.js").ExperimentalPersistentPtyRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
344+ connectToken: (input: import("./api.js").ExperimentalPersistentPtyConnectTokenInput) => Effect.Effect<import("@opencode/schema/pty-ticket").ConnectToken, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("@opencode/protocol/errors").ForbiddenError | import("@opencode/protocol/errors").PtyNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
345 };
346 };
347 shell: {
348- list: (input?: import("./api.js").ShellListInput) => Effect.Effect<import("./api.js").ShellListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
349- create: (input: import("./api.js").ShellCreateInput) => Effect.Effect<import("./api.js").ShellCreateOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
350- get: (input: import("./api.js").ShellGetInput) => Effect.Effect<import("./api.js").ShellGetOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ShellNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
351- output: (input: import("./api.js").ShellOutputInput) => Effect.Effect<import("./api.js").ShellOutputOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ShellNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
352- remove: (input: import("./api.js").ShellRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
353+ list: (input?: import("./api.js").ShellListInput) => Effect.Effect<import("./api.js").ShellListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
354+ create: (input: import("./api.js").ShellCreateInput) => Effect.Effect<import("./api.js").ShellCreateOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
355+ get: (input: import("./api.js").ShellGetInput) => Effect.Effect<import("./api.js").ShellGetOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ShellNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
356+ output: (input: import("./api.js").ShellOutputInput) => Effect.Effect<import("./api.js").ShellOutputOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ShellNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
357+ remove: (input: import("./api.js").ShellRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
358 };
359 reference: {
360- list: (input?: import("./api.js").ReferenceListInput) => Effect.Effect<import("./api.js").ReferenceListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
361+ list: (input?: import("./api.js").ReferenceListInput) => Effect.Effect<import("./api.js").ReferenceListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
362 };
363 worktree: {
364 list: (input: import("./api.js").WorktreeListInput) => Effect.Effect<readonly {
365 readonly directory: string & import("effect/Brand").Brand<"AbsolutePath">;
366 readonly strategy?: string | undefined;
367- }[], import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ProjectNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
368- create: (input: import("./api.js").WorktreeCreateInput) => Effect.Effect<import("@opencode/schema/worktree").Info, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ProjectNotFoundError | import("effect/Schema").SchemaError | import("@opencode/protocol/groups/worktree").WorktreeError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
369- remove: (input: import("./api.js").WorktreeRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ProjectNotFoundError | import("effect/Schema").SchemaError | import("@opencode/protocol/groups/worktree").WorktreeError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
370- refresh: (input: import("./api.js").WorktreeRefreshInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ProjectNotFoundError | import("effect/Schema").SchemaError | import("@opencode/protocol/groups/worktree").WorktreeError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
371+ }[], import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ProjectNotFoundError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
372+ create: (input: import("./api.js").WorktreeCreateInput) => Effect.Effect<import("@opencode/schema/worktree").Info, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ProjectNotFoundError | import("effect/Schema").SchemaError | import("@opencode/protocol/groups/worktree").WorktreeError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
373+ remove: (input: import("./api.js").WorktreeRemoveInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ProjectNotFoundError | import("effect/Schema").SchemaError | import("@opencode/protocol/groups/worktree").WorktreeError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
374+ refresh: (input: import("./api.js").WorktreeRefreshInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ProjectNotFoundError | import("effect/Schema").SchemaError | import("@opencode/protocol/groups/worktree").WorktreeError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
375 };
376 vcs: {
377- init: (input?: import("./api.js").VcsInitInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | import("@opencode/protocol/groups/vcs").VcsInitNotSupportedError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
378- get: (input?: import("./api.js").VcsGetInput) => Effect.Effect<import("./api.js").VcsGetOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
379- base: (input?: import("./api.js").VcsBaseInput) => Effect.Effect<import("./api.js").VcsBaseOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
380- status: (input?: import("./api.js").VcsStatusInput) => Effect.Effect<import("./api.js").VcsStatusOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
381+ init: (input?: import("./api.js").VcsInitInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ConflictError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | import("@opencode/protocol/groups/vcs").VcsInitNotSupportedError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
382+ get: (input?: import("./api.js").VcsGetInput) => Effect.Effect<import("./api.js").VcsGetOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
383+ base: (input?: import("./api.js").VcsBaseInput) => Effect.Effect<import("./api.js").VcsBaseOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
384+ status: (input?: import("./api.js").VcsStatusInput) => Effect.Effect<import("./api.js").VcsStatusOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
385 branch: {
386- list: (input?: import("./api.js").VcsBranchListInput) => Effect.Effect<import("./api.js").VcsBranchListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
387+ list: (input?: import("./api.js").VcsBranchListInput) => Effect.Effect<import("./api.js").VcsBranchListOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
388 };
389- diff: (input: import("./api.js").VcsDiffInput) => Effect.Effect<import("./api.js").VcsDiffOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
390+ diff: (input: import("./api.js").VcsDiffInput) => Effect.Effect<import("./api.js").VcsDiffOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
391 };
392 debug: {
393 location: {
394- list: () => Effect.Effect<import("./api.js").DebugLocationListOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
395- evict: (input?: import("./api.js").DebugLocationEvictInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
396+ list: () => Effect.Effect<import("./api.js").DebugLocationListOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
397+ evict: (input?: import("./api.js").DebugLocationEvictInput) => Effect.Effect<void, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
398 };
399 };
400 migration: {
401 v1: {
402- status: () => Effect.Effect<import("./api.js").MigrationV1StatusOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
403+ status: () => Effect.Effect<import("./api.js").MigrationV1StatusOutput, import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
404 };
405 };
406 websearch: {
407- providers: (input?: import("./api.js").WebsearchProvidersInput) => Effect.Effect<import("./api.js").WebsearchProvidersOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
408- query: (input: import("./api.js").WebsearchQueryInput) => Effect.Effect<import("./api.js").WebsearchQueryOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
409+ providers: (input?: import("./api.js").WebsearchProvidersInput) => Effect.Effect<import("./api.js").WebsearchProvidersOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
410+ query: (input: import("./api.js").WebsearchQueryInput) => Effect.Effect<import("./api.js").WebsearchQueryOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("@opencode/protocol/errors").ServiceUnavailableError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
411 };
412 config: {
413- get: (input?: import("./api.js").ConfigGetInput) => Effect.Effect<import("./api.js").ConfigGetOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
414- shells: () => Effect.Effect<import("./api.js").ConfigShellsOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
415- update: (input: import("./api.js").ConfigUpdateInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/unstable/http/HttpClientError").HttpClientError, never>;
416+ get: (input?: import("./api.js").ConfigGetInput) => Effect.Effect<import("./api.js").ConfigGetOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
417+ shells: () => Effect.Effect<import("./api.js").ConfigShellsOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
418+ update: (input: import("./api.js").ConfigUpdateInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | import("effect/Schema").SchemaError | ClientError | import("effect/http/HttpClientError").HttpClientError, never>;
419 };
420 }, never, HttpClient.HttpClient>;
421diff --git a/dist/effect/generated/client.d.ts b/dist/effect/generated/client.d.ts
422index 0261a21..278f3fb 100644
423--- a/dist/effect/generated/client.d.ts
424+++ b/dist/effect/generated/client.d.ts
425@@ -1,6 +1,6 @@
426 import { Effect, Stream, Schema } from "effect";
427-import { Sse } from "effect/unstable/encoding";
428-import { HttpClientError } from "effect/unstable/http";
429+import { Sse } from "effect/encoding";
430+import { HttpClientError } from "effect/http";
431 import type { ServerInfoOutput, ServerPairOutput, ServerConnectInput, ServerConnectOutput, LocationGetInput, AgentListInput, AgentListOutput, AgentGetInput, AgentGetOutput, PluginListInput, PluginListOutput, PluginCheckInput, PluginCheckOutput, PluginUpdateInput, SessionListInput, SessionListOutput, SessionStatsInput, SessionStatsOutput, SessionCreateInput, SessionImportInput, SessionExportInput, SessionExportOutput, SessionActiveOutput, SessionGetInput, SessionRemoveInput, SessionForkInput, SessionSwitchAgentInput, SessionSwitchModelInput, SessionUpdateInput, SessionMoveInput, SessionPromptInput, SessionCommandInput, SessionSkillInput, SessionSyntheticInput, SessionShellInput, SessionCompactInput, SessionWaitInput, SessionRevertStageInput, SessionRevertClearInput, SessionRevertCommitInput, SessionContextInput, SessionContextOutput, SessionDiffInput, SessionDiffOutput, SessionInboxListInput, SessionInboxListOutput, SessionInboxCancelInput, SessionInboxUpdateInput, SessionInstructionsEntryListInput, SessionInstructionsEntryListOutput, SessionInstructionsEntryPutInput, SessionInstructionsEntryRemoveInput, SessionGenerateInput, SessionGenerateOutput, SessionLogInput, SessionLogOutput, SessionInterruptInput, SessionInterruptOutput, SessionBackgroundInput, SessionMessageGetInput, SessionFormListInput, SessionFormListOutput, SessionFormCreateInput, SessionFormGetInput, SessionFormReplyInput, SessionFormCancelInput, SessionEnvironmentInput, SessionViewInput, MessageListInput, MessageListOutput, ModelListInput, ModelListOutput, ModelDefaultInput, ModelDefaultOutput, GenerateTextInput, GenerateTextOutput, ProviderListInput, ProviderListOutput, ProviderGetInput, ProviderGetOutput, IntegrationListInput, IntegrationListOutput, IntegrationGetInput, IntegrationGetOutput, IntegrationWellknownAddInput, IntegrationConnectKeyInput, IntegrationOauthConnectInput, IntegrationOauthConnectOutput, IntegrationOauthStatusInput, IntegrationOauthStatusOutput, IntegrationOauthCompleteInput, IntegrationOauthCancelInput, IntegrationCommandConnectInput, IntegrationCommandConnectOutput, IntegrationCommandStatusInput, IntegrationCommandStatusOutput, IntegrationCommandCancelInput, McpListInput, McpListOutput, McpAddInput, McpRemoveInput, McpConnectInput, McpDisconnectInput, McpResourceCatalogInput, McpResourceCatalogOutput, CredentialListOutput, CredentialCreateInput, CredentialUpdateInput, CredentialActivateInput, CredentialRemoveInput, ProjectListOutput, ProjectUpdateInput, FormListInput, FormListOutput, PermissionRequestListInput, PermissionRequestListOutput, PermissionSavedListInput, PermissionSavedListOutput, PermissionSavedRemoveInput, PermissionCreateInput, PermissionCreateOutput, PermissionListInput, PermissionListOutput, PermissionGetInput, PermissionReplyInput, FileListInput, FileListOutput, FileFindInput, FileFindOutput, CommandListInput, CommandListOutput, SkillListInput, SkillListOutput, RpcCallInput, RpcCallOutput, PtyListInput, PtyListOutput, PtyCreateInput, PtyCreateOutput, PtyGetInput, PtyGetOutput, PtyUpdateInput, PtyUpdateOutput, PtyRemoveInput, PtyConnectTokenInput, PtyConnectTokenOutput, ExperimentalPersistentPtyReadInput, ExperimentalPersistentPtyReadOutput, ExperimentalPersistentPtyListInput, ExperimentalPersistentPtyListOutput, ExperimentalPersistentPtyCreateInput, ExperimentalPersistentPtyCreateOutput, ExperimentalPersistentPtyHandoffOutput, ExperimentalPersistentPtyGetInput, ExperimentalPersistentPtyGetOutput, ExperimentalPersistentPtyUpdateInput, ExperimentalPersistentPtyUpdateOutput, ExperimentalPersistentPtySnapshotInput, ExperimentalPersistentPtySnapshotOutput, ExperimentalPersistentPtyRemoveInput, ExperimentalPersistentPtyConnectTokenInput, ShellListInput, ShellListOutput, ShellCreateInput, ShellCreateOutput, ShellGetInput, ShellGetOutput, ShellOutputInput, ShellOutputOutput, ShellRemoveInput, ReferenceListInput, ReferenceListOutput, WorktreeListInput, WorktreeCreateInput, WorktreeRemoveInput, WorktreeRefreshInput, VcsInitInput, VcsGetInput, VcsGetOutput, VcsBaseInput, VcsBaseOutput, VcsStatusInput, VcsStatusOutput, VcsBranchListInput, VcsBranchListOutput, VcsDiffInput, VcsDiffOutput, DebugLocationListOutput, DebugLocationEvictInput, MigrationV1StatusOutput, WebsearchProvidersInput, WebsearchProvidersOutput, WebsearchQueryInput, WebsearchQueryOutput, ConfigGetInput, ConfigGetOutput, ConfigShellsOutput, ConfigUpdateInput } from "../api/api.js";
432 import { ClientError } from "./client-error.js";
433 export declare const make: (options?: {
434@@ -2524,4 +2524,4 @@ export declare const make: (options?: {
435 shells: () => Effect.Effect<ConfigShellsOutput, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | Schema.SchemaError | ClientError | HttpClientError.HttpClientError, never>;
436 update: (input: ConfigUpdateInput) => Effect.Effect<void, import("@opencode/protocol/errors").LocationNotFoundError | import("@opencode/protocol/errors").InvalidRequestError | import("@opencode/protocol/errors").UnauthorizedError | Schema.SchemaError | ClientError | HttpClientError.HttpClientError, never>;
437 };
438-}, never, import("effect/unstable/http/HttpClient").HttpClient>;
439+}, never, import("effect/http/HttpClient").HttpClient>;
patches/@opencode__protocol@2.0.23.patch created+844
......@@ -0,0 +1,844 @@
1diff --git a/dist/api.d.ts b/dist/api.d.ts
2index 68fe350..7c8f3f5 100644
3--- a/dist/api.d.ts
4+++ b/dist/api.d.ts
5@@ -1,5 +1,5 @@
6 import { Context } from "effect";
7-import { HttpApi, HttpApiGroup, HttpApiMiddleware } from "effect/unstable/httpapi";
8+import { HttpApi, HttpApiGroup, HttpApiMiddleware } from "effect/http-api";
9 import { SchemaErrorMiddleware } from "./middleware/schema-error.js";
10 import { GenerateGroup } from "./groups/generate.js";
11 import { MessageGroup } from "./groups/message.js";
12diff --git a/dist/api.js b/dist/api.js
13index c68e3ea..0ed6447 100644
14--- a/dist/api.js
15+++ b/dist/api.js
16@@ -1,5 +1,5 @@
17 import { Context } from "effect";
18-import { HttpApi, HttpApiGroup, HttpApiMiddleware, OpenApi } from "effect/unstable/httpapi";
19+import { HttpApi, HttpApiGroup, HttpApiMiddleware, OpenApi } from "effect/http-api";
20 import { SchemaErrorMiddleware } from "./middleware/schema-error.js";
21 import { GenerateGroup } from "./groups/generate.js";
22 import { MessageGroup } from "./groups/message.js";
23diff --git a/dist/client.d.ts b/dist/client.d.ts
24index 8a7bdec..d1fc694 100644
25--- a/dist/client.d.ts
26+++ b/dist/client.d.ts
27@@ -1,7 +1,7 @@
28 import { LocationNotFoundError, InvalidRequestError, SessionNotFoundError } from "./errors.js";
29 import type { Api } from "./api.js";
30 import type { Context } from "effect";
31-import { HttpApiMiddleware } from "effect/unstable/httpapi";
32+import { HttpApiMiddleware } from "effect/http-api";
33 import type { EventGroup } from "./groups/event.js";
34 declare const LocationMiddleware_base: HttpApiMiddleware.ServiceClass<LocationMiddleware, "@opencode/client/LocationMiddleware", {
35 requires: never;
36diff --git a/dist/client.js b/dist/client.js
37index bb2249f..a7f7aa9 100644
38--- a/dist/client.js
39+++ b/dist/client.js
40@@ -1,6 +1,6 @@
41 import { LocationNotFoundError, InvalidRequestError, SessionNotFoundError } from "./errors.js";
42 import { makeDefaultApi } from "./api.js";
43-import { HttpApiMiddleware } from "effect/unstable/httpapi";
44+import { HttpApiMiddleware } from "effect/http-api";
45 class LocationMiddleware extends HttpApiMiddleware.Service()("@opencode/client/LocationMiddleware", { error: [LocationNotFoundError] }) {
46 }
47 class SessionLocationMiddleware extends HttpApiMiddleware.Service()("@opencode/client/SessionLocationMiddleware", { error: [InvalidRequestError, SessionNotFoundError, LocationNotFoundError] }) {
48diff --git a/dist/groups/agent.d.ts b/dist/groups/agent.d.ts
49index ef9632e..57ba96c 100644
50--- a/dist/groups/agent.d.ts
51+++ b/dist/groups/agent.d.ts
52@@ -1,6 +1,6 @@
53 import { Agent } from "@opencode/schema/agent";
54 import { Schema } from "effect";
55-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
56+import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
57 import { AgentNotFoundError } from "../errors.js";
58 export declare const AgentGroup: HttpApiGroup.HttpApiGroup<"server.agent", HttpApiEndpoint.HttpApiEndpoint<"agent.list", "GET", "/api/agent", never, Schema.toCodecStringTree<Schema.Struct<{
59 readonly location: Schema.optional<Schema.Struct<{
60diff --git a/dist/groups/agent.js b/dist/groups/agent.js
61index 130bcc5..edcebfc 100644
62--- a/dist/groups/agent.js
63+++ b/dist/groups/agent.js
64@@ -1,7 +1,7 @@
65 import { Agent } from "@opencode/schema/agent";
66 import { Location } from "@opencode/schema/location";
67 import { Schema } from "effect";
68-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
69+import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api";
70 import { LocationQuery, locationQueryOpenApi } from "./location.js";
71 import { AgentNotFoundError } from "../errors.js";
72 export const AgentGroup = HttpApiGroup.make("server.agent")
73diff --git a/dist/groups/command.d.ts b/dist/groups/command.d.ts
74index b24f481..373b95c 100644
75--- a/dist/groups/command.d.ts
76+++ b/dist/groups/command.d.ts
77@@ -1,5 +1,5 @@
78 import { Schema } from "effect";
79-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
80+import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
81 export declare const CommandGroup: HttpApiGroup.HttpApiGroup<"server.command", HttpApiEndpoint.HttpApiEndpoint<"command.list", "GET", "/api/command", never, Schema.toCodecStringTree<Schema.Struct<{
82 readonly location: Schema.optional<Schema.Struct<{
83 readonly directory: Schema.optional<Schema.String>;
84diff --git a/dist/groups/command.js b/dist/groups/command.js
85index cd89b47..341eb23 100644
86--- a/dist/groups/command.js
87+++ b/dist/groups/command.js
88@@ -1,7 +1,7 @@
89 import { Command } from "@opencode/schema/command";
90 import { Location } from "@opencode/schema/location";
91 import { Schema } from "effect";
92-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
93+import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api";
94 import { LocationQuery, locationQueryOpenApi } from "./location.js";
95 export const CommandGroup = HttpApiGroup.make("server.command")
96 .add(HttpApiEndpoint.get("command.list", "/api/command", {
97diff --git a/dist/groups/config.d.ts b/dist/groups/config.d.ts
98index 31f1042..0432fc2 100644
99--- a/dist/groups/config.d.ts
100+++ b/dist/groups/config.d.ts
101@@ -1,6 +1,6 @@
102 import { Config } from "@opencode/schema/config";
103 import { Schema } from "effect";
104-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi";
105+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api";
106 export declare const ConfigGroup: HttpApiGroup.HttpApiGroup<"server.config", HttpApiEndpoint.HttpApiEndpoint<"config.get", "GET", "/api/config", never, Schema.toCodecStringTree<Schema.Struct<{
107 readonly location: Schema.optional<Schema.Struct<{
108 readonly directory: Schema.optional<Schema.String>;
109diff --git a/dist/groups/config.js b/dist/groups/config.js
110index 228002a..14748f6 100644
111--- a/dist/groups/config.js
112+++ b/dist/groups/config.js
113@@ -1,7 +1,7 @@
114 import { Config } from "@opencode/schema/config";
115 import { ConfigShell } from "@opencode/schema/config/shell";
116 import { Schema } from "effect";
117-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
118+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api";
119 import { LocationQuery, locationQueryOpenApi } from "./location.js";
120 export const ConfigGroup = HttpApiGroup.make("server.config")
121 .add(HttpApiEndpoint.get("config.get", "/api/config", {
122diff --git a/dist/groups/credential.d.ts b/dist/groups/credential.d.ts
123index 12de0a3..a4c616e 100644
124--- a/dist/groups/credential.d.ts
125+++ b/dist/groups/credential.d.ts
126@@ -1,5 +1,5 @@
127 import { Schema } from "effect";
128-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi";
129+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api";
130 import { ConflictError } from "../errors.js";
131 export declare const CredentialGroup: HttpApiGroup.HttpApiGroup<"server.credential", HttpApiEndpoint.HttpApiEndpoint<"credential.list", "GET", "/api/credential", never, never, never, never, Schema.toCodecJson<Schema.Struct<{
132 readonly data: Schema.$Array<Schema.Struct<{
133diff --git a/dist/groups/credential.js b/dist/groups/credential.js
134index bbdf76c..8e8ce95 100644
135--- a/dist/groups/credential.js
136+++ b/dist/groups/credential.js
137@@ -1,6 +1,6 @@
138 import { Credential } from "@opencode/schema/credential";
139 import { Schema } from "effect";
140-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
141+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api";
142 import { ConflictError } from "../errors.js";
143 export const CredentialGroup = HttpApiGroup.make("server.credential")
144 .add(HttpApiEndpoint.get("credential.list", "/api/credential", {
145diff --git a/dist/groups/debug.d.ts b/dist/groups/debug.d.ts
146index accad9f..5a74541 100644
147--- a/dist/groups/debug.d.ts
148+++ b/dist/groups/debug.d.ts
149@@ -1,5 +1,5 @@
150 import { Schema } from "effect";
151-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi";
152+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api";
153 export declare const DebugGroup: HttpApiGroup.HttpApiGroup<"server.debug", HttpApiEndpoint.HttpApiEndpoint<"debug.location", "GET", "/api/debug/location", never, never, never, never, Schema.toCodecJson<Schema.$Array<Schema.Struct<{
154 readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
155 }>>>, never, never, never> | HttpApiEndpoint.HttpApiEndpoint<"debug.location.evict", "DELETE", "/api/debug/location", never, Schema.toCodecStringTree<Schema.Struct<{
156diff --git a/dist/groups/debug.js b/dist/groups/debug.js
157index 8062413..9721272 100644
158--- a/dist/groups/debug.js
159+++ b/dist/groups/debug.js
160@@ -1,6 +1,6 @@
161 import { Location } from "@opencode/schema/location";
162 import { Schema } from "effect";
163-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
164+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api";
165 import { LocationQuery, locationQueryOpenApi } from "./location.js";
166 export const DebugGroup = HttpApiGroup.make("server.debug")
167 .add(HttpApiEndpoint.get("debug.location", "/api/debug/location", {
168diff --git a/dist/groups/event.d.ts b/dist/groups/event.d.ts
169index 3275a63..7ddc811 100644
170--- a/dist/groups/event.d.ts
171+++ b/dist/groups/event.d.ts
172@@ -1,7 +1,7 @@
173 import { Event } from "@opencode/schema/event";
174 import type { Definition } from "@opencode/schema/event";
175 import { Schema } from "effect";
176-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi";
177+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api";
178 export declare const makeEventGroup: <const Definitions extends ReadonlyArray<Definition>>(definitions: Definitions) => HttpApiGroup.HttpApiGroup<"server.event", HttpApiEndpoint.HttpApiEndpoint<"event.subscribe", "GET", "/api/event", never, never, never, never, HttpApiSchema.StreamSse<HttpApiSchema.SseEventFromData<Schema.Union<readonly [...Definitions, Schema.Struct<{
179 readonly id: Schema.brand<Schema.String, "Event.ID"> & {
180 create: () => string & import("effect/Brand").Brand<"Event.ID">;
181diff --git a/dist/groups/event.js b/dist/groups/event.js
182index 7d086fe..667e078 100644
183--- a/dist/groups/event.js
184+++ b/dist/groups/event.js
185@@ -2,7 +2,7 @@ import { Event } from "@opencode/schema/event";
186 import { EventManifest } from "@opencode/schema/event-manifest";
187 import { Location } from "@opencode/schema/location";
188 import { Schema } from "effect";
189-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
190+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api";
191 const fields = {
192 id: Event.ID,
193 metadata: Schema.optional(Schema.Record(Schema.String, Schema.Unknown)),
194diff --git a/dist/groups/form.d.ts b/dist/groups/form.d.ts
195index ef9289e..efff3f0 100644
196--- a/dist/groups/form.d.ts
197+++ b/dist/groups/form.d.ts
198@@ -1,5 +1,5 @@
199 import { Context, Schema } from "effect";
200-import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware } from "effect/unstable/httpapi";
201+import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware } from "effect/http-api";
202 export declare const makeFormGroup: <LocationId extends HttpApiMiddleware.AnyId, LocationService>(locationMiddleware: Context.Key<LocationId, LocationService>) => HttpApiGroup.HttpApiGroup<"server.form", HttpApiEndpoint.HttpApiEndpoint<"form.list", "GET", "/api/form", never, Schema.toCodecStringTree<Schema.Struct<{
203 readonly location: Schema.optional<Schema.Struct<{
204 readonly directory: Schema.optional<Schema.String>;
205diff --git a/dist/groups/form.js b/dist/groups/form.js
206index 7b97820..d68d534 100644
207--- a/dist/groups/form.js
208+++ b/dist/groups/form.js
209@@ -1,7 +1,7 @@
210 import { Form } from "@opencode/schema/form";
211 import { Location } from "@opencode/schema/location";
212 import { Context, Schema } from "effect";
213-import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, OpenApi } from "effect/unstable/httpapi";
214+import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, OpenApi } from "effect/http-api";
215 import { LocationQuery, locationQueryOpenApi } from "./location.js";
216 export const makeFormGroup = (locationMiddleware) => HttpApiGroup.make("server.form")
217 .add(HttpApiEndpoint.get("form.list", "/api/form", {
218diff --git a/dist/groups/fs.d.ts b/dist/groups/fs.d.ts
219index c8294ac..af3ac60 100644
220--- a/dist/groups/fs.d.ts
221+++ b/dist/groups/fs.d.ts
222@@ -1,5 +1,5 @@
223 import { Schema } from "effect";
224-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
225+import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
226 import { FileNotFoundError } from "../errors.js";
227 export declare const FileSystemGroup: HttpApiGroup.HttpApiGroup<"server.fs", HttpApiEndpoint.HttpApiEndpoint<"fs.read", "GET", "/api/fs/read/*", never, Schema.toCodecStringTree<Schema.Struct<{
228 readonly location: Schema.optional<Schema.Struct<{
229diff --git a/dist/groups/fs.js b/dist/groups/fs.js
230index 313dbeb..68ff2ef 100644
231--- a/dist/groups/fs.js
232+++ b/dist/groups/fs.js
233@@ -2,7 +2,7 @@ import { FileSystem } from "@opencode/schema/filesystem";
234 import { Location } from "@opencode/schema/location";
235 import { PositiveInt } from "@opencode/schema/schema";
236 import { Schema } from "effect";
237-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
238+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api";
239 import { FileNotFoundError } from "../errors.js";
240 import { LocationQuery, locationQueryOpenApi } from "./location.js";
241 const ListQuery = Schema.Struct({
242diff --git a/dist/groups/generate.d.ts b/dist/groups/generate.d.ts
243index aa50f1b..182cd36 100644
244--- a/dist/groups/generate.d.ts
245+++ b/dist/groups/generate.d.ts
246@@ -1,5 +1,5 @@
247 import { Schema } from "effect";
248-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
249+import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
250 import { LocationNotFoundError, InvalidRequestError, ServiceUnavailableError } from "../errors.js";
251 export declare const GenerateGroup: HttpApiGroup.HttpApiGroup<"server.generate", HttpApiEndpoint.HttpApiEndpoint<"generate.text", "POST", "/api/experimental/generate", never, never, Schema.toCodecJson<Schema.Struct<{
252 readonly prompt: Schema.String;
253diff --git a/dist/groups/generate.js b/dist/groups/generate.js
254index 4faaee7..f7f5a57 100644
255--- a/dist/groups/generate.js
256+++ b/dist/groups/generate.js
257@@ -1,6 +1,6 @@
258 import { Model } from "@opencode/schema/model";
259 import { Schema } from "effect";
260-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
261+import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api";
262 import { LocationNotFoundError, InvalidRequestError, ServiceUnavailableError } from "../errors.js";
263 export const GenerateGroup = HttpApiGroup.make("server.generate")
264 .add(HttpApiEndpoint.post("generate.text", "/api/experimental/generate", {
265diff --git a/dist/groups/integration.d.ts b/dist/groups/integration.d.ts
266index e7b4bf8..d3b5d1f 100644
267--- a/dist/groups/integration.d.ts
268+++ b/dist/groups/integration.d.ts
269@@ -1,6 +1,6 @@
270 import { Integration } from "@opencode/schema/integration";
271 import { Schema } from "effect";
272-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi";
273+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api";
274 import { IntegrationAttemptNotFoundError, IntegrationMethodNotFoundError, IntegrationNotFoundError, InvalidRequestError } from "../errors.js";
275 export declare const IntegrationGroup: HttpApiGroup.HttpApiGroup<"server.integration", HttpApiEndpoint.HttpApiEndpoint<"integration.list", "GET", "/api/integration", never, Schema.toCodecStringTree<Schema.Struct<{
276 readonly location: Schema.optional<Schema.Struct<{
277diff --git a/dist/groups/integration.js b/dist/groups/integration.js
278index 6ca6f55..27b3792 100644
279--- a/dist/groups/integration.js
280+++ b/dist/groups/integration.js
281@@ -2,7 +2,7 @@ import { Integration } from "@opencode/schema/integration";
282 import { Location } from "@opencode/schema/location";
283 import { Form } from "@opencode/schema/form";
284 import { Schema } from "effect";
285-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
286+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api";
287 import { IntegrationAttemptNotFoundError, IntegrationMethodNotFoundError, IntegrationNotFoundError, InvalidRequestError, } from "../errors.js";
288 import { LocationQuery, locationQueryOpenApi } from "./location.js";
289 export const IntegrationGroup = HttpApiGroup.make("server.integration")
290diff --git a/dist/groups/location.d.ts b/dist/groups/location.d.ts
291index 5f3ef6b..96cdcd3 100644
292--- a/dist/groups/location.d.ts
293+++ b/dist/groups/location.d.ts
294@@ -1,5 +1,5 @@
295 import { Context, Schema } from "effect";
296-import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema } from "effect/unstable/httpapi";
297+import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema } from "effect/http-api";
298 import { ServiceUnavailableError } from "../errors.js";
299 export declare const LocationQuery: Schema.Struct<{
300 readonly location: Schema.optional<Schema.Struct<{
301diff --git a/dist/groups/location.js b/dist/groups/location.js
302index 7fa63bf..10f4969 100644
303--- a/dist/groups/location.js
304+++ b/dist/groups/location.js
305@@ -1,6 +1,6 @@
306 import { Location } from "@opencode/schema/location";
307 import { Context, Schema } from "effect";
308-import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
309+import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema, OpenApi } from "effect/http-api";
310 import { ServiceUnavailableError } from "../errors.js";
311 export const LocationQuery = Schema.Struct({
312 location: Schema.optional(Schema.Struct({
313diff --git a/dist/groups/mcp.d.ts b/dist/groups/mcp.d.ts
314index fc661e0..8c7dbe8 100644
315--- a/dist/groups/mcp.d.ts
316+++ b/dist/groups/mcp.d.ts
317@@ -1,6 +1,6 @@
318 import { Mcp } from "@opencode/schema/mcp";
319 import { Schema } from "effect";
320-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi";
321+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api";
322 import { McpServerNotFoundError } from "../errors.js";
323 export declare const McpGroup: HttpApiGroup.HttpApiGroup<"server.mcp", HttpApiEndpoint.HttpApiEndpoint<"mcp.list", "GET", "/api/mcp", never, Schema.toCodecStringTree<Schema.Struct<{
324 readonly location: Schema.optional<Schema.Struct<{
325diff --git a/dist/groups/mcp.js b/dist/groups/mcp.js
326index 60fdde9..658d875 100644
327--- a/dist/groups/mcp.js
328+++ b/dist/groups/mcp.js
329@@ -1,7 +1,7 @@
330 import { Mcp } from "@opencode/schema/mcp";
331 import { Location } from "@opencode/schema/location";
332 import { Schema } from "effect";
333-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
334+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api";
335 import { McpServerNotFoundError } from "../errors.js";
336 import { LocationQuery, locationQueryOpenApi } from "./location.js";
337 export const McpGroup = HttpApiGroup.make("server.mcp")
338diff --git a/dist/groups/message.d.ts b/dist/groups/message.d.ts
339index c9d470d..a50943a 100644
340--- a/dist/groups/message.d.ts
341+++ b/dist/groups/message.d.ts
342@@ -1,5 +1,5 @@
343 import { Schema } from "effect";
344-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
345+import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
346 import { InvalidCursorError, SessionNotFoundError, UnknownError } from "../errors.js";
347 export declare const SessionMessagesQuery: Schema.Struct<{
348 readonly limit: Schema.optional<Schema.NumberFromString>;
349diff --git a/dist/groups/message.js b/dist/groups/message.js
350index 135878a..9c546b0 100644
351--- a/dist/groups/message.js
352+++ b/dist/groups/message.js
353@@ -2,7 +2,7 @@ import { Session } from "@opencode/schema/session";
354 import { SessionMessage } from "@opencode/schema/session-message";
355 import { Location } from "@opencode/schema/location";
356 import { Schema, Struct } from "effect";
357-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
358+import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api";
359 import { InvalidCursorError, SessionNotFoundError, UnknownError } from "../errors.js";
360 export const SessionMessagesQuery = Schema.Struct({
361 limit: Schema.optional(Schema.NumberFromString.check(Schema.isInt(), Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(200))).annotate({
362diff --git a/dist/groups/migration.d.ts b/dist/groups/migration.d.ts
363index 627b223..4a9323d 100644
364--- a/dist/groups/migration.d.ts
365+++ b/dist/groups/migration.d.ts
366@@ -1,5 +1,5 @@
367 import { Schema } from "effect";
368-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
369+import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
370 export declare const V1MigrationStatus: Schema.Union<readonly [Schema.Struct<{
371 readonly status: Schema.Literals<readonly ["required", "completed"]>;
372 }>, Schema.Struct<{
373diff --git a/dist/groups/migration.js b/dist/groups/migration.js
374index 20cf324..ef048e9 100644
375--- a/dist/groups/migration.js
376+++ b/dist/groups/migration.js
377@@ -1,5 +1,5 @@
378 import { Schema } from "effect";
379-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
380+import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api";
381 const V1MigrationProgress = Schema.Struct({
382 label: Schema.String,
383 numerator: Schema.optional(Schema.Int.check(Schema.isGreaterThanOrEqualTo(0))),
384diff --git a/dist/groups/model.d.ts b/dist/groups/model.d.ts
385index 8bb1daa..787fe05 100644
386--- a/dist/groups/model.d.ts
387+++ b/dist/groups/model.d.ts
388@@ -1,6 +1,6 @@
389 import { Model } from "@opencode/schema/model";
390 import { Schema } from "effect";
391-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
392+import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
393 import { ServiceUnavailableError } from "../errors.js";
394 export declare const ModelGroup: HttpApiGroup.HttpApiGroup<"server.model", HttpApiEndpoint.HttpApiEndpoint<"model.list", "GET", "/api/model", never, Schema.toCodecStringTree<Schema.Struct<{
395 readonly location: Schema.optional<Schema.Struct<{
396diff --git a/dist/groups/model.js b/dist/groups/model.js
397index 47d96e7..3d89ba9 100644
398--- a/dist/groups/model.js
399+++ b/dist/groups/model.js
400@@ -1,7 +1,7 @@
401 import { Model } from "@opencode/schema/model";
402 import { Location } from "@opencode/schema/location";
403 import { Schema } from "effect";
404-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
405+import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api";
406 import { ServiceUnavailableError } from "../errors.js";
407 import { LocationQuery, locationQueryOpenApi } from "./location.js";
408 export const ModelGroup = HttpApiGroup.make("server.model")
409diff --git a/dist/groups/permission.d.ts b/dist/groups/permission.d.ts
410index 767b088..a881422 100644
411--- a/dist/groups/permission.d.ts
412+++ b/dist/groups/permission.d.ts
413@@ -1,5 +1,5 @@
414 import { Context, Schema } from "effect";
415-import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema } from "effect/unstable/httpapi";
416+import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema } from "effect/http-api";
417 import { LocationNotFoundError, PermissionNotFoundError, SessionNotFoundError } from "../errors.js";
418 export declare const makePermissionGroup: <LocationId extends HttpApiMiddleware.AnyId, LocationService, SessionLocationId extends HttpApiMiddleware.AnyId, SessionLocationService>(locationMiddleware: Context.Key<LocationId, LocationService>, sessionLocationMiddleware: Context.Key<SessionLocationId, SessionLocationService>) => HttpApiGroup.HttpApiGroup<"server.permission", HttpApiEndpoint.HttpApiEndpoint<"permission.request.list", "GET", "/api/permission/request", never, Schema.toCodecStringTree<Schema.Struct<{
419 readonly location: Schema.optional<Schema.Struct<{
420diff --git a/dist/groups/permission.js b/dist/groups/permission.js
421index 9ab7bf8..b8bba46 100644
422--- a/dist/groups/permission.js
423+++ b/dist/groups/permission.js
424@@ -5,7 +5,7 @@ import { PermissionSaved } from "@opencode/schema/permission-saved";
425 import { Project } from "@opencode/schema/project";
426 import { Session } from "@opencode/schema/session";
427 import { Context, Schema } from "effect";
428-import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
429+import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema, OpenApi } from "effect/http-api";
430 import { LocationNotFoundError, PermissionNotFoundError, SessionNotFoundError } from "../errors.js";
431 import { LocationQuery, locationQueryOpenApi } from "./location.js";
432 export const makePermissionGroup = (locationMiddleware, sessionLocationMiddleware) => HttpApiGroup.make("server.permission")
433diff --git a/dist/groups/persistent-pty.d.ts b/dist/groups/persistent-pty.d.ts
434index efb7472..b6b786b 100644
435--- a/dist/groups/persistent-pty.d.ts
436+++ b/dist/groups/persistent-pty.d.ts
437@@ -1,5 +1,5 @@
438 import { Schema } from "effect";
439-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi";
440+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api";
441 import { ForbiddenError, InvalidRequestError, PtyNotFoundError, ServiceUnavailableError } from "../errors.js";
442 import { PTY_CONNECT_TICKET_QUERY, PTY_CONNECT_TOKEN_HEADER, PTY_CONNECT_TOKEN_HEADER_VALUE } from "./pty.js";
443 export { PTY_CONNECT_TICKET_QUERY, PTY_CONNECT_TOKEN_HEADER, PTY_CONNECT_TOKEN_HEADER_VALUE };
444diff --git a/dist/groups/persistent-pty.js b/dist/groups/persistent-pty.js
445index 85ad02f..b64c896 100644
446--- a/dist/groups/persistent-pty.js
447+++ b/dist/groups/persistent-pty.js
448@@ -3,7 +3,7 @@ import { Pty } from "@opencode/schema/pty";
449 import { PtyTicket } from "@opencode/schema/pty-ticket";
450 import { Session } from "@opencode/schema/session";
451 import { Schema } from "effect";
452-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
453+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api";
454 import { ForbiddenError, InvalidRequestError, PtyNotFoundError, ServiceUnavailableError } from "../errors.js";
455 import { PTY_CONNECT_TICKET_QUERY, PTY_CONNECT_TOKEN_HEADER, PTY_CONNECT_TOKEN_HEADER_VALUE } from "./pty.js";
456 export { PTY_CONNECT_TICKET_QUERY, PTY_CONNECT_TOKEN_HEADER, PTY_CONNECT_TOKEN_HEADER_VALUE };
457diff --git a/dist/groups/plugin.d.ts b/dist/groups/plugin.d.ts
458index 30d0f78..8bd4ecd 100644
459--- a/dist/groups/plugin.d.ts
460+++ b/dist/groups/plugin.d.ts
461@@ -1,5 +1,5 @@
462 import { Schema } from "effect";
463-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi";
464+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api";
465 import { InvalidRequestError, ServiceUnavailableError } from "../errors.js";
466 export declare const PluginGroup: HttpApiGroup.HttpApiGroup<"server.plugin", HttpApiEndpoint.HttpApiEndpoint<"plugin.list", "GET", "/api/plugin", never, Schema.toCodecStringTree<Schema.Struct<{
467 readonly location: Schema.optional<Schema.Struct<{
468diff --git a/dist/groups/plugin.js b/dist/groups/plugin.js
469index 90d5b91..dd72e92 100644
470--- a/dist/groups/plugin.js
471+++ b/dist/groups/plugin.js
472@@ -1,7 +1,7 @@
473 import { Location } from "@opencode/schema/location";
474 import { Plugin } from "@opencode/schema/plugin";
475 import { Schema } from "effect";
476-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
477+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api";
478 import { InvalidRequestError, ServiceUnavailableError } from "../errors.js";
479 import { LocationQuery, locationQueryOpenApi } from "./location.js";
480 export const PluginGroup = HttpApiGroup.make("server.plugin")
481diff --git a/dist/groups/project.d.ts b/dist/groups/project.d.ts
482index e4558f6..ab6952a 100644
483--- a/dist/groups/project.d.ts
484+++ b/dist/groups/project.d.ts
485@@ -1,5 +1,5 @@
486 import { Schema } from "effect";
487-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
488+import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
489 import { ProjectNotFoundError } from "../errors.js";
490 export declare const ProjectGroup: HttpApiGroup.HttpApiGroup<"server.project", HttpApiEndpoint.HttpApiEndpoint<"project.list", "GET", "/api/project", never, never, never, never, Schema.toCodecJson<Schema.$Array<Schema.Struct<{
491 readonly id: Schema.brand<Schema.String, "Project.ID"> & {
492diff --git a/dist/groups/project.js b/dist/groups/project.js
493index 7424c4e..b67f839 100644
494--- a/dist/groups/project.js
495+++ b/dist/groups/project.js
496@@ -1,6 +1,6 @@
497 import { Project } from "@opencode/schema/project";
498 import { Schema, Struct } from "effect";
499-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
500+import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api";
501 import { ProjectNotFoundError } from "../errors.js";
502 const root = "/api/project";
503 const UpdatePayload = Schema.Struct(Struct.omit(Project.UpdateInput.fields, ["projectID"]));
504diff --git a/dist/groups/provider.d.ts b/dist/groups/provider.d.ts
505index 2671555..89118fe 100644
506--- a/dist/groups/provider.d.ts
507+++ b/dist/groups/provider.d.ts
508@@ -1,6 +1,6 @@
509 import { Provider } from "@opencode/schema/provider";
510 import { Schema } from "effect";
511-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
512+import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
513 import { ProviderNotFoundError, ServiceUnavailableError } from "../errors.js";
514 export declare const ProviderGroup: HttpApiGroup.HttpApiGroup<"server.provider", HttpApiEndpoint.HttpApiEndpoint<"provider.list", "GET", "/api/provider", never, Schema.toCodecStringTree<Schema.Struct<{
515 readonly location: Schema.optional<Schema.Struct<{
516diff --git a/dist/groups/provider.js b/dist/groups/provider.js
517index b587f80..20f52fa 100644
518--- a/dist/groups/provider.js
519+++ b/dist/groups/provider.js
520@@ -1,7 +1,7 @@
521 import { Provider } from "@opencode/schema/provider";
522 import { Location } from "@opencode/schema/location";
523 import { Schema } from "effect";
524-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
525+import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api";
526 import { ProviderNotFoundError, ServiceUnavailableError } from "../errors.js";
527 import { LocationQuery, locationQueryOpenApi } from "./location.js";
528 export const ProviderGroup = HttpApiGroup.make("server.provider")
529diff --git a/dist/groups/pty.d.ts b/dist/groups/pty.d.ts
530index a1ec2fb..7bbe99b 100644
531--- a/dist/groups/pty.d.ts
532+++ b/dist/groups/pty.d.ts
533@@ -1,5 +1,5 @@
534 import { Schema } from "effect";
535-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi";
536+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api";
537 import { ForbiddenError, PtyNotFoundError } from "../errors.js";
538 export declare const PTY_CONNECT_TICKET_QUERY = "ticket";
539 export declare const PTY_CONNECT_TOKEN_HEADER = "x-opencode-ticket";
540diff --git a/dist/groups/pty.js b/dist/groups/pty.js
541index dd17efa..88eb22b 100644
542--- a/dist/groups/pty.js
543+++ b/dist/groups/pty.js
544@@ -2,7 +2,7 @@ import { Pty } from "@opencode/schema/pty";
545 import { PtyTicket } from "@opencode/schema/pty-ticket";
546 import { Location } from "@opencode/schema/location";
547 import { Schema } from "effect";
548-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
549+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api";
550 import { ForbiddenError, PtyNotFoundError } from "../errors.js";
551 import { LocationQuery, locationQueryOpenApi } from "./location.js";
552 export const PTY_CONNECT_TICKET_QUERY = "ticket";
553diff --git a/dist/groups/reference.d.ts b/dist/groups/reference.d.ts
554index 5ac4e70..09f3d67 100644
555--- a/dist/groups/reference.d.ts
556+++ b/dist/groups/reference.d.ts
557@@ -1,5 +1,5 @@
558 import { Schema } from "effect";
559-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
560+import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
561 export declare const ReferenceGroup: HttpApiGroup.HttpApiGroup<"server.reference", HttpApiEndpoint.HttpApiEndpoint<"reference.list", "GET", "/api/reference", never, Schema.toCodecStringTree<Schema.Struct<{
562 readonly location: Schema.optional<Schema.Struct<{
563 readonly directory: Schema.optional<Schema.String>;
564diff --git a/dist/groups/reference.js b/dist/groups/reference.js
565index e96827b..e615fd1 100644
566--- a/dist/groups/reference.js
567+++ b/dist/groups/reference.js
568@@ -1,7 +1,7 @@
569 import { Location } from "@opencode/schema/location";
570 import { Reference } from "@opencode/schema/reference";
571 import { Schema, Struct } from "effect";
572-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
573+import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api";
574 import { LocationQuery, locationQueryOpenApi } from "./location.js";
575 const PublicLocalSource = Schema.Struct(Struct.omit(Reference.LocalSource.fields, ["description", "hidden"])).annotate({
576 identifier: "Reference.LocalSource",
577diff --git a/dist/groups/rpc.d.ts b/dist/groups/rpc.d.ts
578index 3790115..08e86ec 100644
579--- a/dist/groups/rpc.d.ts
580+++ b/dist/groups/rpc.d.ts
581@@ -1,5 +1,5 @@
582 import { Schema } from "effect";
583-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
584+import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
585 import { RpcError, RpcInternalError } from "../errors.js";
586 export declare const RpcInput: Schema.Struct<{
587 readonly input: Schema.decodeTo<Schema.optional<Schema.toType<Schema.Unknown>>, Schema.optionalKey<Schema.Unknown>, never, never>;
588diff --git a/dist/groups/rpc.js b/dist/groups/rpc.js
589index c12866c..36dadc6 100644
590--- a/dist/groups/rpc.js
591+++ b/dist/groups/rpc.js
592@@ -1,6 +1,6 @@
593 import { optional } from "@opencode/schema/schema";
594 import { Schema } from "effect";
595-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
596+import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api";
597 import { RpcError, RpcInternalError } from "../errors.js";
598 import { LocationQuery, locationQueryOpenApi } from "./location.js";
599 export const RpcInput = Schema.Struct({ input: optional(Schema.Unknown) }).annotate({ identifier: "Rpc.Input" });
600diff --git a/dist/groups/server.d.ts b/dist/groups/server.d.ts
601index b02cf39..5e605d6 100644
602--- a/dist/groups/server.d.ts
603+++ b/dist/groups/server.d.ts
604@@ -1,5 +1,5 @@
605 import { Schema } from "effect";
606-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
607+import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
608 import { UnauthorizedError } from "../errors.js";
609 export declare const ServerInfo: Schema.Struct<{
610 readonly version: Schema.String;
611diff --git a/dist/groups/server.js b/dist/groups/server.js
612index c2415ec..ab9fef3 100644
613--- a/dist/groups/server.js
614+++ b/dist/groups/server.js
615@@ -1,5 +1,5 @@
616 import { Schema } from "effect";
617-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
618+import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api";
619 import { UnauthorizedError } from "../errors.js";
620 export const ServerInfo = Schema.Struct({
621 version: Schema.String,
622diff --git a/dist/groups/session.d.ts b/dist/groups/session.d.ts
623index 316bfb1..adbea93 100644
624--- a/dist/groups/session.d.ts
625+++ b/dist/groups/session.d.ts
626@@ -2,7 +2,7 @@ import { PromptInput } from "@opencode/schema/prompt-input";
627 import { InstructionEntry } from "@opencode/schema/instruction-entry";
628 import { Event } from "@opencode/schema/event";
629 import { Context, Effect, Schema } from "effect";
630-import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema } from "effect/unstable/httpapi";
631+import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema } from "effect/http-api";
632 import { ConflictError, LocationNotFoundError, CommandExecutionError, CommandNotFoundError, FormAlreadySettledError, FormInvalidAnswerError, FormNotFoundError, InvalidCursorError, InvalidRequestError, MessageNotFoundError, ServiceUnavailableError, SessionBusyError, SessionNotFoundError, SkillNotFoundError, UnknownError } from "../errors.js";
633 declare const SessionsCursorInput: Schema.Union<readonly [Schema.Struct<{
634 readonly directory: Schema.brand<Schema.String, "AbsolutePath">;
635diff --git a/dist/groups/session.js b/dist/groups/session.js
636index 64fe213..c835084 100644
637--- a/dist/groups/session.js
638+++ b/dist/groups/session.js
639@@ -7,8 +7,9 @@ import { InstructionEntry } from "@opencode/schema/instruction-entry";
640 import { Project } from "@opencode/schema/project";
641 import { AbsolutePath, DateTimeUtcFromMillis, NonNegativeInt, PositiveInt, RelativePath, statics, } from "@opencode/schema/schema";
642 import { Event } from "@opencode/schema/event";
643-import { Context, Effect, Encoding, Result, Schema, SchemaGetter, Struct } from "effect";
644-import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
645+import * as Base64Url from "effect/encoding/Base64Url";
646+import { Context, Effect, Result, Schema, SchemaGetter, Struct } from "effect";
647+import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema, OpenApi } from "effect/http-api";
648 import { ConflictError, LocationNotFoundError, CommandExecutionError, CommandNotFoundError, FormAlreadySettledError, FormInvalidAnswerError, FormNotFoundError, InvalidCursorError, InvalidRequestError, MessageNotFoundError, ServiceUnavailableError, SessionBusyError, SessionNotFoundError, SkillNotFoundError, UnknownError, } from "../errors.js";
649 import { Agent } from "@opencode/schema/agent";
650 import { Skill } from "@opencode/schema/skill";
651@@ -65,9 +66,9 @@ const invalidCursor = "Invalid cursor";
652 export const SessionsCursor = Schema.String.pipe(Schema.brand("SessionsCursor"), statics((schema) => {
653 const make = schema.make.bind(schema);
654 return {
655- make: (input) => make(Encoding.encodeBase64Url(encodeSessionsCursor(input))),
656+ make: (input) => make(Base64Url.encode(encodeSessionsCursor(input))),
657 parse: (input) => Effect.suspend(() => {
658- const result = Encoding.decodeBase64UrlString(input);
659+ const result = Base64Url.decodeString(input);
660 return Result.isFailure(result)
661 ? Effect.fail(invalidCursor)
662 : decodeSessionsCursor(result.success).pipe(Effect.mapError(() => invalidCursor));
663diff --git a/dist/groups/shell.d.ts b/dist/groups/shell.d.ts
664index 55b3455..dd1cfe3 100644
665--- a/dist/groups/shell.d.ts
666+++ b/dist/groups/shell.d.ts
667@@ -1,5 +1,5 @@
668 import { Schema } from "effect";
669-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi";
670+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api";
671 import { ShellNotFoundError } from "../errors.js";
672 export declare const ShellGroup: HttpApiGroup.HttpApiGroup<"server.shell", HttpApiEndpoint.HttpApiEndpoint<"shell.list", "GET", "/api/shell", never, Schema.toCodecStringTree<Schema.Struct<{
673 readonly location: Schema.optional<Schema.Struct<{
674diff --git a/dist/groups/shell.js b/dist/groups/shell.js
675index 2a8b690..ca57be9 100644
676--- a/dist/groups/shell.js
677+++ b/dist/groups/shell.js
678@@ -1,7 +1,7 @@
679 import { Shell } from "@opencode/schema/shell";
680 import { Location } from "@opencode/schema/location";
681 import { Schema } from "effect";
682-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
683+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api";
684 import { ShellNotFoundError } from "../errors.js";
685 import { LocationQuery, locationQueryOpenApi } from "./location.js";
686 export const ShellGroup = HttpApiGroup.make("server.shell")
687diff --git a/dist/groups/skill.d.ts b/dist/groups/skill.d.ts
688index 91a34c5..8a40476 100644
689--- a/dist/groups/skill.d.ts
690+++ b/dist/groups/skill.d.ts
691@@ -1,5 +1,5 @@
692 import { Schema } from "effect";
693-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
694+import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
695 export declare const SkillGroup: HttpApiGroup.HttpApiGroup<"server.skill", HttpApiEndpoint.HttpApiEndpoint<"skill.list", "GET", "/api/skill", never, Schema.toCodecStringTree<Schema.Struct<{
696 readonly location: Schema.optional<Schema.Struct<{
697 readonly directory: Schema.optional<Schema.String>;
698diff --git a/dist/groups/skill.js b/dist/groups/skill.js
699index a55e3ed..b419ad2 100644
700--- a/dist/groups/skill.js
701+++ b/dist/groups/skill.js
702@@ -1,7 +1,7 @@
703 import { Skill } from "@opencode/schema/skill";
704 import { Location } from "@opencode/schema/location";
705 import { Schema } from "effect";
706-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
707+import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api";
708 import { LocationQuery, locationQueryOpenApi } from "./location.js";
709 export const SkillGroup = HttpApiGroup.make("server.skill")
710 .add(HttpApiEndpoint.get("skill.list", "/api/skill", {
711diff --git a/dist/groups/vcs.d.ts b/dist/groups/vcs.d.ts
712index 7672482..d129386 100644
713--- a/dist/groups/vcs.d.ts
714+++ b/dist/groups/vcs.d.ts
715@@ -1,5 +1,5 @@
716 import { Schema } from "effect";
717-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi";
718+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api";
719 import { ConflictError, InvalidRequestError, ServiceUnavailableError } from "../errors.js";
720 declare const VcsInitNotSupportedError_base: Schema.Class<VcsInitNotSupportedError, Schema.TaggedStruct<"VcsInitNotSupportedError", {
721 readonly providerID: Schema.String;
722diff --git a/dist/groups/vcs.js b/dist/groups/vcs.js
723index 0c80563..436c996 100644
724--- a/dist/groups/vcs.js
725+++ b/dist/groups/vcs.js
726@@ -3,7 +3,7 @@ import { Location } from "@opencode/schema/location";
727 import { NonNegativeInt, PositiveInt, optional } from "@opencode/schema/schema";
728 import { Vcs } from "@opencode/schema/vcs";
729 import { Schema } from "effect";
730-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
731+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api";
732 import { LocationQuery, locationQueryOpenApi } from "./location.js";
733 import { ConflictError, InvalidRequestError, ServiceUnavailableError } from "../errors.js";
734 const InitQuery = Schema.Struct({
735diff --git a/dist/groups/websearch.d.ts b/dist/groups/websearch.d.ts
736index 6532991..1f59338 100644
737--- a/dist/groups/websearch.d.ts
738+++ b/dist/groups/websearch.d.ts
739@@ -1,6 +1,6 @@
740 import { WebSearch } from "@opencode/schema/websearch";
741 import { Schema } from "effect";
742-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi";
743+import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api";
744 import { InvalidRequestError, ServiceUnavailableError } from "../errors.js";
745 export declare const WebSearchGroup: HttpApiGroup.HttpApiGroup<"server.websearch", HttpApiEndpoint.HttpApiEndpoint<"websearch.providers", "GET", "/api/websearch/provider", never, Schema.toCodecStringTree<Schema.Struct<{
746 readonly location: Schema.optional<Schema.Struct<{
747diff --git a/dist/groups/websearch.js b/dist/groups/websearch.js
748index ef2da5f..d486e9e 100644
749--- a/dist/groups/websearch.js
750+++ b/dist/groups/websearch.js
751@@ -1,7 +1,7 @@
752 import { Location } from "@opencode/schema/location";
753 import { WebSearch } from "@opencode/schema/websearch";
754 import { Schema } from "effect";
755-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi";
756+import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api";
757 import { InvalidRequestError, ServiceUnavailableError } from "../errors.js";
758 import { LocationQuery, locationQueryOpenApi } from "./location.js";
759 export const WebSearchGroup = HttpApiGroup.make("server.websearch")
760diff --git a/dist/groups/worktree.d.ts b/dist/groups/worktree.d.ts
761index 2e680e5..5dd54b6 100644
762--- a/dist/groups/worktree.d.ts
763+++ b/dist/groups/worktree.d.ts
764@@ -1,5 +1,5 @@
765 import { Schema } from "effect";
766-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi";
767+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api";
768 import { ProjectNotFoundError } from "../errors.js";
769 declare const WorktreeError_base: Schema.Class<WorktreeError, Schema.TaggedStruct<"WorktreeError", {
770 readonly name: Schema.Literal<"WorktreeError">;
771diff --git a/dist/groups/worktree.js b/dist/groups/worktree.js
772index 67bed29..0a501b1 100644
773--- a/dist/groups/worktree.js
774+++ b/dist/groups/worktree.js
775@@ -1,6 +1,6 @@
776 import { Worktree } from "@opencode/schema/worktree";
777 import { Schema } from "effect";
778-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi";
779+import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api";
780 import { Project } from "@opencode/schema/project";
781 import { ProjectNotFoundError } from "../errors.js";
782 const root = "/api/worktree";
783diff --git a/dist/middleware/authorization.d.ts b/dist/middleware/authorization.d.ts
784index 2d043d9..f84b1df 100644
785--- a/dist/middleware/authorization.d.ts
786+++ b/dist/middleware/authorization.d.ts
787@@ -1,4 +1,4 @@
788-import { HttpApiMiddleware } from "effect/unstable/httpapi";
789+import { HttpApiMiddleware } from "effect/http-api";
790 import { UnauthorizedError } from "../errors.js";
791 declare const Authorization_base: HttpApiMiddleware.ServiceClass<Authorization, "@opencode/HttpApiAuthorization", {
792 requires: never;
793diff --git a/dist/middleware/authorization.js b/dist/middleware/authorization.js
794index caa2b43..1888d92 100644
795--- a/dist/middleware/authorization.js
796+++ b/dist/middleware/authorization.js
797@@ -1,4 +1,4 @@
798-import { HttpApiMiddleware } from "effect/unstable/httpapi";
799+import { HttpApiMiddleware } from "effect/http-api";
800 import { UnauthorizedError } from "../errors.js";
801 export class Authorization extends HttpApiMiddleware.Service()("@opencode/HttpApiAuthorization", {
802 error: UnauthorizedError,
803diff --git a/dist/middleware/schema-error.d.ts b/dist/middleware/schema-error.d.ts
804index 1391162..4bcdc50 100644
805--- a/dist/middleware/schema-error.d.ts
806+++ b/dist/middleware/schema-error.d.ts
807@@ -1,4 +1,4 @@
808-import { HttpApiMiddleware } from "effect/unstable/httpapi";
809+import { HttpApiMiddleware } from "effect/http-api";
810 import { InvalidRequestError } from "../errors.js";
811 declare const SchemaErrorMiddleware_base: HttpApiMiddleware.ServiceClass<SchemaErrorMiddleware, "@opencode/HttpApiSchemaError", {
812 requires: never;
813diff --git a/dist/middleware/schema-error.js b/dist/middleware/schema-error.js
814index b95e4dd..5d3f9bb 100644
815--- a/dist/middleware/schema-error.js
816+++ b/dist/middleware/schema-error.js
817@@ -1,4 +1,4 @@
818-import { HttpApiMiddleware } from "effect/unstable/httpapi";
819+import { HttpApiMiddleware } from "effect/http-api";
820 import { InvalidRequestError } from "../errors.js";
821 export class SchemaErrorMiddleware extends HttpApiMiddleware.Service()("@opencode/HttpApiSchemaError", { error: InvalidRequestError }) {
822 }
823diff --git a/dist/simulation.d.ts b/dist/simulation.d.ts
824index 36f1d26..36373b1 100644
825--- a/dist/simulation.d.ts
826+++ b/dist/simulation.d.ts
827@@ -1,5 +1,5 @@
828 import { Effect, Schema } from "effect";
829-import { Rpc, RpcGroup } from "effect/unstable/rpc";
830+import { Rpc, RpcGroup } from "effect/rpc";
831 export declare namespace JsonRpc {
832 const RequestFields: {
833 jsonrpc: Schema.Literal<"2.0">;
834diff --git a/dist/simulation.js b/dist/simulation.js
835index 3e52010..ce8f56e 100644
836--- a/dist/simulation.js
837+++ b/dist/simulation.js
838@@ -1,5 +1,5 @@
839 import { Effect, Schema } from "effect";
840-import { Rpc, RpcGroup } from "effect/unstable/rpc";
841+import { Rpc, RpcGroup } from "effect/rpc";
842 const JsonRpcID = Schema.Union([Schema.String, Schema.Number, Schema.Null]);
843 const decodeJson = Schema.decodeUnknownSync(Schema.Json);
844 export var JsonRpc;
patches/@opencode__schema@2.0.23.patch created+155
......@@ -0,0 +1,155 @@
1diff --git a/dist/event.js b/dist/event.js
2index a0f0831..c4d39e2 100644
3--- a/dist/event.js
4+++ b/dist/event.js
5@@ -4,7 +4,7 @@ import { optional } from "./schema.js";
6 import { ascending } from "./identifier.js";
7 import { Location } from "./location.js";
8 import { statics } from "./schema.js";
9-export const ID = Schema.String.check(Schema.isStartsWith("evt_")).pipe(Schema.brand("Event.ID"), statics((schema) => ({ create: () => schema.make("evt_" + ascending()) })));
10+export const ID = Schema.String.check(Schema.isStartingWith("evt_")).pipe(Schema.brand("Event.ID"), statics((schema) => ({ create: () => schema.make("evt_" + ascending()) })));
11 /**
12 * Position in one aggregate's durable log. Values originate from the durable
13 * event envelope and synced markers;
14diff --git a/dist/form.js b/dist/form.js
15index 920d0dd..bd4799d 100644
16--- a/dist/form.js
17+++ b/dist/form.js
18@@ -3,7 +3,7 @@ import { Schema } from "effect";
19 import { ephemeral, inventory } from "./event.js";
20 import { ascending } from "./identifier.js";
21 import { NonNegativeInt, optional, statics } from "./schema.js";
22-const IDSchema = Schema.String.check(Schema.isStartsWith("frm_")).pipe(Schema.brand("Form.ID"));
23+const IDSchema = Schema.String.check(Schema.isStartingWith("frm_")).pipe(Schema.brand("Form.ID"));
24 export const ID = IDSchema.pipe(statics((schema) => ({ create: (id) => schema.make(id ?? "frm_" + ascending()) })));
25 export const Metadata = Schema.Record(Schema.String, Schema.Unknown).annotate({ identifier: "Form.Metadata" });
26 export const Option = Schema.Struct({
27diff --git a/dist/permission.js b/dist/permission.js
28index d004da5..9b3f133 100644
29--- a/dist/permission.js
30+++ b/dist/permission.js
31@@ -5,7 +5,7 @@ import { ephemeral, inventory } from "./event.js";
32 import { ascending } from "./identifier.js";
33 import { SessionID } from "./session-id.js";
34 import { statics } from "./schema.js";
35-export const ID = Schema.String.check(Schema.isStartsWith("per")).pipe(Schema.brand("Permission.ID"), statics((schema) => ({ create: (id) => schema.make(id ?? "per_" + ascending()) })));
36+export const ID = Schema.String.check(Schema.isStartingWith("per")).pipe(Schema.brand("Permission.ID"), statics((schema) => ({ create: (id) => schema.make(id ?? "per_" + ascending()) })));
37 export const Source = Schema.Union([
38 Schema.Struct({
39 type: Schema.Literal("tool"),
40diff --git a/dist/pty.js b/dist/pty.js
41index b69f558..f5872fd 100644
42--- a/dist/pty.js
43+++ b/dist/pty.js
44@@ -4,7 +4,7 @@ import { optional } from "./schema.js";
45 import { ephemeral, inventory } from "./event.js";
46 import { ascending } from "./identifier.js";
47 import { NonNegativeInt, PositiveInt, statics } from "./schema.js";
48-const IDSchema = Schema.String.check(Schema.isStartsWith("pty")).pipe(Schema.brand("PtyID"));
49+const IDSchema = Schema.String.check(Schema.isStartingWith("pty")).pipe(Schema.brand("PtyID"));
50 export const ID = IDSchema.pipe(statics((schema) => {
51 const create = () => schema.make("pty_" + ascending());
52 return {
53diff --git a/dist/schema.js b/dist/schema.js
54index d90b9f6..ab09ced 100644
55--- a/dist/schema.js
56+++ b/dist/schema.js
57@@ -7,7 +7,17 @@ export const optional = (schema) => Schema.optionalKey(schema).pipe(Schema.decod
58 decode: SchemaGetter.passthrough({ strict: false }),
59 encode: SchemaGetter.transformOptional(Option.filter((value) => value !== undefined)),
60 }));
61-export const statics = (methods) => (schema) => Object.assign(schema, methods(schema));
62+export const statics = (methods) => (schema) => {
63+ // Effect 4.0.0 caches `make` as a non-configurable own property on first
64+ // read, so a static that overrides it is defined before anything reads it:
65+ // `methods` sees a view whose `make` comes from a fresh rebuild.
66+ const base = schema.rebuild(schema.ast);
67+ const view = new Proxy(schema, { get: (target, key) => (key === "make" ? base.make : Reflect.get(target, key)) });
68+ for (const [key, value] of Object.entries(methods(view))) {
69+ Object.defineProperty(schema, key, { value, writable: true, enumerable: true, configurable: true });
70+ }
71+ return schema;
72+};
73 export const DateTimeUtcFromMillis = Schema.Finite.pipe(Schema.decodeTo(Schema.DateTimeUtc, {
74 decode: SchemaGetter.transform((value) => DateTime.makeUnsafe(value)),
75 encode: SchemaGetter.transform((value) => DateTime.toEpochMillis(value)),
76diff --git a/dist/session-id.js b/dist/session-id.js
77index fe5f778..03ef1e6 100644
78--- a/dist/session-id.js
79+++ b/dist/session-id.js
80@@ -1,7 +1,7 @@
81 import { Schema } from "effect";
82 import { descending } from "./identifier.js";
83 import { statics } from "./schema.js";
84-export const SessionID = Schema.String.check(Schema.isStartsWith("ses")).pipe(Schema.brand("SessionID"), statics((schema) => {
85+export const SessionID = Schema.String.check(Schema.isStartingWith("ses")).pipe(Schema.brand("SessionID"), statics((schema) => {
86 const create = () => schema.make("ses_" + descending());
87 return {
88 create,
89diff --git a/dist/session-message.js b/dist/session-message.js
90index 9ddeda7..6a0a1e2 100644
91--- a/dist/session-message.js
92+++ b/dist/session-message.js
93@@ -18,7 +18,7 @@ import { Skill as SkillSchema } from "./skill.js";
94 import { Money } from "./money.js";
95 import { Snapshot } from "./snapshot.js";
96 import { TokenUsage } from "./token-usage.js";
97-export const ID = Schema.String.check(Schema.isStartsWith("msg_")).pipe(Schema.brand("Session.Message.ID"), statics((schema) => ({
98+export const ID = Schema.String.check(Schema.isStartingWith("msg_")).pipe(Schema.brand("Session.Message.ID"), statics((schema) => ({
99 create: () => schema.make("msg_" + ascending()),
100 fromEvent: (eventID) => schema.make(eventID.replace(/^evt_/, "msg_")),
101 })));
102diff --git a/dist/shell.js b/dist/shell.js
103index 75b981e..969160a 100644
104--- a/dist/shell.js
105+++ b/dist/shell.js
106@@ -4,7 +4,7 @@ import { optional } from "./schema.js";
107 import { ephemeral, inventory } from "./event.js";
108 import { ascending } from "./identifier.js";
109 import { NonNegativeInt, statics } from "./schema.js";
110-const IDSchema = Schema.String.check(Schema.isStartsWith("sh_")).pipe(Schema.brand("Shell.ID"));
111+const IDSchema = Schema.String.check(Schema.isStartingWith("sh_")).pipe(Schema.brand("Shell.ID"));
112 export const ID = IDSchema.pipe(statics((schema) => {
113 const create = () => schema.make("sh_" + ascending());
114 return {
115diff --git a/dist/v1/permission.js b/dist/v1/permission.js
116index 86af654..d4008e5 100644
117--- a/dist/v1/permission.js
118+++ b/dist/v1/permission.js
119@@ -5,7 +5,7 @@ import { ascending } from "../identifier.js";
120 import { Project } from "../project.js";
121 import { statics } from "../schema.js";
122 import { SessionID } from "../session-id.js";
123-export const ID = Schema.String.check(Schema.isStartsWith("per")).pipe(Schema.brand("PermissionV1.ID"), statics((schema) => ({ ascending: (id) => schema.make(id ?? "per_" + ascending()) })));
124+export const ID = Schema.String.check(Schema.isStartingWith("per")).pipe(Schema.brand("PermissionV1.ID"), statics((schema) => ({ ascending: (id) => schema.make(id ?? "per_" + ascending()) })));
125 export const Action = Schema.Literals(["allow", "deny", "ask"]).annotate({ identifier: "PermissionV1.Action" });
126 export const Rule = Schema.Struct({ permission: Schema.String, pattern: Schema.String, action: Action }).annotate({
127 identifier: "PermissionV1.Rule",
128diff --git a/dist/v1/session.js b/dist/v1/session.js
129index 867c87b..e06a17b 100644
130--- a/dist/v1/session.js
131+++ b/dist/v1/session.js
132@@ -11,8 +11,8 @@ import { WorkspaceID } from "../workspace-id.js";
133 import { PermissionV1 } from "./permission.js";
134 import { FileDiff } from "../file-diff.js";
135 const Timestamp = Schema.Finite.check(Schema.isGreaterThanOrEqualTo(0));
136-export const MessageID = Schema.String.check(Schema.isStartsWith("msg")).pipe(Schema.brand("SessionV1.MessageID"), statics((schema) => ({ ascending: (id) => schema.make(id ?? "msg_" + ascending()) })));
137-export const PartID = Schema.String.check(Schema.isStartsWith("prt")).pipe(Schema.brand("SessionV1.PartID"), statics((schema) => ({ ascending: (id) => schema.make(id ?? "prt_" + ascending()) })));
138+export const MessageID = Schema.String.check(Schema.isStartingWith("msg")).pipe(Schema.brand("SessionV1.MessageID"), statics((schema) => ({ ascending: (id) => schema.make(id ?? "msg_" + ascending()) })));
139+export const PartID = Schema.String.check(Schema.isStartingWith("prt")).pipe(Schema.brand("SessionV1.PartID"), statics((schema) => ({ ascending: (id) => schema.make(id ?? "prt_" + ascending()) })));
140 const namedError = (name, fields) => {
141 const schema = Schema.Struct({ name: Schema.Literal(name), data: Schema.Struct(fields) }).annotate({
142 identifier: name,
143diff --git a/dist/workspace-id.js b/dist/workspace-id.js
144index 4bed474..4ec8671 100644
145--- a/dist/workspace-id.js
146+++ b/dist/workspace-id.js
147@@ -1,7 +1,7 @@
148 import { Schema } from "effect";
149 import { ascending } from "./identifier.js";
150 import { statics } from "./schema.js";
151-export const WorkspaceID = Schema.String.check(Schema.isStartsWith("wrk")).pipe(Schema.brand("Workspace.ID"), statics((schema) => {
152+export const WorkspaceID = Schema.String.check(Schema.isStartingWith("wrk")).pipe(Schema.brand("Workspace.ID"), statics((schema) => {
153 const create = () => schema.make("wrk_" + ascending());
154 return {
155 ascending: (id) => {
patches/alchemy@2.0.0-beta.79.patch deleted-110
......@@ -1,110 +0,0 @@
1diff --git a/lib/Drizzle/Postgres.d.ts b/lib/Drizzle/Postgres.d.ts
2index ddba2e1e6ae85ca24e626ce2d7ea2bde92ef6f86..31335e2039a52ad2fe7a12d6bc820dbb04fe15a8 100644
3--- a/lib/Drizzle/Postgres.d.ts
4+++ b/lib/Drizzle/Postgres.d.ts
5@@ -4,6 +4,11 @@ import type { EffectPgDatabase } from "drizzle-orm/effect-postgres";
6 import type { EffectDrizzlePgConfig } from "drizzle-orm/pg-core/effect/utils";
7 import * as Effect from "effect/Effect";
8 import type * as Redacted from "effect/Redacted";
9+/**
10+ * `@effect/sql-pg` client settings that cannot be carried in the URL, e.g.
11+ * `prepare: false` for transaction-mode poolers such as Hyperdrive.
12+ */
13+export type PostgresClientOptions = Omit<PgClient.PgPoolConfig, "url" | "ssl">;
14 /**
15 * Open a Drizzle/Postgres database from a connection URL using the
16 * `drizzle-orm/effect-postgres` integration.
17@@ -39,7 +44,7 @@ import type * as Redacted from "effect/Redacted";
18 *
19 * @binding
20 */
21-export declare const Postgres: <TRelations extends AnyRelations = EmptyRelations, E = never, R = never>(connectionString: Effect.Effect<Redacted.Redacted<string>, E, R>, config?: EffectDrizzlePgConfig<TRelations>) => Effect.Effect<EffectPgDatabase<TRelations> & {
22+export declare const Postgres: <TRelations extends AnyRelations = EmptyRelations, E = never, R = never>(connectionString: Effect.Effect<Redacted.Redacted<string>, E, R>, config?: EffectDrizzlePgConfig<TRelations>, pgClient?: PostgresClientOptions) => Effect.Effect<EffectPgDatabase<TRelations> & {
23 $client: PgClient.PgClient;
24 }, never, never>;
25 //# sourceMappingURL=Postgres.d.ts.map
26\ No newline at end of file
27diff --git a/lib/Drizzle/Postgres.js b/lib/Drizzle/Postgres.js
28index fdd0942fc9da4f220e135bd9ce6c891dd837a948..e7452288b6b92e0aeacc26f37a10e85a3ba232e5 100644
29--- a/lib/Drizzle/Postgres.js
30+++ b/lib/Drizzle/Postgres.js
31@@ -38,13 +38,13 @@ import { proxyChain } from "../Util/proxy-chain.js";
32 *
33 * @binding
34 */
35-export const Postgres = (connectionString, config) => Effect.map(makeExecutionMemo(Effect.gen(function* () {
36+export const Postgres = (connectionString, config, pgClient) => Effect.map(makeExecutionMemo(Effect.gen(function* () {
37 const [PgClient, PgDrizzle] = yield* Effect.promise(() => Promise.all([
38 import("@effect/sql-pg/PgClient"),
39 import("drizzle-orm/effect-postgres"),
40 ]));
41 const url = yield* connectionString;
42- const pgCtx = yield* Layer.build(PgClient.layer(resolveConnectionOptions(url)));
43+ const pgCtx = yield* Layer.build(PgClient.layer({ ...pgClient, ...resolveConnectionOptions(url) }));
44 return yield* PgDrizzle.makeWithDefaults(config).pipe(Effect.provideContext(pgCtx));
45 })), (db) => proxyChain(db));
46 //# sourceMappingURL=Postgres.js.map
47\ No newline at end of file
48diff --git a/lib/Test/Vitest.js b/lib/Test/Vitest.js
49index 0ecf9ccff01bb6556bf3e471d5a93254d16224a7..c0f1237e6a98e698718b0bbde5de8eb58c859e8e 100644
50--- a/lib/Test/Vitest.js
51+++ b/lib/Test/Vitest.js
52@@ -3,7 +3,7 @@ import { it } from "@effect/vitest";
53 import * as Effect from "effect/Effect";
54 import * as Exit from "effect/Exit";
55 import * as Scope from "effect/Scope";
56-import { afterAll as vitestAfterAll, afterEach as vitestAfterEach, beforeAll as vitestBeforeAll, beforeEach as vitestBeforeEach, } from "vitest";
57+import { afterAll as vitestAfterAll, afterEach as vitestAfterEach, beforeAll as vitestBeforeAll, beforeEach as vitestBeforeEach, } from "vite-plus/test";
58 import * as Core from "./Core.js";
59 export { executeWhenReady, getWhenReady, guardContentType, guardedFetchLayer, rpcClientLayer, WorkerNotReady, } from "./Http.js";
60 export const defaultStage = Core.defaultStage;
61diff --git a/src/Drizzle/Postgres.ts b/src/Drizzle/Postgres.ts
62index 2d138914e834d5c47078c42b756129897506f51d..61ae549db6ee20e8809295e8d1543b3bc78f63ad 100644
63--- a/src/Drizzle/Postgres.ts
64+++ b/src/Drizzle/Postgres.ts
65@@ -48,6 +48,15 @@ import { proxyChain } from "../Util/proxy-chain.ts";
66 * @binding
67 */
68
69+/**
70+ * `@effect/sql-pg` client settings that cannot be carried in the URL, e.g.
71+ * `prepare: false` for transaction-mode poolers such as Hyperdrive.
72+ */
73+export type PostgresClientOptions = Omit<
74+ PgClient.PgPoolConfig,
75+ "url" | "ssl"
76+>;
77+
78 export const Postgres = <
79 TRelations extends AnyRelations = EmptyRelations,
80 E = never,
81@@ -55,6 +64,7 @@ export const Postgres = <
82 >(
83 connectionString: Effect.Effect<Redacted.Redacted<string>, E, R>,
84 config?: EffectDrizzlePgConfig<TRelations>,
85+ pgClient?: PostgresClientOptions,
86 ) =>
87 Effect.map(
88 makeExecutionMemo(
89@@ -67,7 +77,7 @@ export const Postgres = <
90 );
91 const url = yield* connectionString;
92 const pgCtx = yield* Layer.build(
93- PgClient.layer(resolveConnectionOptions(url)),
94+ PgClient.layer({ ...pgClient, ...resolveConnectionOptions(url) }),
95 );
96 return yield* PgDrizzle.makeWithDefaults(config).pipe(
97 Effect.provideContext(pgCtx),
98diff --git a/src/Test/Vitest.ts b/src/Test/Vitest.ts
99index c321e6d4924d0f6b3ae53292a12af88167692ccb..673929a81d066bdd6a2dd94e9c1d95bb69f3e3cd 100644
100--- a/src/Test/Vitest.ts
101+++ b/src/Test/Vitest.ts
102@@ -8,7 +8,7 @@ import {
103 afterEach as vitestAfterEach,
104 beforeAll as vitestBeforeAll,
105 beforeEach as vitestBeforeEach,
106-} from "vitest";
107+} from "vite-plus/test";
108
109 import type { AlchemyContext } from "../AlchemyContext.ts";
110 import type { CompiledStack } from "../Stack.ts";
patches/alchemy@2.0.0-beta.80.patch created+110
......@@ -0,0 +1,110 @@
1diff --git a/lib/Drizzle/Postgres.d.ts b/lib/Drizzle/Postgres.d.ts
2index ddba2e1..31335e2 100644
3--- a/lib/Drizzle/Postgres.d.ts
4+++ b/lib/Drizzle/Postgres.d.ts
5@@ -4,6 +4,11 @@ import type { EffectPgDatabase } from "drizzle-orm/effect-postgres";
6 import type { EffectDrizzlePgConfig } from "drizzle-orm/pg-core/effect/utils";
7 import * as Effect from "effect/Effect";
8 import type * as Redacted from "effect/Redacted";
9+/**
10+ * `@effect/sql-pg` client settings that cannot be carried in the URL, e.g.
11+ * `prepare: false` for transaction-mode poolers such as Hyperdrive.
12+ */
13+export type PostgresClientOptions = Omit<PgClient.PgPoolConfig, "url" | "ssl">;
14 /**
15 * Open a Drizzle/Postgres database from a connection URL using the
16 * `drizzle-orm/effect-postgres` integration.
17@@ -39,7 +44,7 @@ import type * as Redacted from "effect/Redacted";
18 *
19 * @binding
20 */
21-export declare const Postgres: <TRelations extends AnyRelations = EmptyRelations, E = never, R = never>(connectionString: Effect.Effect<Redacted.Redacted<string>, E, R>, config?: EffectDrizzlePgConfig<TRelations>) => Effect.Effect<EffectPgDatabase<TRelations> & {
22+export declare const Postgres: <TRelations extends AnyRelations = EmptyRelations, E = never, R = never>(connectionString: Effect.Effect<Redacted.Redacted<string>, E, R>, config?: EffectDrizzlePgConfig<TRelations>, pgClient?: PostgresClientOptions) => Effect.Effect<EffectPgDatabase<TRelations> & {
23 $client: PgClient.PgClient;
24 }, never, never>;
25 //# sourceMappingURL=Postgres.d.ts.map
26\ No newline at end of file
27diff --git a/lib/Drizzle/Postgres.js b/lib/Drizzle/Postgres.js
28index fdd0942..e745228 100644
29--- a/lib/Drizzle/Postgres.js
30+++ b/lib/Drizzle/Postgres.js
31@@ -38,13 +38,13 @@ import { proxyChain } from "../Util/proxy-chain.js";
32 *
33 * @binding
34 */
35-export const Postgres = (connectionString, config) => Effect.map(makeExecutionMemo(Effect.gen(function* () {
36+export const Postgres = (connectionString, config, pgClient) => Effect.map(makeExecutionMemo(Effect.gen(function* () {
37 const [PgClient, PgDrizzle] = yield* Effect.promise(() => Promise.all([
38 import("@effect/sql-pg/PgClient"),
39 import("drizzle-orm/effect-postgres"),
40 ]));
41 const url = yield* connectionString;
42- const pgCtx = yield* Layer.build(PgClient.layer(resolveConnectionOptions(url)));
43+ const pgCtx = yield* Layer.build(PgClient.layer({ ...pgClient, ...resolveConnectionOptions(url) }));
44 return yield* PgDrizzle.makeWithDefaults(config).pipe(Effect.provideContext(pgCtx));
45 })), (db) => proxyChain(db));
46 //# sourceMappingURL=Postgres.js.map
47\ No newline at end of file
48diff --git a/lib/Test/Vitest.js b/lib/Test/Vitest.js
49index bada542..f135b00 100644
50--- a/lib/Test/Vitest.js
51+++ b/lib/Test/Vitest.js
52@@ -3,7 +3,7 @@ import { it } from "@effect/vitest";
53 import * as Effect from "effect/Effect";
54 import * as Exit from "effect/Exit";
55 import * as Scope from "effect/Scope";
56-import { afterAll as vitestAfterAll, afterEach as vitestAfterEach, beforeAll as vitestBeforeAll, beforeEach as vitestBeforeEach, } from "vitest";
57+import { afterAll as vitestAfterAll, afterEach as vitestAfterEach, beforeAll as vitestBeforeAll, beforeEach as vitestBeforeEach, } from "vite-plus/test";
58 import * as Core from "./Core.js";
59 export { executeWhenReady, getWhenReady, guardContentType, guardedFetchLayer, rpcClientLayer, WorkerNotReady, } from "./Http.js";
60 export const defaultStage = Core.defaultStage;
61diff --git a/src/Drizzle/Postgres.ts b/src/Drizzle/Postgres.ts
62index 2d13891..61ae549 100644
63--- a/src/Drizzle/Postgres.ts
64+++ b/src/Drizzle/Postgres.ts
65@@ -48,6 +48,15 @@ import { proxyChain } from "../Util/proxy-chain.ts";
66 * @binding
67 */
68
69+/**
70+ * `@effect/sql-pg` client settings that cannot be carried in the URL, e.g.
71+ * `prepare: false` for transaction-mode poolers such as Hyperdrive.
72+ */
73+export type PostgresClientOptions = Omit<
74+ PgClient.PgPoolConfig,
75+ "url" | "ssl"
76+>;
77+
78 export const Postgres = <
79 TRelations extends AnyRelations = EmptyRelations,
80 E = never,
81@@ -55,6 +64,7 @@ export const Postgres = <
82 >(
83 connectionString: Effect.Effect<Redacted.Redacted<string>, E, R>,
84 config?: EffectDrizzlePgConfig<TRelations>,
85+ pgClient?: PostgresClientOptions,
86 ) =>
87 Effect.map(
88 makeExecutionMemo(
89@@ -67,7 +77,7 @@ export const Postgres = <
90 );
91 const url = yield* connectionString;
92 const pgCtx = yield* Layer.build(
93- PgClient.layer(resolveConnectionOptions(url)),
94+ PgClient.layer({ ...pgClient, ...resolveConnectionOptions(url) }),
95 );
96 return yield* PgDrizzle.makeWithDefaults(config).pipe(
97 Effect.provideContext(pgCtx),
98diff --git a/src/Test/Vitest.ts b/src/Test/Vitest.ts
99index 7dd3576..0bcfc4d 100644
100--- a/src/Test/Vitest.ts
101+++ b/src/Test/Vitest.ts
102@@ -8,7 +8,7 @@ import {
103 afterEach as vitestAfterEach,
104 beforeAll as vitestBeforeAll,
105 beforeEach as vitestBeforeEach,
106-} from "vitest";
107+} from "vite-plus/test";
108
109 import type { AlchemyContext } from "../AlchemyContext.ts";
110 import type { CompiledStack } from "../Stack.ts";
patches/effect@4.0.0-rc.115.patch deleted-353
......@@ -1,353 +0,0 @@
1diff --git a/dist/unstable/ai/McpServer.js b/dist/unstable/ai/McpServer.js
2index e8b9be4..9cffc5c 100644
3--- a/dist/unstable/ai/McpServer.js
4+++ b/dist/unstable/ai/McpServer.js
5@@ -450,6 +450,26 @@ const runWithProtocolState = /*#__PURE__*/Effect.fnUntraced(function* (options,
6 const defaultLogLevel = yield* CurrentLogLevel;
7 const isHttp = Option.isSome(yield* Effect.serviceOption(HttpRouter.HttpRouter));
8 const sessions = protocolState.sessions;
9+ if (isHttp && options.path !== undefined) {
10+ const router = yield* HttpRouter.HttpRouter;
11+ yield* router.add("DELETE", options.path, Effect.gen(function* () {
12+ const request = yield* HttpServerRequest.HttpServerRequest;
13+ const sessionId = request.headers[MCP_SESSION_ID_HEADER];
14+ if (sessionId === undefined) {
15+ return HttpServerResponse.empty({
16+ status: 400
17+ });
18+ }
19+ if (!sessions.bySessionId.delete(sessionId)) {
20+ return HttpServerResponse.empty({
21+ status: 404
22+ });
23+ }
24+ return HttpServerResponse.empty({
25+ status: 204
26+ });
27+ }));
28+ }
29 const clientProtocols = new Map();
30 const activeRequests = new Map();
31 const clientProfiles = new Map();
32@@ -948,7 +968,7 @@ export const layerHttp = options => {
33 const methodNotAllowed = request => isAllowedMcpOrigin(request, options.allowedOrigins) ? Effect.succeed(methodNotAllowedResponse) : Effect.succeed(HttpServerResponse.empty({
34 status: 403
35 }));
36- 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));
37+ 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));
38 return Layer.merge(layerWithProtocolState(options), routes).pipe(Layer.provide(layerMcpProtocolHttp(options)), Layer.provide(protocolState), Layer.provide(RpcSerialization.layerJsonRpc()));
39 };
40 const layerMcpProtocolHttp = options => Layer.effect(RpcServer.Protocol)(Effect.gen(function* () {
41diff --git a/dist/unstable/http/HttpClientResponse.js b/dist/unstable/http/HttpClientResponse.js
42index 59a2b12..ef54250 100644
43--- a/dist/unstable/http/HttpClientResponse.js
44+++ b/dist/unstable/http/HttpClientResponse.js
45@@ -180,7 +180,7 @@ class WebHttpClientResponse extends Inspectable.Class {
46 if (this.cachedCookies) {
47 return this.cachedCookies;
48 }
49- return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie());
50+ return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie?.() ?? []);
51 }
52 get remoteAddress() {
53 return Option.none();
54diff --git a/dist/unstable/rpc/RpcClient.d.ts b/dist/unstable/rpc/RpcClient.d.ts
55index 1a471aa..7233784 100644
56--- a/dist/unstable/rpc/RpcClient.d.ts
57+++ b/dist/unstable/rpc/RpcClient.d.ts
58@@ -2,6 +2,7 @@ import * as Cause from "../../Cause.ts";
59 import * as Context from "../../Context.ts";
60 import type * as Duration from "../../Duration.ts";
61 import * as Effect from "../../Effect.ts";
62+import * as Exit from "../../Exit.ts";
63 import * as Layer from "../../Layer.ts";
64 import * as Queue from "../../Queue.ts";
65 import * as Schedule from "../../Schedule.ts";
66@@ -280,9 +281,40 @@ export declare const layerProtocolWorker: (options: {
67 readonly targetUtilization?: number | undefined;
68 readonly timeToLive: Duration.Input;
69 }) => Layer.Layer<Protocol, WorkerError, Worker.WorkerPlatform | Worker.Spawner>;
70+declare const RequestHooks_base: Context.ServiceClass<RequestHooks, "effect/rpc/RpcClient/RequestHooks", {
71+ readonly onRequestStart?: ((info: {
72+ readonly id: RequestId;
73+ readonly tag: string;
74+ readonly stream: boolean;
75+ }) => Effect.Effect<void>) | undefined;
76+ readonly onRequestChunk?: ((info: {
77+ readonly id: RequestId;
78+ readonly tag: string;
79+ readonly chunkCount: number;
80+ }) => Effect.Effect<void>) | undefined;
81+ readonly onRequestExit?: ((info: {
82+ readonly id: RequestId;
83+ readonly tag: string;
84+ readonly stream: boolean;
85+ readonly exit: Exit.Exit<unknown, unknown>;
86+ }) => Effect.Effect<void>) | undefined;
87+ readonly onRequestInterrupt?: ((info: {
88+ readonly id: RequestId;
89+ readonly tag?: string | undefined;
90+ }) => Effect.Effect<void>) | undefined;
91+}>;
92+/**
93+ * @since 4.0.0
94+ * @category RequestHooks
95+ */
96+export declare class RequestHooks extends RequestHooks_base {
97+}
98 declare const ConnectionHooks_base: Context.ServiceClass<ConnectionHooks, "effect/rpc/RpcClient/ConnectionHooks", {
99 readonly onConnect: Effect.Effect<void>;
100 readonly onDisconnect: Effect.Effect<void>;
101+ readonly onPing?: Effect.Effect<void> | undefined;
102+ readonly onPong?: Effect.Effect<void> | undefined;
103+ readonly onPingTimeout?: Effect.Effect<void> | undefined;
104 }>;
105 /**
106 * Represents optional client protocol hooks that run when a transport connects
107diff --git a/dist/unstable/rpc/RpcClient.js b/dist/unstable/rpc/RpcClient.js
108index c586c60..49886d8 100644
109--- a/dist/unstable/rpc/RpcClient.js
110+++ b/dist/unstable/rpc/RpcClient.js
111@@ -49,6 +49,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
112 const services = yield* Effect.context();
113 const scope = Context.get(services, Scope.Scope);
114 const entries = new Map();
115+ const hooks = yield* Effect.serviceOption(RequestHooks);
116 let isShutdown = false;
117 yield* Scope.addFinalizer(scope, Effect.withFiber(parent => {
118 isShutdown = true;
119@@ -86,6 +87,11 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
120 return Effect.interrupt;
121 }
122 const id = generateRequestId();
123+ const onStart = Option.isSome(hooks) && hooks.value.onRequestStart ? hooks.value.onRequestStart({
124+ id,
125+ tag: rpc._tag,
126+ stream: false
127+ }) : Effect.void;
128 const send = middleware(message => options.onFromClient({
129 message,
130 context,
131@@ -103,7 +109,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
132 headers: Headers.merge(parentFiber.getRef(CurrentHeaders), headers)
133 });
134 if (discard) {
135- return send;
136+ return onStart.pipe(Effect.andThen(send));
137 }
138 let fiber;
139 return Effect.onInterrupt(Effect.callback(resume => {
140@@ -121,7 +127,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
141 }
142 };
143 entries.set(id, entry);
144- fiber = send.pipe(span ? Effect.withParentSpan(span, {
145+ fiber = onStart.pipe(Effect.andThen(send), span ? Effect.withParentSpan(span, {
146 captureStackTrace: false
147 }) : identity, Effect.runForkWith(parentFiber.context));
148 fiber.addObserver(exit => {
149@@ -130,8 +136,9 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
150 }
151 });
152 }), interruptors => {
153+ const entry = entries.get(id);
154 entries.delete(id);
155- return Effect.andThen(Fiber.interrupt(fiber), sendInterrupt(id, Array.from(interruptors), context));
156+ return Effect.andThen(Fiber.interrupt(fiber), sendInterrupt(id, Array.from(interruptors), context, entry?.rpc._tag));
157 });
158 });
159 const onStreamRequest = Effect.fnUntraced(function* (rpc, middleware, payload, headers, streamBufferSize, context) {
160@@ -143,11 +150,18 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
161 });
162 const fiber = Fiber.getCurrent();
163 const id = generateRequestId();
164+ const onStart = Option.isSome(hooks) && hooks.value.onRequestStart ? hooks.value.onRequestStart({
165+ id,
166+ tag: rpc._tag,
167+ stream: true
168+ }) : Effect.void;
169 const scope = Context.getUnsafe(fiber.context, Scope.Scope);
170 yield* Scope.addFinalizerExit(scope, exit => {
171- if (!entries.has(id)) return Effect.void;
172+ const entry = entries.get(id);
173+ if (!entry) return Effect.void;
174 entries.delete(id);
175- return sendInterrupt(id, Exit.isFailure(exit) ? Array.from(Cause.interruptors(exit.cause)) : [], context);
176+ // Shutting down releases a socket reader blocked offering into this full buffer.
177+ return Queue.shutdown(entry.queue).pipe(Effect.andThen(sendInterrupt(id, Exit.isFailure(exit) ? Array.from(Cause.interruptors(exit.cause)) : [], context, entry.rpc._tag)));
178 });
179 const queue = yield* Queue.bounded(streamBufferSize);
180 entries.set(id, {
181@@ -155,9 +169,10 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
182 rpc,
183 queue,
184 scope,
185- context
186+ context,
187+ chunkCount: 0
188 });
189- yield* middleware(message => options.onFromClient({
190+ yield* onStart.pipe(Effect.andThen(middleware(message => options.onFromClient({
191 message,
192 context,
193 discard: false
194@@ -172,7 +187,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
195 sampled: span.sampled
196 } : {}),
197 headers: Headers.merge(fiber.getRef(CurrentHeaders), headers)
198- }).pipe(span ? Effect.withParentSpan(span, {
199+ }))).pipe(span ? Effect.withParentSpan(span, {
200 captureStackTrace: false
201 }) : identity, Effect.catchCause(error => Queue.failCause(queue, error)), Effect.interruptible, Effect.forkIn(scope, {
202 startImmediately: true
203@@ -202,7 +217,10 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
204 });
205 };
206 };
207- const sendInterrupt = (requestId, interruptors, context) => Effect.callback(resume => {
208+ const sendInterrupt = (requestId, interruptors, context, tag) => (Option.isSome(hooks) && hooks.value.onRequestInterrupt ? hooks.value.onRequestInterrupt({
209+ id: requestId,
210+ tag
211+ }) : Effect.void).pipe(Effect.andThen(Effect.callback(resume => {
212 const parentFiber = Fiber.getCurrent();
213 const fiber = options.onFromClient({
214 message: {
215@@ -216,7 +234,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
216 fiber.addObserver(() => {
217 resume(Effect.void);
218 });
219- });
220+ })));
221 const write = message => {
222 switch (message._tag) {
223 case "Chunk":
224@@ -224,7 +242,13 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
225 const requestId = message.requestId;
226 const entry = entries.get(requestId);
227 if (!entry || entry._tag !== "Queue") return Effect.void;
228- return Queue.offerAll(entry.queue, message.values).pipe(supportsAck ? Effect.flatMap(() => options.onFromClient({
229+ const chunkCount = entry.chunkCount += message.values.length;
230+ const onChunk = Option.isSome(hooks) && hooks.value.onRequestChunk ? hooks.value.onRequestChunk({
231+ id: requestId,
232+ tag: entry.rpc._tag,
233+ chunkCount
234+ }) : Effect.void;
235+ return Queue.offerAll(entry.queue, message.values).pipe(Effect.andThen(onChunk), supportsAck ? Effect.flatMap(() => options.onFromClient({
236 message: {
237 _tag: "Ack",
238 requestId: message.requestId
239@@ -239,11 +263,18 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro
240 const entry = entries.get(requestId);
241 if (!entry) return Effect.void;
242 entries.delete(requestId);
243+ const onExit = Option.isSome(hooks) && hooks.value.onRequestExit ? hooks.value.onRequestExit({
244+ id: requestId,
245+ tag: entry.rpc._tag,
246+ stream: entry._tag === "Queue",
247+ exit: message.exit
248+ }) : Effect.void;
249 if (entry._tag === "Effect") {
250- entry.resume(message.exit);
251- return Effect.void;
252+ return onExit.pipe(Effect.andThen(Effect.sync(() => {
253+ entry.resume(message.exit);
254+ })));
255 }
256- return message.exit._tag === "Success" ? Queue.end(entry.queue) : Queue.failCause(entry.queue, message.exit.cause);
257+ return onExit.pipe(Effect.andThen(message.exit._tag === "Success" ? Queue.end(entry.queue) : Queue.failCause(entry.queue, message.exit.cause)));
258 }
259 case "Defect":
260 {
261@@ -598,7 +629,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
262 // `parser` is replaced on every connect, and a stateful serialization
263 // encodes against the connection it is writing to, so the ping is encoded
264 // when it is sent rather than once up front.
265- const pinger = yield* makePinger(Effect.suspend(() => writer.write(parser.encode(constPing))));
266+ const pinger = yield* makePinger(Effect.suspend(() => writer.write(parser.encode(constPing))), Option.isSome(hooks) ? hooks.value : undefined);
267 let currentError;
268 const broadcast = response => Effect.forEach(clientIds, clientId => writeResponse(clientId, response));
269 const broadcastError = error => {
270@@ -618,8 +649,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
271 body: () => {
272 const response = responses[i++];
273 if (response._tag === "Pong") {
274- pinger.onPong();
275- return Effect.void;
276+ return pinger.onPong;
277 }
278 if (Object.hasOwn(response, "requestId")) {
279 const requestId = response.requestId;
280@@ -664,12 +694,12 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
281 yield* processData(frames[i]);
282 }
283 }
284- }).pipe(Effect.scoped, Effect.raceFirst(Effect.flatMap(pinger.timeout, () => Effect.fail(new Socket.SocketError({
285+ }).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({
286 reason: new Socket.SocketOpenError({
287 kind: "Timeout",
288 cause: new Error("ping timeout")
289 })
290- })))));
291+ })))))));
292 }).pipe(Option.isSome(hooks) ? Effect.ensuring(hooks.value.onDisconnect) : identity, Effect.tapCause(cause => {
293 const error = Cause.findError(cause);
294 const hasError = Result.isSuccess(error);
295@@ -710,20 +740,28 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
296 };
297 }));
298 const defaultRetryPolicy = /*#__PURE__*/Schedule.min([/*#__PURE__*/Schedule.exponential(500, 1.5), /*#__PURE__*/Schedule.spaced(5000)]);
299-const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing) {
300+const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing, hooks) {
301 let recievedPong = true;
302+ let missedPongs = 0;
303 const latch = Latch.makeUnsafe();
304 const reset = () => {
305 recievedPong = true;
306+ missedPongs = 0;
307 latch.closeUnsafe();
308 };
309- const onPong = () => {
310+ const onPong = Effect.sync(() => {
311 recievedPong = true;
312- };
313+ missedPongs = 0;
314+ }).pipe(Effect.andThen(hooks?.onPong ?? Effect.void));
315 yield* Effect.suspend(() => {
316- if (!recievedPong) return latch.open;
317+ if (!recievedPong) {
318+ missedPongs += 1;
319+ if (missedPongs >= 3) return latch.open;
320+ return (hooks?.onPing ?? Effect.void).pipe(Effect.andThen(writePing));
321+ }
322 recievedPong = false;
323- return writePing;
324+ missedPongs = 0;
325+ return (hooks?.onPing ?? Effect.void).pipe(Effect.andThen(writePing));
326 }).pipe(Effect.delay("5 seconds"), Effect.ignore, Effect.forever, Effect.interruptible, Effect.forkScoped);
327 return {
328 timeout: latch.await,
329@@ -874,6 +912,11 @@ export const makeProtocolWorker = options => Protocol.make(Effect.fnUntraced(fun
330 * @since 4.0.0
331 */
332 export const layerProtocolWorker = /*#__PURE__*/flow(makeProtocolWorker, /*#__PURE__*/Layer.effect(Protocol));
333+/**
334+ * @since 4.0.0
335+ * @category RequestHooks
336+ */
337+export class RequestHooks extends /*#__PURE__*/Context.Service()("effect/rpc/RpcClient/RequestHooks") {}
338 /**
339 * Represents optional client protocol hooks that run when a transport connects
340 * and disconnects.
341diff --git a/src/unstable/http/HttpClientResponse.ts b/src/unstable/http/HttpClientResponse.ts
342index cbf047f..c7d5cc2 100644
343--- a/src/unstable/http/HttpClientResponse.ts
344+++ b/src/unstable/http/HttpClientResponse.ts
345@@ -321,7 +321,7 @@ class WebHttpClientResponse extends Inspectable.Class implements HttpClientRespo
346 if (this.cachedCookies) {
347 return this.cachedCookies
348 }
349- return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie())
350+ return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie?.() ?? [])
351 }
352
353 get remoteAddress(): Option.Option<string> {
patches/effect@4.0.1.patch created+112
......@@ -0,0 +1,112 @@
1diff --git a/dist/ai/McpServer.js b/dist/ai/McpServer.js
2index 2da5941..9fada51 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 06370fd..baa945b 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 9471bdf..4558603 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 42fba67..2b4981b 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.js b/dist/rpc/RpcClient.js
70index 8af2e2e..65acae4 100644
71--- a/dist/rpc/RpcClient.js
72+++ b/dist/rpc/RpcClient.js
73@@ -726,17 +726,25 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun
74 const defaultRetryPolicy = /*#__PURE__*/Schedule.min([/*#__PURE__*/Schedule.exponential(500, 1.5), /*#__PURE__*/Schedule.spaced(5000)]);
75 const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing) {
76 let recievedPong = true;
77+ let missedPongs = 0;
78 const latch = Latch.makeUnsafe();
79 const reset = () => {
80 recievedPong = true;
81+ missedPongs = 0;
82 latch.closeUnsafe();
83 };
84 const onPong = () => {
85 recievedPong = true;
86+ missedPongs = 0;
87 };
88 yield* Effect.suspend(() => {
89- if (!recievedPong) return latch.open;
90+ if (!recievedPong) {
91+ missedPongs += 1;
92+ if (missedPongs >= 3) return latch.open;
93+ return writePing;
94+ }
95 recievedPong = false;
96+ missedPongs = 0;
97 return writePing;
98 }).pipe(Effect.delay("5 seconds"), Effect.ignore, Effect.forever, Effect.interruptible, Effect.forkScoped);
99 return {
100diff --git a/src/http/HttpClientResponse.ts b/src/http/HttpClientResponse.ts
101index c037015..a8b0d8b 100644
102--- a/src/http/HttpClientResponse.ts
103+++ b/src/http/HttpClientResponse.ts
104@@ -341,7 +341,7 @@ class WebHttpClientResponse extends Inspectable.Class implements HttpClientRespo
105 if (this.cachedCookies) {
106 return this.cachedCookies
107 }
108- return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie())
109+ return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie?.() ?? [])
110 }
111
112 get remoteAddress(): Option.Option<string> {
pnpm-lock.yaml+662-436
......@@ -7,8 +7,8 @@ settings:
77catalogs:
88 default:
99 '@effect/openapi-generator':
10 specifier: 4.0.0-rc.115
11 version: 4.0.0-rc.115
10 specifier: 4.0.1
11 version: 4.0.1
1212 '@effect/tsgo':
1313 specifier: 0.41.0
1414 version: 0.41.0
......@@ -30,9 +30,6 @@ catalogs:
3030 typescript:
3131 specifier: 7.0.2
3232 version: 7.0.2
33 vite-plus:
34 specifier: 1.0.0
35 version: 1.0.0
3633
3734overrides:
3835 '@exodus/bytes>@noble/hashes': 1.8.0
......@@ -63,11 +60,11 @@ overrides:
6360 '@clerk/expo': 4.6.8
6461 '@clerk/react': 6.16.1
6562 '@clerk/shared': 4.33.0
66 '@effect/atom-react': 4.0.0-rc.115
67 '@effect/platform-node': 4.0.0-rc.115
68 '@effect/platform-node-shared': 4.0.0-rc.115
69 '@effect/sql-pg': 4.0.0-rc.115
70 '@effect/vitest': 4.0.0-rc.115
63 '@effect/atom-react': 4.0.1
64 '@effect/platform-node': 4.0.1
65 '@effect/platform-node-shared': 4.0.1
66 '@effect/sql-pg': 4.0.1
67 '@effect/vitest': 4.0.1
7168 '@effect/vitest>vitest': '-'
7269 '@expo/dom-webview': 58.0.2
7370 '@expo/metro-config': 58.0.6
......@@ -80,30 +77,34 @@ overrides:
8077 '@tailwindcss/oxide': 4.3.3
8178 '@tailwindcss/vite': 4.3.3
8279 '@types/node': 24.12.4
83 effect: 4.0.0-rc.115
84 '@opencode/protocol>effect': 4.0.0-rc.115
85 '@opencode/schema>effect': 4.0.0-rc.115
80 effect: 4.0.1
81 '@opencode/protocol>effect': 4.0.1
82 '@opencode/schema>effect': 4.0.1
8683 node-abi: 4.33.0
8784 lightningcss: 1.33.0
8885 tailwindcss: 4.3.3
8986 vite: npm:@voidzero-dev/vite-plus-core@1.0.0
87 vite-plus: 1.0.0
9088 yaml: ^2.9.0
9189
92packageExtensionsChecksum: sha256-34mvKz5PLlrn2Tt9jUJC1SbK5hRE+oxwqyC1J6r09oE=
90packageExtensionsChecksum: sha256-FYDaKefjFcda1+vgiq8yMpZC4ehE5CyLi/bsCGLgTtY=
9391
9492patchedDependencies:
9593 '@clerk/expo@4.6.8': b8b22ab733de5bea846ad9e88046c10582352fe9ad86f314f368b2a823f0f281
96 '@effect/vitest@4.0.0-rc.115': 172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902
94 '@effect/vitest@4.0.1': 359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2
9795 '@expo/metro-config@58.0.6': 90fa980e8b6480631fb2fbb04559834e3c612db40c550cd828f11be297d8d760
9896 '@ff-labs/fff-node@0.9.4': c4e3cc2420ceb9dc650f9d189e9c24baf7e83f342998bacda5f459a4ce7927a8
9997 '@legendapp/list@3.3.5': 680cc6a5c5b4a4032e467e7b3fde22f89a84c0ee2e6eac6fda737d6277cc0806
98 '@opencode/client@2.0.23': f725d6e6d9af0d56dc6ed71b863518fbfc751af1773cff2311209d2c404cf4cd
99 '@opencode/protocol@2.0.23': 17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685
100 '@opencode/schema@2.0.23': 650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59
100101 '@pierre/diffs@1.3.0-beta.10': 0ccee155b93b63d810e2c1a40c1fd676fb6fbcfa72cf6430dcedf1a3ae475ab4
101102 '@react-native-ai/apple@0.12.0': 2d09870c2848d185cb05b53ed823a46e12dba519324d8dd8e584e28731990f9d
102103 '@react-native-menu/menu@2.0.0': a4866ecfcd44f318043de839d20110c17e14909004900f002ffe12050376f2ba
103104 '@react-navigation/native-stack@7.17.6': e667c3cef8c78bb9ff4882ee5bd23a432247b843060a9499eb5f07e9e2295552
104 alchemy@2.0.0-beta.79: 2ad1ff594ebadb1d8653c94b9ac2762703788acdbd8432c22273e6c19da1f7a6
105 alchemy@2.0.0-beta.80: bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd
105106 dbus-next@0.10.2: cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4
106 effect@4.0.0-rc.115: e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec
107 effect@4.0.1: 612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1
107108 expo-audio@58.0.4: c20cb927d6848c53e7bf6ec14fe12f19daae9210165d2dbaf4e0f97ce31e8742
108109 expo-blur@58.0.3: d0311b0c0b05bd94393bd9a84653cb42503d5f3c8a19eb2627c34ace08bedf18
109110 expo-glass-effect@58.0.3: f750041c45ab838a3530451dc7b50d6640a79141037a1b0499c5e3412a860c57
......@@ -136,7 +137,7 @@ importers:
136137 specifier: 'catalog:'
137138 version: 7.0.2
138139 vite-plus:
139 specifier: 'catalog:'
140 specifier: 1.0.0
140141 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@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)
141142
142143 apps/desktop:
......@@ -151,8 +152,8 @@ importers:
151152 specifier: 0.13.0
152153 version: 0.13.0
153154 '@effect/platform-node':
154 specifier: 4.0.0-rc.115
155 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6)
155 specifier: 4.0.1
156 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6)
156157 '@napi-rs/keyring':
157158 specifier: ^1.3.0
158159 version: 1.3.0
......@@ -175,8 +176,8 @@ importers:
175176 specifier: 0.10.2
176177 version: 0.10.2(patch_hash=cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4)
177178 effect:
178 specifier: 4.0.0-rc.115
179 version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
179 specifier: 4.0.1
180 version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
180181 electron:
181182 specifier: 44.4.2
182183 version: 44.4.2
......@@ -197,8 +198,8 @@ importers:
197198 version: 0.1.44(react@19.2.6)
198199 devDependencies:
199200 '@effect/vitest':
200 specifier: 4.0.0-rc.115
201 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
201 specifier: 4.0.1
202 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)
202203 '@types/node':
203204 specifier: 24.12.4
204205 version: 24.12.4
......@@ -215,8 +216,8 @@ importers:
215216 specifier: 4.3.3
216217 version: 4.3.3
217218 vite-plus:
218 specifier: 'catalog:'
219 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@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)
219 specifier: 1.0.0
220 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)
220221
221222 apps/marketing:
222223 dependencies:
......@@ -246,8 +247,8 @@ importers:
246247 specifier: 4.6.8
247248 version: 4.6.8(patch_hash=b8b22ab733de5bea846ad9e88046c10582352fe9ad86f314f368b2a823f0f281)(9fda653cb5598772915b4a39a7aee91d)
248249 '@effect/atom-react':
249 specifier: 4.0.0-rc.115
250 version: 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(react@19.3.0)(scheduler@0.27.0)
250 specifier: 4.0.1
251 version: 4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(react@19.3.0)(scheduler@0.28.0)
251252 '@expo-google-fonts/dm-sans':
252253 specifier: ^0.4.2
253254 version: 0.4.2
......@@ -324,8 +325,8 @@ importers:
324325 specifier: 8.0.3
325326 version: 8.0.3
326327 effect:
327 specifier: 4.0.0-rc.115
328 version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
328 specifier: 4.0.1
329 version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
329330 expo:
330331 specifier: 58.0.2
331332 version: 58.0.2(56fc8ddb8129740412739f0f0a6ee025)
......@@ -490,8 +491,8 @@ importers:
490491 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)
491492 devDependencies:
492493 '@effect/vitest':
493 specifier: 4.0.0-rc.115
494 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
494 specifier: 4.0.1
495 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)
495496 '@pierre/trees':
496497 specifier: 1.0.0-beta.4
497498 version: 1.0.0-beta.4(react-dom@19.3.0(react@19.3.0))(react@19.3.0)
......@@ -520,11 +521,11 @@ importers:
520521 specifier: 1.0.31
521522 version: 1.0.31
522523 '@effect/platform-node':
523 specifier: 4.0.0-rc.115
524 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6)
524 specifier: 4.0.1
525 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6)
525526 '@effect/platform-node-shared':
526 specifier: 4.0.0-rc.115
527 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(utf-8-validate@6.0.6)
527 specifier: 4.0.1
528 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(utf-8-validate@6.0.6)
528529 '@ff-labs/fff-node':
529530 specifier: 0.9.4
530531 version: 0.9.4(patch_hash=c4e3cc2420ceb9dc650f9d189e9c24baf7e83f342998bacda5f459a4ce7927a8)
......@@ -535,20 +536,20 @@ importers:
535536 specifier: ^1.3.15
536537 version: 1.15.13
537538 '@opencode/client':
538 specifier: 2.0.18
539 version: 2.0.18(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
539 specifier: 2.0.23
540 version: 2.0.23(patch_hash=f725d6e6d9af0d56dc6ed71b863518fbfc751af1773cff2311209d2c404cf4cd)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
540541 '@opencode/protocol':
541 specifier: 2.0.18
542 version: 2.0.18
542 specifier: 2.0.23
543 version: 2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685)
543544 '@opencode/schema':
544 specifier: 2.0.18
545 version: 2.0.18
545 specifier: 2.0.23
546 version: 2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59)
546547 diff:
547548 specifier: 8.0.3
548549 version: 8.0.3
549550 effect:
550 specifier: 4.0.0-rc.115
551 version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
551 specifier: 4.0.1
552 version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
552553 jose:
553554 specifier: 'catalog:'
554555 version: 6.2.2
......@@ -572,8 +573,8 @@ importers:
572573 version: 3.4.0
573574 devDependencies:
574575 '@effect/vitest':
575 specifier: 4.0.0-rc.115
576 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
576 specifier: 4.0.1
577 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)
577578 '@t3tools/contracts':
578579 specifier: workspace:*
579580 version: link:../../packages/contracts
......@@ -605,8 +606,8 @@ importers:
605606 specifier: workspace:*
606607 version: link:../../packages/effect-codex-app-server
607608 vite-plus:
608 specifier: 'catalog:'
609 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@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)
609 specifier: 1.0.0
610 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)
610611
611612 apps/web:
612613 dependencies:
......@@ -635,8 +636,8 @@ importers:
635636 specifier: ^3.2.2
636637 version: 3.2.2(react@19.2.6)
637638 '@effect/atom-react':
638 specifier: 4.0.0-rc.115
639 version: 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(react@19.2.6)(scheduler@0.27.0)
639 specifier: 4.0.1
640 version: 4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(react@19.2.6)(scheduler@0.28.0)
640641 '@formkit/auto-animate':
641642 specifier: ^0.9.0
642643 version: 0.9.0
......@@ -698,8 +699,8 @@ importers:
698699 specifier: ^3.4.16
699700 version: 3.4.16
700701 effect:
701 specifier: 4.0.0-rc.115
702 version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
702 specifier: 4.0.1
703 version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
703704 hast-util-to-html:
704705 specifier: ^9.0.5
705706 version: 9.0.5
......@@ -762,11 +763,11 @@ importers:
762763 version: 5.0.14(@types/react@19.3.0)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6))
763764 devDependencies:
764765 '@effect/platform-node':
765 specifier: 4.0.0-rc.115
766 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6)
766 specifier: 4.0.1
767 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6)
767768 '@effect/vitest':
768 specifier: 4.0.0-rc.115
769 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
769 specifier: 4.0.1
770 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)
770771 '@rolldown/plugin-babel':
771772 specifier: ^0.2.0
772773 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)
......@@ -825,8 +826,8 @@ importers:
825826 specifier: npm:@voidzero-dev/vite-plus-core@1.0.0
826827 version: '@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)'
827828 vite-plus:
828 specifier: 'catalog:'
829 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@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)
829 specifier: 1.0.0
830 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)
830831
831832 infra/relay:
832833 dependencies:
......@@ -834,8 +835,8 @@ importers:
834835 specifier: 3.18.1
835836 version: 3.18.1(react-dom@19.3.0(react@19.3.0))(react@19.2.6)
836837 '@effect/sql-pg':
837 specifier: 4.0.0-rc.115
838 version: 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
838 specifier: 4.0.1
839 version: 4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
839840 '@noble/curves':
840841 specifier: 'catalog:'
841842 version: 1.9.1
......@@ -852,24 +853,24 @@ importers:
852853 specifier: workspace:*
853854 version: link:../../packages/shared
854855 alchemy:
855 specifier: 2.0.0-beta.79
856 version: 2.0.0-beta.79(patch_hash=2ad1ff594ebadb1d8653c94b9ac2762703788acdbd8432c22273e6c19da1f7a6)(@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6))(@effect/sql-pg@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)))(@types/node@24.12.4)(@types/react@19.3.0)(@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))(bufferutil@4.1.0)(drizzle-kit@1.0.0-rc.5-ab785fc)(drizzle-orm@1.0.0-rc.5-ab785fc(77d4691b21c77897491506c37fa7b5ad))(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(mongodb@6.21.0(@aws-sdk/credential-providers@3.1062.0)(socks@2.8.9))(pg@8.23.0)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))(typescript@7.0.2)(utf-8-validate@6.0.6)(ws@8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))
856 specifier: 2.0.0-beta.80
857 version: 2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(58de9aada26e3d6e07bee630615d7b5f)
857858 drizzle-orm:
858859 specifier: 1.0.0-rc.5-ab785fc
859 version: 1.0.0-rc.5-ab785fc(77d4691b21c77897491506c37fa7b5ad)
860 version: 1.0.0-rc.5-ab785fc(b25f7c76220d3224392693e60345984f)
860861 effect:
861 specifier: 4.0.0-rc.115
862 version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
862 specifier: 4.0.1
863 version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
863864 devDependencies:
864865 '@cloudflare/workers-types':
865866 specifier: ^4.20260601.1
866867 version: 4.20260604.1
867868 '@effect/platform-node':
868 specifier: 4.0.0-rc.115
869 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6)
869 specifier: 4.0.1
870 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6)
870871 '@effect/vitest':
871 specifier: 4.0.0-rc.115
872 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
872 specifier: 4.0.1
873 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)
873874 '@types/node':
874875 specifier: 24.12.4
875876 version: 24.12.4
......@@ -883,27 +884,27 @@ importers:
883884 specifier: npm:@voidzero-dev/vite-plus-core@1.0.0
884885 version: '@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)'
885886 vite-plus:
886 specifier: 'catalog:'
887 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@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)
887 specifier: 1.0.0
888 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)
888889
889890 oxlint-plugin-t3code:
890891 dependencies:
891892 '@effect/platform-node':
892 specifier: 4.0.0-rc.115
893 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6)
893 specifier: 4.0.1
894 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6)
894895 '@oxlint/plugins':
895896 specifier: ^1.63.0
896897 version: 1.68.0
897898 effect:
898 specifier: 4.0.0-rc.115
899 version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
899 specifier: 4.0.1
900 version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
900901 devDependencies:
901902 '@effect/vitest':
902 specifier: 4.0.0-rc.115
903 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
903 specifier: 4.0.1
904 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)
904905 vite-plus:
905 specifier: 'catalog:'
906 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@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)
906 specifier: 1.0.0
907 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)
907908
908909 packages/client-runtime:
909910 dependencies:
......@@ -914,8 +915,8 @@ importers:
914915 specifier: workspace:*
915916 version: link:../shared
916917 effect:
917 specifier: 4.0.0-rc.115
918 version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
918 specifier: 4.0.1
919 version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
919920 mdast-util-directive:
920921 specifier: ^3.1.0
921922 version: 3.1.0
......@@ -936,8 +937,8 @@ importers:
936937 version: 11.0.5
937938 devDependencies:
938939 '@effect/vitest':
939 specifier: 4.0.0-rc.115
940 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
940 specifier: 4.0.1
941 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)
941942 '@types/three':
942943 specifier: 0.180.0
943944 version: 0.180.0
......@@ -945,65 +946,65 @@ importers:
945946 specifier: ^2.0.2
946947 version: 2.0.2
947948 vite-plus:
948 specifier: 'catalog:'
949 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@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)
949 specifier: 1.0.0
950 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)
950951
951952 packages/contracts:
952953 dependencies:
953954 effect:
954 specifier: 4.0.0-rc.115
955 version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
955 specifier: 4.0.1
956 version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
956957 devDependencies:
957958 '@effect/vitest':
958 specifier: 4.0.0-rc.115
959 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
959 specifier: 4.0.1
960 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)
960961 vite-plus:
961 specifier: 'catalog:'
962 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@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)
962 specifier: 1.0.0
963 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)
963964
964965 packages/effect-acp:
965966 dependencies:
966967 effect:
967 specifier: 4.0.0-rc.115
968 version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
968 specifier: 4.0.1
969 version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
969970 devDependencies:
970971 '@effect/openapi-generator':
971972 specifier: 'catalog:'
972 version: 4.0.0-rc.115(@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(encoding@0.1.13)
973 version: 4.0.1(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(encoding@0.1.13)
973974 '@effect/platform-node':
974 specifier: 4.0.0-rc.115
975 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6)
975 specifier: 4.0.1
976 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6)
976977 '@effect/vitest':
977 specifier: 4.0.0-rc.115
978 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
978 specifier: 4.0.1
979 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)
979980 '@types/node':
980981 specifier: 24.12.4
981982 version: 24.12.4
982983 vite-plus:
983 specifier: 'catalog:'
984 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@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)
984 specifier: 1.0.0
985 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)
985986
986987 packages/effect-codex-app-server:
987988 dependencies:
988989 effect:
989 specifier: 4.0.0-rc.115
990 version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
990 specifier: 4.0.1
991 version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
991992 devDependencies:
992993 '@effect/openapi-generator':
993994 specifier: 'catalog:'
994 version: 4.0.0-rc.115(@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(encoding@0.1.13)
995 version: 4.0.1(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(encoding@0.1.13)
995996 '@effect/platform-node':
996 specifier: 4.0.0-rc.115
997 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6)
997 specifier: 4.0.1
998 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6)
998999 '@effect/vitest':
999 specifier: 4.0.0-rc.115
1000 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
1000 specifier: 4.0.1
1001 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)
10011002 '@types/node':
10021003 specifier: 24.12.4
10031004 version: 24.12.4
10041005 vite-plus:
1005 specifier: 'catalog:'
1006 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@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)
1006 specifier: 1.0.0
1007 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)
10071008
10081009 packages/shared:
10091010 dependencies:
......@@ -1017,8 +1018,8 @@ importers:
10171018 specifier: workspace:*
10181019 version: link:../contracts
10191020 effect:
1020 specifier: 4.0.0-rc.115
1021 version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
1021 specifier: 4.0.1
1022 version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
10221023 jose:
10231024 specifier: 'catalog:'
10241025 version: 6.2.2
......@@ -1027,17 +1028,17 @@ importers:
10271028 version: 2.9.0
10281029 devDependencies:
10291030 '@effect/platform-node':
1030 specifier: 4.0.0-rc.115
1031 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6)
1031 specifier: 4.0.1
1032 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6)
10321033 '@effect/vitest':
1033 specifier: 4.0.0-rc.115
1034 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
1034 specifier: 4.0.1
1035 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)
10351036 '@types/node':
10361037 specifier: 24.12.4
10371038 version: 24.12.4
10381039 vite-plus:
1039 specifier: 'catalog:'
1040 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@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)
1040 specifier: 1.0.0
1041 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)
10411042
10421043 packages/ssh:
10431044 dependencies:
......@@ -1048,21 +1049,21 @@ importers:
10481049 specifier: workspace:*
10491050 version: link:../shared
10501051 effect:
1051 specifier: 4.0.0-rc.115
1052 version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
1052 specifier: 4.0.1
1053 version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
10531054 devDependencies:
10541055 '@effect/platform-node':
1055 specifier: 4.0.0-rc.115
1056 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6)
1056 specifier: 4.0.1
1057 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6)
10571058 '@effect/vitest':
1058 specifier: 4.0.0-rc.115
1059 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
1059 specifier: 4.0.1
1060 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)
10601061 '@types/node':
10611062 specifier: 24.12.4
10621063 version: 24.12.4
10631064 vite-plus:
1064 specifier: 'catalog:'
1065 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@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)
1065 specifier: 1.0.0
1066 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)
10661067
10671068 packages/tailscale:
10681069 dependencies:
......@@ -1070,24 +1071,24 @@ importers:
10701071 specifier: workspace:*
10711072 version: link:../shared
10721073 effect:
1073 specifier: 4.0.0-rc.115
1074 version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
1074 specifier: 4.0.1
1075 version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
10751076 devDependencies:
10761077 '@effect/vitest':
1077 specifier: 4.0.0-rc.115
1078 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
1078 specifier: 4.0.1
1079 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)
10791080 '@types/node':
10801081 specifier: 24.12.4
10811082 version: 24.12.4
10821083 vite-plus:
1083 specifier: 'catalog:'
1084 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@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)
1084 specifier: 1.0.0
1085 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)
10851086
10861087 scripts:
10871088 dependencies:
10881089 '@effect/platform-node':
1089 specifier: 4.0.0-rc.115
1090 version: 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6)
1090 specifier: 4.0.1
1091 version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6)
10911092 '@electron/asar':
10921093 specifier: ^4.3.0
10931094 version: 4.3.0
......@@ -1101,8 +1102,8 @@ importers:
11011102 specifier: workspace:*
11021103 version: link:../packages/tailscale
11031104 effect:
1104 specifier: 4.0.0-rc.115
1105 version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
1105 specifier: 4.0.1
1106 version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
11061107 pngjs:
11071108 specifier: 7.0.0
11081109 version: 7.0.0
......@@ -1111,8 +1112,8 @@ importers:
11111112 version: 0.35.4(@types/node@24.12.4)
11121113 devDependencies:
11131114 '@effect/vitest':
1114 specifier: 4.0.0-rc.115
1115 version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
1115 specifier: 4.0.1
1116 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)
11161117 '@types/pngjs':
11171118 specifier: 6.0.5
11181119 version: 6.0.5
......@@ -1123,8 +1124,8 @@ importers:
11231124 specifier: npm:typescript@~6.0.3
11241125 version: typescript@6.0.3
11251126 vite-plus:
1126 specifier: 'catalog:'
1127 version: 1.0.0(@types/node@24.12.4)(@vitest/ui@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)
1127 specifier: 1.0.0
1128 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)
11281129
11291130packages:
11301131
......@@ -1147,13 +1148,13 @@ packages:
11471148 resolution: {integrity: sha512-XeZW1CcDF2GMbH4wejW6xBRI2QCOgnkVYUnxoeDadB1mf85riL2bMUeDoh+6gJ/r4mjNfzUPW8OjLjvwTP0u1Q==}
11481149 engines: {node: '>=18'}
11491150
1150 '@alchemy.run/cloudflare-runtime@2.0.0-beta.79':
1151 resolution: {integrity: sha512-v/kmQ4s9B2PcHo4NSxm76OcmaQsX2TkQoy2IzB4FBu/4kJ6gkEBYKKLz4FK6x4ewOAtwI7kQwZ8OmzAmft3xoQ==}
1151 '@alchemy.run/cloudflare-runtime@2.0.0-beta.80':
1152 resolution: {integrity: sha512-vrMDVAQ+LlzFGkgfIbi/65iwskdSxxWYhJX03sFL72mvkGxvb8RQSKrbxLGHhMz0QSZh796dOff1z9zOwxsIbA==}
11521153 peerDependencies:
1153 '@distilled.cloud/cloudflare': 1.0.0-rc.12
1154 '@effect/platform-bun': '>=4.0.0-rc.115 || >=4.0.0'
1155 '@effect/platform-node': 4.0.0-rc.115
1156 effect: 4.0.0-rc.115
1154 '@distilled.cloud/cloudflare': 1.0.0-rc.13
1155 '@effect/platform-bun': ^4.0.0
1156 '@effect/platform-node': 4.0.1
1157 effect: 4.0.1
11571158 rolldown: 1.2.5
11581159 vite: ^7.0.0 || ^8.0.0
11591160 peerDependenciesMeta:
......@@ -1166,16 +1167,16 @@ packages:
11661167 vite:
11671168 optional: true
11681169
1169 '@alchemy.run/floci@2.0.0-beta.79':
1170 resolution: {integrity: sha512-Wd7DiDUhEep3APW3pix7gEHG0zZwzmE3y+twv5oiFKX8rBLhKOFCRluZ3xyx1ivIw1VpTFyE2PGLvJWwscX/Vw==}
1170 '@alchemy.run/floci@2.0.0-beta.80':
1171 resolution: {integrity: sha512-gtUXFitVY9pSQQYCDtSVyjfd5YOKY3Wleg3WCG5yWno7/l7xBo4kfOMbM63tzWnmka9LewVSITbMfwnC4D/73A==}
11711172 peerDependencies:
1172 effect: 4.0.0-rc.115
1173 effect: 4.0.1
11731174
1174 '@alchemy.run/node-utils@2.0.0-beta.79':
1175 resolution: {integrity: sha512-2Qi3L+GBcNayAaOCo2dBTUTBszTOV2hFgX6rZkl73p//D8XFz/h6bb/Ka4NxBe+bfV7rp9JSZC6ZBBg2d+CJZw==}
1175 '@alchemy.run/node-utils@2.0.0-beta.80':
1176 resolution: {integrity: sha512-uOhVDQZTjwh1AU4mrk0wB5rQaziTwSrVMfqwFP8wALfU//nveu4goOWZimHtqytXiybENh+iEbALH25EFAkc7A==}
11761177
1177 '@alchemy.run/sigil@0.0.0-alpha.11':
1178 resolution: {integrity: sha512-JzaCBeRu9kY0qWC8JKkrierstImkrK77dl+7l0RvCTR+7uhOJECL2VxmjhJ1blea+mmbYUVob8OXOH5r8Mqfpw==}
1178 '@alchemy.run/sigil@0.1.0-alpha.1':
1179 resolution: {integrity: sha512-RtHELG2w+GluVewRsuKm66idtPzC+4STptMr/61X1Vy5uBkDzcCzjzV8G6jUa4iBv6Il0hHV7UL6wvv//9nD/Q==}
11791180 engines: {node: '>=22'}
11801181 peerDependencies:
11811182 '@types/react': '>=19.2.0'
......@@ -2026,32 +2027,32 @@ packages:
20262027 workerd:
20272028 optional: true
20282029
2029 '@cloudflare/workerd-darwin-64@1.20260901.1':
2030 resolution: {integrity: sha512-5nJCpnclV6cc5v3aZOewu+djFvNvm9A/owQ+WJ2G1450roeFHfZGsyW7vVjSRWx3v2iykfkviyJfGm9ApeFDGg==}
2030 '@cloudflare/workerd-darwin-64@1.20260918.1':
2031 resolution: {integrity: sha512-H5Em6Wd0jjxaloYh2rp+WLBl2eWbkk7nSP1svGt6K1RSv/rNVqmKdpjZPJTBSavOmeYGa88qvtOWwS+33OHTqQ==}
20312032 engines: {node: '>=16'}
20322033 cpu: [x64]
20332034 os: [darwin]
20342035
2035 '@cloudflare/workerd-darwin-arm64@1.20260901.1':
2036 resolution: {integrity: sha512-nLwfUVoYmFNW1Ntp0BfZ2K1UWIll4zTTYP8Ni7NQnyrNkTnFeU/prrllWtnw7OG8Z/jyaEAAFaDFEBobrNTU3A==}
2036 '@cloudflare/workerd-darwin-arm64@1.20260918.1':
2037 resolution: {integrity: sha512-CR9JRZEQo93fNgBVF4Df2H2/VYO4n7rxSseSwCVv3bJQEb0huADUSCj2FK4ipxar8ToOEB4wawyw0vJo5U/rQQ==}
20372038 engines: {node: '>=16'}
20382039 cpu: [arm64]
20392040 os: [darwin]
20402041
2041 '@cloudflare/workerd-linux-64@1.20260901.1':
2042 resolution: {integrity: sha512-wzCO0cMrFLRRs6bG5KXDpLSe70GpzpsxPjxwBzQngQOfyI2cxs5i4Rb5rDB0GG8E19feZEhjGXcHgY9+5Lq8YA==}
2042 '@cloudflare/workerd-linux-64@1.20260918.1':
2043 resolution: {integrity: sha512-UQ2nnY3qpXLzQ80frmWO+8HvtqyWaQILe8QYZwpemdjT+sqwCz4Dz+0/WVkFco0v/04kIIqikVeLTY/7gEhmkw==}
20432044 engines: {node: '>=16'}
20442045 cpu: [x64]
20452046 os: [linux]
20462047
2047 '@cloudflare/workerd-linux-arm64@1.20260901.1':
2048 resolution: {integrity: sha512-aBk82+sSphMa6uR6h/CFN/GXmELJ2YOgQKYSsOsCTvbVLvHjclmyoEdLTY5FEImvo1ch1uXpGQgTjI8/suHGEg==}
2048 '@cloudflare/workerd-linux-arm64@1.20260918.1':
2049 resolution: {integrity: sha512-4rib51MaLNWweUIUxM/Xj558M5QmyZoBSf0ffv+lYah5VTrvwnez3XGxX72pElnBKHROvAPOi5msQ5Ts8JSI0A==}
20492050 engines: {node: '>=16'}
20502051 cpu: [arm64]
20512052 os: [linux]
20522053
2053 '@cloudflare/workerd-windows-64@1.20260901.1':
2054 resolution: {integrity: sha512-3oJnCV7mWwzqmqz+3E+KYLbw1FylH+8n+p84srWv9MEsY9II1QuKiRKVf3CQTIdTDb6rkr5fCuRtkmLgRpAsNg==}
2054 '@cloudflare/workerd-windows-64@1.20260918.1':
2055 resolution: {integrity: sha512-sATrMx5ShYYgmgUGrcTmvsFSJBFuN95NEkX3xwb1qk8w1A6h5N11sea7yN2IeibwPyPmXKjWNjXOno0hZAM71Q==}
20552056 engines: {node: '>=16'}
20562057 cpu: [x64]
20572058 os: [win32]
......@@ -2059,8 +2060,8 @@ packages:
20592060 '@cloudflare/workers-types@4.20260604.1':
20602061 resolution: {integrity: sha512-nVTydUwPcz9WfwZ/6xAmqs8uUVeGbDVmyPvSYrYAo4CQTyi0122SoE1Suw8RvqnN60XXHPChAjDqSIjnr/mbmg==}
20612062
2062 '@cloudflare/workers-types@5.20260907.1':
2063 resolution: {integrity: sha512-HYI7eFb/MOcNzvbUW7ZwHVZL5YFXb4r6yHN3vx8gJCqde7yhn3bhuPKiQPw90UtGWWp7uOI+Que3kf8Svjn5cw==}
2063 '@cloudflare/workers-types@5.20261004.1':
2064 resolution: {integrity: sha512-K9D4/Y6bSIDNYFzjqzFMNoWK99pLgfgFxqSa76kfW++3VCkTSzJbzsQRffir366G3kmNyjoigC6ekp7DxIkxkw==}
20642065
20652066 '@connectrpc/connect-node@1.7.0':
20662067 resolution: {integrity: sha512-6vaPIkG/NyhxlYgytLoR9KYbPhczEboFB2OYWkA9qvUz1K7efXfeGrlRxoLtpa+r8VxyIOw73w5ktNe743nD+A==}
......@@ -2208,60 +2209,85 @@ packages:
22082209 '@dimforge/rapier3d-compat@0.12.0':
22092210 resolution: {integrity: sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==}
22102211
2211 '@distilled.cloud/aws@1.0.0-rc.12':
2212 resolution: {integrity: sha512-L4TTEwMKB1ymXbYUqvYeoy5UWgmJtqQSzry2qWtAvD2ccwVGy0F7cFViEIYQk7boF4ZIP6SfhAls4+y1fVIi/g==}
2212 '@distilled.cloud/acme@1.0.0-rc.13':
2213 resolution: {integrity: sha512-3rmzH125jQxk0zpCvXGNEybSaqpAolyCX+8LWDDrXf+wIKs67GflkJyQLjOOh0lKARe29hdUZGgqEbbvpp0LNA==}
2214 peerDependencies:
2215 effect: 4.0.1
2216
2217 '@distilled.cloud/aws@1.0.0-rc.13':
2218 resolution: {integrity: sha512-6ZGcp0LkniB0I2l8Gr7vKRQgTZTch0/07iuvuMZv9Nu+rWwNuZG9VHTUdlIoarWgCHFUNN8yvSYBGOjaeN99tQ==}
2219 peerDependencies:
2220 effect: 4.0.1
2221
2222 '@distilled.cloud/axiom@1.0.0-rc.13':
2223 resolution: {integrity: sha512-aRoJtvfXgWi5dtfjuJvDwnArRKvv2MPYHCxYeZcxZbqe62IaQA5yu/khft7TJvxeDyJoSDnVXZu3RyJjNmBA4g==}
2224 peerDependencies:
2225 effect: 4.0.1
2226
2227 '@distilled.cloud/cloudflare@1.0.0-rc.13':
2228 resolution: {integrity: sha512-Py5FoA6azyYExDb91VaeC+9x+ravOBSRhXeUmpcQjCtgqmOdiXgc2YZGMMPI68DF+kMuHRVIrR+2uRZNDOhYjw==}
2229 peerDependencies:
2230 effect: 4.0.1
2231
2232 '@distilled.cloud/core@1.0.0-rc.13':
2233 resolution: {integrity: sha512-RYyrxW+F5zrTuu1UWV/JoycholBCIkXIusYJdDniDwCdmbjdKGl07KlkkeeY774uBawNGf+pt1ESNGeLVnNHsg==}
22132234 peerDependencies:
2214 effect: 4.0.0-rc.115
2235 effect: 4.0.1
22152236
2216 '@distilled.cloud/axiom@1.0.0-rc.12':
2217 resolution: {integrity: sha512-W/Kx0qKXh/RF5bJeLNr73BTLV51AFf7zsP8pG9wv2yGrA8sPj4Xu2z72sBG+TeQZIhNwA8Rh4J8GotNqH/380g==}
2237 '@distilled.cloud/doppler@1.0.0-rc.13':
2238 resolution: {integrity: sha512-GgOEUCc4Bx0C+lYNfZ4OqaA3ULvqDUQTJC8gobSh1L0jfrWclv/kRcSr43v4IXyStld+saUvDfDZgeGzlE74OA==}
22182239 peerDependencies:
2219 effect: 4.0.0-rc.115
2240 effect: 4.0.1
22202241
2221 '@distilled.cloud/cloudflare@1.0.0-rc.12':
2222 resolution: {integrity: sha512-ddcL4RnAx6L8gRWCnE5T1W35ZlerI7SlaRLidX726iG/K/aA+bkU0ND39y7ljJ2Eyx3zR03TfpNrgXAXc9E3ng==}
2242 '@distilled.cloud/fly-io@1.0.0-rc.13':
2243 resolution: {integrity: sha512-Ipp+9nvs+PzqwDPhZq2/BEHNUeWzXKhrvjfT/eBLFHo/QpH0HgdMH8MSQe6/LGszZoormwA6ZrTv2wxaFO7ZiQ==}
22232244 peerDependencies:
2224 effect: 4.0.0-rc.115
2245 effect: 4.0.1
22252246
2226 '@distilled.cloud/core@1.0.0-rc.12':
2227 resolution: {integrity: sha512-YeH/uPohGXp2qIctbqVzBtQV+bUs+K5Zdac8qIid7/t6VlwY964SALme5znRdFu/rQgrloXnaej8iTSK9RIQdA==}
2247 '@distilled.cloud/gcp@1.0.0-rc.13':
2248 resolution: {integrity: sha512-un8jqil9ejt96oN+OfEDUsbrEOpC6Ut4B/73DqKDttvt0Btal1OeBNTTQsftVCpeEzXAvkYKGRIT2AeEu1J5jA==}
22282249 peerDependencies:
2229 effect: 4.0.0-rc.115
2250 effect: 4.0.1
22302251
2231 '@distilled.cloud/fly-io@1.0.0-rc.12':
2232 resolution: {integrity: sha512-ACgR8Kcx/OP8gAF+PnXYneGGZNUqyiQHrcTB3/lRcv5gQdacXhTAvreV/d0t7jclRo5BBdNxnd5TuuHpr9vDLA==}
2252 '@distilled.cloud/hetzner@1.0.0-rc.13':
2253 resolution: {integrity: sha512-FvqofgMypNkeZbnjGjWMZqvqGd9GxcMzdbi/6JrbcPaHMJG+CCBGt/mAa7mLlEovzwVaGCsBnOXJ6rP5pZjB4Q==}
22332254 peerDependencies:
2234 effect: 4.0.0-rc.115
2255 effect: 4.0.1
22352256
2236 '@distilled.cloud/hetzner@1.0.0-rc.12':
2237 resolution: {integrity: sha512-G6QzOXTNply63I90IjOtNofs0nHkEd1we/fgXiOjobLZt4+sKjjNBVTAHYHGMDeidbtxw270oF9JakgT11Pzww==}
2257 '@distilled.cloud/infisical@1.0.0-rc.13':
2258 resolution: {integrity: sha512-Zz8ksA/Y8UUUnWag2UBxB5WYA6wLqOS78ugWJ3cOr9Ot+4bC0NJYWanq35uFInozLXWhun84USU2wOI+mdwQUQ==}
22382259 peerDependencies:
2239 effect: 4.0.0-rc.115
2260 effect: 4.0.1
22402261
2241 '@distilled.cloud/neon@1.0.0-rc.12':
2242 resolution: {integrity: sha512-jiypsVQCcKa9qNgG9HULXNgXj1E4FFO96Hk9p2JX6CEHca7ePldJSJEOf7roogQGC7lrnldBDCiZrxQLOapD3Q==}
2262 '@distilled.cloud/neon@1.0.0-rc.13':
2263 resolution: {integrity: sha512-2JvbBFj1kBfkDVPnWcJZ7TJ1cJwWBtScAY7SNJ2qNBUuAK1Wf2kjJXU0/j16eCJ48BQigPArQFWL51wVu/EUQQ==}
22432264 peerDependencies:
2244 effect: 4.0.0-rc.115
2265 effect: 4.0.1
22452266
2246 '@distilled.cloud/planetscale@1.0.0-rc.12':
2247 resolution: {integrity: sha512-YCTB7soZtqzzgcCAUtrNHjAIsq92XS8cpjnbn3VU+sCQ0LnfnFGeMGJxQ/7qLHtx7Hv4+Ms8XNOs2Q5P81Skig==}
2267 '@distilled.cloud/planetscale@1.0.0-rc.13':
2268 resolution: {integrity: sha512-AM97YGRnDfZdqsxFgQMQ83p7ZlRqxS6/foTTJA5P590UMbbOyrQyFyd33BD0agul8a3ngZde3Oej6v7BN55aWw==}
22482269 peerDependencies:
2249 effect: 4.0.0-rc.115
2270 effect: 4.0.1
22502271
2251 '@distilled.cloud/prisma@1.0.0-rc.12':
2252 resolution: {integrity: sha512-Z1KyUrhxkUt0KdxmNUd29Dtl9NizKv7HFHUuTcA1j6Ar5apUMvlR0f4lKqpliXW8Om3oVS3Wgvm+gDsxul2Ojg==}
2272 '@distilled.cloud/prisma@1.0.0-rc.13':
2273 resolution: {integrity: sha512-+UmHSp9JV8XQl5t5tTdQBY+dWZ9abrEoc7leYEctA0Ar1TrKZEl2EaeQDoumrg4RyGaacRlirEbxaDFI4SOPtQ==}
22532274 peerDependencies:
2254 effect: 4.0.0-rc.115
2275 effect: 4.0.1
22552276
2256 '@distilled.cloud/railway@1.0.0-rc.12':
2257 resolution: {integrity: sha512-KOXSpl7r9qTiOYabJ6wUmM418exzv6YE5BVztaqKSGMuNGP/lAqhZm709/p97Zg6vHpxhJLIgmCq00z7hRM3sQ==}
2277 '@distilled.cloud/railway@1.0.0-rc.13':
2278 resolution: {integrity: sha512-yXalRS3GFLo3hWM0HXptqudi23NVCM4FRD20db2/Ob9FFcNrMJik1fopv+74HOiV+BuxfkCP609KsEK6LVdB/g==}
22582279 peerDependencies:
2259 effect: 4.0.0-rc.115
2280 effect: 4.0.1
22602281
2261 '@distilled.cloud/stripe@1.0.0-rc.12':
2262 resolution: {integrity: sha512-4OuZF362yU66G1jDFDgRFFv8ZNRPZ6lw8Wrd5R/isRNHpGgvggLNlKg1QXWEQaTcRzn3RBXczqQCVwQV9IRZDQ==}
2282 '@distilled.cloud/stripe@1.0.0-rc.13':
2283 resolution: {integrity: sha512-jLTJ1mg4U39lHZb9EGYBJLR91yB3LSG6fVxix+r1BbqaTovWzE+NuJ7fu9fRSeax9jRAqsGLLxe9IxJbOtwQnQ==}
22632284 peerDependencies:
2264 effect: 4.0.0-rc.115
2285 effect: 4.0.1
2286
2287 '@distilled.cloud/zerossl@1.0.0-rc.13':
2288 resolution: {integrity: sha512-dnxhg39lZjpTdZbHCVYPoUC9E2r8eSHbqiYDhSq2EurVPJcc9YRXlxZR1bP1nniSp078XV8GA+aUECt/Z56aQg==}
2289 peerDependencies:
2290 effect: 4.0.1
22652291
22662292 '@dnd-kit/accessibility@3.1.1':
22672293 resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==}
......@@ -2294,52 +2320,52 @@ packages:
22942320 '@drizzle-team/brocli@0.12.0':
22952321 resolution: {integrity: sha512-mlUE+rZ8CatQekLhnaiN91Iemdd+e2gFKooGlnRB3oPTL3VghLfX24dx7HrzMNeC1JrIB/0kpsfyty3f5HNfxQ==}
22962322
2297 '@effect/atom-react@4.0.0-rc.115':
2298 resolution: {integrity: sha512-CUPeP6JmiGyFa4t8YSBEydXAL3kCOzs/5st0kanjqj/rqnekydrThx/l2u2HNTkhqSrQi9HLokMd8QTEpWsdDQ==}
2323 '@effect/atom-react@4.0.1':
2324 resolution: {integrity: sha512-V/vcbFCVY2AV7PvjhmOP37Cr4NofrtxBBGW6M1ckBIBxmpi3sMwdPTxj2obPNE4Ho3gkeEQzRC9zEIQ4BDNdQg==}
22992325 peerDependencies:
2300 effect: 4.0.0-rc.115
2326 effect: 4.0.1
23012327 react: '>=19.0.0 <20.0.0'
23022328 scheduler: '>=0.25.0 <0.28.0'
23032329
2304 '@effect/openapi-generator@4.0.0-rc.115':
2305 resolution: {integrity: sha512-/AkcQ4GdoTTa7CwkybSnKc0U0FhOCA+TAV6E93Ozz4XshgKCC2F75Zik+3EOlTfbENmvAsYNEIVrPfqupoO+ng==}
2330 '@effect/openapi-generator@4.0.1':
2331 resolution: {integrity: sha512-UWlXX1cjP68FDQyc+mlwfh34OpCKlnAREFpWk9DG6fzmw/w/+FvIyadZvS1y7G2b8U2e/khO0f3p5ak0DTC9Ng==}
23062332 hasBin: true
23072333 peerDependencies:
2308 '@effect/platform-node': 4.0.0-rc.115
2309 effect: 4.0.0-rc.115
2334 '@effect/platform-node': 4.0.1
2335 effect: 4.0.1
23102336
2311 '@effect/platform-node-shared@4.0.0-rc.115':
2312 resolution: {integrity: sha512-rcBwhDIfb82akJoTv7Vwh8K5x9vC/XfuePS7JjOr+z+dORXzsmKqI1BUQF27ARCN9fTAbDh7I6YvBlWhLjnqNg==}
2337 '@effect/platform-node-shared@4.0.1':
2338 resolution: {integrity: sha512-VanaejudEhKJ4mpmqnEzdncVUhN6sGSO9ZDND54mRxAlZxj+4dYAWjDTYAy9o4tJo9aALeP2U8cVcOFzEdSeLg==}
23132339 engines: {node: '>=18.0.0'}
23142340 peerDependencies:
2315 effect: 4.0.0-rc.115
2341 effect: 4.0.1
23162342
2317 '@effect/platform-node@4.0.0-rc.115':
2318 resolution: {integrity: sha512-mW03Wjq2FiTL5oi9yOkaKpCyUNBaduKgTk7qMHNELvC21Jq2qOAfdsfH+p+s2zmpB9w2RSa+ApODv4WjO9wQfw==}
2343 '@effect/platform-node@4.0.1':
2344 resolution: {integrity: sha512-FT0Fu5LO0/XP9zBpj0HqrtJNLluK4StNKqf6TSulUsjp8FPBsDVXGJiDuyoN5J2yVMT7tgvhxSwaDcObWVRIaQ==}
23192345 engines: {node: '>=18.0.0'}
23202346 peerDependencies:
2321 effect: 4.0.0-rc.115
2347 effect: 4.0.1
23222348 redis: '>=5.0.0 <7.0.0'
23232349
2324 '@effect/sql-d1@4.0.0-rc.115':
2325 resolution: {integrity: sha512-o2JkGjN02NBMxwDtJbwcC4teyMiOApqN085fdVMid4FUC6ixj/WyKyPpe51QGOMQQTTl2BkXccA/IwDIywGXlA==}
2350 '@effect/sql-d1@4.0.0':
2351 resolution: {integrity: sha512-pmkzncZCGD6CLyvc89keEBU85h+gHVCu/LKQnThd+ruYSUbG0R9jYA+lnk3R8Djp0wQW6SbsbmHQuhopIYyo3Q==}
23262352 peerDependencies:
2327 effect: 4.0.0-rc.115
2353 effect: 4.0.1
23282354
2329 '@effect/sql-pg@4.0.0-rc.115':
2330 resolution: {integrity: sha512-TLdzqBvGF/HwAKpWTw/5ih7JqVkkakVSb4aD6amzMaavFfFl4vsqqeKjSBijwuzbOMANNN0HqnEt/9fgjTsFEA==}
2355 '@effect/sql-pg@4.0.1':
2356 resolution: {integrity: sha512-X5aqOxHNWqVXL+vyTQZLYDip65lm5rrZHuNkWyyr672iup1tjYAs5Dn9tHR5h1t0blpJ57j8Ng5G5AUQ8teIqA==}
23312357 peerDependencies:
2332 effect: 4.0.0-rc.115
2358 effect: 4.0.1
23332359
23342360 '@effect/sql-sqlite-bun@4.0.0-rc.112':
23352361 resolution: {integrity: sha512-EqR8pWZo3VzedRvP6qo5HcfqNmFvSa+sQLWQl3oBMx2KY1FCc8NYjep79wYjNkW0qABnffrPUXCMTOncd1A+5g==}
23362362 peerDependencies:
2337 effect: 4.0.0-rc.115
2363 effect: 4.0.1
23382364
2339 '@effect/sql-sqlite-do@4.0.0-rc.115':
2340 resolution: {integrity: sha512-7lH9h+w4DW2tI+dus4hEac5mSCy1wgiT+uw/VvjR8YhNDemd3zEFY03NkbD81ipfOpnu2QA1YwgM58ExyPlhug==}
2365 '@effect/sql-sqlite-do@4.0.0':
2366 resolution: {integrity: sha512-XkRZmQOPblzwjmAJ0RWSOiLlTsKkf1EigZsxUNuIuk4uZ/pnufSqvDpXubCwv8iyRTbOLFMmM+EyOEH5V5XqAw==}
23412367 peerDependencies:
2342 effect: 4.0.0-rc.115
2368 effect: 4.0.1
23432369
23442370 '@effect/tsgo-darwin-arm64@0.41.0':
23452371 resolution: {integrity: sha512-3iEPtcHF72yDjv7T5YpnX+Io1LDLywJb1oGG3Fp/Fth4xmqiT1Vacyz5wnPCfEWGQ6CyrlyCZSSjUxPyJ70+DQ==}
......@@ -2380,10 +2406,10 @@ packages:
23802406 resolution: {integrity: sha512-C/U7lFM0AXsfpqRilDOgwu+llBhAo8bcdIlzgbRWf1LWlU4KZKB2UsUvBPL3qPnm+wmbCvQLeTQc4BjV9oJrcg==}
23812407 hasBin: true
23822408
2383 '@effect/vitest@4.0.0-rc.115':
2384 resolution: {integrity: sha512-DJR0hfdr3HNXAkzW8AzfvUz6VmrNFLrKk9tZGDURi33faMyxkc7ZewxELMMZwGpOTGN4mfqYVbX2CXgI+ZJBeQ==}
2409 '@effect/vitest@4.0.1':
2410 resolution: {integrity: sha512-DbY9kf/018zBxRIX7rJwBnPVPzSarnUpcshm0vfYPFiDkSa7AFrXTh2BlDNUbrdrmqcIOBhVZ7GkEtxf8WiQrg==}
23852411 peerDependencies:
2386 effect: 4.0.0-rc.115
2412 effect: 4.0.1
23872413
23882414 '@electric-sql/pglite@0.3.15':
23892415 resolution: {integrity: sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==}
......@@ -3552,6 +3578,15 @@ packages:
35523578 '@neon-rs/load@0.0.4':
35533579 resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==}
35543580
3581 '@neon/functions@0.11.0':
3582 resolution: {integrity: sha512-xyIEk9aULR2nBTzyTgxljkM8aS+Ppe9oVw/t5mdqYOlY/mLFppHSZHq8hiWVDWy6Ca8oLd3loTtfVz+cZQQjsA==}
3583 engines: {node: '>=20.19.0'}
3584 peerDependencies:
3585 hono: ^4.7.8
3586 peerDependenciesMeta:
3587 hono:
3588 optional: true
3589
35553590 '@noble/curves@1.9.1':
35563591 resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==}
35573592 engines: {node: ^14.21.3 || >=16}
......@@ -3571,9 +3606,6 @@ packages:
35713606 '@nodable/entities@2.1.1':
35723607 resolution: {integrity: sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==}
35733608
3574 '@nodable/entities@3.0.0':
3575 resolution: {integrity: sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==}
3576
35773609 '@nornagon/put@0.0.8':
35783610 resolution: {integrity: sha512-ugvXJjwF5ldtUpa7D95kruNJ41yFQDEKyF5CW4TgKJnh+W/zmlBzXXeKTyqIgwMFrkePN2JqOBqcF0M0oOunow==}
35793611 engines: {node: '>=0.3.0'}
......@@ -3705,10 +3737,10 @@ packages:
37053737 '@opencode-ai/sdk@1.15.13':
37063738 resolution: {integrity: sha512-4TwojIoQ8EG6/mVBuUVYZXiFcwNmiiytEnjnvyuvSJjGwFIlw2YIBFxtSVC3FbwwbwHT63teh1RHiQUUC4U5xw==}
37073739
3708 '@opencode/client@2.0.18':
3709 resolution: {integrity: sha512-N74FNdXkTTC1Re5T+PNxH6fsVf1tZiV3kESu3UWL/545oAkBRXoiikMmDszuuHZ4AxGwtr9NiQjKrHiMdnLVYQ==}
3740 '@opencode/client@2.0.23':
3741 resolution: {integrity: sha512-tHfYu7sKNxFu2dZ7Pu5vZG4T8GHqU71ZCsXHZ/RoI0LLdG7t2zwePHWR9aNbcSP+jDUGyaQlzr5utC9Uduczvg==}
37103742 peerDependencies:
3711 effect: 4.0.0-rc.115
3743 effect: 4.0.1
37123744 solid-js: '>=1.9.0'
37133745 peerDependenciesMeta:
37143746 effect:
......@@ -3716,11 +3748,11 @@ packages:
37163748 solid-js:
37173749 optional: true
37183750
3719 '@opencode/protocol@2.0.18':
3720 resolution: {integrity: sha512-IhzzlCz/hAlFvBLWQ+kDceX0/CkYOrjVyTPwYJYvWwKze5AHzVxxDYxkhCqLJj0hn/wtdNL10nhjVothuHcaBQ==}
3751 '@opencode/protocol@2.0.23':
3752 resolution: {integrity: sha512-acwAvjQgzzBsZ0h2Phvo+P/SurCexqcidPL2AYB6cDDPgOhY7ppeoKJAOQ76zAUcT4WBlcQzLl6Lq3L+IR6OEw==}
37213753
3722 '@opencode/schema@2.0.18':
3723 resolution: {integrity: sha512-f+lp6f+kxhygdeSxjqkiu6vk9t0onH/6OVBghSNyo9ZUUFP9BU/2JKthMgy9kHGyFu2vp0lg01H9umXn76u52A==}
3754 '@opencode/schema@2.0.23':
3755 resolution: {integrity: sha512-DglA+CCNmCaiAJ8FqAKo2EKIkCOF9/EmMEYowcXhTrQcoJ7eaTx7ytGjPgis6VHQuU4aaAgwZYw96ypS3ojsIw==}
37243756
37253757 '@oslojs/encoding@1.1.0':
37263758 resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==}
......@@ -4906,10 +4938,6 @@ packages:
49064938 resolution: {integrity: sha512-ZAFvHXrEk6K180EVhmZVg8GU5pUH5BSFqRs27JW3j1qEFx9YyYwWFx17x/MHcjALYimGAji7qEOlF1++be+G5A==}
49074939 engines: {node: '>=18.0.0'}
49084940
4909 '@smithy/shared-ini-file-loader@4.7.2':
4910 resolution: {integrity: sha512-XsIDj5gVG4YRxGS4n4TiBDAogPWRHXKZyor6JW/sEuaa/7BvKADe9j45jI2dPYCnYbKkLBmbZ4qN9ns0sH+kMQ==}
4911 engines: {node: '>=18.0.0'}
4912
49134941 '@smithy/signature-v4@5.4.6':
49144942 resolution: {integrity: sha512-Ojg4B6oIDlIr1R86xCDJt1zJWnYa0VINmqdjfe9qxWjdRivHalZ3iSlQgVqYbW0MdpFOC5XfHEWsnbmdnpIILQ==}
49154943 engines: {node: '>=18.0.0'}
......@@ -4918,10 +4946,6 @@ packages:
49184946 resolution: {integrity: sha512-CgB6HHWer/vrKps24ulRIbpcpb7K4xAU7SkZ7YHzBPlwHsvsrCJFEXK421s+cJzX+ZrqtA/TuU5w1HzI7k9N8A==}
49194947 engines: {node: '>=18.0.0'}
49204948
4921 '@smithy/util-base64@4.6.2':
4922 resolution: {integrity: sha512-wTQX1hPfElIqY6AzM/s6c4UgpMxCL4MwJ5u6340ksLPq78lur6Y+keheIDk5gMX4G3KFh4MERcDt6xhRq+ie1Q==}
4923 engines: {node: '>=18.0.0'}
4924
49254949 '@smithy/util-buffer-from@2.2.0':
49264950 resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==}
49274951 engines: {node: '>=14.0.0'}
......@@ -6246,23 +6270,26 @@ packages:
62466270 ajv@8.20.0:
62476271 resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==}
62486272
6249 alchemy@2.0.0-beta.79:
6250 resolution: {integrity: sha512-pn48ye2fenePmhVFkQHPP1zNlpPN/5HzsWerrgKE8N9ljBUJgwgQeL+3QyeWhxGwxttsaSGc/o5JZPppTTL4UQ==}
6273 alchemy@2.0.0-beta.80:
6274 resolution: {integrity: sha512-2y7mswypPiApxuEdp8NGMfzCGB5+9W6OmQAuePyZ2xBkgoCpEqtKAnASuvKGUZPSYNESENbamXDuI5428ewu9w==}
62516275 hasBin: true
62526276 peerDependencies:
6253 '@alchemy.run/frontend-frameworks': 2.0.0-beta.79
6277 '@alchemy.run/frontend-frameworks': 2.0.0-beta.80
62546278 '@aws/durable-execution-sdk-js': ^2.1.0
6255 '@effect/platform-bun': '>=4.0.0-rc.115 || >=4.0.0'
6256 '@effect/platform-node': 4.0.0-rc.115
6257 '@effect/sql-mysql2': '>=4.0.0-rc.115 || >=4.0.0'
6258 '@effect/sql-pg': 4.0.0-rc.115
6279 '@effect/platform-bun': ^4.0.0
6280 '@effect/platform-node': 4.0.1
6281 '@effect/sql-mysql2': ^4.0.0
6282 '@effect/sql-pg': 4.0.1
6283 '@effect/vitest': 4.0.1
6284 '@prisma/orm-postgres': 8.0.0-rc.11
62596285 '@vercel/nft': ^1.10.2
62606286 drizzle-kit: 1.0.0-rc.5-ab785fc
62616287 drizzle-orm: 1.0.0-rc.5-ab785fc
6262 effect: 4.0.0-rc.115
6288 effect: 4.0.1
62636289 mongodb: ^6.10.0
62646290 mysql2: ^3.24.2
62656291 pg: ^8.22.0
6292 prisma: 8.0.0-rc.15
62666293 vite: ^8.0.7
62676294 ws: ^8.21.0
62686295 peerDependenciesMeta:
......@@ -6278,6 +6305,10 @@ packages:
62786305 optional: true
62796306 '@effect/sql-pg':
62806307 optional: true
6308 '@effect/vitest':
6309 optional: true
6310 '@prisma/orm-postgres':
6311 optional: true
62816312 '@vercel/nft':
62826313 optional: true
62836314 drizzle-kit:
......@@ -6290,6 +6321,8 @@ packages:
62906321 optional: true
62916322 pg:
62926323 optional: true
6324 prisma:
6325 optional: true
62936326 vite:
62946327 optional: true
62956328 ws:
......@@ -7282,7 +7315,7 @@ packages:
72827315 '@effect/sql-d1': '>=4.0.0-beta.105 || >=4.0.0'
72837316 '@effect/sql-libsql': '>=4.0.0-beta.105 || >=4.0.0'
72847317 '@effect/sql-mysql2': '>=4.0.0-beta.105 || >=4.0.0'
7285 '@effect/sql-pg': 4.0.0-rc.115
7318 '@effect/sql-pg': 4.0.1
72867319 '@effect/sql-pglite': '>=4.0.0-beta.105 || >=4.0.0'
72877320 '@effect/sql-sqlite-bun': '>=4.0.0-beta.105 || >=4.0.0'
72887321 '@effect/sql-sqlite-do': '>=4.0.0-beta.105 || >=4.0.0'
......@@ -7313,7 +7346,7 @@ packages:
73137346 arktype: '>=2.0.0'
73147347 better-sqlite3: '>=9.3.0'
73157348 bun-types: '*'
7316 effect: 4.0.0-rc.115
7349 effect: 4.0.1
73177350 expo-sqlite: '>=14.0.0'
73187351 minipg: '>=0.2.0'
73197352 mssql: ^11.0.1
......@@ -7440,8 +7473,8 @@ packages:
74407473 ee-first@1.1.1:
74417474 resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==}
74427475
7443 effect@4.0.0-rc.115:
7444 resolution: {integrity: sha512-ogYulZ5ffeOzrJqQrG0XOkDO5lKn2s9KNHhoxJy/6wKUkF0i12dlVXWA9TgsgQ+zV/JzizyG0+XMPepZEQX6vw==}
7476 effect@4.0.1:
7477 resolution: {integrity: sha512-b1VlQG9g8fwxE5QnIZuPoOP/0MsqHJSRKxUijjoM80E5q95FXrX5yWtY5XI8G+GJsBQAVSDbLS458z9a++uVvw==}
74457478
74467479 ejs@3.1.10:
74477480 resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==}
......@@ -7995,10 +8028,6 @@ packages:
79958028 fast-xml-builder@1.2.0:
79968029 resolution: {integrity: sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==}
79978030
7998 fast-xml-parser@5.11.1:
7999 resolution: {integrity: sha512-TBw6K/fxoQGGjCmZDw9w/ZwP3uDcnTM4YH/g+PFRWr8sbe5idXtxNN6vITh4+1ruCZaho6uBFurElsA7F0zzgw==}
8000 hasBin: true
8001
80028031 fast-xml-parser@5.7.3:
80038032 resolution: {integrity: sha512-C0AaNuC+mscy6vrAQKAc/rMq+zAPHodfHGZu4sGVehvAQt/JLG1O5zEcYcXSY5zSqr4YVgxsB+pHXTq0i7eDlg==}
80048033 hasBin: true
......@@ -8478,9 +8507,6 @@ packages:
84788507 resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==}
84798508 engines: {node: '>=18'}
84808509
8481 is-unsafe@2.0.2:
8482 resolution: {integrity: sha512-HgbIHPBH0KHHCcjLfGsCvhtPTVxjaAZlXjwdz7/GQC40SjSe4sfQsar8J5VFo8JOSbarkpV0OLG95bbaNd9aAQ==}
8483
84848510 is-wsl@2.2.0:
84858511 resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==}
84868512 engines: {node: '>=8'}
......@@ -9486,7 +9512,7 @@ packages:
94869512 hasBin: true
94879513 peerDependencies:
94889514 svelte: ^5.0.0
9489 vite-plus: '*'
9515 vite-plus: 1.0.0
94909516 peerDependenciesMeta:
94919517 svelte:
94929518 optional: true
......@@ -9503,7 +9529,7 @@ packages:
95039529 hasBin: true
95049530 peerDependencies:
95059531 oxlint-tsgolint: '>=7.0.2001'
9506 vite-plus: '*'
9532 vite-plus: 1.0.0
95079533 peerDependenciesMeta:
95089534 oxlint-tsgolint:
95099535 optional: true
......@@ -10853,6 +10879,10 @@ packages:
1085310879 resolution: {integrity: sha512-/y4/bH9YNU5hi9NIrpOuvGXFcxrj3CMrV+/AYpowAYTpHn8gX/XPFjNy766FPoYY0miQhdW977JFWKGNhBdwyQ==}
1085410880 engines: {node: '>=22.19.0'}
1085510881
10882 undici@8.11.2:
10883 resolution: {integrity: sha512-u4UB2/IrKdU6lFxumHmmo1a3fCQO5tzQllRorfoRS63txhrB7xTpSn1PftwC4qEHkOaqP95fCWW4lJzwErwzhQ==}
10884 engines: {node: '>=22.19.0'}
10885
1085610886 unenv@2.0.0-rc.24:
1085710887 resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==}
1085810888
......@@ -11316,8 +11346,8 @@ packages:
1131611346 engines: {node: '>=8'}
1131711347 hasBin: true
1131811348
11319 workerd@1.20260901.1:
11320 resolution: {integrity: sha512-Z5PVprrPRlV70+RzgbFpzoPpjCLGtErhsQ9Ahe96pe7hJGMsmexTU4+rhUPH+2Sguf7vRAxFFsqXpkIleRFSPA==}
11349 workerd@1.20260918.1:
11350 resolution: {integrity: sha512-NsjfQlBNQ0iEniv/STOy4zbp8s5k60PzL1Ter02Eg44arbDhHtf6UOs03E31XDRmmBFxSIkAZuCyld3RKH1wqA==}
1132111351 engines: {node: '>=16'}
1132211352 hasBin: true
1132311353
......@@ -11360,6 +11390,18 @@ packages:
1136011390 utf-8-validate:
1136111391 optional: true
1136211392
11393 ws@8.22.0:
11394 resolution: {integrity: sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==}
11395 engines: {node: '>=10.0.0'}
11396 peerDependencies:
11397 bufferutil: ^4.0.1
11398 utf-8-validate: '>=5.0.2'
11399 peerDependenciesMeta:
11400 bufferutil:
11401 optional: true
11402 utf-8-validate:
11403 optional: true
11404
1136311405 xcode@3.0.1:
1136411406 resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==}
1136511407 engines: {node: '>=10.0.0'}
......@@ -11372,10 +11414,6 @@ packages:
1137211414 resolution: {integrity: sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==}
1137311415 engines: {node: '>=16.0.0'}
1137411416
11375 xml-naming@0.3.0:
11376 resolution: {integrity: sha512-ghig2TBE/H11aOVgmahA3MhimvkBr6JIYknH/Dhdk10nXwdbIqBJsbfMxpvFPG8bAw77gN29aQWvKpmVoPlvPQ==}
11377 engines: {node: '>=16.0.0'}
11378
1137911417 xml2js@0.4.23:
1138011418 resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==}
1138111419 engines: {node: '>=4.0.0'}
......@@ -11528,22 +11566,22 @@ snapshots:
1152811566 dependencies:
1152911567 json-schema: 0.4.0
1153011568
11531 '@alchemy.run/cloudflare-runtime@2.0.0-beta.79(@distilled.cloud/cloudflare@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)))(@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(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.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(rolldown@1.2.5)(typescript@7.0.2)':
11569 '@alchemy.run/cloudflare-runtime@2.0.0-beta.80(@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)))(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(rolldown@1.2.5)(typescript@7.0.2)':
1153211570 dependencies:
11533 '@alchemy.run/node-utils': 2.0.0-beta.79
11534 '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260901.1)
11535 '@distilled.cloud/cloudflare': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
11571 '@alchemy.run/node-utils': 2.0.0-beta.80
11572 '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260918.1)
11573 '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
1153611574 '@puppeteer/browsers': 3.2.2(yauzl@3.4.0)
1153711575 capnp-es: 0.0.16(typescript@7.0.2)
11538 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
11576 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1153911577 magic-string: 0.30.21
1154011578 mime: 4.1.0
1154111579 sharp: 0.35.4(@types/node@24.12.4)
1154211580 unenv: 2.0.0-rc.24
11543 workerd: 1.20260901.1
11581 workerd: 1.20260918.1
1154411582 yauzl: 3.4.0
1154511583 optionalDependencies:
11546 '@effect/platform-node': 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6)
11584 '@effect/platform-node': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6)
1154711585 rolldown: 1.2.5
1154811586 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)'
1154911587 transitivePeerDependencies:
......@@ -11551,16 +11589,16 @@ snapshots:
1155111589 - proxy-agent
1155211590 - typescript
1155311591
11554 '@alchemy.run/floci@2.0.0-beta.79(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
11592 '@alchemy.run/floci@2.0.0-beta.80(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1155511593 dependencies:
11556 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
11594 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1155711595
11558 '@alchemy.run/node-utils@2.0.0-beta.79':
11596 '@alchemy.run/node-utils@2.0.0-beta.80':
1155911597 dependencies:
1156011598 chokidar: 5.0.0
1156111599 rolldown: 1.2.5
1156211600
11563 '@alchemy.run/sigil@0.0.0-alpha.11(@types/react@19.3.0)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))':
11601 '@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))':
1156411602 optionalDependencies:
1156511603 '@types/react': 19.3.0
1156611604 react-devtools-core: 6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6)
......@@ -11735,22 +11773,26 @@ snapshots:
1173511773 '@aws-sdk/util-locate-window': 3.965.5
1173611774 '@smithy/util-utf8': 2.3.0
1173711775 tslib: 2.8.1
11776 optional: true
1173811777
1173911778 '@aws-crypto/sha256-js@5.2.0':
1174011779 dependencies:
1174111780 '@aws-crypto/util': 5.2.0
1174211781 '@aws-sdk/types': 3.974.5
1174311782 tslib: 2.8.1
11783 optional: true
1174411784
1174511785 '@aws-crypto/supports-web-crypto@5.2.0':
1174611786 dependencies:
1174711787 tslib: 2.8.1
11788 optional: true
1174811789
1174911790 '@aws-crypto/util@5.2.0':
1175011791 dependencies:
1175111792 '@aws-sdk/types': 3.974.5
1175211793 '@smithy/util-utf8': 2.3.0
1175311794 tslib: 2.8.1
11795 optional: true
1175411796
1175511797 '@aws-sdk/client-cognito-identity@3.1062.0':
1175611798 dependencies:
......@@ -11764,6 +11806,7 @@ snapshots:
1176411806 '@smithy/node-http-handler': 4.7.7
1176511807 '@smithy/types': 4.18.0
1176611808 tslib: 2.8.1
11809 optional: true
1176711810
1176811811 '@aws-sdk/core@3.974.17':
1176911812 dependencies:
......@@ -11775,6 +11818,7 @@ snapshots:
1177511818 '@smithy/types': 4.18.0
1177611819 bowser: 2.14.1
1177711820 tslib: 2.8.1
11821 optional: true
1177811822
1177911823 '@aws-sdk/credential-provider-cognito-identity@3.972.41':
1178011824 dependencies:
......@@ -11783,6 +11827,7 @@ snapshots:
1178311827 '@smithy/core': 3.34.1
1178411828 '@smithy/types': 4.18.0
1178511829 tslib: 2.8.1
11830 optional: true
1178611831
1178711832 '@aws-sdk/credential-provider-env@3.972.43':
1178811833 dependencies:
......@@ -11791,6 +11836,7 @@ snapshots:
1179111836 '@smithy/core': 3.34.1
1179211837 '@smithy/types': 4.18.0
1179311838 tslib: 2.8.1
11839 optional: true
1179411840
1179511841 '@aws-sdk/credential-provider-http@3.972.45':
1179611842 dependencies:
......@@ -11801,6 +11847,7 @@ snapshots:
1180111847 '@smithy/node-http-handler': 4.7.7
1180211848 '@smithy/types': 4.18.0
1180311849 tslib: 2.8.1
11850 optional: true
1180411851
1180511852 '@aws-sdk/credential-provider-ini@3.972.49':
1180611853 dependencies:
......@@ -11817,6 +11864,7 @@ snapshots:
1181711864 '@smithy/credential-provider-imds': 4.3.8
1181811865 '@smithy/types': 4.18.0
1181911866 tslib: 2.8.1
11867 optional: true
1182011868
1182111869 '@aws-sdk/credential-provider-login@3.972.48':
1182211870 dependencies:
......@@ -11826,6 +11874,7 @@ snapshots:
1182611874 '@smithy/core': 3.34.1
1182711875 '@smithy/types': 4.18.0
1182811876 tslib: 2.8.1
11877 optional: true
1182911878
1183011879 '@aws-sdk/credential-provider-node@3.972.51':
1183111880 dependencies:
......@@ -11840,6 +11889,7 @@ snapshots:
1184011889 '@smithy/credential-provider-imds': 4.3.8
1184111890 '@smithy/types': 4.18.0
1184211891 tslib: 2.8.1
11892 optional: true
1184311893
1184411894 '@aws-sdk/credential-provider-process@3.972.43':
1184511895 dependencies:
......@@ -11848,6 +11898,7 @@ snapshots:
1184811898 '@smithy/core': 3.34.1
1184911899 '@smithy/types': 4.18.0
1185011900 tslib: 2.8.1
11901 optional: true
1185111902
1185211903 '@aws-sdk/credential-provider-sso@3.972.48':
1185311904 dependencies:
......@@ -11858,6 +11909,7 @@ snapshots:
1185811909 '@smithy/core': 3.34.1
1185911910 '@smithy/types': 4.18.0
1186011911 tslib: 2.8.1
11912 optional: true
1186111913
1186211914 '@aws-sdk/credential-provider-web-identity@3.972.48':
1186311915 dependencies:
......@@ -11867,6 +11919,7 @@ snapshots:
1186711919 '@smithy/core': 3.34.1
1186811920 '@smithy/types': 4.18.0
1186911921 tslib: 2.8.1
11922 optional: true
1187011923
1187111924 '@aws-sdk/credential-providers@3.1062.0':
1187211925 dependencies:
......@@ -11887,6 +11940,7 @@ snapshots:
1188711940 '@smithy/credential-provider-imds': 4.3.8
1188811941 '@smithy/types': 4.18.0
1188911942 tslib: 2.8.1
11943 optional: true
1189011944
1189111945 '@aws-sdk/nested-clients@3.997.16':
1189211946 dependencies:
......@@ -11900,6 +11954,7 @@ snapshots:
1190011954 '@smithy/node-http-handler': 4.7.7
1190111955 '@smithy/types': 4.18.0
1190211956 tslib: 2.8.1
11957 optional: true
1190311958
1190411959 '@aws-sdk/signature-v4-multi-region@3.996.31':
1190511960 dependencies:
......@@ -11907,6 +11962,7 @@ snapshots:
1190711962 '@smithy/signature-v4': 5.4.6
1190811963 '@smithy/types': 4.18.0
1190911964 tslib: 2.8.1
11965 optional: true
1191011966
1191111967 '@aws-sdk/token-providers@3.1062.0':
1191211968 dependencies:
......@@ -11916,23 +11972,28 @@ snapshots:
1191611972 '@smithy/core': 3.34.1
1191711973 '@smithy/types': 4.18.0
1191811974 tslib: 2.8.1
11975 optional: true
1191911976
1192011977 '@aws-sdk/types@3.974.5':
1192111978 dependencies:
1192211979 '@smithy/types': 4.18.0
1192311980 tslib: 2.8.1
11981 optional: true
1192411982
1192511983 '@aws-sdk/util-locate-window@3.965.5':
1192611984 dependencies:
1192711985 tslib: 2.8.1
11986 optional: true
1192811987
1192911988 '@aws-sdk/xml-builder@3.972.27':
1193011989 dependencies:
1193111990 '@smithy/types': 4.18.0
1193211991 fast-xml-parser: 5.7.3
1193311992 tslib: 2.8.1
11993 optional: true
1193411994
11935 '@aws/lambda-invoke-store@0.2.4': {}
11995 '@aws/lambda-invoke-store@0.2.4':
11996 optional: true
1193611997
1193711998 '@babel/code-frame@7.29.7':
1193811999 dependencies:
......@@ -12690,30 +12751,30 @@ snapshots:
1269012751 react: 19.3.0
1269112752 react-dom: 19.3.0(react@19.3.0)
1269212753
12693 '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260901.1)':
12754 '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260918.1)':
1269412755 dependencies:
1269512756 unenv: 2.0.0-rc.24
1269612757 optionalDependencies:
12697 workerd: 1.20260901.1
12758 workerd: 1.20260918.1
1269812759
12699 '@cloudflare/workerd-darwin-64@1.20260901.1':
12760 '@cloudflare/workerd-darwin-64@1.20260918.1':
1270012761 optional: true
1270112762
12702 '@cloudflare/workerd-darwin-arm64@1.20260901.1':
12763 '@cloudflare/workerd-darwin-arm64@1.20260918.1':
1270312764 optional: true
1270412765
12705 '@cloudflare/workerd-linux-64@1.20260901.1':
12766 '@cloudflare/workerd-linux-64@1.20260918.1':
1270612767 optional: true
1270712768
12708 '@cloudflare/workerd-linux-arm64@1.20260901.1':
12769 '@cloudflare/workerd-linux-arm64@1.20260918.1':
1270912770 optional: true
1271012771
12711 '@cloudflare/workerd-windows-64@1.20260901.1':
12772 '@cloudflare/workerd-windows-64@1.20260918.1':
1271212773 optional: true
1271312774
1271412775 '@cloudflare/workers-types@4.20260604.1': {}
1271512776
12716 '@cloudflare/workers-types@5.20260907.1': {}
12777 '@cloudflare/workers-types@5.20261004.1': {}
1271712778
1271812779 '@connectrpc/connect-node@1.7.0(@bufbuild/protobuf@1.10.0)(@connectrpc/connect@1.7.0(@bufbuild/protobuf@1.10.0))':
1271912780 dependencies:
......@@ -12822,65 +12883,86 @@ snapshots:
1282212883
1282312884 '@dimforge/rapier3d-compat@0.12.0': {}
1282412885
12825 '@distilled.cloud/aws@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
12886 '@distilled.cloud/acme@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1282612887 dependencies:
12827 '@aws-sdk/types': 3.974.5
12828 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
12829 '@smithy/shared-ini-file-loader': 4.7.2
12888 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
12889 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
12890
12891 '@distilled.cloud/aws@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
12892 dependencies:
12893 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
1283012894 '@smithy/types': 4.18.0
12831 '@smithy/util-base64': 4.6.2
12832 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
12833 fast-xml-parser: 5.11.1
12895 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1283412896
12835 '@distilled.cloud/axiom@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
12897 '@distilled.cloud/axiom@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1283612898 dependencies:
12837 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
12838 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
12899 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
12900 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1283912901
12840 '@distilled.cloud/cloudflare@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
12902 '@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1284112903 dependencies:
12842 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
12843 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
12904 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
12905 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1284412906
12845 '@distilled.cloud/core@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
12907 '@distilled.cloud/core@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1284612908 dependencies:
12847 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
12909 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1284812910 graphql: 16.11.0
1284912911
12850 '@distilled.cloud/fly-io@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
12912 '@distilled.cloud/doppler@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
12913 dependencies:
12914 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
12915 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
12916
12917 '@distilled.cloud/fly-io@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
12918 dependencies:
12919 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
12920 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
12921
12922 '@distilled.cloud/gcp@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
12923 dependencies:
12924 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
12925 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
12926
12927 '@distilled.cloud/hetzner@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1285112928 dependencies:
12852 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
12853 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
12929 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
12930 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1285412931
12855 '@distilled.cloud/hetzner@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
12932 '@distilled.cloud/infisical@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1285612933 dependencies:
12857 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
12858 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
12934 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
12935 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1285912936
12860 '@distilled.cloud/neon@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
12937 '@distilled.cloud/neon@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1286112938 dependencies:
12862 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
12863 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
12939 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
12940 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1286412941
12865 '@distilled.cloud/planetscale@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
12942 '@distilled.cloud/planetscale@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1286612943 dependencies:
12867 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
12868 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
12944 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
12945 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1286912946
12870 '@distilled.cloud/prisma@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
12947 '@distilled.cloud/prisma@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1287112948 dependencies:
12872 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
12873 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
12949 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
12950 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1287412951
12875 '@distilled.cloud/railway@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
12952 '@distilled.cloud/railway@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1287612953 dependencies:
12877 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
12878 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
12954 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
12955 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1287912956
12880 '@distilled.cloud/stripe@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
12957 '@distilled.cloud/stripe@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1288112958 dependencies:
12882 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
12883 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
12959 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
12960 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
12961
12962 '@distilled.cloud/zerossl@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
12963 dependencies:
12964 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
12965 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1288412966
1288512967 '@dnd-kit/accessibility@3.1.1(react@19.2.6)':
1288612968 dependencies:
......@@ -12916,62 +12998,62 @@ snapshots:
1291612998
1291712999 '@drizzle-team/brocli@0.12.0': {}
1291813000
12919 '@effect/atom-react@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(react@19.2.6)(scheduler@0.27.0)':
13001 '@effect/atom-react@4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(react@19.2.6)(scheduler@0.28.0)':
1292013002 dependencies:
12921 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
13003 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1292213004 react: 19.2.6
12923 scheduler: 0.27.0
13005 scheduler: 0.28.0
1292413006
12925 '@effect/atom-react@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(react@19.3.0)(scheduler@0.27.0)':
13007 '@effect/atom-react@4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(react@19.3.0)(scheduler@0.28.0)':
1292613008 dependencies:
12927 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
13009 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1292813010 react: 19.3.0
12929 scheduler: 0.27.0
13011 scheduler: 0.28.0
1293013012
12931 '@effect/openapi-generator@4.0.0-rc.115(@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(encoding@0.1.13)':
13013 '@effect/openapi-generator@4.0.1(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(encoding@0.1.13)':
1293213014 dependencies:
12933 '@effect/platform-node': 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6)
12934 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
13015 '@effect/platform-node': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6)
13016 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1293513017 swagger2openapi: 7.0.8(encoding@0.1.13)
1293613018 transitivePeerDependencies:
1293713019 - encoding
1293813020
12939 '@effect/platform-node-shared@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(utf-8-validate@6.0.6)':
13021 '@effect/platform-node-shared@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(utf-8-validate@6.0.6)':
1294013022 dependencies:
1294113023 '@types/ws': 8.18.1
12942 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
12943 ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
13024 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
13025 ws: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1294413026 transitivePeerDependencies:
1294513027 - bufferutil
1294613028 - utf-8-validate
1294713029
12948 '@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6)':
13030 '@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6)':
1294913031 dependencies:
12950 '@effect/platform-node-shared': 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(utf-8-validate@6.0.6)
12951 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
13032 '@effect/platform-node-shared': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(utf-8-validate@6.0.6)
13033 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1295213034 redis: 6.2.1
12953 undici: 8.10.2
13035 undici: 8.11.2
1295413036 transitivePeerDependencies:
1295513037 - bufferutil
1295613038 - utf-8-validate
1295713039
12958 '@effect/sql-d1@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
13040 '@effect/sql-d1@4.0.0(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1295913041 dependencies:
12960 '@cloudflare/workers-types': 5.20260907.1
12961 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
13042 '@cloudflare/workers-types': 5.20261004.1
13043 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1296213044
12963 '@effect/sql-pg@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
13045 '@effect/sql-pg@4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1296413046 dependencies:
12965 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
13047 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1296613048
12967 '@effect/sql-sqlite-bun@4.0.0-rc.112(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
13049 '@effect/sql-sqlite-bun@4.0.0-rc.112(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1296813050 dependencies:
12969 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
13051 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1297013052 optional: true
1297113053
12972 '@effect/sql-sqlite-do@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
13054 '@effect/sql-sqlite-do@4.0.0(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1297313055 dependencies:
12974 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
13056 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1297513057
1297613058 '@effect/tsgo-darwin-arm64@0.41.0':
1297713059 optional: true
......@@ -13004,9 +13086,41 @@ snapshots:
1300413086 '@effect/tsgo-win32-arm64': 0.41.0
1300513087 '@effect/tsgo-win32-x64': 0.41.0
1300613088
13007 '@effect/vitest@4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
13089 '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)':
1300813090 dependencies:
13009 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
13091 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
13092 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)
13093 transitivePeerDependencies:
13094 - '@arethetypeswrong/core'
13095 - '@edge-runtime/vm'
13096 - '@opentelemetry/api'
13097 - '@types/node'
13098 - '@vitejs/devtools'
13099 - '@vitest/browser-playwright'
13100 - '@vitest/browser-webdriverio'
13101 - '@vitest/coverage-istanbul'
13102 - '@vitest/coverage-v8'
13103 - '@vitest/ui'
13104 - bufferutil
13105 - esbuild
13106 - happy-dom
13107 - jiti
13108 - jsdom
13109 - less
13110 - msw
13111 - publint
13112 - sass
13113 - sass-embedded
13114 - stylus
13115 - sugarss
13116 - svelte
13117 - terser
13118 - tsx
13119 - typescript
13120 - unplugin-unused
13121 - unrun
13122 - utf-8-validate
13123 - yaml
1301013124
1301113125 '@electric-sql/pglite@0.3.15':
1301213126 optional: true
......@@ -14080,7 +14194,7 @@ snapshots:
1408014194 '@libsql/isomorphic-ws@0.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6)':
1408114195 dependencies:
1408214196 '@types/ws': 8.18.1
14083 ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
14197 ws: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1408414198 transitivePeerDependencies:
1408514199 - bufferutil
1408614200 - utf-8-validate
......@@ -14243,6 +14357,10 @@ snapshots:
1424314357
1424414358 '@neon-rs/load@0.0.4': {}
1424514359
14360 '@neon/functions@0.11.0(hono@4.13.7)':
14361 optionalDependencies:
14362 hono: 4.13.7
14363
1424614364 '@noble/curves@1.9.1':
1424714365 dependencies:
1424814366 '@noble/hashes': 1.8.0
......@@ -14253,9 +14371,8 @@ snapshots:
1425314371
1425414372 '@noble/hashes@2.2.0': {}
1425514373
14256 '@nodable/entities@2.1.1': {}
14257
14258 '@nodable/entities@3.0.0': {}
14374 '@nodable/entities@2.1.1':
14375 optional: true
1425914376
1426014377 '@nornagon/put@0.0.8': {}
1426114378
......@@ -14372,22 +14489,22 @@ snapshots:
1437214489 dependencies:
1437314490 cross-spawn: 7.0.6
1437414491
14375 '@opencode/client@2.0.18(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))':
14492 '@opencode/client@2.0.23(patch_hash=f725d6e6d9af0d56dc6ed71b863518fbfc751af1773cff2311209d2c404cf4cd)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))':
1437614493 dependencies:
14377 '@opencode/protocol': 2.0.18
14378 '@opencode/schema': 2.0.18
14494 '@opencode/protocol': 2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685)
14495 '@opencode/schema': 2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59)
1437914496 optionalDependencies:
14380 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
14497 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1438114498
14382 '@opencode/protocol@2.0.18':
14499 '@opencode/protocol@2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685)':
1438314500 dependencies:
14384 '@opencode/schema': 2.0.18
14385 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
14501 '@opencode/schema': 2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59)
14502 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1438614503
14387 '@opencode/schema@2.0.18':
14504 '@opencode/schema@2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59)':
1438814505 dependencies:
1438914506 '@standard-schema/spec': 1.1.0
14390 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
14507 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1439114508
1439214509 '@oslojs/encoding@1.1.0': {}
1439314510
......@@ -15237,58 +15354,56 @@ snapshots:
1523715354 dependencies:
1523815355 '@smithy/types': 4.18.0
1523915356 tslib: 2.8.1
15357 optional: true
1524015358
1524115359 '@smithy/credential-provider-imds@4.3.8':
1524215360 dependencies:
1524315361 '@smithy/core': 3.34.1
1524415362 '@smithy/types': 4.18.0
1524515363 tslib: 2.8.1
15364 optional: true
1524615365
1524715366 '@smithy/fetch-http-handler@5.4.6':
1524815367 dependencies:
1524915368 '@smithy/core': 3.34.1
1525015369 '@smithy/types': 4.18.0
1525115370 tslib: 2.8.1
15371 optional: true
1525215372
1525315373 '@smithy/is-array-buffer@2.2.0':
1525415374 dependencies:
1525515375 tslib: 2.8.1
15376 optional: true
1525615377
1525715378 '@smithy/node-http-handler@4.7.7':
1525815379 dependencies:
1525915380 '@smithy/core': 3.34.1
1526015381 '@smithy/types': 4.18.0
1526115382 tslib: 2.8.1
15262
15263 '@smithy/shared-ini-file-loader@4.7.2':
15264 dependencies:
15265 '@smithy/core': 3.34.1
15266 tslib: 2.8.1
15383 optional: true
1526715384
1526815385 '@smithy/signature-v4@5.4.6':
1526915386 dependencies:
1527015387 '@smithy/core': 3.34.1
1527115388 '@smithy/types': 4.18.0
1527215389 tslib: 2.8.1
15390 optional: true
1527315391
1527415392 '@smithy/types@4.18.0':
1527515393 dependencies:
1527615394 tslib: 2.8.1
1527715395
15278 '@smithy/util-base64@4.6.2':
15279 dependencies:
15280 '@smithy/core': 3.34.1
15281 tslib: 2.8.1
15282
1528315396 '@smithy/util-buffer-from@2.2.0':
1528415397 dependencies:
1528515398 '@smithy/is-array-buffer': 2.2.0
1528615399 tslib: 2.8.1
15400 optional: true
1528715401
1528815402 '@smithy/util-utf8@2.3.0':
1528915403 dependencies:
1529015404 '@smithy/util-buffer-from': 2.2.0
1529115405 tslib: 2.8.1
15406 optional: true
1529215407
1529315408 '@stablelib/base64@1.0.1': {}
1529415409
......@@ -16156,7 +16271,7 @@ snapshots:
1615616271 sirv: 3.0.2
1615716272 tinyrainbow: 3.1.1
1615816273 vitest: 5.0.1(@types/node@24.12.4)(@vitest/browser-preview@5.0.1)(@vitest/ui@5.0.1(vitest@5.0.1))(@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))(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))
16159 ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
16274 ws: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1616016275 transitivePeerDependencies:
1616116276 - bufferutil
1616216277 - msw
......@@ -16510,55 +16625,59 @@ snapshots:
1651016625 json-schema-traverse: 1.0.0
1651116626 require-from-string: 2.0.2
1651216627
16513 ? alchemy@2.0.0-beta.79(patch_hash=2ad1ff594ebadb1d8653c94b9ac2762703788acdbd8432c22273e6c19da1f7a6)(@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6))(@effect/sql-pg@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)))(@types/node@24.12.4)(@types/react@19.3.0)(@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))(bufferutil@4.1.0)(drizzle-kit@1.0.0-rc.5-ab785fc)(drizzle-orm@1.0.0-rc.5-ab785fc(77d4691b21c77897491506c37fa7b5ad))(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(mongodb@6.21.0(@aws-sdk/credential-providers@3.1062.0)(socks@2.8.9))(pg@8.23.0)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))(typescript@7.0.2)(utf-8-validate@6.0.6)(ws@8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6))
16514 : dependencies:
16515 '@alchemy.run/cloudflare-runtime': 2.0.0-beta.79(@distilled.cloud/cloudflare@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)))(@effect/platform-node@4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(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.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(rolldown@1.2.5)(typescript@7.0.2)
16516 '@alchemy.run/floci': 2.0.0-beta.79(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16517 '@alchemy.run/node-utils': 2.0.0-beta.79
16518 '@alchemy.run/sigil': 0.0.0-alpha.11(@types/react@19.3.0)(react-devtools-core@6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6))
16519 '@aws-sdk/credential-providers': 3.1062.0
16520 '@distilled.cloud/aws': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16521 '@distilled.cloud/axiom': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16522 '@distilled.cloud/cloudflare': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16523 '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16524 '@distilled.cloud/fly-io': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16525 '@distilled.cloud/hetzner': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16526 '@distilled.cloud/neon': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16527 '@distilled.cloud/planetscale': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16528 '@distilled.cloud/prisma': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16529 '@distilled.cloud/railway': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16530 '@distilled.cloud/stripe': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16531 '@effect/sql-d1': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16532 '@effect/sql-sqlite-do': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16533 '@effect/vitest': 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16628 alchemy@2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(58de9aada26e3d6e07bee630615d7b5f):
16629 dependencies:
16630 '@alchemy.run/cloudflare-runtime': 2.0.0-beta.80(@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)))(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(rolldown@1.2.5)(typescript@7.0.2)
16631 '@alchemy.run/floci': 2.0.0-beta.80(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16632 '@alchemy.run/node-utils': 2.0.0-beta.80
16633 '@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))
16634 '@distilled.cloud/acme': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16635 '@distilled.cloud/aws': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16636 '@distilled.cloud/axiom': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16637 '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16638 '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16639 '@distilled.cloud/doppler': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16640 '@distilled.cloud/fly-io': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16641 '@distilled.cloud/gcp': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16642 '@distilled.cloud/hetzner': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16643 '@distilled.cloud/infisical': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16644 '@distilled.cloud/neon': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16645 '@distilled.cloud/planetscale': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16646 '@distilled.cloud/prisma': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16647 '@distilled.cloud/railway': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16648 '@distilled.cloud/stripe': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16649 '@distilled.cloud/zerossl': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16650 '@effect/sql-d1': 4.0.0(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16651 '@effect/sql-sqlite-do': 4.0.0(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
1653416652 '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
16653 '@neon/functions': 0.11.0(hono@4.13.7)
1653516654 '@octokit/rest': 22.0.1
1653616655 '@octokit/webhooks': 14.2.0
1653716656 '@types/aws-lambda': 8.10.161
16538 aws4fetch: 1.0.20
1653916657 capnweb: 0.12.0
16540 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
16658 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1654116659 fflate: 0.8.3
1654216660 libsodium-wrappers: 0.8.4
1654316661 pathe: 2.0.3
1654416662 picomatch: 4.0.7
1654516663 rolldown: 1.2.5
1654616664 tinyglobby: 0.2.17
16547 undici: 7.29.1
1654816665 yaml: 2.9.0
1654916666 optionalDependencies:
16550 '@effect/platform-node': 4.0.0-rc.115(bufferutil@4.1.0)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(redis@6.2.1)(utf-8-validate@6.0.6)
16551 '@effect/sql-pg': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
16667 '@effect/platform-node': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6)
16668 '@effect/sql-pg': 4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
16669 '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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)
1655216670 drizzle-kit: 1.0.0-rc.5-ab785fc
16553 drizzle-orm: 1.0.0-rc.5-ab785fc(77d4691b21c77897491506c37fa7b5ad)
16671 drizzle-orm: 1.0.0-rc.5-ab785fc(b25f7c76220d3224392693e60345984f)
1655416672 mongodb: 6.21.0(@aws-sdk/credential-providers@3.1062.0)(socks@2.8.9)
1655516673 pg: 8.23.0
1655616674 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)'
16557 ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
16675 ws: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1655816676 transitivePeerDependencies:
1655916677 - '@types/node'
1656016678 - '@types/react'
1656116679 - bufferutil
16680 - hono
1656216681 - proxy-agent
1656316682 - react-devtools-core
1656416683 - typescript
......@@ -16601,7 +16720,8 @@ snapshots:
1660116720 normalize-path: 3.0.0
1660216721 picomatch: 2.3.2
1660316722
16604 anynum@1.0.1: {}
16723 anynum@1.0.1:
16724 optional: true
1660516725
1660616726 app-builder-lib@26.15.6(dmg-builder@26.15.6)(electron-builder-squirrel-windows@26.15.6):
1660716727 dependencies:
......@@ -16783,7 +16903,8 @@ snapshots:
1678316903
1678416904 aws4@1.13.2: {}
1678516905
16786 aws4fetch@1.0.20: {}
16906 aws4fetch@1.0.20:
16907 optional: true
1678716908
1678816909 axobject-query@4.1.0: {}
1678916910
......@@ -16942,7 +17063,8 @@ snapshots:
1694217063 boolean@3.2.0:
1694317064 optional: true
1694417065
16945 bowser@2.14.1: {}
17066 bowser@2.14.1:
17067 optional: true
1694617068
1694717069 bplist-creator@0.1.0:
1694817070 dependencies:
......@@ -17703,17 +17825,17 @@ snapshots:
1770317825 get-tsconfig: 4.14.3
1770417826 jiti: 2.7.0
1770517827
17706 drizzle-orm@1.0.0-rc.5-ab785fc(77d4691b21c77897491506c37fa7b5ad):
17828 drizzle-orm@1.0.0-rc.5-ab785fc(b25f7c76220d3224392693e60345984f):
1770717829 optionalDependencies:
1770817830 '@cloudflare/workers-types': 4.20260604.1
17709 '@effect/sql-d1': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
17710 '@effect/sql-pg': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
17711 '@effect/sql-sqlite-bun': 4.0.0-rc.112(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
17712 '@effect/sql-sqlite-do': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))
17831 '@effect/sql-d1': 4.0.0(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
17832 '@effect/sql-pg': 4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
17833 '@effect/sql-sqlite-bun': 4.0.0-rc.112(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
17834 '@effect/sql-sqlite-do': 4.0.0(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))
1771317835 '@electric-sql/pglite': 0.3.15
1771417836 '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6)
1771517837 bun-types: 1.3.14
17716 effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)
17838 effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)
1771717839 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)
1771817840 pg: 8.23.0
1771917841 valibot: 1.2.0(typescript@7.0.2)
......@@ -17735,7 +17857,7 @@ snapshots:
1773517857
1773617858 ee-first@1.1.1: {}
1773717859
17738 effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec): {}
17860 effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1): {}
1773917861
1774017862 ejs@3.1.10:
1774117863 dependencies:
......@@ -18450,15 +18572,7 @@ snapshots:
1845018572 dependencies:
1845118573 path-expression-matcher: 1.6.2
1845218574 xml-naming: 0.1.0
18453
18454 fast-xml-parser@5.11.1:
18455 dependencies:
18456 '@nodable/entities': 3.0.0
18457 fast-xml-builder: 1.2.0
18458 is-unsafe: 2.0.2
18459 path-expression-matcher: 1.6.2
18460 strnum: 2.4.2
18461 xml-naming: 0.3.0
18575 optional: true
1846218576
1846318577 fast-xml-parser@5.7.3:
1846418578 dependencies:
......@@ -18466,6 +18580,7 @@ snapshots:
1846618580 fast-xml-builder: 1.2.0
1846718581 path-expression-matcher: 1.6.2
1846818582 strnum: 2.4.2
18583 optional: true
1846918584
1847018585 fastdom@1.0.12:
1847118586 dependencies:
......@@ -19024,8 +19139,6 @@ snapshots:
1902419139
1902519140 is-unicode-supported@2.1.0: {}
1902619141
19027 is-unsafe@2.0.2: {}
19028
1902919142 is-wsl@2.2.0:
1903019143 dependencies:
1903119144 is-docker: 2.2.1
......@@ -19117,7 +19230,7 @@ snapshots:
1911719230 parse5: 8.0.1
1911819231 saxes: 6.0.0
1911919232 tough-cookie: 6.0.2
19120 undici: 8.10.2
19233 undici: 8.11.2
1912119234 w3c-xmlserializer: 5.0.0
1912219235 webidl-conversions: 8.0.1
1912319236 whatwg-mimetype: 5.0.0
......@@ -20385,6 +20498,31 @@ snapshots:
2038520498 '@oxc-resolver/binding-win32-arm64-msvc': 11.24.2
2038620499 '@oxc-resolver/binding-win32-x64-msvc': 11.24.2
2038720500
20501 oxfmt@0.70.0(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)):
20502 dependencies:
20503 tinypool: 2.1.2
20504 optionalDependencies:
20505 '@oxfmt/binding-android-arm-eabi': 0.70.0
20506 '@oxfmt/binding-android-arm64': 0.70.0
20507 '@oxfmt/binding-darwin-arm64': 0.70.0
20508 '@oxfmt/binding-darwin-x64': 0.70.0
20509 '@oxfmt/binding-freebsd-x64': 0.70.0
20510 '@oxfmt/binding-linux-arm-gnueabihf': 0.70.0
20511 '@oxfmt/binding-linux-arm-musleabihf': 0.70.0
20512 '@oxfmt/binding-linux-arm64-gnu': 0.70.0
20513 '@oxfmt/binding-linux-arm64-musl': 0.70.0
20514 '@oxfmt/binding-linux-ppc64-gnu': 0.70.0
20515 '@oxfmt/binding-linux-riscv64-gnu': 0.70.0
20516 '@oxfmt/binding-linux-riscv64-musl': 0.70.0
20517 '@oxfmt/binding-linux-s390x-gnu': 0.70.0
20518 '@oxfmt/binding-linux-x64-gnu': 0.70.0
20519 '@oxfmt/binding-linux-x64-musl': 0.70.0
20520 '@oxfmt/binding-openharmony-arm64': 0.70.0
20521 '@oxfmt/binding-win32-arm64-msvc': 0.70.0
20522 '@oxfmt/binding-win32-ia32-msvc': 0.70.0
20523 '@oxfmt/binding-win32-x64-msvc': 0.70.0
20524 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)
20525
2038820526 oxfmt@0.70.0(vite-plus@1.0.0(@types/node@24.12.4)(@vitest/ui@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)):
2038920527 dependencies:
2039020528 tinypool: 2.1.2
......@@ -20419,6 +20557,30 @@ snapshots:
2041920557 '@oxlint-tsgolint/win32-arm64': 7.0.2003
2042020558 '@oxlint-tsgolint/win32-x64': 7.0.2003
2042120559
20560 oxlint@1.85.0(oxlint-tsgolint@7.0.2003)(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)):
20561 optionalDependencies:
20562 '@oxlint/binding-android-arm-eabi': 1.85.0
20563 '@oxlint/binding-android-arm64': 1.85.0
20564 '@oxlint/binding-darwin-arm64': 1.85.0
20565 '@oxlint/binding-darwin-x64': 1.85.0
20566 '@oxlint/binding-freebsd-x64': 1.85.0
20567 '@oxlint/binding-linux-arm-gnueabihf': 1.85.0
20568 '@oxlint/binding-linux-arm-musleabihf': 1.85.0
20569 '@oxlint/binding-linux-arm64-gnu': 1.85.0
20570 '@oxlint/binding-linux-arm64-musl': 1.85.0
20571 '@oxlint/binding-linux-ppc64-gnu': 1.85.0
20572 '@oxlint/binding-linux-riscv64-gnu': 1.85.0
20573 '@oxlint/binding-linux-riscv64-musl': 1.85.0
20574 '@oxlint/binding-linux-s390x-gnu': 1.85.0
20575 '@oxlint/binding-linux-x64-gnu': 1.85.0
20576 '@oxlint/binding-linux-x64-musl': 1.85.0
20577 '@oxlint/binding-openharmony-arm64': 1.85.0
20578 '@oxlint/binding-win32-arm64-msvc': 1.85.0
20579 '@oxlint/binding-win32-ia32-msvc': 1.85.0
20580 '@oxlint/binding-win32-x64-msvc': 1.85.0
20581 oxlint-tsgolint: 7.0.2003
20582 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)
20583
2042220584 oxlint@1.85.0(oxlint-tsgolint@7.0.2003)(vite-plus@1.0.0(@types/node@24.12.4)(@vitest/ui@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)):
2042320585 optionalDependencies:
2042420586 '@oxlint/binding-android-arm-eabi': 1.85.0
......@@ -20506,7 +20668,8 @@ snapshots:
2050620668
2050720669 path-exists@3.0.0: {}
2050820670
20509 path-expression-matcher@1.6.2: {}
20671 path-expression-matcher@1.6.2:
20672 optional: true
2051020673
2051120674 path-is-absolute@1.0.1: {}
2051220675
......@@ -21756,6 +21919,7 @@ snapshots:
2175621919 strnum@2.4.2:
2175721920 dependencies:
2175821921 anynum: 1.0.1
21922 optional: true
2175921923
2176021924 structured-headers@0.4.1: {}
2176121925
......@@ -22016,10 +22180,13 @@ snapshots:
2201622180
2201722181 undici@6.28.1: {}
2201822182
22019 undici@7.29.1: {}
22183 undici@7.29.1:
22184 optional: true
2202022185
2202122186 undici@8.10.2: {}
2202222187
22188 undici@8.11.2: {}
22189
2202322190 unenv@2.0.0-rc.24:
2202422191 dependencies:
2202522192 pathe: 2.0.3
......@@ -22196,6 +22363,61 @@ snapshots:
2219622363 '@types/unist': 3.0.3
2219722364 vfile-message: 4.0.3
2219822365
22366 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):
22367 dependencies:
22368 '@oxc-project/types': 0.151.0
22369 '@oxlint/plugins': 1.79.0
22370 '@vitest/browser': 5.0.1(@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))(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(utf-8-validate@6.0.6)(vitest@5.0.1)
22371 '@vitest/browser-preview': 5.0.1(@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))(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(utf-8-validate@6.0.6)(vitest@5.0.1)
22372 '@vitest/mocker': 5.0.1(@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))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))
22373 '@vitest/pretty-format': 5.0.1
22374 '@vitest/snapshot': 5.0.1
22375 '@vitest/spy': 5.0.1
22376 '@vitest/utils': 5.0.1
22377 oxfmt: 0.70.0(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))
22378 oxlint: 1.85.0(oxlint-tsgolint@7.0.2003)(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))
22379 oxlint-tsgolint: 7.0.2003
22380 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)'
22381 vitest: 5.0.1(@types/node@24.12.4)(@vitest/browser-preview@5.0.1)(@vitest/ui@5.0.1(vitest@5.0.1))(@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))(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))
22382 optionalDependencies:
22383 '@voidzero-dev/vite-plus-darwin-arm64': 1.0.0
22384 '@voidzero-dev/vite-plus-darwin-x64': 1.0.0
22385 '@voidzero-dev/vite-plus-linux-arm64-gnu': 1.0.0
22386 '@voidzero-dev/vite-plus-linux-arm64-musl': 1.0.0
22387 '@voidzero-dev/vite-plus-linux-x64-gnu': 1.0.0
22388 '@voidzero-dev/vite-plus-linux-x64-musl': 1.0.0
22389 '@voidzero-dev/vite-plus-win32-arm64-msvc': 1.0.0
22390 '@voidzero-dev/vite-plus-win32-x64-msvc': 1.0.0
22391 transitivePeerDependencies:
22392 - '@arethetypeswrong/core'
22393 - '@edge-runtime/vm'
22394 - '@opentelemetry/api'
22395 - '@types/node'
22396 - '@vitejs/devtools'
22397 - '@vitest/coverage-istanbul'
22398 - '@vitest/coverage-v8'
22399 - '@vitest/ui'
22400 - bufferutil
22401 - esbuild
22402 - happy-dom
22403 - jiti
22404 - jsdom
22405 - less
22406 - msw
22407 - publint
22408 - sass
22409 - sass-embedded
22410 - stylus
22411 - sugarss
22412 - svelte
22413 - terser
22414 - tsx
22415 - typescript
22416 - unplugin-unused
22417 - unrun
22418 - utf-8-validate
22419 - yaml
22420
2219922421 vite-plus@1.0.0(@types/node@24.12.4)(@vitest/ui@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):
2220022422 dependencies:
2220122423 '@oxc-project/types': 0.151.0
......@@ -22465,13 +22687,13 @@ snapshots:
2246522687 siginfo: 2.0.0
2246622688 stackback: 0.0.2
2246722689
22468 workerd@1.20260901.1:
22690 workerd@1.20260918.1:
2246922691 optionalDependencies:
22470 '@cloudflare/workerd-darwin-64': 1.20260901.1
22471 '@cloudflare/workerd-darwin-arm64': 1.20260901.1
22472 '@cloudflare/workerd-linux-64': 1.20260901.1
22473 '@cloudflare/workerd-linux-arm64': 1.20260901.1
22474 '@cloudflare/workerd-windows-64': 1.20260901.1
22692 '@cloudflare/workerd-darwin-64': 1.20260918.1
22693 '@cloudflare/workerd-darwin-arm64': 1.20260918.1
22694 '@cloudflare/workerd-linux-64': 1.20260918.1
22695 '@cloudflare/workerd-linux-arm64': 1.20260918.1
22696 '@cloudflare/workerd-windows-64': 1.20260918.1
2247522697
2247622698 wrap-ansi@6.2.0:
2247722699 dependencies:
......@@ -22504,6 +22726,11 @@ snapshots:
2250422726 bufferutil: 4.1.0
2250522727 utf-8-validate: 6.0.6
2250622728
22729 ws@8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6):
22730 optionalDependencies:
22731 bufferutil: 4.1.0
22732 utf-8-validate: 6.0.6
22733
2250722734 xcode@3.0.1:
2250822735 dependencies:
2250922736 simple-plist: 1.3.1
......@@ -22511,9 +22738,8 @@ snapshots:
2251122738
2251222739 xml-name-validator@5.0.0: {}
2251322740
22514 xml-naming@0.1.0: {}
22515
22516 xml-naming@0.3.0: {}
22741 xml-naming@0.1.0:
22742 optional: true
2251722743
2251822744 xml2js@0.4.23:
2251922745 dependencies:
pnpm-workspace.yaml+49-38
......@@ -30,13 +30,13 @@ catalog:
3030 "@clerk/expo": 4.6.8
3131 "@clerk/react": 6.16.1
3232 "@clerk/shared": 4.33.0
33 "@effect/atom-react": 4.0.0-rc.115
34 "@effect/openapi-generator": 4.0.0-rc.115
35 "@effect/platform-node": 4.0.0-rc.115
36 "@effect/platform-node-shared": 4.0.0-rc.115
37 "@effect/sql-pg": 4.0.0-rc.115
33 "@effect/atom-react": 4.0.1
34 "@effect/openapi-generator": 4.0.1
35 "@effect/platform-node": 4.0.1
36 "@effect/platform-node-shared": 4.0.1
37 "@effect/sql-pg": 4.0.1
3838 "@effect/tsgo": 0.41.0
39 "@effect/vitest": 4.0.0-rc.115
39 "@effect/vitest": 4.0.1
4040 "@legendapp/list": 3.3.5
4141 "@noble/curves": 1.9.1
4242 "@noble/hashes": 1.8.0
......@@ -45,7 +45,7 @@ catalog:
4545 "@tailwindcss/oxide": 4.3.3
4646 "@tailwindcss/vite": 4.3.3
4747 "@types/node": 24.12.4
48 effect: 4.0.0-rc.115
48 effect: 4.0.1
4949 jose: 6.2.2
5050 lightningcss: 1.33.0
5151 tailwindcss: 4.3.3
......@@ -64,20 +64,20 @@ minimumReleaseAgeExclude:
6464 - "@clerk/expo@4.6.8"
6565 - "@clerk/react@6.16.1"
6666 - "@clerk/shared@4.33.0"
67 - "@distilled.cloud/aws@1.0.0-rc.12"
68 - "@distilled.cloud/axiom@1.0.0-rc.12"
69 - "@distilled.cloud/cloudflare@1.0.0-rc.12"
70 - "@distilled.cloud/core@1.0.0-rc.12"
71 - "@distilled.cloud/neon@1.0.0-rc.12"
72 - "@distilled.cloud/planetscale@1.0.0-rc.12"
73 - "@effect/atom-react@4.0.0-rc.115"
74 - "@effect/openapi-generator@4.0.0-rc.115"
75 - "@effect/platform-node-shared@4.0.0-rc.115"
76 - "@effect/platform-node@4.0.0-rc.115"
77 - "@effect/sql-pg@4.0.0-rc.115"
78 - "@effect/vitest@4.0.0-rc.115"
79 - alchemy@2.0.0-beta.79
80 - effect@4.0.0-rc.115
67 - "@distilled.cloud/aws@1.0.0-rc.13"
68 - "@distilled.cloud/axiom@1.0.0-rc.13"
69 - "@distilled.cloud/cloudflare@1.0.0-rc.13"
70 - "@distilled.cloud/core@1.0.0-rc.13"
71 - "@distilled.cloud/neon@1.0.0-rc.13"
72 - "@distilled.cloud/planetscale@1.0.0-rc.13"
73 - "@effect/atom-react@4.0.1"
74 - "@effect/openapi-generator@4.0.1"
75 - "@effect/platform-node-shared@4.0.1"
76 - "@effect/platform-node@4.0.1"
77 - "@effect/sql-pg@4.0.1"
78 - "@effect/vitest@4.0.1"
79 - alchemy@2.0.0-beta.80
80 - effect@4.0.1
8181 - "@legendapp/list@3.3.5"
8282 - "@expo/cli@58.1.1"
8383 - "@expo/env@2.5.1"
......@@ -115,14 +115,14 @@ minimumReleaseAgeExclude:
115115 - expo-symbols@58.0.3
116116 - electron@44.4.2
117117 - "@anthropic-ai/claude-agent-sdk@0.3.276"
118 - "@alchemy.run/cloudflare-runtime@2.0.0-beta.79"
119 - "@alchemy.run/floci@2.0.0-beta.79"
120 - "@alchemy.run/node-utils@2.0.0-beta.79"
121 - "@distilled.cloud/fly-io@1.0.0-rc.12"
122 - "@distilled.cloud/hetzner@1.0.0-rc.12"
123 - "@distilled.cloud/prisma@1.0.0-rc.12"
124 - "@distilled.cloud/railway@1.0.0-rc.12"
125 - "@distilled.cloud/stripe@1.0.0-rc.12"
118 - "@alchemy.run/cloudflare-runtime@2.0.0-beta.80"
119 - "@alchemy.run/floci@2.0.0-beta.80"
120 - "@alchemy.run/node-utils@2.0.0-beta.80"
121 - "@distilled.cloud/fly-io@1.0.0-rc.13"
122 - "@distilled.cloud/hetzner@1.0.0-rc.13"
123 - "@distilled.cloud/prisma@1.0.0-rc.13"
124 - "@distilled.cloud/railway@1.0.0-rc.13"
125 - "@distilled.cloud/stripe@1.0.0-rc.13"
126126 - "@shadcn/lint@0.1.5"
127127 - cn@0.3.2
128128 - uniwind@1.12.1
......@@ -152,6 +152,14 @@ minimumReleaseAgeExclude:
152152 - expo-application@58.0.3
153153 - expo-eas-client@58.0.2
154154 - expo-image-loader@58.0.3
155 - "@distilled.cloud/acme@1.0.0-rc.13"
156 - "@distilled.cloud/doppler@1.0.0-rc.13"
157 - "@distilled.cloud/gcp@1.0.0-rc.13"
158 - "@distilled.cloud/infisical@1.0.0-rc.13"
159 - "@distilled.cloud/zerossl@1.0.0-rc.13"
160 - "@opencode/client@2.0.23"
161 - "@opencode/protocol@2.0.23"
162 - "@opencode/schema@2.0.23"
155163
156164overrides:
157165 # Keep jsdom's optional peer consistent so Vite+ has one test-runner instance.
......@@ -217,46 +225,49 @@ overrides:
217225 # dependency, and their schemas fail to decode under a second Effect copy.
218226 # The `effect` override above already collapses them; these name the edge so it
219227 # stays pinned on its own. OpenCode2Client.live.test.ts re-proves it on bumps.
228 # All three still target Effect rc.112 APIs (effect/unstable/*, Encoding,
229 # Schema.isStartsWith) that 4.0 removed; their patches port those call sites
230 # until OpenCode moves to stable Effect.
220231 "@opencode/protocol>effect": "catalog:"
221232 "@opencode/schema>effect": "catalog:"
222233 node-abi: 4.33.0
223234 lightningcss: "catalog:"
224235 tailwindcss: "catalog:"
225236 vite: "catalog:"
237 vite-plus: "catalog:"
226238 yaml: "catalog:"
227239
228240packageExtensions:
229241 "@clerk/expo@*":
230242 dependencies:
231243 "@expo/config-plugins": 58.0.4
244 # Our patch makes @effect/vitest import vite-plus/test. A catalog: spec here
245 # resolves through the vite-plus override above.
232246 "@effect/vitest@*":
233247 dependencies:
234248 vite-plus: "catalog:"
235 peerDependenciesMeta:
236 vitest:
237 optional: true
238 vite-plus@*:
239 dependencies:
240 vite: "catalog:"
241249
242250patchedDependencies:
243 alchemy@2.0.0-beta.79: patches/alchemy@2.0.0-beta.79.patch
251 alchemy@2.0.0-beta.80: patches/alchemy@2.0.0-beta.80.patch
244252 expo-glass-effect@58.0.3: patches/expo-glass-effect@58.0.3.patch
245253 expo-blur@58.0.3: patches/expo-blur@58.0.3.patch
246254 expo-audio@58.0.4: patches/expo-audio@58.0.4.patch
247255 "@clerk/expo@4.6.8": patches/@clerk__expo@4.6.8.patch
248 "@effect/vitest@4.0.0-rc.115": patches/@effect__vitest@4.0.0-rc.115.patch
256 "@effect/vitest@4.0.1": patches/@effect__vitest@4.0.1.patch
249257 "@expo/metro-config@58.0.6": patches/@expo__metro-config@58.0.6.patch
250258 expo-sharing@58.0.13: patches/expo-sharing@58.0.13.patch
251259 expo-widgets@58.0.11: patches/expo-widgets@58.0.11.patch
252260 "@ff-labs/fff-node@0.9.4": patches/@ff-labs__fff-node@0.9.4.patch
253261 "@legendapp/list@3.3.5": patches/@legendapp__list@3.3.5.patch
262 "@opencode/client@2.0.23": patches/@opencode__client@2.0.23.patch
263 "@opencode/protocol@2.0.23": patches/@opencode__protocol@2.0.23.patch
264 "@opencode/schema@2.0.23": patches/@opencode__schema@2.0.23.patch
254265 "@pierre/diffs@1.3.0-beta.10": patches/@pierre%2Fdiffs@1.3.0-beta.10.patch
255266 "@react-native-ai/apple@0.12.0": patches/@react-native-ai__apple@0.12.0.patch
256267 "@react-native-menu/menu@2.0.0": patches/@react-native-menu__menu@2.0.0.patch
257268 "@react-navigation/native-stack@7.17.6": patches/@react-navigation%2Fnative-stack@7.17.6.patch
258269 dbus-next@0.10.2: patches/dbus-next@0.10.2.patch
259 effect@4.0.0-rc.115: patches/effect@4.0.0-rc.115.patch
270 effect@4.0.1: patches/effect@4.0.1.patch
260271 node-pty@1.2.0-beta.15: patches/node-pty@1.2.0-beta.15.patch
261272 # Link http(s) URLs with a port or a single-label host. md4c otherwise requires a dotted host and stops at ':'.
262273 react-native-nitro-markdown@0.5.8: patches/react-native-nitro-markdown@0.5.8.patch
scripts/apply-web-brand-assets.ts+1-1
......@@ -6,7 +6,7 @@ import * as Effect from "effect/Effect";
66import * as FileSystem from "effect/FileSystem";
77import * as Option from "effect/Option";
88import * as Path from "effect/Path";
9import { Argument, Command, Flag } from "effect/unstable/cli";
9import { Argument, Command, Flag } from "effect/cli";
1010import {
1111 resolveWebAssetBrandForChannel,
1212 resolveWebIconOverrides,
scripts/build-cli-archive.ts+2-2
......@@ -25,8 +25,8 @@ import * as Option from "effect/Option";
2525import * as Path from "effect/Path";
2626import * as PlatformError from "effect/PlatformError";
2727import * as Schema from "effect/Schema";
28import { Command, Flag } from "effect/unstable/cli";
29import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
28import { Command, Flag } from "effect/cli";
29import { ChildProcess, ChildProcessSpawner } from "effect/process";
3030
3131import { HostProcessArchitecture, HostProcessPlatform } from "@t3tools/shared/hostProcess";
3232import { fromYaml } from "@t3tools/shared/schemaYaml";
scripts/build-desktop-artifact.test.ts+1-1
......@@ -12,7 +12,7 @@ import * as Option from "effect/Option";
1212import * as Path from "effect/Path";
1313import * as Sink from "effect/Sink";
1414import * as Stream from "effect/Stream";
15import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
15import { ChildProcess, ChildProcessSpawner } from "effect/process";
1616
1717import {
1818 BundleNotSelfContainedError,
scripts/build-desktop-artifact.ts+2-2
......@@ -50,8 +50,8 @@ import type { PlatformError } from "effect/PlatformError";
5050import * as Path from "effect/Path";
5151import * as Schema from "effect/Schema";
5252import * as Stream from "effect/Stream";
53import { Command, Flag } from "effect/unstable/cli";
54import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
53import { Command, Flag } from "effect/cli";
54import { ChildProcess, ChildProcessSpawner } from "effect/process";
5555
5656const LINUX_ICON_SIZES = [16, 22, 24, 32, 48, 64, 128, 256, 512] as const;
5757const DESKTOP_APP_ID = "com.t3tools.t3code";
scripts/build-npm-platform-packages.test.ts+1-1
......@@ -6,7 +6,7 @@ import * as FileSystem from "effect/FileSystem";
66import * as Path from "effect/Path";
77import * as Schema from "effect/Schema";
88import * as Stream from "effect/Stream";
9import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
9import { ChildProcess, ChildProcessSpawner } from "effect/process";
1010
1111import {
1212 buildNpmPlatformPackages,
scripts/build-npm-platform-packages.ts+2-2
......@@ -28,8 +28,8 @@ import * as Layer from "effect/Layer";
2828import * as Logger from "effect/Logger";
2929import * as Path from "effect/Path";
3030import * as Schema from "effect/Schema";
31import { Command, Flag } from "effect/unstable/cli";
32import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
31import { Command, Flag } from "effect/cli";
32import { ChildProcess, ChildProcessSpawner } from "effect/process";
3333
3434import {
3535 CLI_ARCHIVE_PLATFORM_KEYS,
scripts/dev-runner.test.ts+1-1
......@@ -17,7 +17,7 @@ import * as Path from "effect/Path";
1717import * as PlatformError from "effect/PlatformError";
1818import * as Sink from "effect/Sink";
1919import * as Stream from "effect/Stream";
20import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
20import { ChildProcess, ChildProcessSpawner } from "effect/process";
2121
2222import {
2323 checkPortAvailabilityOnHosts,
scripts/dev-runner.ts+2-2
......@@ -16,8 +16,8 @@ import * as Logger from "effect/Logger";
1616import * as Option from "effect/Option";
1717import * as Path from "effect/Path";
1818import * as Schema from "effect/Schema";
19import { Argument, Command, Flag } from "effect/unstable/cli";
20import { ChildProcess } from "effect/unstable/process";
19import { Argument, Command, Flag } from "effect/cli";
20import { ChildProcess } from "effect/process";
2121
2222import { type DevShareError, shareDevServer, unshareDevServer } from "./lib/dev-share.ts";
2323import { loadRepoEnv } from "./lib/public-config.ts";
scripts/export-brand-icons.ts+2-2
......@@ -10,8 +10,8 @@ import * as Option from "effect/Option";
1010import * as Path from "effect/Path";
1111import * as Schema from "effect/Schema";
1212import * as Stream from "effect/Stream";
13import { Command, Flag } from "effect/unstable/cli";
14import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
13import { Command, Flag } from "effect/cli";
14import { ChildProcess, ChildProcessSpawner } from "effect/process";
1515
1616import { BRAND_ASSET_PATHS, DEVELOPMENT_PUBLIC_ICON_OVERRIDES } from "./lib/brand-assets.ts";
1717import { encodePngIco, readPngDimensions, WINDOWS_ICON_SIZES } from "./lib/icon-export.ts";
scripts/lib/dev-share.test.ts+1-1
......@@ -3,7 +3,7 @@ import * as Effect from "effect/Effect";
33import * as Layer from "effect/Layer";
44import * as Sink from "effect/Sink";
55import * as Stream from "effect/Stream";
6import { ChildProcessSpawner } from "effect/unstable/process";
6import { ChildProcessSpawner } from "effect/process";
77
88import {
99 type DevShareError,
scripts/lib/dev-share.ts+1-1
......@@ -23,7 +23,7 @@ import {
2323} from "@t3tools/tailscale";
2424import * as Effect from "effect/Effect";
2525import * as Schema from "effect/Schema";
26import type { ChildProcessSpawner } from "effect/unstable/process";
26import type { ChildProcessSpawner } from "effect/process";
2727
2828/**
2929 * Human-readable gloss for each diagnostic. Deliberately our own words rather
scripts/merge-update-manifests.test.ts+1-1
......@@ -3,7 +3,7 @@ import { assert, describe, it } from "@effect/vitest";
33import * as Effect from "effect/Effect";
44import * as FileSystem from "effect/FileSystem";
55import * as Path from "effect/Path";
6import { Command, CliError } from "effect/unstable/cli";
6import { Command, CliError } from "effect/cli";
77
88import {
99 mergePlatformUpdateManifests,
scripts/merge-update-manifests.ts+1-1
......@@ -7,7 +7,7 @@ import * as FileSystem from "effect/FileSystem";
77import * as Option from "effect/Option";
88import * as Path from "effect/Path";
99import * as Schema from "effect/Schema";
10import { Argument, Command, Flag } from "effect/unstable/cli";
10import { Argument, Command, Flag } from "effect/cli";
1111
1212import {
1313 mergeUpdateManifests,
scripts/mobile-native-client.ts+2-2
......@@ -13,8 +13,8 @@ import * as FileSystem from "effect/FileSystem";
1313import * as Path from "effect/Path";
1414import * as Schema from "effect/Schema";
1515import * as Stream from "effect/Stream";
16import { Argument, Command } from "effect/unstable/cli";
17import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
16import { Argument, Command } from "effect/cli";
17import { ChildProcess, ChildProcessSpawner } from "effect/process";
1818
1919export type NativePlatform = "ios" | "android";
2020const NativeClientRecord = Schema.Struct({ fingerprint: Schema.String, binary: Schema.String });
scripts/mobile-native-static-check.test.ts+1-1
......@@ -8,7 +8,7 @@ import * as Path from "effect/Path";
88import * as PlatformError from "effect/PlatformError";
99import * as Sink from "effect/Sink";
1010import * as Stream from "effect/Stream";
11import { ChildProcessSpawner } from "effect/unstable/process";
11import { ChildProcessSpawner } from "effect/process";
1212
1313import { collectSources, runCommand } from "./mobile-native-static-check.ts";
1414
scripts/mobile-native-static-check.ts+2-2
......@@ -9,8 +9,8 @@ import * as FileSystem from "effect/FileSystem";
99import * as Logger from "effect/Logger";
1010import * as Path from "effect/Path";
1111import * as Schema from "effect/Schema";
12import { Command } from "effect/unstable/cli";
13import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
12import { Command } from "effect/cli";
13import { ChildProcess, ChildProcessSpawner } from "effect/process";
1414
1515interface NativeStaticTool {
1616 readonly command: string;
scripts/mock-update-server.test.ts+1-1
......@@ -4,7 +4,7 @@ import * as Effect from "effect/Effect";
44import * as FileSystem from "effect/FileSystem";
55import * as Layer from "effect/Layer";
66import * as Path from "effect/Path";
7import { HttpClient, HttpRouter } from "effect/unstable/http";
7import { HttpClient, HttpRouter } from "effect/http";
88
99import { makeMockUpdateRouteLayer } from "./mock-update-server.ts";
1010import { symlinksSupported } from "@t3tools/shared/testing/symlinks";
scripts/mock-update-server.ts+1-1
......@@ -7,7 +7,7 @@ import * as Effect from "effect/Effect";
77import * as FileSystem from "effect/FileSystem";
88import * as Layer from "effect/Layer";
99import * as Path from "effect/Path";
10import { HttpRouter, HttpServerRequest, HttpServerResponse } from "effect/unstable/http";
10import { HttpRouter, HttpServerRequest, HttpServerResponse } from "effect/http";
1111
1212interface MockUpdateServerConfig {
1313 readonly port: number;
scripts/notify-discord-release.test.ts+3-3
......@@ -11,9 +11,9 @@ import * as Logger from "effect/Logger";
1111import * as Path from "effect/Path";
1212import * as Schema from "effect/Schema";
1313import * as TestClock from "effect/testing/TestClock";
14import { Command } from "effect/unstable/cli";
15import { HttpClient, HttpClientError, HttpClientResponse, UrlParams } from "effect/unstable/http";
16import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
14import { Command } from "effect/cli";
15import { HttpClient, HttpClientError, HttpClientResponse, UrlParams } from "effect/http";
16import { ChildProcess, ChildProcessSpawner } from "effect/process";
1717
1818import {
1919 buildDiscordReleaseAnnouncement,
scripts/notify-discord-release.ts+2-2
......@@ -12,14 +12,14 @@ import * as Option from "effect/Option";
1212import * as Redacted from "effect/Redacted";
1313import * as Schedule from "effect/Schedule";
1414import * as Schema from "effect/Schema";
15import { Argument, Command, Flag } from "effect/unstable/cli";
15import { Argument, Command, Flag } from "effect/cli";
1616import {
1717 FetchHttpClient,
1818 HttpClient,
1919 HttpClientError,
2020 HttpClientRequest,
2121 HttpClientResponse,
22} from "effect/unstable/http";
22} from "effect/http";
2323
2424export type DiscordReleaseTarget = "prerelease" | "latest";
2525
scripts/resolve-nightly-release.ts+1-1
......@@ -9,7 +9,7 @@ import * as FileSystem from "effect/FileSystem";
99import * as Option from "effect/Option";
1010import * as Path from "effect/Path";
1111import * as Schema from "effect/Schema";
12import { Command, Flag } from "effect/unstable/cli";
12import { Command, Flag } from "effect/cli";
1313
1414export interface NightlyReleaseMetadata {
1515 readonly baseVersion: string;
scripts/resolve-previous-release-tag.test.ts+1-1
......@@ -5,7 +5,7 @@ import * as FileSystem from "effect/FileSystem";
55import * as PlatformError from "effect/PlatformError";
66import * as Sink from "effect/Sink";
77import * as Stream from "effect/Stream";
8import { ChildProcessSpawner } from "effect/unstable/process";
8import { ChildProcessSpawner } from "effect/process";
99
1010import {
1111 listGitTags,
scripts/resolve-previous-release-tag.ts+2-2
......@@ -8,8 +8,8 @@ import * as FileSystem from "effect/FileSystem";
88import * as Schema from "effect/Schema";
99import * as Stream from "effect/Stream";
1010import * as String from "effect/String";
11import { Command, Flag } from "effect/unstable/cli";
12import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
11import { Command, Flag } from "effect/cli";
12import { ChildProcess, ChildProcessSpawner } from "effect/process";
1313
1414const ReleaseChannel = Schema.Literals(["stable", "nightly", "preview"]);
1515type ReleaseChannel = typeof ReleaseChannel.Type;
scripts/smoke-cli-archive.ts+3-3
......@@ -18,13 +18,13 @@ import * as Path from "effect/Path";
1818import * as Schedule from "effect/Schedule";
1919import * as Schema from "effect/Schema";
2020import * as Stream from "effect/Stream";
21import { Command, Flag } from "effect/unstable/cli";
22import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
21import { Command, Flag } from "effect/cli";
22import { ChildProcess, ChildProcessSpawner } from "effect/process";
2323
2424import * as NetService from "@t3tools/shared/Net";
2525import { HostProcessPlatform } from "@t3tools/shared/hostProcess";
2626import { windowsSystemTar } from "./build-cli-archive.ts";
27import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/http";
27import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/http";
2828
2929export class CliArchiveSmokeError extends Schema.TaggedError<CliArchiveSmokeError>()(
3030 "CliArchiveSmokeError",
scripts/sync-reference-repos.test.ts+1-1
......@@ -6,7 +6,7 @@ import * as Layer from "effect/Layer";
66import * as Path from "effect/Path";
77import * as Sink from "effect/Sink";
88import * as Stream from "effect/Stream";
9import { ChildProcessSpawner } from "effect/unstable/process";
9import { ChildProcessSpawner } from "effect/process";
1010
1111import { referenceRepos } from "./lib/reference-repos.ts";
1212import {
scripts/sync-reference-repos.ts+2-2
......@@ -9,8 +9,8 @@ import * as Option from "effect/Option";
99import * as Path from "effect/Path";
1010import * as Schema from "effect/Schema";
1111import * as Stream from "effect/Stream";
12import { Command, Flag } from "effect/unstable/cli";
13import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
12import { Command, Flag } from "effect/cli";
13import { ChildProcess, ChildProcessSpawner } from "effect/process";
1414import { fromYaml } from "@t3tools/shared/schemaYaml";
1515
1616import { referenceRepos, type ReferenceRepo } from "./lib/reference-repos.ts";
scripts/update-release-package-versions.test.ts+1-1
......@@ -8,7 +8,7 @@ import * as Layer from "effect/Layer";
88import * as Path from "effect/Path";
99import * as PlatformError from "effect/PlatformError";
1010import * as Schema from "effect/Schema";
11import { Command, CliError } from "effect/unstable/cli";
11import { Command, CliError } from "effect/cli";
1212import * as TestConsole from "effect/testing/TestConsole";
1313import { fromJsonStringPretty } from "@t3tools/shared/schemaJson";
1414
scripts/update-release-package-versions.ts+1-1
......@@ -9,7 +9,7 @@ import * as FileSystem from "effect/FileSystem";
99import * as Option from "effect/Option";
1010import * as Path from "effect/Path";
1111import * as Schema from "effect/Schema";
12import { Argument, Command, Flag } from "effect/unstable/cli";
12import { Argument, Command, Flag } from "effect/cli";
1313import { fromJsonStringPretty } from "@t3tools/shared/schemaJson";
1414
1515export class ReleasePackageManifestError extends Schema.TaggedError<ReleasePackageManifestError>()(