From 0bd694c7f259a1aaecad3698af88b21003c5d31b Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Mon, 5 Oct 2026 10:53:01 -0700 Subject: [PATCH 1/4] chore(deps): upgrade Effect to stable 4.0.1 Effect 4.0 drops the `effect/unstable/*` export paths, so every import moves to its flattened `effect/` path (`httpapi` becomes `http-api`), and `effect/Encoding` is split into `effect/encoding/{Base64,Base64Url,Hex}`. Dependencies that still target the release candidates: - Alchemy 2.0.0-beta.80 and distilled 1.0.0-rc.13 ship the new layout. - OpenCode 2 (@opencode/client, protocol, schema) moves to 2.0.23 and is patched: it still imports the removed paths, `Encoding` and `Schema.isStartsWith`, and its `statics` helper assigned over a schema's `make`, which 4.0 caches as a non-configurable property. Drop the patches once OpenCode targets stable Effect. - Drizzle's Effect integration only references the old paths in .d.ts files and loads unchanged. Behavior changes from rc.116 through 4.0.1: - `HttpRouter.serve` builds the app in a private memo map, so the server's `TracerDisabledWhen` predicate is provided to the served layer. Services from layers around `serve` win over the app's own, so the static-file test provides its FileSystem between `serve` and the test server. - `Scope.close` requires a closeable scope: SSH tunnels take their entry scope explicitly, and the ACP and Antigravity runtimes close a child of the caller's scope. - `RpcSerialization.ndJsonRpc` skips lines that are not JSON, so effect-acp decodes each frame with the strict codec to keep failing sessions on a malformed agent line. - `Effect.partition` returns successes first; `Stream.scan` takes a lazy initial state; `SchemaGetter.onSome`/`.compose` are replaced; `Schema.brand` requires a single concrete brand key. - A declared MCP tool failure is returned as `isError` with its payload as JSON text, without `structuredContent`; the MCP tests read it there. The effect patch is re-ported. It keeps MCP session DELETE, the RpcClient request and connection hooks, the missed-pong tolerance and the React Native `getSetCookie` guard. 4.0.1 ships its own fix for a busy stream blocking the socket on interrupt, so the patch's version of that is gone. Co-Authored-By: Claude Opus 5.5 (1M context) --- .../app/DesktopConnectionCatalogStore.test.ts | 4 +- .../src/app/DesktopConnectionCatalogStore.ts | 6 +- .../src/app/DesktopLinuxUrlHandler.test.ts | 2 +- .../desktop/src/app/DesktopLinuxUrlHandler.ts | 4 +- .../src/app/DesktopObservability.test.ts | 4 +- apps/desktop/src/app/DesktopObservability.ts | 2 +- .../DesktopBackendConfiguration.test.ts | 2 +- .../backend/DesktopBackendConfiguration.ts | 4 +- .../src/backend/DesktopBackendManager.test.ts | 4 +- .../src/backend/DesktopBackendManager.ts | 4 +- .../src/backend/DesktopBackendPool.test.ts | 4 +- .../desktop/src/backend/DesktopBackendPool.ts | 4 +- .../DesktopLocalEnvironmentAuth.test.ts | 4 +- .../backend/DesktopLocalEnvironmentAuth.ts | 2 +- .../src/backend/DesktopServerExposure.test.ts | 2 +- .../src/backend/DesktopServerExposure.ts | 4 +- .../backend/tailscaleEndpointProvider.test.ts | 4 +- .../src/backend/tailscaleEndpointProvider.ts | 4 +- apps/desktop/src/electron/ElectronProtocol.ts | 2 +- .../src/ipc/methods/sshEnvironment.test.ts | 2 +- .../preview/BrowserImport/BrowserImport.ts | 2 +- .../BrowserImport/ChromiumCookies.test.ts | 2 +- .../preview/BrowserImport/ChromiumCookies.ts | 4 +- .../BrowserImport/ChromiumKeys.module.test.ts | 2 +- .../BrowserImport/ChromiumKeys.test.ts | 2 +- .../src/preview/BrowserImport/ChromiumKeys.ts | 12 +- .../BrowserImport/CookieDatabase.test.ts | 2 +- .../preview/BrowserImport/CookieDatabase.ts | 2 +- .../preview/BrowserImport/FirefoxCookies.ts | 2 +- .../src/preview/BrowserImport/Sources.test.ts | 2 +- .../src/preview/BrowserImport/Sources.ts | 4 +- apps/desktop/src/preview/BrowserSession.ts | 4 +- .../settings/DesktopSavedEnvironments.test.ts | 14 +- .../src/settings/DesktopSavedEnvironments.ts | 4 +- .../src/shell/DesktopShellEnvironment.test.ts | 4 +- .../src/shell/DesktopShellEnvironment.ts | 4 +- apps/desktop/src/snapShot/DesktopSnapShot.ts | 4 +- apps/desktop/src/ssh/DesktopSshEnvironment.ts | 4 +- .../src/wsl/DesktopWslEnvironment.test.ts | 2 +- apps/desktop/src/wsl/DesktopWslEnvironment.ts | 7 +- apps/mobile/src/components/ComposerEditor.tsx | 2 +- apps/mobile/src/components/ProjectFavicon.tsx | 2 +- apps/mobile/src/connection/runtime.ts | 2 +- .../liveActivityPreferences.test.ts | 2 +- .../remoteRegistration.test.ts | 7 +- .../src/features/cloud/connectOnboarding.ts | 2 +- apps/mobile/src/features/cloud/dpop.ts | 18 +- .../features/cloud/linkEnvironment.test.ts | 2 +- .../src/features/cloud/linkEnvironment.ts | 2 +- .../src/features/cloud/managedRelayState.ts | 2 +- .../connection/ConnectionEnvironmentRow.tsx | 2 +- .../connection/ConnectionsNewRouteScreen.tsx | 2 +- .../src/features/files/SourceFileSurface.tsx | 2 +- .../files/sourceHighlightingState.test.ts | 4 +- .../features/files/sourceHighlightingState.ts | 2 +- .../layout/AdaptiveWorkspaceLayout.tsx | 2 +- .../features/projects/AddProjectScreen.tsx | 2 +- .../mobile/src/features/review/reviewState.ts | 2 +- .../src/features/review/useReviewDiffData.ts | 4 +- .../SettingsClientStorageRouteScreen.tsx | 2 +- .../SettingsEnvironmentDetailRouteScreen.tsx | 2 +- .../settings/SettingsFollowUpRouteScreen.tsx | 2 +- .../settings/SettingsKeyboardRouteScreen.tsx | 2 +- .../SettingsNotificationsRouteScreen.tsx | 2 +- .../SettingsProjectGroupingRouteScreen.tsx | 2 +- .../settings/SettingsThreadsRouteScreen.tsx | 2 +- .../AppearancePreferencesProvider.tsx | 2 +- .../settings/scheduled-task-editor-state.ts | 2 +- .../showcase/ShowcaseCaptureCoordinator.tsx | 2 +- .../features/threads/NewTaskDraftScreen.tsx | 2 +- .../features/threads/ThreadSettingsSheet.tsx | 2 +- .../threads/checkout-new-task-branch.ts | 2 +- .../threads/markdownCodeHighlightState.ts | 2 +- .../threads/provider-catalog-refresh.test.ts | 2 +- .../features/threads/thread-handoff-row.tsx | 2 +- .../threads/use-legacy-plan-mode-enabled.ts | 2 +- .../use-thread-list-v2-shelf-preferences.ts | 2 +- .../voice-input/voiceInputSession.test.ts | 2 +- .../lib/hot-swappable-atom-runtime.test.ts | 2 +- .../src/lib/hot-swappable-atom-runtime.ts | 2 +- apps/mobile/src/lib/http-response.test.ts | 2 +- apps/mobile/src/lib/runtime.ts | 2 +- .../src/state/acknowledged-thread-messages.ts | 2 +- apps/mobile/src/state/assets.ts | 2 +- apps/mobile/src/state/atom-registry.ts | 2 +- apps/mobile/src/state/client-cache-state.ts | 2 +- .../src/state/composer-attachment-uploads.ts | 2 +- apps/mobile/src/state/device.ts | 2 +- apps/mobile/src/state/entities.ts | 2 +- .../src/state/pending-thread-creation.ts | 2 +- apps/mobile/src/state/preferences.test.ts | 2 +- apps/mobile/src/state/preferences.ts | 2 +- apps/mobile/src/state/presentation.ts | 2 +- apps/mobile/src/state/project-grouping.ts | 2 +- apps/mobile/src/state/projectClones.ts | 2 +- apps/mobile/src/state/queries.ts | 2 +- apps/mobile/src/state/query.ts | 2 +- apps/mobile/src/state/question-attachments.ts | 2 +- apps/mobile/src/state/queued-run-edit.ts | 2 +- .../remote-environment-projections.test.ts | 2 +- .../state/remote-environment-projections.ts | 2 +- apps/mobile/src/state/session.ts | 2 +- apps/mobile/src/state/shell.ts | 2 +- .../mobile/src/state/thread-composer-error.ts | 2 +- .../state/thread-list-environments.test.ts | 2 +- .../src/state/thread-list-environments.ts | 2 +- apps/mobile/src/state/thread-order.test.ts | 10 +- apps/mobile/src/state/thread-order.ts | 2 +- .../mobile/src/state/thread-outbox-manager.ts | 2 +- apps/mobile/src/state/thread-outbox.test.ts | 6 +- apps/mobile/src/state/threads.ts | 2 +- apps/mobile/src/state/usage.ts | 2 +- .../mobile/src/state/use-atom-query-runner.ts | 2 +- apps/mobile/src/state/use-composer-drafts.ts | 2 +- .../state/use-remote-environment-registry.ts | 2 +- .../state/use-selected-thread-git-actions.ts | 2 +- .../src/state/use-selected-thread-requests.ts | 2 +- .../src/state/use-thread-composer-state.ts | 4 +- apps/mobile/src/state/use-thread-detail.ts | 2 +- .../src/state/use-thread-outbox-drain.test.ts | 4 +- .../src/state/use-thread-outbox-drain.ts | 2 +- apps/mobile/src/state/use-thread-outbox.ts | 2 +- apps/mobile/src/state/use-thread-pr.ts | 2 +- apps/mobile/src/state/use-vcs-action-state.ts | 2 +- apps/mobile/src/state/v2-item-support.ts | 2 +- .../state/workspace-connection-atoms.test.ts | 2 +- .../src/state/workspace-connection-atoms.ts | 2 +- .../widgets/SubscriptionUsageCoordinator.tsx | 2 +- .../NetworkTransferMeasurement.integration.ts | 4 +- .../transferBudgetV2.integration.test.ts | 8 +- apps/server/package.json | 6 +- apps/server/scripts/cli.ts | 4 +- apps/server/scripts/evaluate-thread-titles.ts | 2 +- apps/server/scripts/migrate-dev-db.test.ts | 2 +- apps/server/scripts/migrate-dev-db.ts | 4 +- .../record-codex-app-server-replay-fixture.ts | 2 +- .../record-cursor-agent-sdk-replay-fixture.ts | 2 +- .../scripts/record-grok-acp-replay-fixture.ts | 2 +- .../scripts/record-pi-rpc-replay-fixture.ts | 2 +- apps/server/scripts/t3-sqlite-state.test.ts | 2 +- apps/server/scripts/t3-sqlite-state.ts | 4 +- apps/server/scripts/verify-background-live.ts | 4 +- apps/server/src/assets/AssetAccess.test.ts | 4 +- apps/server/src/assets/AssetAccess.ts | 4 +- apps/server/src/assets/AttachmentUpload.ts | 2 +- apps/server/src/assets/GitHubMediaFetch.ts | 4 +- .../src/assets/NativeAppIconResolver.test.ts | 2 +- .../src/assets/NativeAppIconResolver.ts | 2 +- apps/server/src/auth/EnvironmentAuth.test.ts | 2 +- apps/server/src/auth/EnvironmentAuth.ts | 2 +- apps/server/src/auth/RpcAuthorization.test.ts | 2 +- apps/server/src/auth/RpcAuthorization.ts | 2 +- apps/server/src/auth/SessionStore.test.ts | 2 +- apps/server/src/auth/dpop.ts | 6 +- apps/server/src/auth/http.test.ts | 10 +- apps/server/src/auth/http.ts | 8 +- apps/server/src/auth/replayMarkers.ts | 2 +- apps/server/src/auth/utils.ts | 10 +- apps/server/src/binCli.ts | 4 +- apps/server/src/checkpointing/Utils.ts | 4 +- apps/server/src/cli/acpMcpBridge.ts | 2 +- apps/server/src/cli/app.test.ts | 2 +- apps/server/src/cli/app.ts | 2 +- apps/server/src/cli/auth.ts | 2 +- apps/server/src/cli/claudeHistory.ts | 2 +- apps/server/src/cli/config.ts | 4 +- apps/server/src/cli/connect.ts | 11 +- apps/server/src/cli/pair.test.ts | 2 +- apps/server/src/cli/pair.ts | 9 +- apps/server/src/cli/project.test.ts | 2 +- apps/server/src/cli/project.ts | 6 +- apps/server/src/cli/server.ts | 4 +- apps/server/src/cli/service.test.ts | 2 +- apps/server/src/cli/service.ts | 4 +- apps/server/src/cli/serviceLauncher.ts | 2 +- apps/server/src/cli/servicePreflight.ts | 2 +- apps/server/src/cli/sshHelper.ts | 2 +- apps/server/src/cli/theme.test.ts | 2 +- apps/server/src/cli/theme.ts | 2 +- apps/server/src/cli/trace.ts | 2 +- apps/server/src/cli/triage.ts | 2 +- apps/server/src/cli/uninstall.ts | 2 +- apps/server/src/cli/update.ts | 9 +- apps/server/src/cloud/CliTokenManager.test.ts | 12 +- apps/server/src/cloud/CliTokenManager.ts | 24 +- .../src/cloud/ManagedEndpointRuntime.test.ts | 2 +- .../src/cloud/ManagedEndpointRuntime.ts | 4 +- apps/server/src/cloud/bootService.test.ts | 4 +- apps/server/src/cloud/bootService.ts | 2 +- apps/server/src/cloud/http.test.ts | 2 +- apps/server/src/cloud/http.ts | 10 +- apps/server/src/cloud/pinnedRuntime.test.ts | 4 +- apps/server/src/cloud/pinnedRuntime.ts | 6 +- apps/server/src/cloud/relayResponse.test.ts | 4 +- apps/server/src/cloud/relayResponse.ts | 4 +- apps/server/src/cloud/selfUpdate.test.ts | 4 +- apps/server/src/cloud/selfUpdate.ts | 2 +- apps/server/src/cloud/traceRelayRequest.ts | 2 +- apps/server/src/device/DeviceHubProxy.test.ts | 2 +- apps/server/src/device/DeviceHubProxy.ts | 4 +- .../server/src/device/DeviceMultiHost.test.ts | 2 +- apps/server/src/device/DeviceService.test.ts | 2 +- apps/server/src/device/DeviceService.ts | 2 +- .../server/src/device/DeviceToolchain.test.ts | 2 +- .../server/src/device/LocalDeviceHost.test.ts | 4 +- apps/server/src/device/LocalDeviceHost.ts | 6 +- apps/server/src/device/SshDeviceHost.test.ts | 6 +- apps/server/src/device/SshDeviceHost.ts | 6 +- .../src/device/deviceToolMaintenance.test.ts | 2 +- .../src/device/localSshDeviceHost.test.ts | 2 +- .../src/environment/DirectEndpoints.test.ts | 6 +- .../server/src/environment/DirectEndpoints.ts | 4 +- .../src/environment/RemoteOpenTargets.test.ts | 2 +- .../src/environment/RemoteOpenTargets.ts | 2 +- .../ServerEnvironmentLabel.test.ts | 2 +- .../ServerEnvironmentMachine.test.ts | 2 +- apps/server/src/git/GitManager.test.ts | 2 +- apps/server/src/http.test.ts | 57 +- apps/server/src/http.ts | 20 +- apps/server/src/imageMime.ts | 2 +- apps/server/src/mcp/McpDeviceToolkit.test.ts | 2 +- apps/server/src/mcp/McpHttpServer.test.ts | 4 +- apps/server/src/mcp/McpHttpServer.ts | 4 +- .../server/src/mcp/McpSessionRegistry.test.ts | 4 +- apps/server/src/mcp/McpSessionRegistry.ts | 4 +- ...OrchestratorMcpToolkit.integration.test.ts | 17 +- .../src/mcp/PreviewAutomationBroker.test.ts | 4 +- .../src/mcp/toolkits/attachment/tools.ts | 2 +- apps/server/src/mcp/toolkits/core.test.ts | 27 +- apps/server/src/mcp/toolkits/device/tools.ts | 2 +- .../src/mcp/toolkits/environment/tools.ts | 2 +- .../mcp/toolkits/orchestrator/tools.test.ts | 2 +- .../src/mcp/toolkits/orchestrator/tools.ts | 2 +- .../src/mcp/toolkits/preview/tools.test.ts | 2 +- apps/server/src/mcp/toolkits/preview/tools.ts | 2 +- .../src/mcp/toolkits/previewControls/tools.ts | 2 +- apps/server/src/mcp/toolkits/project/tools.ts | 2 +- .../toolkits/pullRequests/handlers.test.ts | 2 +- .../src/mcp/toolkits/pullRequests/tools.ts | 4 +- apps/server/src/mcp/toolkits/thread/tools.ts | 2 +- .../toolkits/worktree/registration.test.ts | 2 +- .../server/src/mcp/toolkits/worktree/tools.ts | 2 +- .../src/observability/Layers/Observability.ts | 6 +- .../AcpRegistryOrchestratorV2.live.test.ts | 2 +- .../Adapters/AcpAdapterV2.test.ts | 2 +- .../Adapters/AcpAdapterV2.testkit.ts | 2 +- .../orchestration-v2/Adapters/AcpAdapterV2.ts | 2 +- .../Adapters/AcpRegistryAdapterV2.test.ts | 4 +- .../Adapters/AcpRegistryAdapterV2.testkit.ts | 2 +- .../Adapters/AcpRegistryAdapterV2.ts | 2 +- .../Adapters/AntigravityAdapterV2.test.ts | 2 +- .../Adapters/AntigravityAdapterV2.ts | 22 +- .../Adapters/ClaudeAdapterV2.test.ts | 2 +- .../Adapters/CodexAdapterV2.test.ts | 2 +- .../Adapters/CodexAdapterV2.ts | 2 +- .../Adapters/GrokAdapterV2.test.ts | 2 +- .../Adapters/GrokAdapterV2.testkit.ts | 2 +- .../Adapters/GrokAdapterV2.ts | 2 +- .../Adapters/OpenCode2AdapterV2.test.ts | 5 +- .../Adapters/OpenCode2AdapterV2.testkit.ts | 8 +- .../Adapters/PiAdapterV2.test.ts | 2 +- .../Adapters/PiAdapterV2.testkit.ts | 2 +- .../orchestration-v2/Adapters/PiAdapterV2.ts | 2 +- .../src/orchestration-v2/Adapters/PiRpc.ts | 2 +- .../CheckpointCaptureService.test.ts | 2 +- .../src/orchestration-v2/CheckpointService.ts | 4 +- .../CursorOrchestratorV2.live.test.ts | 2 +- .../src/orchestration-v2/EffectOutbox.ts | 2 +- apps/server/src/orchestration-v2/EventSink.ts | 2 +- .../server/src/orchestration-v2/EventStore.ts | 2 +- .../FoundationPersistence.test.ts | 4 +- .../GrokOrchestratorV2.live.test.ts | 2 +- .../OpenCode2OrchestratorV2.live.test.ts | 4 +- .../Orchestrator.control-reads.test.ts | 2 +- ...ProjectSettingsUpgrade.integration.test.ts | 2 +- .../src/orchestration-v2/ProjectStore.test.ts | 2 +- .../src/orchestration-v2/ProjectStore.ts | 4 +- .../ProjectionControlReads.test.ts | 2 +- .../orchestration-v2/ProjectionMaintenance.ts | 2 +- .../ProjectionRecovery.test.ts | 2 +- .../ProjectionSettlement.test.ts | 4 +- .../orchestration-v2/ProjectionStore.test.ts | 2 +- .../src/orchestration-v2/ProjectionStore.ts | 4 +- ...ProviderRuntimeRecoveryPerformance.test.ts | 2 +- .../ProviderSessionManager.test.ts | 4 +- .../RunCompletionReads.test.ts | 2 +- .../src/orchestration-v2/ThreadSearch.test.ts | 2 +- .../src/orchestration-v2/ThreadSearch.ts | 4 +- .../ThreadTransportPerformance.test.ts | 2 +- .../orchestration-v2/TurnItemPositionStore.ts | 2 +- .../orchestration-v2/TurnStartReads.test.ts | 2 +- apps/server/src/orchestration-v2/http.ts | 4 +- .../LegacyV1Cutover.integration.test.ts | 2 +- .../legacy/LegacyV1ThreadImporter.test.ts | 2 +- .../legacy/LegacyV1ThreadImporter.ts | 2 +- .../src/orchestration-v2/runtimeLayer.test.ts | 2 +- .../testkit/ProviderReplayHarness.ts | 6 +- .../ProviderSwitch.integration.test.ts | 2 +- .../testkit/ReplayFixtureWorkspace.ts | 2 +- .../testkit/ThreadFork.integration.test.ts | 2 +- .../src/persistence/AuthPairingLinks.ts | 4 +- apps/server/src/persistence/AuthSessions.ts | 4 +- apps/server/src/persistence/Errors.test.ts | 2 +- .../Layers/OrchestrationCommandReceipts.ts | 4 +- .../OrchestrationEventStore.sequence.test.ts | 2 +- .../Layers/OrchestrationEventStore.test.ts | 4 +- .../Layers/OrchestrationEventStore.ts | 4 +- .../src/persistence/Layers/Sqlite.test.ts | 2 +- apps/server/src/persistence/Layers/Sqlite.ts | 2 +- apps/server/src/persistence/Migrations.ts | 4 +- .../Migrations/001_OrchestrationEvents.ts | 2 +- .../002_OrchestrationCommandReceipts.ts | 2 +- .../Migrations/003_CheckpointDiffBlobs.ts | 2 +- .../Migrations/004_ProviderSessionRuntime.ts | 2 +- .../persistence/Migrations/005_Projections.ts | 2 +- ...ojectionThreadSessionRuntimeModeColumns.ts | 2 +- .../007_ProjectionThreadMessageAttachments.ts | 2 +- .../008_ProjectionThreadActivitySequence.ts | 2 +- .../009_ProviderSessionRuntimeMode.ts | 2 +- .../010_ProjectionThreadsRuntimeMode.ts | 2 +- ...1_OrchestrationThreadCreatedRuntimeMode.ts | 2 +- .../012_ProjectionThreadsInteractionMode.ts | 2 +- .../013_ProjectionThreadProposedPlans.ts | 2 +- ...jectionThreadProposedPlanImplementation.ts | 2 +- .../015_ProjectionTurnsSourceProposedPlan.ts | 2 +- .../016_CanonicalizeModelSelections.test.ts | 2 +- .../016_CanonicalizeModelSelections.ts | 2 +- .../017_ProjectionThreadsArchivedAt.ts | 2 +- .../018_ProjectionThreadsArchivedAtIndex.ts | 2 +- ...19_ProjectionSnapshotLookupIndexes.test.ts | 2 +- .../019_ProjectionSnapshotLookupIndexes.ts | 2 +- .../Migrations/020_AuthAccessManagement.ts | 2 +- .../021_AuthSessionClientMetadata.ts | 2 +- .../022_AuthSessionLastConnectedAt.ts | 2 +- .../023_ProjectionThreadShellSummary.ts | 2 +- ...ckfillProjectionThreadShellSummary.test.ts | 2 +- ...24_BackfillProjectionThreadShellSummary.ts | 2 +- ...pInvalidProjectionPendingApprovals.test.ts | 2 +- ...leanupInvalidProjectionPendingApprovals.ts | 2 +- ..._CanonicalizeModelSelectionOptions.test.ts | 2 +- .../026_CanonicalizeModelSelectionOptions.ts | 2 +- .../027_028_ProviderInstanceIdColumns.test.ts | 2 +- .../027_ProviderSessionRuntimeInstanceId.ts | 2 +- .../028_ProjectionThreadSessionInstanceId.ts | 2 +- ...jectionThreadDetailOrderingIndexes.test.ts | 2 +- ...9_ProjectionThreadDetailOrderingIndexes.ts | 2 +- ...030_ProjectionThreadShellArchiveIndexes.ts | 2 +- .../031_AuthAuthorizationScopes.test.ts | 2 +- .../Migrations/031_AuthAuthorizationScopes.ts | 2 +- .../032_AuthPairingProofKeyThumbprint.ts | 2 +- .../033_ProjectionThreadsSettled.ts | 2 +- .../034_ProjectionThreadsSnoozed.ts | 2 +- ..._ProjectionThreadTitleRegeneration.test.ts | 2 +- .../035_ProjectionThreadTitleRegeneration.ts | 2 +- .../Migrations/036_ProjectionThreadsPinned.ts | 2 +- .../037_ProjectionTurnsKeysetIndex.ts | 2 +- .../038_ProjectionThreadsPinOrderKey.ts | 2 +- ..._ProjectionProjectsDefaultThreadEnvMode.ts | 2 +- .../040_ProjectionProjectFaviconPath.test.ts | 2 +- .../040_ProjectionProjectFaviconPath.ts | 2 +- .../041_AuthSessionClientConnection.test.ts | 2 +- .../041_AuthSessionClientConnection.ts | 2 +- ..._ProjectionThreadLinkedPullRequest.test.ts | 2 +- .../042_ProjectionThreadLinkedPullRequest.ts | 2 +- .../043_ProjectionThreadsUnsettledAt.ts | 2 +- .../044_ClearAutomaticProjectModelDefaults.ts | 2 +- .../045_ProjectionProjectsAutoPull.ts | 2 +- ...epairAutomaticSettlementTimestamps.test.ts | 2 +- ...046_RepairAutomaticSettlementTimestamps.ts | 2 +- .../047_ProjectionProjectIcon.test.ts | 2 +- .../Migrations/047_ProjectionProjectIcon.ts | 2 +- .../048_ProjectionThreadBranchPullRequest.ts | 2 +- ...49_ProjectionThreadsActiveOrderKey.test.ts | 2 +- .../049_ProjectionThreadsActiveOrderKey.ts | 2 +- .../050_ProjectionThreadPullRequests.test.ts | 2 +- .../050_ProjectionThreadPullRequests.ts | 2 +- ...051_ProjectionThreadMessageContext.test.ts | 2 +- .../051_ProjectionThreadMessageContext.ts | 2 +- .../052_ProjectionThreadTitleState.ts | 2 +- .../Migrations/053_PullRequestFilesViewed.ts | 2 +- ...jectionThreadsAutoSettleDisabledAt.test.ts | 2 +- ...4_ProjectionThreadsAutoSettleDisabledAt.ts | 2 +- ...trationV2.application-event-source.test.ts | 2 +- ...rchestrationV2.effect-cancellation.test.ts | 2 +- .../Migrations/055_OrchestrationV2.test.ts | 2 +- .../Migrations/055_OrchestrationV2.ts | 2 +- ...6_RemoveRedundantProjectionIndexes.test.ts | 2 +- .../056_RemoveRedundantProjectionIndexes.ts | 2 +- .../ApplicationEventSequenceIndexes.ts | 2 +- .../OrchestrationV2/ApplicationEventSource.ts | 2 +- .../OrchestrationV2/EffectCancellation.ts | 2 +- .../Migrations/OrchestrationV2/Foundation.ts | 2 +- .../OrchestrationV2/LegacyV1ImportState.ts | 2 +- .../ProviderSessionBindings.ts | 2 +- .../OrchestrationV2/RecoveryIndexes.ts | 2 +- .../OrchestrationV2/ScheduledTasks.ts | 2 +- .../OrchestrationV2/ShellIndexes.ts | 2 +- .../Migrations/OrchestrationV2/Subagents.ts | 2 +- .../OrchestrationV2/ThreadLaunchWorkflows.ts | 2 +- .../src/persistence/ProviderSessionRuntime.ts | 4 +- .../src/persistence/PullRequestFilesViewed.ts | 4 +- .../RepositoryErrorCorrelation.test.ts | 2 +- .../persistence/initializeV2Database.test.ts | 2 +- .../reconcileV2PreviewMigration.test.ts | 4 +- .../reconcileV2PreviewMigration.ts | 4 +- apps/server/src/preview/PortScanner.test.ts | 2 +- apps/server/src/preview/PortScanner.ts | 2 +- .../src/process/externalLauncher.test.ts | 2 +- apps/server/src/process/externalLauncher.ts | 8 +- apps/server/src/processRunner.test.ts | 2 +- apps/server/src/processRunner.ts | 4 +- .../project/ProjectService.deletion.test.ts | 2 +- .../server/src/project/ProjectService.test.ts | 2 +- .../RepositoryIdentityResolver.test.ts | 2 +- apps/server/src/project/http.ts | 2 +- .../provider/AntigravityInstallation.test.ts | 4 +- .../src/provider/AntigravityInstallation.ts | 4 +- .../src/provider/CodexChatGptAuth.test.ts | 2 +- apps/server/src/provider/CodexChatGptAuth.ts | 2 +- .../src/provider/CodexChatGptHandoff.ts | 2 +- .../src/provider/CodexChatGptModels.test.ts | 2 +- .../server/src/provider/CodexChatGptModels.ts | 2 +- .../src/provider/CodexInstallation.test.ts | 2 +- apps/server/src/provider/CodexInstallation.ts | 4 +- .../src/provider/CodexManagedRuntime.test.ts | 2 +- .../src/provider/Drivers/AcpRegistryDriver.ts | 2 +- .../Drivers/AntigravityDriver.test.ts | 2 +- .../src/provider/Drivers/AntigravityDriver.ts | 2 +- .../src/provider/Drivers/ClaudeDriver.ts | 4 +- .../src/provider/Drivers/CodexDriver.test.ts | 6 +- .../src/provider/Drivers/CodexDriver.ts | 4 +- .../provider/Drivers/CodexManagedProvider.ts | 4 +- .../src/provider/Drivers/CursorDriver.test.ts | 4 +- .../src/provider/Drivers/CursorDriver.ts | 2 +- .../src/provider/Drivers/GrokDriver.test.ts | 4 +- .../server/src/provider/Drivers/GrokDriver.ts | 4 +- .../src/provider/Drivers/GrokSkills.test.ts | 2 +- .../server/src/provider/Drivers/GrokSkills.ts | 2 +- .../provider/Drivers/OpenCodeDriver.test.ts | 4 +- .../src/provider/Drivers/OpenCodeDriver.ts | 4 +- apps/server/src/provider/Drivers/PiDriver.ts | 4 +- .../src/provider/Layers/ClaudeProvider.ts | 2 +- .../src/provider/Layers/CodexProvider.ts | 4 +- .../src/provider/Layers/GrokProvider.test.ts | 2 +- .../src/provider/Layers/GrokProvider.ts | 4 +- .../provider/Layers/OpenCodeProvider.test.ts | 2 +- .../src/provider/Layers/PiProvider.test.ts | 2 +- apps/server/src/provider/Layers/PiProvider.ts | 4 +- .../ProviderInstanceRegistryLive.test.ts | 2 +- .../provider/Layers/ProviderRegistry.test.ts | 4 +- .../Layers/claudeResetCredits.test.ts | 2 +- .../src/provider/Layers/claudeResetCredits.ts | 2 +- .../provider/Layers/cursorUsageLimits.test.ts | 2 +- .../src/provider/Layers/cursorUsageLimits.ts | 2 +- .../src/provider/Layers/grokUsageLimits.ts | 2 +- .../provider/Layers/openCodeUsageLimits.ts | 2 +- .../server/src/provider/ModelManifest.test.ts | 2 +- apps/server/src/provider/ModelManifest.ts | 2 +- .../src/provider/OpenCodeServerLedger.test.ts | 2 +- .../src/provider/OpenCodeServerLedger.ts | 2 +- .../provider/acp/AcpClientTerminals.test.ts | 2 +- .../src/provider/acp/AcpClientTerminals.ts | 2 +- .../src/provider/acp/AcpRegistryAuth.ts | 2 +- .../src/provider/acp/AcpRegistryProbe.ts | 2 +- .../provider/acp/AcpRegistrySupport.test.ts | 4 +- .../src/provider/acp/AcpRegistrySupport.ts | 4 +- .../src/provider/acp/AcpSessionRuntime.ts | 7 +- .../src/provider/acp/AntigravityAcpSupport.ts | 2 +- .../src/provider/acp/GrokAcpCliProbe.test.ts | 2 +- .../server/src/provider/acp/GrokAcpSupport.ts | 2 +- .../provider/antigravityAuthSupport.test.ts | 6 +- .../src/provider/antigravityAuthSupport.ts | 10 +- .../opencode2/OpenCode2Client.events.test.ts | 2 +- .../opencode2/OpenCode2Client.live.test.ts | 10 +- .../opencode2/OpenCode2Client.test.ts | 2 +- .../src/provider/opencode2/OpenCode2Client.ts | 10 +- .../opencode2/OpenCode2Server.live.test.ts | 4 +- .../opencode2/OpenCode2Server.test.ts | 2 +- .../src/provider/opencode2/OpenCode2Server.ts | 6 +- .../opencodeRuntime.environment.test.ts | 2 +- apps/server/src/provider/opencodeRuntime.ts | 2 +- .../src/provider/opencodeVersionProbe.test.ts | 2 +- .../src/provider/opencodeVersionProbe.ts | 2 +- .../src/provider/providerMaintenance.test.ts | 4 +- .../src/provider/providerMaintenance.ts | 4 +- .../providerMaintenanceRunner.test.ts | 4 +- .../src/provider/providerMaintenanceRunner.ts | 4 +- .../src/provider/providerSnapshot.test.ts | 2 +- apps/server/src/provider/providerSnapshot.ts | 2 +- .../testFixtures/opencodeProbeResponses.ts | 2 +- .../AzureDevOpsPullRequestCli.test.ts | 2 +- .../pullRequest/GitHubPullRequestCli.test.ts | 2 +- .../pullRequest/GitLabPullRequestCli.test.ts | 2 +- .../pullRequest/PullRequestReadCache.test.ts | 2 +- .../src/pullRequest/PullRequestReadCache.ts | 12 +- .../pullRequest/PullRequestService.test.ts | 4 +- .../gitHubConditionalChecks.test.ts | 2 +- .../pullRequest/githubStackActions.test.ts | 2 +- apps/server/src/pullRequest/http.ts | 2 +- .../src/pullRequest/linkedThreads.test.ts | 2 +- apps/server/src/pullRequest/linkedThreads.ts | 2 +- .../src/relay/AgentAwarenessRelay.test.ts | 2 +- apps/server/src/relay/AgentAwarenessRelay.ts | 8 +- .../DesktopTelemetryReceiver.ts | 2 +- .../src/resourceTelemetry/HostResources.ts | 2 +- .../NativeTelemetryClient.ts | 4 +- .../ScheduledTaskService.test.ts | 2 +- .../scheduledTasks/ScheduledTaskService.ts | 2 +- .../scheduling/Scheduler.integration.test.ts | 2 +- apps/server/src/server.ts | 13 +- apps/server/src/serverLogger.test.ts | 4 +- apps/server/src/serverLogger.ts | 4 +- apps/server/src/serverSettings.test.ts | 2 +- apps/server/src/serverSettings.ts | 2 +- .../src/sourceControl/AzureDevOpsCli.test.ts | 2 +- .../src/sourceControl/BitbucketApi.test.ts | 7 +- apps/server/src/sourceControl/BitbucketApi.ts | 2 +- apps/server/src/sourceControl/ForgejoCli.ts | 4 +- .../src/sourceControl/GitHubCli.test.ts | 2 +- .../GitHubSourceControlProvider.test.ts | 2 +- .../src/sourceControl/GitLabCli.test.ts | 2 +- .../GitLabSourceControlProvider.test.ts | 2 +- .../SourceControlDiscovery.test.ts | 4 +- .../SourceControlProviderRegistry.test.ts | 2 +- .../SourceControlRepositoryService.test.ts | 2 +- apps/server/src/startupAccess.ts | 2 +- apps/server/src/storageCleanup.ts | 2 +- .../src/telemetry/AnalyticsService.test.ts | 10 +- apps/server/src/telemetry/AnalyticsService.ts | 6 +- apps/server/src/telemetry/Identify.ts | 4 +- apps/server/src/terminal/Manager.test.ts | 10 +- apps/server/src/terminal/Manager.ts | 6 +- .../src/terminal/OutputProtocol.test.ts | 2 +- apps/server/src/terminal/OutputProtocol.ts | 2 +- .../textGeneration/ClaudeTextGeneration.ts | 2 +- .../src/textGeneration/CodexTextGeneration.ts | 2 +- .../src/textGeneration/GrokTextGeneration.ts | 2 +- .../src/textGeneration/PiTextGeneration.ts | 2 +- apps/server/src/usage/UsageService.test.ts | 2 +- apps/server/src/usage/UsageService.ts | 2 +- apps/server/src/usage/cliproxyApi.test.ts | 2 +- apps/server/src/usage/cliproxyApi.ts | 2 +- apps/server/src/vcs/GitVcsDriver.test.ts | 2 +- apps/server/src/vcs/GitVcsDriver.ts | 2 +- apps/server/src/vcs/GitVcsDriverCore.test.ts | 2 +- apps/server/src/vcs/GitVcsDriverCore.ts | 6 +- apps/server/src/vcs/VcsDriverRegistry.test.ts | 2 +- apps/server/src/vcs/VcsProcess.test.ts | 2 +- apps/server/src/vcs/VcsProcess.ts | 2 +- .../src/vcs/VcsProvisioningService.test.ts | 2 +- apps/server/src/ws.test.ts | 2 +- apps/server/src/ws.ts | 10 +- apps/web/src/assets/assetUrls.ts | 2 +- apps/web/src/authBootstrap.test.ts | 2 +- apps/web/src/browser/browserRecording.ts | 2 +- apps/web/src/browser/openFileInPreview.ts | 2 +- .../src/browser/previewWebviewConfigState.ts | 2 +- apps/web/src/cloud/linkEnvironment.test.ts | 2 +- apps/web/src/cloud/linkEnvironment.ts | 2 +- apps/web/src/cloud/managedRelayState.ts | 2 +- apps/web/src/cloud/primaryCloudLinkState.ts | 4 +- apps/web/src/components/ChatMarkdown.tsx | 2 +- .../web/src/components/ChatView.logic.test.ts | 2 +- apps/web/src/components/ChatView.tsx | 4 +- .../ProviderUpdateEnvironmentRows.test.tsx | 2 +- ...iderUpdateLaunchNotification.logic.test.ts | 2 +- .../components/ServerUpdateAction.test.tsx | 2 +- apps/web/src/components/Sidebar.logic.test.ts | 2 +- apps/web/src/components/Sidebar.logic.ts | 2 +- ...eadStatusIndicators.subscriptions.test.tsx | 4 +- .../components/ThreadStatusIndicators.test.ts | 2 +- .../src/components/ThreadStatusIndicators.tsx | 2 +- .../chat/useAutoBalanceUpdateBanner.tsx | 2 +- .../CloudEnvironmentConnectList.test.tsx | 2 +- .../components/diffs/useReviewFilePatches.ts | 4 +- .../files/fileSaveCoordinator.test.ts | 2 +- .../files/projectFilesQueryState.test.tsx | 2 +- .../files/projectFilesQueryState.ts | 2 +- .../files/useFileSaveCoordinator.test.tsx | 2 +- .../components/onboarding/FirstRunGate.tsx | 2 +- .../preview/PreviewAutomationHosts.test.tsx | 2 +- .../preview/PreviewAutomationHosts.tsx | 2 +- .../preview/addBrowserSurface.test.ts | 2 +- .../preview/closePreviewSession.test.ts | 2 +- .../preview/openPreviewSession.test.ts | 2 +- .../components/preview/openPreviewSession.ts | 2 +- .../preview/openTerminalLinkInPreview.test.ts | 2 +- .../previewAutomationRequestConsumer.test.ts | 2 +- .../previewAutomationRequestConsumer.ts | 2 +- .../components/preview/usePreviewSession.ts | 2 +- .../components/projectScriptEditor.test.tsx | 2 +- .../pullRequest/LinkPullRequestDialog.tsx | 2 +- .../usePullRequestFilesViewed.test.tsx | 2 +- .../settings/ConnectionsSettings.tsx | 2 +- .../settings/ProjectSettingsPanel.tsx | 2 +- .../settings/SettingsScopeContext.tsx | 2 +- .../settings/useProjectScriptSettings.ts | 2 +- .../components/usage/UsagePriceOverrides.tsx | 2 +- apps/web/src/connection/platform.ts | 2 +- apps/web/src/connection/runtime.ts | 2 +- apps/web/src/editorPreferences.ts | 2 +- apps/web/src/environments/primary/auth.ts | 2 +- .../environments/primary/httpLayer.test.ts | 2 +- .../web/src/environments/primary/httpLayer.ts | 2 +- .../src/environments/primary/sessionState.ts | 2 +- .../src/hooks/showThreadUndoNotice.test.ts | 2 +- .../src/hooks/useLoadBalancedEnvironment.ts | 2 +- apps/web/src/hooks/useThreadActions.ts | 2 +- .../src/lib/assistantCitationNavigation.ts | 6 +- .../web/src/lib/attachmentUploadQueue.test.ts | 4 +- apps/web/src/lib/attachmentUploadQueue.ts | 2 +- apps/web/src/lib/diffFileContents.test.ts | 2 +- apps/web/src/lib/discardComposerDraft.ts | 2 +- apps/web/src/lib/runtime.ts | 2 +- apps/web/src/lib/utils.ts | 4 +- apps/web/src/observability/clientTracing.ts | 4 +- apps/web/src/onboarding/useProjectScans.ts | 2 +- apps/web/src/previewStateStore.ts | 2 +- apps/web/src/rpc/atomRegistry.ts | 2 +- apps/web/src/rpc/requestLatencyState.ts | 2 +- apps/web/src/state/assets.ts | 2 +- .../src/state/desktopNetworkAccess.test.ts | 4 +- apps/web/src/state/desktopNetworkAccess.ts | 2 +- apps/web/src/state/desktopSshHosts.test.ts | 4 +- apps/web/src/state/desktopSshHosts.ts | 2 +- apps/web/src/state/desktopUpdate.test.ts | 4 +- apps/web/src/state/desktopUpdate.ts | 4 +- apps/web/src/state/desktopWslState.test.ts | 4 +- apps/web/src/state/desktopWslState.ts | 2 +- apps/web/src/state/device.ts | 2 +- apps/web/src/state/entities.ts | 2 +- apps/web/src/state/paginatedBranches.test.ts | 2 +- apps/web/src/state/paginatedBranches.ts | 2 +- apps/web/src/state/presentation.ts | 2 +- apps/web/src/state/primaryEnvironment.ts | 2 +- apps/web/src/state/projectClones.ts | 2 +- apps/web/src/state/pullRequests.ts | 2 +- apps/web/src/state/queries.ts | 2 +- apps/web/src/state/query.ts | 2 +- apps/web/src/state/server.ts | 2 +- apps/web/src/state/session.ts | 2 +- apps/web/src/state/shell.test.ts | 2 +- apps/web/src/state/shell.ts | 2 +- apps/web/src/state/sourceControlActions.ts | 2 +- apps/web/src/state/threads.test.ts | 2 +- apps/web/src/state/threads.ts | 2 +- apps/web/src/state/usage.ts | 2 +- apps/web/src/state/use-atom-query-runner.ts | 2 +- apps/web/src/state/v2ItemSupport.ts | 2 +- apps/web/src/state/waitForAtomValue.test.ts | 2 +- apps/web/src/state/waitForAtomValue.ts | 2 +- apps/web/test/environmentHttpTest.ts | 4 +- infra/relay/package.json | 2 +- infra/relay/scripts/android-push-smoke.ts | 2 +- infra/relay/scripts/android-push-watch.ts | 8 +- .../src/agentActivity/ApnsClient.test.ts | 6 +- infra/relay/src/agentActivity/ApnsClient.ts | 6 +- .../src/agentActivity/ApnsDeliveries.test.ts | 7 +- .../relay/src/agentActivity/FcmClient.test.ts | 6 +- infra/relay/src/agentActivity/FcmClient.ts | 4 +- .../agentActivity/MobileRegistrations.test.ts | 2 +- infra/relay/src/agentActivity/apnsJwt.ts | 10 +- .../environments/EnvironmentConnector.test.ts | 2 +- .../src/environments/EnvironmentConnector.ts | 6 +- .../environments/EnvironmentCredentials.ts | 6 +- .../EnvironmentPublishSignatures.ts | 4 +- .../ManagedEndpointAllocations.ts | 2 +- .../environments/ManagedEndpointProvider.ts | 4 +- infra/relay/src/http/Api.test.ts | 14 +- infra/relay/src/http/Api.ts | 16 +- infra/relay/src/observability.test.ts | 8 +- infra/relay/src/observability.ts | 2 +- infra/relay/src/worker.ts | 10 +- oxlint-plugin-t3code/test/utils.ts | 2 +- .../src/authorization/service.ts | 2 +- .../client-runtime/src/connection/driver.ts | 2 +- .../src/connection/onboarding.ts | 2 +- .../src/connection/outdatedHostUpdate.test.ts | 6 +- .../src/connection/outdatedHostUpdate.ts | 8 +- .../client-runtime/src/connection/resolver.ts | 2 +- .../operations/commands.performance.test.ts | 2 +- .../client-runtime/src/projectFaviconCache.ts | 4 +- .../client-runtime/src/relay/managedRelay.ts | 6 +- .../src/relay/managedRelayState.test.ts | 2 +- .../src/relay/managedRelayState.ts | 2 +- .../src/remotePerformance.bench.ts | 2 +- .../client-runtime/src/rpc/client.test.ts | 2 +- packages/client-runtime/src/rpc/client.ts | 2 +- packages/client-runtime/src/rpc/http.ts | 4 +- packages/client-runtime/src/rpc/protocol.ts | 2 +- .../client-runtime/src/rpc/session.test.ts | 2 +- packages/client-runtime/src/rpc/session.ts | 10 +- .../src/state/archivedThreads.test.ts | 2 +- .../src/state/archivedThreads.ts | 2 +- .../client-runtime/src/state/assets.test.ts | 2 +- packages/client-runtime/src/state/assets.ts | 2 +- .../src/state/attachments.test.ts | 2 +- .../client-runtime/src/state/attachments.ts | 2 +- packages/client-runtime/src/state/auth.ts | 2 +- .../src/state/boundedThreadSnapshotHttp.ts | 2 +- .../client-runtime/src/state/connections.ts | 2 +- packages/client-runtime/src/state/device.ts | 2 +- .../src/state/deviceHubAccess.ts | 2 +- .../src/state/environmentHttpAuth.test.ts | 2 +- .../src/state/environmentHttpAuth.ts | 2 +- .../client-runtime/src/state/filesystem.ts | 2 +- packages/client-runtime/src/state/git.ts | 2 +- .../client-runtime/src/state/orchestration.ts | 2 +- .../src/state/outdatedServerUpdate.ts | 6 +- .../src/state/presentation.test.ts | 2 +- .../client-runtime/src/state/presentation.ts | 2 +- packages/client-runtime/src/state/preview.ts | 2 +- .../src/state/projectCommands.test.ts | 2 +- .../src/state/projectCommands.ts | 2 +- .../src/state/projectEntities.ts | 2 +- .../src/state/pullRequestDiffHttp.ts | 2 +- .../src/state/pullRequests.test.ts | 2 +- .../client-runtime/src/state/pullRequests.ts | 2 +- .../src/state/relayDiscovery.ts | 2 +- packages/client-runtime/src/state/review.ts | 2 +- .../client-runtime/src/state/runtime.test.ts | 2 +- packages/client-runtime/src/state/runtime.ts | 2 +- .../client-runtime/src/state/server.test.ts | 4 +- packages/client-runtime/src/state/server.ts | 2 +- .../src/state/serverUsage.test.ts | 2 +- packages/client-runtime/src/state/session.ts | 4 +- .../client-runtime/src/state/shell.test.ts | 2 +- packages/client-runtime/src/state/shell.ts | 2 +- .../client-runtime/src/state/shellCommands.ts | 2 +- .../src/state/shellSnapshotHttp.ts | 2 +- .../client-runtime/src/state/snapshots.ts | 2 +- .../src/state/sourceControl.test.ts | 2 +- .../client-runtime/src/state/sourceControl.ts | 2 +- packages/client-runtime/src/state/terminal.ts | 6 +- .../src/state/threadCommands.test.ts | 2 +- .../src/state/threadCommands.ts | 2 +- .../src/state/threadDetail.test.ts | 2 +- .../client-runtime/src/state/threadDetail.ts | 2 +- .../src/state/threadFeedback.test.ts | 2 +- .../src/state/threadLifecycle.ts | 2 +- .../src/state/threadSearch.test.ts | 2 +- .../client-runtime/src/state/threadSearch.ts | 2 +- .../src/state/threadShell.test.ts | 2 +- .../client-runtime/src/state/threadShell.ts | 2 +- .../src/state/threads-atoms.test.ts | 4 +- .../src/state/threads-sync.test.ts | 2 +- packages/client-runtime/src/state/threads.ts | 4 +- .../client-runtime/src/state/usage.test.ts | 2 +- packages/client-runtime/src/state/usage.ts | 2 +- packages/client-runtime/src/state/vcs.test.ts | 2 +- packages/client-runtime/src/state/vcs.ts | 2 +- .../src/state/vcsAction.test.ts | 2 +- .../client-runtime/src/state/vcsAction.ts | 2 +- .../src/state/vcsRefInvalidation.ts | 2 +- packages/contracts/src/auth.ts | 2 +- packages/contracts/src/baseSchemas.ts | 4 +- packages/contracts/src/environmentHttp.ts | 12 +- packages/contracts/src/pullRequest.ts | 4 +- packages/contracts/src/relay.test.ts | 2 +- packages/contracts/src/relay.ts | 14 +- packages/contracts/src/rpc.ts | 6 +- packages/effect-acp/scripts/generate.ts | 6 +- packages/effect-acp/src/_internal/shared.ts | 2 +- .../effect-acp/src/_internal/stdio.test.ts | 2 +- packages/effect-acp/src/_internal/stdio.ts | 2 +- packages/effect-acp/src/agent.ts | 6 +- packages/effect-acp/src/client.test.ts | 2 +- packages/effect-acp/src/client.ts | 8 +- packages/effect-acp/src/errors.test.ts | 2 +- packages/effect-acp/src/protocol.test.ts | 2 +- packages/effect-acp/src/protocol.ts | 31 +- packages/effect-acp/src/rpc.ts | 4 +- .../scripts/generate.ts | 9 +- .../src/_internal/stdio.test.ts | 2 +- .../src/_internal/stdio.ts | 2 +- .../src/client.test.ts | 2 +- .../effect-codex-app-server/src/client.ts | 2 +- .../test/examples/codex-app-server-probe.ts | 2 +- packages/shared/src/dpop.ts | 12 +- packages/shared/src/httpObservability.ts | 2 +- packages/shared/src/httpReadiness.ts | 2 +- packages/shared/src/nodeSqliteClient.test.ts | 2 +- packages/shared/src/nodeSqliteClient.ts | 10 +- packages/shared/src/observability.ts | 2 +- packages/shared/src/otelEnvironment.test.ts | 2 +- packages/shared/src/otelEnvironment.ts | 4 +- packages/shared/src/relayClient.test.ts | 12 +- packages/shared/src/relayClient.ts | 8 +- packages/shared/src/relayTracing.test.ts | 2 +- packages/shared/src/relayTracing.ts | 4 +- packages/shared/src/schemaJson.ts | 11 +- packages/ssh/src/command.test.ts | 2 +- packages/ssh/src/command.ts | 2 +- packages/ssh/src/runnerProcess.test.ts | 2 +- packages/ssh/src/tunnel.test.ts | 4 +- packages/ssh/src/tunnel.ts | 14 +- packages/tailscale/src/tailscale.test.ts | 2 +- packages/tailscale/src/tailscale.ts | 4 +- ....115.patch => @effect__vitest@4.0.1.patch} | 54 +- patches/@opencode__client@2.0.23.patch | 439 +++++ patches/@opencode__protocol@2.0.23.patch | 844 ++++++++++ patches/@opencode__schema@2.0.23.patch | 155 ++ ...a.79.patch => alchemy@2.0.0-beta.80.patch} | 10 +- ...@4.0.0-rc.115.patch => effect@4.0.1.patch} | 180 +- pnpm-lock.yaml | 1493 ++++++++++++----- pnpm-workspace.yaml | 81 +- scripts/apply-web-brand-assets.ts | 2 +- scripts/build-cli-archive.ts | 4 +- scripts/build-desktop-artifact.test.ts | 2 +- scripts/build-desktop-artifact.ts | 4 +- scripts/build-npm-platform-packages.test.ts | 2 +- scripts/build-npm-platform-packages.ts | 4 +- scripts/dev-runner.test.ts | 2 +- scripts/dev-runner.ts | 4 +- scripts/export-brand-icons.ts | 4 +- scripts/lib/dev-share.test.ts | 2 +- scripts/lib/dev-share.ts | 2 +- scripts/merge-update-manifests.test.ts | 2 +- scripts/merge-update-manifests.ts | 2 +- scripts/mobile-native-client.ts | 4 +- scripts/mobile-native-static-check.test.ts | 2 +- scripts/mobile-native-static-check.ts | 4 +- scripts/mock-update-server.test.ts | 2 +- scripts/mock-update-server.ts | 2 +- scripts/notify-discord-release.test.ts | 6 +- scripts/notify-discord-release.ts | 4 +- scripts/resolve-nightly-release.ts | 2 +- scripts/resolve-previous-release-tag.test.ts | 2 +- scripts/resolve-previous-release-tag.ts | 4 +- scripts/smoke-cli-archive.ts | 6 +- scripts/sync-reference-repos.test.ts | 2 +- scripts/sync-reference-repos.ts | 4 +- .../update-release-package-versions.test.ts | 2 +- scripts/update-release-package-versions.ts | 2 +- 834 files changed, 3985 insertions(+), 1911 deletions(-) rename patches/{@effect__vitest@4.0.0-rc.115.patch => @effect__vitest@4.0.1.patch} (70%) create mode 100644 patches/@opencode__client@2.0.23.patch create mode 100644 patches/@opencode__protocol@2.0.23.patch create mode 100644 patches/@opencode__schema@2.0.23.patch rename patches/{alchemy@2.0.0-beta.79.patch => alchemy@2.0.0-beta.80.patch} (91%) rename patches/{effect@4.0.0-rc.115.patch => effect@4.0.1.patch} (71%) diff --git a/apps/desktop/src/app/DesktopConnectionCatalogStore.test.ts b/apps/desktop/src/app/DesktopConnectionCatalogStore.test.ts index 5cb7aafbbd20..963755adc42b 100644 --- a/apps/desktop/src/app/DesktopConnectionCatalogStore.test.ts +++ b/apps/desktop/src/app/DesktopConnectionCatalogStore.test.ts @@ -3,7 +3,7 @@ import { assert, describe, it } from "@effect/vitest"; import { ConnectionCatalogDocument } from "@t3tools/client-runtime/platform"; import { EnvironmentId, type PersistedSavedEnvironmentRecord } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64 from "effect/encoding/Base64"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as Layer from "effect/Layer"; @@ -175,7 +175,7 @@ describe("DesktopConnectionCatalogStore", () => { record.environmentId === "bearer-environment" ? { ...record, - encryptedBearerToken: Encoding.encodeBase64( + encryptedBearerToken: Base64.encode( textEncoder.encode("encrypted:legacy-token"), ), } diff --git a/apps/desktop/src/app/DesktopConnectionCatalogStore.ts b/apps/desktop/src/app/DesktopConnectionCatalogStore.ts index 46b2546e681c..e9edcab88dcd 100644 --- a/apps/desktop/src/app/DesktopConnectionCatalogStore.ts +++ b/apps/desktop/src/app/DesktopConnectionCatalogStore.ts @@ -15,7 +15,7 @@ import { fromLenientJson } from "@t3tools/shared/schemaJson"; import * as Context from "effect/Context"; import * as Crypto from "effect/Crypto"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64 from "effect/encoding/Base64"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; @@ -171,7 +171,7 @@ function decodeSecretBytes( catalogPath: string, encoded: string, ): Effect.Effect { - return Effect.fromResult(Encoding.decodeBase64(encoded)).pipe( + return Effect.fromResult(Base64.decode(encoded)).pipe( Effect.mapError( (cause) => new DesktopConnectionCatalogStoreDecodeError({ @@ -399,7 +399,7 @@ export const make = Effect.gen(function* () { const writeCatalog = Effect.fn("desktop.connectionCatalogStore.writeCatalog")(function* ( catalog: string, ) { - const encryptedCatalog = Encoding.encodeBase64( + const encryptedCatalog = Base64.encode( yield* safeStorage.encryptString(catalog).pipe( Effect.mapError( (cause) => diff --git a/apps/desktop/src/app/DesktopLinuxUrlHandler.test.ts b/apps/desktop/src/app/DesktopLinuxUrlHandler.test.ts index 893c1aaebe1d..54c3184c2aa8 100644 --- a/apps/desktop/src/app/DesktopLinuxUrlHandler.test.ts +++ b/apps/desktop/src/app/DesktopLinuxUrlHandler.test.ts @@ -10,7 +10,7 @@ import * as PlatformError from "effect/PlatformError"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as DesktopEnvironment from "./DesktopEnvironment.ts"; import * as DesktopAssets from "./DesktopAssets.ts"; diff --git a/apps/desktop/src/app/DesktopLinuxUrlHandler.ts b/apps/desktop/src/app/DesktopLinuxUrlHandler.ts index f01e81d890bc..e67cdcefe9fa 100644 --- a/apps/desktop/src/app/DesktopLinuxUrlHandler.ts +++ b/apps/desktop/src/app/DesktopLinuxUrlHandler.ts @@ -4,8 +4,8 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import * as ChildProcess from "effect/unstable/process/ChildProcess"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcess from "effect/process/ChildProcess"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as ElectronProtocol from "../electron/ElectronProtocol.ts"; import * as DesktopAssets from "./DesktopAssets.ts"; diff --git a/apps/desktop/src/app/DesktopObservability.test.ts b/apps/desktop/src/app/DesktopObservability.test.ts index e23d78aa2161..cf17bf793a82 100644 --- a/apps/desktop/src/app/DesktopObservability.test.ts +++ b/apps/desktop/src/app/DesktopObservability.test.ts @@ -6,8 +6,8 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientResponse from "effect/http/HttpClientResponse"; import * as DesktopConfig from "./DesktopConfig.ts"; import * as DesktopEnvironment from "./DesktopEnvironment.ts"; diff --git a/apps/desktop/src/app/DesktopObservability.ts b/apps/desktop/src/app/DesktopObservability.ts index 55d8074ab7f0..03e3a8dfe222 100644 --- a/apps/desktop/src/app/DesktopObservability.ts +++ b/apps/desktop/src/app/DesktopObservability.ts @@ -26,7 +26,7 @@ import * as Scope from "effect/Scope"; import * as Semaphore from "effect/Semaphore"; import * as SynchronizedRef from "effect/SynchronizedRef"; import * as Tracer from "effect/Tracer"; -import { OtlpExporter, OtlpLogger, OtlpTracer } from "effect/unstable/observability"; +import { OtlpExporter, OtlpLogger, OtlpTracer } from "effect/observability"; import * as DesktopEnvironment from "./DesktopEnvironment.ts"; diff --git a/apps/desktop/src/backend/DesktopBackendConfiguration.test.ts b/apps/desktop/src/backend/DesktopBackendConfiguration.test.ts index 07644a8af47c..f3b60a3fdba3 100644 --- a/apps/desktop/src/backend/DesktopBackendConfiguration.test.ts +++ b/apps/desktop/src/backend/DesktopBackendConfiguration.test.ts @@ -9,7 +9,7 @@ import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as PlatformError from "effect/PlatformError"; import * as Schema from "effect/Schema"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as DesktopEnvironment from "../app/DesktopEnvironment.ts"; import * as DesktopBackendConfiguration from "./DesktopBackendConfiguration.ts"; diff --git a/apps/desktop/src/backend/DesktopBackendConfiguration.ts b/apps/desktop/src/backend/DesktopBackendConfiguration.ts index d1590d1a433d..e920c0d73971 100644 --- a/apps/desktop/src/backend/DesktopBackendConfiguration.ts +++ b/apps/desktop/src/backend/DesktopBackendConfiguration.ts @@ -4,7 +4,7 @@ import { parsePersistedServerObservabilitySettings } from "@t3tools/shared/serve import * as Context from "effect/Context"; import * as Crypto from "effect/Crypto"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Hex from "effect/encoding/Hex"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; @@ -842,7 +842,7 @@ export const make = Effect.gen(function* () { onNone: () => crypto.randomBytes(24).pipe( Effect.map((bytes) => { - const token = Encoding.encodeHex(bytes); + const token = Hex.encode(bytes); return [token, Option.some(token)] as const; }), ), diff --git a/apps/desktop/src/backend/DesktopBackendManager.test.ts b/apps/desktop/src/backend/DesktopBackendManager.test.ts index 901d9f4a2708..881382519872 100644 --- a/apps/desktop/src/backend/DesktopBackendManager.test.ts +++ b/apps/desktop/src/backend/DesktopBackendManager.test.ts @@ -19,8 +19,8 @@ import * as Sink from "effect/Sink"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as DesktopBackendManager from "./DesktopBackendManager.ts"; import * as DesktopApp from "../app/DesktopApp.ts"; diff --git a/apps/desktop/src/backend/DesktopBackendManager.ts b/apps/desktop/src/backend/DesktopBackendManager.ts index 6f1ea139bdca..02bc1c5d7d8c 100644 --- a/apps/desktop/src/backend/DesktopBackendManager.ts +++ b/apps/desktop/src/backend/DesktopBackendManager.ts @@ -38,8 +38,8 @@ import * as Schema from "effect/Schema"; import * as Semaphore from "effect/Semaphore"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import { HttpClient } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { DesktopBackendBootstrap, diff --git a/apps/desktop/src/backend/DesktopBackendPool.test.ts b/apps/desktop/src/backend/DesktopBackendPool.test.ts index 8373437ae312..d1016bbfa9fc 100644 --- a/apps/desktop/src/backend/DesktopBackendPool.test.ts +++ b/apps/desktop/src/backend/DesktopBackendPool.test.ts @@ -6,8 +6,8 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Ref from "effect/Ref"; import * as Stream from "effect/Stream"; -import { HttpClient } from "effect/unstable/http"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient } from "effect/http"; +import { ChildProcessSpawner } from "effect/process"; import * as DesktopObservability from "../app/DesktopObservability.ts"; import * as DesktopAppSettings from "../settings/DesktopAppSettings.ts"; diff --git a/apps/desktop/src/backend/DesktopBackendPool.ts b/apps/desktop/src/backend/DesktopBackendPool.ts index 2930780d4102..07c9ba528920 100644 --- a/apps/desktop/src/backend/DesktopBackendPool.ts +++ b/apps/desktop/src/backend/DesktopBackendPool.ts @@ -90,8 +90,8 @@ import * as Scope from "effect/Scope"; import * as SynchronizedRef from "effect/SynchronizedRef"; import * as FileSystem from "effect/FileSystem"; -import { HttpClient } from "effect/unstable/http"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient } from "effect/http"; +import { ChildProcessSpawner } from "effect/process"; import * as DesktopBackendConfiguration from "./DesktopBackendConfiguration.ts"; import * as DesktopBackendManager from "./DesktopBackendManager.ts"; diff --git a/apps/desktop/src/backend/DesktopLocalEnvironmentAuth.test.ts b/apps/desktop/src/backend/DesktopLocalEnvironmentAuth.test.ts index ed71bd332d24..20cb51d9714a 100644 --- a/apps/desktop/src/backend/DesktopLocalEnvironmentAuth.test.ts +++ b/apps/desktop/src/backend/DesktopLocalEnvironmentAuth.test.ts @@ -2,8 +2,8 @@ import { assert, describe, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Ref from "effect/Ref"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientResponse from "effect/http/HttpClientResponse"; import { PRIMARY_LOCAL_ENVIRONMENT_ID } from "@t3tools/contracts"; import * as DesktopBackendPool from "./DesktopBackendPool.ts"; diff --git a/apps/desktop/src/backend/DesktopLocalEnvironmentAuth.ts b/apps/desktop/src/backend/DesktopLocalEnvironmentAuth.ts index dae20e2da955..33ba2e40334c 100644 --- a/apps/desktop/src/backend/DesktopLocalEnvironmentAuth.ts +++ b/apps/desktop/src/backend/DesktopLocalEnvironmentAuth.ts @@ -7,7 +7,7 @@ import * as Option from "effect/Option"; import * as Ref from "effect/Ref"; import * as Schema from "effect/Schema"; import * as Semaphore from "effect/Semaphore"; -import * as HttpClient from "effect/unstable/http/HttpClient"; +import * as HttpClient from "effect/http/HttpClient"; import * as DesktopBackendPool from "./DesktopBackendPool.ts"; diff --git a/apps/desktop/src/backend/DesktopServerExposure.test.ts b/apps/desktop/src/backend/DesktopServerExposure.test.ts index 0914167cffb0..b9c460825561 100644 --- a/apps/desktop/src/backend/DesktopServerExposure.test.ts +++ b/apps/desktop/src/backend/DesktopServerExposure.test.ts @@ -7,7 +7,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as DesktopEnvironment from "../app/DesktopEnvironment.ts"; import * as DesktopConfig from "../app/DesktopConfig.ts"; diff --git a/apps/desktop/src/backend/DesktopServerExposure.ts b/apps/desktop/src/backend/DesktopServerExposure.ts index a04f4ecbc100..8deafeefacd8 100644 --- a/apps/desktop/src/backend/DesktopServerExposure.ts +++ b/apps/desktop/src/backend/DesktopServerExposure.ts @@ -17,8 +17,8 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Ref from "effect/Ref"; import * as Schema from "effect/Schema"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as HttpClient from "effect/http/HttpClient"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as DesktopAppSettings from "../settings/DesktopAppSettings.ts"; import * as DesktopConfig from "../app/DesktopConfig.ts"; diff --git a/apps/desktop/src/backend/tailscaleEndpointProvider.test.ts b/apps/desktop/src/backend/tailscaleEndpointProvider.test.ts index e8216ea99e99..91e8ec5e7be8 100644 --- a/apps/desktop/src/backend/tailscaleEndpointProvider.test.ts +++ b/apps/desktop/src/backend/tailscaleEndpointProvider.test.ts @@ -1,8 +1,8 @@ import { assert, describe, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import { HttpClient } from "effect/unstable/http"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient } from "effect/http"; +import { ChildProcessSpawner } from "effect/process"; import { parseTailscaleMagicDnsName, diff --git a/apps/desktop/src/backend/tailscaleEndpointProvider.ts b/apps/desktop/src/backend/tailscaleEndpointProvider.ts index 1ec0ebf1874d..7dff0b61b372 100644 --- a/apps/desktop/src/backend/tailscaleEndpointProvider.ts +++ b/apps/desktop/src/backend/tailscaleEndpointProvider.ts @@ -9,8 +9,8 @@ import { } from "@t3tools/tailscale"; import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as HttpClient from "effect/http/HttpClient"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import type { NetworkInterfaces } from "./DesktopNetworkInterfaces.ts"; diff --git a/apps/desktop/src/electron/ElectronProtocol.ts b/apps/desktop/src/electron/ElectronProtocol.ts index 30feb85043f8..6ac3488917b9 100644 --- a/apps/desktop/src/electron/ElectronProtocol.ts +++ b/apps/desktop/src/electron/ElectronProtocol.ts @@ -5,7 +5,7 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as NodeTimersPromises from "node:timers/promises"; import * as Path from "effect/Path"; -import * as Mime from "effect/unstable/http/Mime"; +import * as Mime from "effect/http/Mime"; import * as Ref from "effect/Ref"; import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; diff --git a/apps/desktop/src/ipc/methods/sshEnvironment.test.ts b/apps/desktop/src/ipc/methods/sshEnvironment.test.ts index fa53486d5e2a..d12c467731bd 100644 --- a/apps/desktop/src/ipc/methods/sshEnvironment.test.ts +++ b/apps/desktop/src/ipc/methods/sshEnvironment.test.ts @@ -5,7 +5,7 @@ import * as Effect from "effect/Effect"; import * as Exit from "effect/Exit"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; import { DesktopSshEnvironmentRequestError, diff --git a/apps/desktop/src/preview/BrowserImport/BrowserImport.ts b/apps/desktop/src/preview/BrowserImport/BrowserImport.ts index 9b867adb48df..8893f2322410 100644 --- a/apps/desktop/src/preview/BrowserImport/BrowserImport.ts +++ b/apps/desktop/src/preview/BrowserImport/BrowserImport.ts @@ -19,7 +19,7 @@ import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { HostProcessExecutablePath, HostProcessPlatform } from "@t3tools/shared/hostProcess"; diff --git a/apps/desktop/src/preview/BrowserImport/ChromiumCookies.test.ts b/apps/desktop/src/preview/BrowserImport/ChromiumCookies.test.ts index fc60c658b1d1..0cd921267ac3 100644 --- a/apps/desktop/src/preview/BrowserImport/ChromiumCookies.test.ts +++ b/apps/desktop/src/preview/BrowserImport/ChromiumCookies.test.ts @@ -6,7 +6,7 @@ import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; import * as NodeCrypto from "node:crypto"; import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { decryptChromiumValue, diff --git a/apps/desktop/src/preview/BrowserImport/ChromiumCookies.ts b/apps/desktop/src/preview/BrowserImport/ChromiumCookies.ts index 36ec1700debe..2c2fd425df56 100644 --- a/apps/desktop/src/preview/BrowserImport/ChromiumCookies.ts +++ b/apps/desktop/src/preview/BrowserImport/ChromiumCookies.ts @@ -21,8 +21,8 @@ import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import * as SqlClient from "effect/sql/SqlClient"; +import { ChildProcessSpawner } from "effect/process"; import { ChromiumKeyError, diff --git a/apps/desktop/src/preview/BrowserImport/ChromiumKeys.module.test.ts b/apps/desktop/src/preview/BrowserImport/ChromiumKeys.module.test.ts index 0420e755d92b..890d9e271586 100644 --- a/apps/desktop/src/preview/BrowserImport/ChromiumKeys.module.test.ts +++ b/apps/desktop/src/preview/BrowserImport/ChromiumKeys.module.test.ts @@ -1,6 +1,6 @@ import { expect, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { vi } from "vite-plus/test"; vi.mock("@napi-rs/keyring", () => { diff --git a/apps/desktop/src/preview/BrowserImport/ChromiumKeys.test.ts b/apps/desktop/src/preview/BrowserImport/ChromiumKeys.test.ts index 1ab34cae1382..8e1c29b6f175 100644 --- a/apps/desktop/src/preview/BrowserImport/ChromiumKeys.test.ts +++ b/apps/desktop/src/preview/BrowserImport/ChromiumKeys.test.ts @@ -6,7 +6,7 @@ import * as Layer from "effect/Layer"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; import * as PlatformError from "effect/PlatformError"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { beforeEach, vi } from "vite-plus/test"; import { diff --git a/apps/desktop/src/preview/BrowserImport/ChromiumKeys.ts b/apps/desktop/src/preview/BrowserImport/ChromiumKeys.ts index 9c03523191a3..35e1e9c4b55e 100644 --- a/apps/desktop/src/preview/BrowserImport/ChromiumKeys.ts +++ b/apps/desktop/src/preview/BrowserImport/ChromiumKeys.ts @@ -22,11 +22,11 @@ import * as NodeCrypto from "node:crypto"; import { HostProcessEnvironment } from "@t3tools/shared/hostProcess"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64 from "effect/encoding/Base64"; import * as FileSystem from "effect/FileSystem"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { LinuxBrowserSecretPath } from "./LinuxBrowserSecret.ts"; const KEY_SALT = "saltysalt"; @@ -205,9 +205,9 @@ export const decodeWindowsWrappedKey = Effect.fn("ChromiumKeys.decodeWindowsWrap if (state.os_crypt.app_bound_encrypted_key !== undefined) { return yield* new ChromiumKeyError({ reason: "unsupportedPlatform" }); } - const wrapped = yield* Effect.fromResult( - Encoding.decodeBase64(state.os_crypt.encrypted_key), - ).pipe(Effect.mapError((cause) => new ChromiumKeyError({ reason: "readFailed", cause }))); + const wrapped = yield* Effect.fromResult(Base64.decode(state.os_crypt.encrypted_key)).pipe( + Effect.mapError((cause) => new ChromiumKeyError({ reason: "readFailed", cause })), + ); const wrappedBuffer = Buffer.from(wrapped); if (!wrappedBuffer.subarray(0, DPAPI_PREFIX.length).equals(DPAPI_PREFIX)) { return yield* new ChromiumKeyError({ reason: "readFailed" }); @@ -262,7 +262,7 @@ export const unwrapWindowsDpapiKey = Effect.fn("ChromiumKeys.unwrapWindowsDpapiK if (Number(exitCode) !== 0) { return yield* new ChromiumKeyError({ reason: "readFailed" }); } - const plain = yield* Effect.fromResult(Encoding.decodeBase64(plainEncoded)).pipe( + const plain = yield* Effect.fromResult(Base64.decode(plainEncoded)).pipe( Effect.mapError((cause) => new ChromiumKeyError({ reason: "readFailed", cause })), ); if (plain.length !== WINDOWS_KEY_LENGTH) { diff --git a/apps/desktop/src/preview/BrowserImport/CookieDatabase.test.ts b/apps/desktop/src/preview/BrowserImport/CookieDatabase.test.ts index 8ae178e17eff..18bcd7581b4f 100644 --- a/apps/desktop/src/preview/BrowserImport/CookieDatabase.test.ts +++ b/apps/desktop/src/preview/BrowserImport/CookieDatabase.test.ts @@ -5,7 +5,7 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as Scope from "effect/Scope"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { snapshotCookieDatabase } from "./CookieDatabase.ts"; diff --git a/apps/desktop/src/preview/BrowserImport/CookieDatabase.ts b/apps/desktop/src/preview/BrowserImport/CookieDatabase.ts index a9e6be495c05..9742cb68c364 100644 --- a/apps/desktop/src/preview/BrowserImport/CookieDatabase.ts +++ b/apps/desktop/src/preview/BrowserImport/CookieDatabase.ts @@ -7,7 +7,7 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/desktop/src/preview/BrowserImport/FirefoxCookies.ts b/apps/desktop/src/preview/BrowserImport/FirefoxCookies.ts index 0db4fc9096ec..1c159f682622 100644 --- a/apps/desktop/src/preview/BrowserImport/FirefoxCookies.ts +++ b/apps/desktop/src/preview/BrowserImport/FirefoxCookies.ts @@ -12,7 +12,7 @@ import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { cookieScope, snapshotCookieDatabase, type ImportedCookie } from "./CookieDatabase.ts"; diff --git a/apps/desktop/src/preview/BrowserImport/Sources.test.ts b/apps/desktop/src/preview/BrowserImport/Sources.test.ts index df27c4f96f1a..4a04e0498cb6 100644 --- a/apps/desktop/src/preview/BrowserImport/Sources.test.ts +++ b/apps/desktop/src/preview/BrowserImport/Sources.test.ts @@ -14,7 +14,7 @@ import * as Path from "effect/Path"; import * as PlatformError from "effect/PlatformError"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as NodeSqlite from "node:sqlite"; import type { BrowserImportPathContext } from "./Sources.ts"; diff --git a/apps/desktop/src/preview/BrowserImport/Sources.ts b/apps/desktop/src/preview/BrowserImport/Sources.ts index 6075f0ad56a3..fa8f79e1ccba 100644 --- a/apps/desktop/src/preview/BrowserImport/Sources.ts +++ b/apps/desktop/src/preview/BrowserImport/Sources.ts @@ -29,8 +29,8 @@ import * as Path from "effect/Path"; import * as PlatformError from "effect/PlatformError"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; +import * as SqlClient from "effect/sql/SqlClient"; export type BrowserImportEngine = "chromium" | "firefox" | "safari"; diff --git a/apps/desktop/src/preview/BrowserSession.ts b/apps/desktop/src/preview/BrowserSession.ts index 664302d7f83b..9681be83fdbb 100644 --- a/apps/desktop/src/preview/BrowserSession.ts +++ b/apps/desktop/src/preview/BrowserSession.ts @@ -3,7 +3,7 @@ import { session } from "electron"; import * as Context from "effect/Context"; import * as Crypto from "effect/Crypto"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Hex from "effect/encoding/Hex"; import * as Layer from "effect/Layer"; import * as PlatformError from "effect/PlatformError"; import * as Schema from "effect/Schema"; @@ -182,7 +182,7 @@ export const make = Effect.gen(function* BrowserSessionMake() { // Legacy/default partitions are prefix + hex digest. The non-hex profile // marker creates a disjoint namespace while leaving every legacy default // partition byte-for-byte unchanged. - return `${prefix}${namespace === "profile" ? PROFILE_PARTITION_MARKER : ""}${Encoding.encodeHex(digest).slice(0, 20)}`; + return `${prefix}${namespace === "profile" ? PROFILE_PARTITION_MARKER : ""}${Hex.encode(digest).slice(0, 20)}`; }); const getSession = Effect.fn("BrowserSession.getSession")(function* ( diff --git a/apps/desktop/src/settings/DesktopSavedEnvironments.test.ts b/apps/desktop/src/settings/DesktopSavedEnvironments.test.ts index b1e467869e8e..3d0e29484674 100644 --- a/apps/desktop/src/settings/DesktopSavedEnvironments.test.ts +++ b/apps/desktop/src/settings/DesktopSavedEnvironments.test.ts @@ -2,7 +2,7 @@ import * as NodeServices from "@effect/platform-node/NodeServices"; import { assert, describe, it } from "@effect/vitest"; import { EnvironmentId, type PersistedSavedEnvironmentRecord } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64 from "effect/encoding/Base64"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as Layer from "effect/Layer"; @@ -206,9 +206,7 @@ describe("DesktopSavedEnvironments", () => { withSavedEnvironments( Effect.gen(function* () { const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments; - yield* seedSavedEnvironmentRegistry( - Encoding.encodeBase64(textEncoder.encode("enc:bearer-token")), - ); + yield* seedSavedEnvironmentRegistry(Base64.encode(textEncoder.encode("enc:bearer-token"))); assert.deepEqual( yield* savedEnvironments.getSecret(savedRegistryRecord.environmentId), @@ -246,9 +244,7 @@ describe("DesktopSavedEnvironments", () => { withSavedEnvironments( Effect.gen(function* () { const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments; - yield* seedSavedEnvironmentRegistry( - Encoding.encodeBase64(textEncoder.encode("enc:bearer-token")), - ); + yield* seedSavedEnvironmentRegistry(Base64.encode(textEncoder.encode("enc:bearer-token"))); assert.deepEqual( yield* savedEnvironments.getSecret(savedRegistryRecord.environmentId), @@ -265,9 +261,7 @@ describe("DesktopSavedEnvironments", () => { Effect.gen(function* () { const environment = yield* DesktopEnvironment.DesktopEnvironment; const savedEnvironments = yield* DesktopSavedEnvironments.DesktopSavedEnvironments; - yield* seedSavedEnvironmentRegistry( - Encoding.encodeBase64(textEncoder.encode("enc:bearer-token")), - ); + yield* seedSavedEnvironmentRegistry(Base64.encode(textEncoder.encode("enc:bearer-token"))); const error = yield* savedEnvironments .getSecret(savedRegistryRecord.environmentId) diff --git a/apps/desktop/src/settings/DesktopSavedEnvironments.ts b/apps/desktop/src/settings/DesktopSavedEnvironments.ts index f54b464a7dbd..d6e1a210cc0a 100644 --- a/apps/desktop/src/settings/DesktopSavedEnvironments.ts +++ b/apps/desktop/src/settings/DesktopSavedEnvironments.ts @@ -2,7 +2,7 @@ import { EnvironmentId, type PersistedSavedEnvironmentRecord } from "@t3tools/co import { fromLenientJson } from "@t3tools/shared/schemaJson"; import * as Context from "effect/Context"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64 from "effect/encoding/Base64"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; @@ -209,7 +209,7 @@ function decodeSecretBytes( registryPath: string, encoded: string, ): Effect.Effect { - return Effect.fromResult(Encoding.decodeBase64(encoded)).pipe( + return Effect.fromResult(Base64.decode(encoded)).pipe( Effect.mapError( (cause) => new DesktopSavedEnvironmentSecretDecodeError({ diff --git a/apps/desktop/src/shell/DesktopShellEnvironment.test.ts b/apps/desktop/src/shell/DesktopShellEnvironment.test.ts index 6a369a4598a2..6f2b863482d8 100644 --- a/apps/desktop/src/shell/DesktopShellEnvironment.test.ts +++ b/apps/desktop/src/shell/DesktopShellEnvironment.test.ts @@ -7,8 +7,8 @@ import * as PlatformError from "effect/PlatformError"; import * as Schema from "effect/Schema"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import * as ChildProcess from "effect/unstable/process/ChildProcess"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcess from "effect/process/ChildProcess"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as DesktopEnvironment from "../app/DesktopEnvironment.ts"; import * as DesktopShellEnvironment from "./DesktopShellEnvironment.ts"; diff --git a/apps/desktop/src/shell/DesktopShellEnvironment.ts b/apps/desktop/src/shell/DesktopShellEnvironment.ts index 704b061db363..1143ed057b2b 100644 --- a/apps/desktop/src/shell/DesktopShellEnvironment.ts +++ b/apps/desktop/src/shell/DesktopShellEnvironment.ts @@ -5,8 +5,8 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import * as ChildProcess from "effect/unstable/process/ChildProcess"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcess from "effect/process/ChildProcess"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as DesktopEnvironment from "../app/DesktopEnvironment.ts"; diff --git a/apps/desktop/src/snapShot/DesktopSnapShot.ts b/apps/desktop/src/snapShot/DesktopSnapShot.ts index 7ee455756930..f1c1c2a4908f 100644 --- a/apps/desktop/src/snapShot/DesktopSnapShot.ts +++ b/apps/desktop/src/snapShot/DesktopSnapShot.ts @@ -25,7 +25,7 @@ import * as Context from "effect/Context"; import * as Crypto from "effect/Crypto"; import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64 from "effect/encoding/Base64"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; @@ -1657,7 +1657,7 @@ export const make = Effect.gen(function* () { const png = yield* fileSystem.readFile(path.join(captureDirectory, `${id}.png`)); return { ...metadata, - dataUrl: `data:image/png;base64,${Encoding.encodeBase64(png)}`, + dataUrl: `data:image/png;base64,${Base64.encode(png)}`, }; }).pipe( Effect.mapError( diff --git a/apps/desktop/src/ssh/DesktopSshEnvironment.ts b/apps/desktop/src/ssh/DesktopSshEnvironment.ts index b5e724084a21..26e307b0c250 100644 --- a/apps/desktop/src/ssh/DesktopSshEnvironment.ts +++ b/apps/desktop/src/ssh/DesktopSshEnvironment.ts @@ -22,8 +22,8 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as HttpClient from "effect/http/HttpClient"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as DesktopSshPasswordPrompts from "./DesktopSshPasswordPrompts.ts"; diff --git a/apps/desktop/src/wsl/DesktopWslEnvironment.test.ts b/apps/desktop/src/wsl/DesktopWslEnvironment.test.ts index e261524f9ac9..a3cb739be0f6 100644 --- a/apps/desktop/src/wsl/DesktopWslEnvironment.test.ts +++ b/apps/desktop/src/wsl/DesktopWslEnvironment.test.ts @@ -9,7 +9,7 @@ import * as Layer from "effect/Layer"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { buildWslRuntimeInstallScript, diff --git a/apps/desktop/src/wsl/DesktopWslEnvironment.ts b/apps/desktop/src/wsl/DesktopWslEnvironment.ts index 2f922a48f4d8..dedf4a4a3427 100644 --- a/apps/desktop/src/wsl/DesktopWslEnvironment.ts +++ b/apps/desktop/src/wsl/DesktopWslEnvironment.ts @@ -7,7 +7,7 @@ import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { buildRemoteNodeEnvScript } from "@t3tools/ssh/tunnel"; import { satisfiesSemverRange } from "@t3tools/shared/semver"; @@ -1187,9 +1187,8 @@ export interface DesktopWslEnvironmentTestStub { } export const layerTest = (stub: DesktopWslEnvironmentTestStub = {}) => { - const probeDistros = stub.distroListError - ? Effect.fail(stub.distroListError) - : Effect.succeed(stub.distros ?? []); + const probeDistros: Effect.Effect = + stub.distroListError ? Effect.fail(stub.distroListError) : Effect.succeed(stub.distros ?? []); return Layer.succeed( DesktopWslEnvironment, DesktopWslEnvironment.of({ diff --git a/apps/mobile/src/components/ComposerEditor.tsx b/apps/mobile/src/components/ComposerEditor.tsx index a716055b15ca..1eff2e899500 100644 --- a/apps/mobile/src/components/ComposerEditor.tsx +++ b/apps/mobile/src/components/ComposerEditor.tsx @@ -1,6 +1,6 @@ import { ComposerContextId } from "@t3tools/contracts"; import { useAtomValue } from "@effect/atom-react"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useNavigation } from "@react-navigation/native"; import { useEffect, useMemo, useRef, useState } from "react"; import { Alert } from "react-native"; diff --git a/apps/mobile/src/components/ProjectFavicon.tsx b/apps/mobile/src/components/ProjectFavicon.tsx index 57215cd18462..b736c5a96d8c 100644 --- a/apps/mobile/src/components/ProjectFavicon.tsx +++ b/apps/mobile/src/components/ProjectFavicon.tsx @@ -10,7 +10,7 @@ import { isProjectFaviconFallbackUrl, } from "@t3tools/shared/projectFavicon"; import { useAtomValue } from "@effect/atom-react"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { projectFaviconUrlAtom } from "../state/assets"; import { countGlyphs, diff --git a/apps/mobile/src/connection/runtime.ts b/apps/mobile/src/connection/runtime.ts index 4bf506ae0ba1..7bd16613c842 100644 --- a/apps/mobile/src/connection/runtime.ts +++ b/apps/mobile/src/connection/runtime.ts @@ -5,7 +5,7 @@ import { ThreadHistoryController, } from "@t3tools/client-runtime/state/threads"; import * as Layer from "effect/Layer"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import type { FoundationHotModule } from "../lib/foundation-fast-refresh"; import { hotSwappableAtomRuntime } from "../lib/hot-swappable-atom-runtime"; diff --git a/apps/mobile/src/features/agent-awareness/liveActivityPreferences.test.ts b/apps/mobile/src/features/agent-awareness/liveActivityPreferences.test.ts index 501904204867..b056d7252ce2 100644 --- a/apps/mobile/src/features/agent-awareness/liveActivityPreferences.test.ts +++ b/apps/mobile/src/features/agent-awareness/liveActivityPreferences.test.ts @@ -4,7 +4,7 @@ import * as Effect from "effect/Effect"; import type { EnvironmentId } from "@t3tools/contracts"; import { ManagedRelay } from "@t3tools/client-runtime/relay"; import * as Layer from "effect/Layer"; -import { HttpClient } from "effect/unstable/http"; +import { HttpClient } from "effect/http"; import type { SavedRemoteConnection } from "../../lib/connection"; import * as MobileStorage from "../../persistence/mobile-storage"; diff --git a/apps/mobile/src/features/agent-awareness/remoteRegistration.test.ts b/apps/mobile/src/features/agent-awareness/remoteRegistration.test.ts index 836e529e5965..fb7013fceae8 100644 --- a/apps/mobile/src/features/agent-awareness/remoteRegistration.test.ts +++ b/apps/mobile/src/features/agent-awareness/remoteRegistration.test.ts @@ -9,12 +9,7 @@ import * as Cause from "effect/Cause"; import * as Effect from "effect/Effect"; import * as Exit from "effect/Exit"; import * as Layer from "effect/Layer"; -import { - Cookies, - FetchHttpClient, - HttpClientRequest, - HttpClientResponse, -} from "effect/unstable/http"; +import { Cookies, FetchHttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; import { ManagedRelay } from "@t3tools/client-runtime/relay"; import type { EnvironmentId } from "@t3tools/contracts"; diff --git a/apps/mobile/src/features/cloud/connectOnboarding.ts b/apps/mobile/src/features/cloud/connectOnboarding.ts index 9d3944331a7b..a320b8b8422b 100644 --- a/apps/mobile/src/features/cloud/connectOnboarding.ts +++ b/apps/mobile/src/features/cloud/connectOnboarding.ts @@ -1,4 +1,4 @@ -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { appAtomRegistry } from "../../state/atom-registry"; diff --git a/apps/mobile/src/features/cloud/dpop.ts b/apps/mobile/src/features/cloud/dpop.ts index eabf0dd79b6d..cbd78580f58f 100644 --- a/apps/mobile/src/features/cloud/dpop.ts +++ b/apps/mobile/src/features/cloud/dpop.ts @@ -2,7 +2,7 @@ import * as Clock from "effect/Clock"; import * as Crypto from "effect/Crypto"; import * as Data from "effect/Data"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; import * as ExpoCrypto from "expo-crypto"; @@ -89,7 +89,7 @@ export interface DpopProofKeyPair { const DPOP_PROOF_KEY_STORAGE_KEY = "t3code.cloud.dpop-proof-key"; function base64UrlToBytes(value: string): Uint8Array { - return Result.getOrThrow(Encoding.decodeBase64Url(value)); + return Result.getOrThrow(Base64Url.decode(value)); } function sha256Digest( @@ -106,7 +106,7 @@ function base64UrlSha256( data: Uint8Array, message: string, ): Effect.Effect { - return sha256Digest(data, message).pipe(Effect.map(Encoding.encodeBase64Url)); + return sha256Digest(data, message).pipe(Effect.map(Base64Url.encode)); } function dpopThumbprintInput(jwk: DpopPublicJwk): string { @@ -153,8 +153,8 @@ function publicJwkFromUncompressedPublicKey(publicKey: Uint8Array): DpopPublicJw return { kty: "EC", crv: "P-256", - x: Encoding.encodeBase64Url(publicKey.slice(1, 33)), - y: Encoding.encodeBase64Url(publicKey.slice(33, 65)), + x: Base64Url.encode(publicKey.slice(1, 33)), + y: Base64Url.encode(publicKey.slice(33, 65)), }; } @@ -162,7 +162,7 @@ function privateJwkFromPrivateKey( privateKey: Uint8Array, publicJwk: DpopPublicJwk, ): DpopPrivateJwk { - return { ...publicJwk, d: Encoding.encodeBase64Url(privateKey) }; + return { ...publicJwk, d: Base64Url.encode(privateKey) }; } export function generateDpopProofKeyPair(): Effect.Effect< @@ -270,7 +270,7 @@ export function createDpopProof(input: { alg: "ES256", jwk: keyPair.publicJwk, }).pipe( - Effect.map(Encoding.encodeBase64Url), + Effect.map(Base64Url.encode), Effect.mapError(cloudDpopError("Could not encode DPoP proof header.")), ); const ath = input.accessToken @@ -283,7 +283,7 @@ export function createDpopProof(input: { iat: Math.floor(nowMs / 1_000), ...(ath ? { ath } : {}), }).pipe( - Effect.map(Encoding.encodeBase64Url), + Effect.map(Base64Url.encode), Effect.mapError(cloudDpopError("Could not encode DPoP proof payload.")), ); const signatureInputHash = yield* sha256Digest( @@ -295,7 +295,7 @@ export function createDpopProof(input: { catch: cloudDpopError("Could not sign DPoP proof."), }); return { - proof: `${header}.${payload}.${Encoding.encodeBase64Url(signature)}`, + proof: `${header}.${payload}.${Base64Url.encode(signature)}`, thumbprint: keyPair.thumbprint, }; }); diff --git a/apps/mobile/src/features/cloud/linkEnvironment.test.ts b/apps/mobile/src/features/cloud/linkEnvironment.test.ts index 5472f0dfb0c7..cbfea654bd92 100644 --- a/apps/mobile/src/features/cloud/linkEnvironment.test.ts +++ b/apps/mobile/src/features/cloud/linkEnvironment.test.ts @@ -6,7 +6,7 @@ import { EnvironmentId } from "@t3tools/contracts"; import { RelayMobileClientId } from "@t3tools/contracts/relay"; import { ManagedRelay } from "@t3tools/client-runtime/relay"; import { remoteHttpClientLayer } from "@t3tools/client-runtime/rpc"; -import { HttpClient } from "effect/unstable/http"; +import { HttpClient } from "effect/http"; import * as MobileStorage from "../../persistence/mobile-storage"; diff --git a/apps/mobile/src/features/cloud/linkEnvironment.ts b/apps/mobile/src/features/cloud/linkEnvironment.ts index 73bd28c550ed..1f7d9bb14371 100644 --- a/apps/mobile/src/features/cloud/linkEnvironment.ts +++ b/apps/mobile/src/features/cloud/linkEnvironment.ts @@ -1,7 +1,7 @@ import * as Data from "effect/Data"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; -import { HttpClient } from "effect/unstable/http"; +import { HttpClient } from "effect/http"; import { EnvironmentCloudEndpointUnavailableError, EnvironmentHttpBadRequestError, diff --git a/apps/mobile/src/features/cloud/managedRelayState.ts b/apps/mobile/src/features/cloud/managedRelayState.ts index 375bda715e12..5f8da54ef068 100644 --- a/apps/mobile/src/features/cloud/managedRelayState.ts +++ b/apps/mobile/src/features/cloud/managedRelayState.ts @@ -11,7 +11,7 @@ import { } from "@t3tools/client-runtime/state/runtime"; import type { EnvironmentId } from "@t3tools/contracts"; import type { RelayClientEnvironmentRecord } from "@t3tools/contracts/relay"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { useCallback, useEffect } from "react"; import { runtimeContextLayer } from "../../lib/runtime"; diff --git a/apps/mobile/src/features/connection/ConnectionEnvironmentRow.tsx b/apps/mobile/src/features/connection/ConnectionEnvironmentRow.tsx index 28b34fdec6d3..f4a682c6c14c 100644 --- a/apps/mobile/src/features/connection/ConnectionEnvironmentRow.tsx +++ b/apps/mobile/src/features/connection/ConnectionEnvironmentRow.tsx @@ -5,7 +5,7 @@ import type { AtomCommandResult } from "@t3tools/client-runtime/state/runtime"; import { type EnvironmentId, resolveEnvironmentMachineKind } from "@t3tools/contracts"; import { useAtomValue } from "@effect/atom-react"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useCallback, useState } from "react"; import { Platform, Alert, Pressable, View } from "react-native"; import Animated, { FadeIn, FadeOut, LinearTransition } from "react-native-reanimated"; diff --git a/apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx b/apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx index b46f5433ff60..c633f67db79f 100644 --- a/apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx +++ b/apps/mobile/src/features/connection/ConnectionsNewRouteScreen.tsx @@ -7,7 +7,7 @@ import { type StaticScreenProps, } from "@react-navigation/native"; import type { EnvironmentId } from "@t3tools/contracts"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useCallback, useEffect, useRef, useState } from "react"; import { Alert, Linking, Platform, View } from "react-native"; import { useSafeAreaInsets } from "react-native-safe-area-context"; diff --git a/apps/mobile/src/features/files/SourceFileSurface.tsx b/apps/mobile/src/features/files/SourceFileSurface.tsx index c7c2310ba936..42b7dbf282d4 100644 --- a/apps/mobile/src/features/files/SourceFileSurface.tsx +++ b/apps/mobile/src/features/files/SourceFileSurface.tsx @@ -1,5 +1,5 @@ import { useAtomValue } from "@effect/atom-react"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import type { ComponentType } from "react"; import { memo, useCallback, useEffect, useMemo, useRef, useState } from "react"; import { diff --git a/apps/mobile/src/features/files/sourceHighlightingState.test.ts b/apps/mobile/src/features/files/sourceHighlightingState.test.ts index 50b4eec41b0d..e17a94c5bb5f 100644 --- a/apps/mobile/src/features/files/sourceHighlightingState.test.ts +++ b/apps/mobile/src/features/files/sourceHighlightingState.test.ts @@ -1,5 +1,5 @@ -import { AtomRegistry } from "effect/unstable/reactivity"; -import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"; +import { AtomRegistry } from "effect/reactivity"; +import * as AsyncResult from "effect/reactivity/AsyncResult"; import { afterEach, describe, expect, it, vi } from "vite-plus/test"; import { diff --git a/apps/mobile/src/features/files/sourceHighlightingState.ts b/apps/mobile/src/features/files/sourceHighlightingState.ts index 43363115bc84..4f591bc6e622 100644 --- a/apps/mobile/src/features/files/sourceHighlightingState.ts +++ b/apps/mobile/src/features/files/sourceHighlightingState.ts @@ -1,6 +1,6 @@ import * as Data from "effect/Data"; import * as Effect from "effect/Effect"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { highlightSourceFile, diff --git a/apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx b/apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx index 60df38b30357..caaed841ce01 100644 --- a/apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx +++ b/apps/mobile/src/features/layout/AdaptiveWorkspaceLayout.tsx @@ -29,7 +29,7 @@ import Animated, { useSharedValue, withTiming, } from "react-native-reanimated"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { deriveFileInspectorPaneLayout, diff --git a/apps/mobile/src/features/projects/AddProjectScreen.tsx b/apps/mobile/src/features/projects/AddProjectScreen.tsx index 0b079d9902ad..8ccc7508cee6 100644 --- a/apps/mobile/src/features/projects/AddProjectScreen.tsx +++ b/apps/mobile/src/features/projects/AddProjectScreen.tsx @@ -53,7 +53,7 @@ import { useSafeAreaInsets } from "react-native-safe-area-context"; import * as Arr from "effect/Array"; import * as Cause from "effect/Cause"; import * as Order from "effect/Order"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { cn } from "../../lib/cn"; import { useProjects, useServerConfigs, waitForProject } from "../../state/entities"; import { filesystemEnvironment } from "../../state/filesystem"; diff --git a/apps/mobile/src/features/review/reviewState.ts b/apps/mobile/src/features/review/reviewState.ts index f211b4bc06d9..7a2343ed4859 100644 --- a/apps/mobile/src/features/review/reviewState.ts +++ b/apps/mobile/src/features/review/reviewState.ts @@ -1,7 +1,7 @@ import { useAtomValue } from "@effect/atom-react"; import type { EnvironmentId, ReviewDiffPreviewSource, ThreadId } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { scopedThreadKey } from "../../lib/scopedEntities"; import { appAtomRegistry } from "../../state/atom-registry"; diff --git a/apps/mobile/src/features/review/useReviewDiffData.ts b/apps/mobile/src/features/review/useReviewDiffData.ts index 54fa89387fa7..288ddbd2f34d 100644 --- a/apps/mobile/src/features/review/useReviewDiffData.ts +++ b/apps/mobile/src/features/review/useReviewDiffData.ts @@ -18,8 +18,8 @@ import type { ReviewDiffPreviewSource, } from "@t3tools/contracts"; import { RegistryContext, useAtomValue } from "@effect/atom-react"; -import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"; -import * as Atom from "effect/unstable/reactivity/Atom"; +import * as AsyncResult from "effect/reactivity/AsyncResult"; +import * as Atom from "effect/reactivity/Atom"; import { reviewEnvironment } from "../../state/review"; const EMPTY_INLINE_REVIEW_COMMENTS = Object.freeze([]); diff --git a/apps/mobile/src/features/settings/SettingsClientStorageRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsClientStorageRouteScreen.tsx index 0e8395b44db8..3d25c749bc8b 100644 --- a/apps/mobile/src/features/settings/SettingsClientStorageRouteScreen.tsx +++ b/apps/mobile/src/features/settings/SettingsClientStorageRouteScreen.tsx @@ -1,7 +1,7 @@ import { ScreenScrollView as ScrollView } from "../../components/ScreenScrollView"; import { useAtomSet, useAtomValue } from "@effect/atom-react"; import { type EnvironmentMachineKind, resolveEnvironmentMachineKind } from "@t3tools/contracts"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useMemo } from "react"; import { ActivityIndicator, Alert, Pressable, View } from "react-native"; import { useSafeAreaInsets } from "react-native-safe-area-context"; diff --git a/apps/mobile/src/features/settings/SettingsEnvironmentDetailRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsEnvironmentDetailRouteScreen.tsx index 1e8e6c73ff0f..f25d7844f04a 100644 --- a/apps/mobile/src/features/settings/SettingsEnvironmentDetailRouteScreen.tsx +++ b/apps/mobile/src/features/settings/SettingsEnvironmentDetailRouteScreen.tsx @@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react"; import { useNavigation, type StaticScreenProps } from "@react-navigation/native"; import type { EnvironmentId, ServerProvider } from "@t3tools/contracts"; import { squashAtomCommandFailure } from "@t3tools/client-runtime/state/runtime"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useEffect, useRef, useState } from "react"; import { Alert, View } from "react-native"; import { useSafeAreaInsets } from "react-native-safe-area-context"; diff --git a/apps/mobile/src/features/settings/SettingsFollowUpRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsFollowUpRouteScreen.tsx index aa12849c1f39..253c64c0465a 100644 --- a/apps/mobile/src/features/settings/SettingsFollowUpRouteScreen.tsx +++ b/apps/mobile/src/features/settings/SettingsFollowUpRouteScreen.tsx @@ -1,6 +1,6 @@ import { useAtomSet, useAtomValue } from "@effect/atom-react"; import { useNavigation } from "@react-navigation/native"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { Platform, ScrollView, View } from "react-native"; import { useSafeAreaInsets } from "react-native-safe-area-context"; diff --git a/apps/mobile/src/features/settings/SettingsKeyboardRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsKeyboardRouteScreen.tsx index f0cb34ce9d7e..5226f8a0ed1e 100644 --- a/apps/mobile/src/features/settings/SettingsKeyboardRouteScreen.tsx +++ b/apps/mobile/src/features/settings/SettingsKeyboardRouteScreen.tsx @@ -1,6 +1,6 @@ import { useAtomSet, useAtomValue } from "@effect/atom-react"; import { useNavigation } from "@react-navigation/native"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { Platform, ScrollView, View } from "react-native"; import { useSafeAreaInsets } from "react-native-safe-area-context"; diff --git a/apps/mobile/src/features/settings/SettingsNotificationsRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsNotificationsRouteScreen.tsx index 8809c429c824..293841e9571f 100644 --- a/apps/mobile/src/features/settings/SettingsNotificationsRouteScreen.tsx +++ b/apps/mobile/src/features/settings/SettingsNotificationsRouteScreen.tsx @@ -4,7 +4,7 @@ import { useAtomSet, useAtomValue } from "@effect/atom-react"; import * as Notifications from "expo-notifications"; import { useNavigation } from "@react-navigation/native"; import * as Effect from "effect/Effect"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useCallback, useEffect, useMemo, useRef, useState, useSyncExternalStore } from "react"; import { Alert, AppState, Linking, Platform } from "react-native"; import { useSafeAreaInsets } from "react-native-safe-area-context"; diff --git a/apps/mobile/src/features/settings/SettingsProjectGroupingRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsProjectGroupingRouteScreen.tsx index bb343e0e255f..f3544c9382db 100644 --- a/apps/mobile/src/features/settings/SettingsProjectGroupingRouteScreen.tsx +++ b/apps/mobile/src/features/settings/SettingsProjectGroupingRouteScreen.tsx @@ -1,7 +1,7 @@ import { ScreenScrollView as ScrollView } from "../../components/ScreenScrollView"; import { useAtomSet, useAtomValue } from "@effect/atom-react"; import type { SidebarProjectGroupingMode } from "@t3tools/contracts"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useSafeAreaInsets } from "react-native-safe-area-context"; import { SettingsScreen } from "./components/SettingsScreen"; diff --git a/apps/mobile/src/features/settings/SettingsThreadsRouteScreen.tsx b/apps/mobile/src/features/settings/SettingsThreadsRouteScreen.tsx index dab724e236a3..386cdfba062b 100644 --- a/apps/mobile/src/features/settings/SettingsThreadsRouteScreen.tsx +++ b/apps/mobile/src/features/settings/SettingsThreadsRouteScreen.tsx @@ -1,7 +1,7 @@ import { AutoSettleDaysField } from "./components/AutoSettleDaysField"; import { ScreenScrollView as ScrollView } from "../../components/ScreenScrollView"; import { useAtomSet, useAtomValue } from "@effect/atom-react"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useRef, useState } from "react"; import { Pressable, View } from "react-native"; import { useSafeAreaInsets } from "react-native-safe-area-context"; diff --git a/apps/mobile/src/features/settings/appearance/AppearancePreferencesProvider.tsx b/apps/mobile/src/features/settings/appearance/AppearancePreferencesProvider.tsx index 5e0426daaa0b..023236dde460 100644 --- a/apps/mobile/src/features/settings/appearance/AppearancePreferencesProvider.tsx +++ b/apps/mobile/src/features/settings/appearance/AppearancePreferencesProvider.tsx @@ -13,7 +13,7 @@ import { import { AppState, Appearance, Platform, useColorScheme } from "react-native"; import { useAtomSet, useAtomValue } from "@effect/atom-react"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { ScopedTheme, ScopedVariables, Uniwind } from "uniwind"; diff --git a/apps/mobile/src/features/settings/scheduled-task-editor-state.ts b/apps/mobile/src/features/settings/scheduled-task-editor-state.ts index 3ac81c08b13d..a0ab412a8344 100644 --- a/apps/mobile/src/features/settings/scheduled-task-editor-state.ts +++ b/apps/mobile/src/features/settings/scheduled-task-editor-state.ts @@ -1,5 +1,5 @@ import type { EnvironmentId } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { appAtomRegistry } from "../../state/atom-registry"; import type { ScheduledTaskDraft } from "./scheduledTaskDraft"; diff --git a/apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx b/apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx index 716f4edd4166..6d5df639cbd6 100644 --- a/apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx +++ b/apps/mobile/src/features/showcase/ShowcaseCaptureCoordinator.tsx @@ -7,7 +7,7 @@ import { StackActions, useNavigation, } from "@react-navigation/native"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useConnectionController } from "../connection/useConnectionController"; import { useAppearancePreferences } from "../settings/appearance/AppearancePreferencesProvider"; diff --git a/apps/mobile/src/features/threads/NewTaskDraftScreen.tsx b/apps/mobile/src/features/threads/NewTaskDraftScreen.tsx index d0da6e2f03d0..b926db7326e1 100644 --- a/apps/mobile/src/features/threads/NewTaskDraftScreen.tsx +++ b/apps/mobile/src/features/threads/NewTaskDraftScreen.tsx @@ -1,6 +1,6 @@ import { useAtomValue } from "@effect/atom-react"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { clampFileAttachmentUploadBytes } from "@t3tools/client-runtime/state/attachments"; import { nextPastedTextFileName, diff --git a/apps/mobile/src/features/threads/ThreadSettingsSheet.tsx b/apps/mobile/src/features/threads/ThreadSettingsSheet.tsx index 158b8d7efca9..ac03553eb7dc 100644 --- a/apps/mobile/src/features/threads/ThreadSettingsSheet.tsx +++ b/apps/mobile/src/features/threads/ThreadSettingsSheet.tsx @@ -20,7 +20,7 @@ import { type NativeStackNavigationProp, } from "@react-navigation/native-stack"; import * as Haptics from "expo-haptics"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { createContext, use, diff --git a/apps/mobile/src/features/threads/checkout-new-task-branch.ts b/apps/mobile/src/features/threads/checkout-new-task-branch.ts index 2652581f6e1b..8a52228e4ed2 100644 --- a/apps/mobile/src/features/threads/checkout-new-task-branch.ts +++ b/apps/mobile/src/features/threads/checkout-new-task-branch.ts @@ -6,7 +6,7 @@ import { } from "@t3tools/client-runtime/state/runtime"; import type { VcsSwitchRefInput, VcsSwitchRefResult } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { shouldCheckoutNewTaskBranch } from "./new-task-context-presentation"; diff --git a/apps/mobile/src/features/threads/markdownCodeHighlightState.ts b/apps/mobile/src/features/threads/markdownCodeHighlightState.ts index c415cf739809..a8957eab7caf 100644 --- a/apps/mobile/src/features/threads/markdownCodeHighlightState.ts +++ b/apps/mobile/src/features/threads/markdownCodeHighlightState.ts @@ -1,7 +1,7 @@ import { useAtomValue } from "@effect/atom-react"; import * as Data from "effect/Data"; import * as Effect from "effect/Effect"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { useMemo } from "react"; import { diff --git a/apps/mobile/src/features/threads/provider-catalog-refresh.test.ts b/apps/mobile/src/features/threads/provider-catalog-refresh.test.ts index 281452364b76..a39253215515 100644 --- a/apps/mobile/src/features/threads/provider-catalog-refresh.test.ts +++ b/apps/mobile/src/features/threads/provider-catalog-refresh.test.ts @@ -1,6 +1,6 @@ import { EnvironmentId } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { describe, expect, it, vi } from "vite-plus/test"; import { diff --git a/apps/mobile/src/features/threads/thread-handoff-row.tsx b/apps/mobile/src/features/threads/thread-handoff-row.tsx index 4007fe183dba..3b1b2894a8fc 100644 --- a/apps/mobile/src/features/threads/thread-handoff-row.tsx +++ b/apps/mobile/src/features/threads/thread-handoff-row.tsx @@ -8,7 +8,7 @@ import type { ProviderInstanceId, ServerProvider, } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { Fragment, useMemo } from "react"; import { Alert, Pressable, View, type ColorValue } from "react-native"; import { AppText as Text } from "../../components/AppText"; diff --git a/apps/mobile/src/features/threads/use-legacy-plan-mode-enabled.ts b/apps/mobile/src/features/threads/use-legacy-plan-mode-enabled.ts index 684049155a9e..37ad63198d31 100644 --- a/apps/mobile/src/features/threads/use-legacy-plan-mode-enabled.ts +++ b/apps/mobile/src/features/threads/use-legacy-plan-mode-enabled.ts @@ -1,5 +1,5 @@ import { useAtomValue } from "@effect/atom-react"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { mobilePreferencesAtom } from "../../state/preferences"; import { resolveLegacyPlanModeEnabled } from "../../state/legacy-plan-mode"; diff --git a/apps/mobile/src/features/threads/use-thread-list-v2-shelf-preferences.ts b/apps/mobile/src/features/threads/use-thread-list-v2-shelf-preferences.ts index b32d9ad40043..1ee46cbff89d 100644 --- a/apps/mobile/src/features/threads/use-thread-list-v2-shelf-preferences.ts +++ b/apps/mobile/src/features/threads/use-thread-list-v2-shelf-preferences.ts @@ -1,5 +1,5 @@ import { useAtomSet, useAtomValue } from "@effect/atom-react"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useCallback, useRef } from "react"; import { mobilePreferencesAtom, updateMobilePreferencesAtom } from "../../state/preferences"; diff --git a/apps/mobile/src/features/voice-input/voiceInputSession.test.ts b/apps/mobile/src/features/voice-input/voiceInputSession.test.ts index 07fc6348f8af..3e15c905d686 100644 --- a/apps/mobile/src/features/voice-input/voiceInputSession.test.ts +++ b/apps/mobile/src/features/voice-input/voiceInputSession.test.ts @@ -1,6 +1,6 @@ import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import type { PreparedVoiceTranscription } from "@t3tools/client-runtime/voice-input"; -import { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry } from "effect/reactivity"; import { resetVoiceInputGlobalsForTests } from "../../../../../packages/client-runtime/src/voice-input/controller"; import { diff --git a/apps/mobile/src/lib/hot-swappable-atom-runtime.test.ts b/apps/mobile/src/lib/hot-swappable-atom-runtime.test.ts index b4d596900a41..f14108e49c37 100644 --- a/apps/mobile/src/lib/hot-swappable-atom-runtime.test.ts +++ b/apps/mobile/src/lib/hot-swappable-atom-runtime.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it, vi } from "vite-plus/test"; import * as Context from "effect/Context"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { hotSwappableAtomRuntime } from "./hot-swappable-atom-runtime"; diff --git a/apps/mobile/src/lib/hot-swappable-atom-runtime.ts b/apps/mobile/src/lib/hot-swappable-atom-runtime.ts index 0a0587a775f4..ab5effe2d2b7 100644 --- a/apps/mobile/src/lib/hot-swappable-atom-runtime.ts +++ b/apps/mobile/src/lib/hot-swappable-atom-runtime.ts @@ -1,5 +1,5 @@ import * as Layer from "effect/Layer"; -import { Atom, AtomRegistry, Reactivity } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry, Reactivity } from "effect/reactivity"; export interface AcceptingHotModule { readonly accept: (callback?: () => void) => void; diff --git a/apps/mobile/src/lib/http-response.test.ts b/apps/mobile/src/lib/http-response.test.ts index 8b170cd9069b..b96a6e9efb7a 100644 --- a/apps/mobile/src/lib/http-response.test.ts +++ b/apps/mobile/src/lib/http-response.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "vite-plus/test"; -import { Cookies, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; +import { Cookies, HttpClientRequest, HttpClientResponse } from "effect/http"; describe("React Native HTTP responses", () => { it("can inspect a rejected response when native Headers has no getSetCookie", () => { diff --git a/apps/mobile/src/lib/runtime.ts b/apps/mobile/src/lib/runtime.ts index a7f9a5dab1bd..d78117a33b27 100644 --- a/apps/mobile/src/lib/runtime.ts +++ b/apps/mobile/src/lib/runtime.ts @@ -1,6 +1,6 @@ import * as Layer from "effect/Layer"; import * as ManagedRuntime from "effect/ManagedRuntime"; -import * as Socket from "effect/unstable/socket/Socket"; +import * as Socket from "effect/socket/Socket"; import { remoteHttpClientLayer } from "@t3tools/client-runtime/rpc"; diff --git a/apps/mobile/src/state/acknowledged-thread-messages.ts b/apps/mobile/src/state/acknowledged-thread-messages.ts index 0ceeb490302e..6dd9ca8c36fd 100644 --- a/apps/mobile/src/state/acknowledged-thread-messages.ts +++ b/apps/mobile/src/state/acknowledged-thread-messages.ts @@ -1,4 +1,4 @@ -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { appAtomRegistry } from "./atom-registry"; import type { QueuedThreadMessage } from "./thread-outbox-model"; diff --git a/apps/mobile/src/state/assets.ts b/apps/mobile/src/state/assets.ts index d6fefe2b8f86..f96d65f66023 100644 --- a/apps/mobile/src/state/assets.ts +++ b/apps/mobile/src/state/assets.ts @@ -11,7 +11,7 @@ import { } from "@t3tools/client-runtime/state/assets"; import type { AssetResource, EnvironmentId } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { useCallback } from "react"; import { environmentCatalog } from "../connection/catalog"; diff --git a/apps/mobile/src/state/atom-registry.ts b/apps/mobile/src/state/atom-registry.ts index 5dc5fab44e95..60cdebb06261 100644 --- a/apps/mobile/src/state/atom-registry.ts +++ b/apps/mobile/src/state/atom-registry.ts @@ -1,4 +1,4 @@ -import { AtomRegistry } from "effect/unstable/reactivity"; +import { AtomRegistry } from "effect/reactivity"; import { disposeOnFoundationReplace, diff --git a/apps/mobile/src/state/client-cache-state.ts b/apps/mobile/src/state/client-cache-state.ts index b8717facf2e6..92dfa0feb866 100644 --- a/apps/mobile/src/state/client-cache-state.ts +++ b/apps/mobile/src/state/client-cache-state.ts @@ -1,6 +1,6 @@ import type { EnvironmentId } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import * as MobileDatabase from "../persistence/mobile-database"; import { projectFaviconDatabaseCache } from "../lib/projectFaviconDatabaseCache"; diff --git a/apps/mobile/src/state/composer-attachment-uploads.ts b/apps/mobile/src/state/composer-attachment-uploads.ts index dec31f9ce039..52bcd1bc678a 100644 --- a/apps/mobile/src/state/composer-attachment-uploads.ts +++ b/apps/mobile/src/state/composer-attachment-uploads.ts @@ -1,6 +1,6 @@ import { useAtomValue } from "@effect/atom-react"; import type { EnvironmentId } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { useEffect, useRef } from "react"; import { prepareTurnAttachments } from "../lib/attachmentUpload"; diff --git a/apps/mobile/src/state/device.ts b/apps/mobile/src/state/device.ts index f989d3c5b745..9183f8effdfb 100644 --- a/apps/mobile/src/state/device.ts +++ b/apps/mobile/src/state/device.ts @@ -3,7 +3,7 @@ import { resolveDeviceHubAccess } from "@t3tools/client-runtime/state/deviceHubA import type { EnvironmentId } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { useMemo } from "react"; import { connectionAtomRuntime } from "../connection/runtime"; diff --git a/apps/mobile/src/state/entities.ts b/apps/mobile/src/state/entities.ts index 3bc9066a399e..94ab662c7291 100644 --- a/apps/mobile/src/state/entities.ts +++ b/apps/mobile/src/state/entities.ts @@ -13,7 +13,7 @@ import type { ScopedThreadRef, ServerConfig, } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { environmentProjects } from "./projects"; import { environmentServerConfigsAtom, serverEnvironment } from "./server"; diff --git a/apps/mobile/src/state/pending-thread-creation.ts b/apps/mobile/src/state/pending-thread-creation.ts index 0e3b207a560c..979c3d596664 100644 --- a/apps/mobile/src/state/pending-thread-creation.ts +++ b/apps/mobile/src/state/pending-thread-creation.ts @@ -4,7 +4,7 @@ import { } from "@t3tools/client-runtime/state/shell"; import type { LocalThreadMessage } from "../lib/threadActivity"; import { DEFAULT_PROVIDER_INTERACTION_MODE, DEFAULT_RUNTIME_MODE } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import * as DateTime from "effect/DateTime"; import { deriveThreadTitleFromPrompt } from "../lib/projectThreadStartTurn"; diff --git a/apps/mobile/src/state/preferences.test.ts b/apps/mobile/src/state/preferences.test.ts index 75fb23bdf173..96bce3cf9672 100644 --- a/apps/mobile/src/state/preferences.test.ts +++ b/apps/mobile/src/state/preferences.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { vi } from "vite-plus/test"; import { ProviderInstanceId } from "@t3tools/contracts"; import { RegistryContext, useAtomSet } from "@effect/atom-react"; diff --git a/apps/mobile/src/state/preferences.ts b/apps/mobile/src/state/preferences.ts index b91bb20891bd..a8691e3f91e3 100644 --- a/apps/mobile/src/state/preferences.ts +++ b/apps/mobile/src/state/preferences.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import * as MobilePreferences from "../persistence/mobile-preferences"; import * as Runtime from "../lib/runtime"; diff --git a/apps/mobile/src/state/presentation.ts b/apps/mobile/src/state/presentation.ts index 96171d3ea5c2..437a4b7ccb6f 100644 --- a/apps/mobile/src/state/presentation.ts +++ b/apps/mobile/src/state/presentation.ts @@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react"; import type { EnvironmentPresentation } from "@t3tools/client-runtime/connection"; import { createEnvironmentPresentationAtoms } from "@t3tools/client-runtime/state/presentation"; import type { EnvironmentId } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { environmentCatalog } from "../connection/catalog"; import { serverEnvironment } from "./server"; diff --git a/apps/mobile/src/state/project-grouping.ts b/apps/mobile/src/state/project-grouping.ts index c012c59d5b64..df91dab00ce6 100644 --- a/apps/mobile/src/state/project-grouping.ts +++ b/apps/mobile/src/state/project-grouping.ts @@ -1,5 +1,5 @@ import { useAtomValue } from "@effect/atom-react"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { mobilePreferencesAtom } from "./preferences"; import { diff --git a/apps/mobile/src/state/projectClones.ts b/apps/mobile/src/state/projectClones.ts index 018fbddfcf5a..be00ce9a8edd 100644 --- a/apps/mobile/src/state/projectClones.ts +++ b/apps/mobile/src/state/projectClones.ts @@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react"; import { parseScopedProjectKey, scopedProjectKey } from "@t3tools/client-runtime/environment"; import type { EnvironmentId, ProjectCloneSnapshot, ScopedProjectRef } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { serverEnvironment } from "./server"; import { sourceControlEnvironment } from "./sourceControl"; diff --git a/apps/mobile/src/state/queries.ts b/apps/mobile/src/state/queries.ts index db8269ff130b..0671c9e7e74d 100644 --- a/apps/mobile/src/state/queries.ts +++ b/apps/mobile/src/state/queries.ts @@ -17,7 +17,7 @@ import { useAtomValue } from "@effect/atom-react"; import * as Cause from "effect/Cause"; import { turnItemDetailRevision } from "@t3tools/client-runtime/work-log/item-detail"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { useCallback, useEffect, useMemo, useState } from "react"; import { appAtomRegistry } from "./atom-registry"; diff --git a/apps/mobile/src/state/query.ts b/apps/mobile/src/state/query.ts index c29d01d397bc..c7b0eef57e38 100644 --- a/apps/mobile/src/state/query.ts +++ b/apps/mobile/src/state/query.ts @@ -1,7 +1,7 @@ import { useAtomRefresh, useAtomValue } from "@effect/atom-react"; import * as Cause from "effect/Cause"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; const EMPTY_ASYNC_RESULT_ATOM = Atom.make(AsyncResult.initial(false)).pipe( Atom.withLabel("mobile-environment-query:empty"), diff --git a/apps/mobile/src/state/question-attachments.ts b/apps/mobile/src/state/question-attachments.ts index 4d1a4393f017..cbb5d7366346 100644 --- a/apps/mobile/src/state/question-attachments.ts +++ b/apps/mobile/src/state/question-attachments.ts @@ -1,5 +1,5 @@ import type { EnvironmentId, ThreadId } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { appAtomRegistry } from "./atom-registry"; export function questionAttachmentDraftPrefix( diff --git a/apps/mobile/src/state/queued-run-edit.ts b/apps/mobile/src/state/queued-run-edit.ts index f3b29d83b155..3abe8e156850 100644 --- a/apps/mobile/src/state/queued-run-edit.ts +++ b/apps/mobile/src/state/queued-run-edit.ts @@ -20,7 +20,7 @@ import type { RunId, UploadChatAttachment, } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { useAtomValue } from "@effect/atom-react"; import { uploadedComposerContext } from "../lib/composerContext"; diff --git a/apps/mobile/src/state/remote-environment-projections.test.ts b/apps/mobile/src/state/remote-environment-projections.test.ts index c2540a97aaa0..35e1b0b42abf 100644 --- a/apps/mobile/src/state/remote-environment-projections.test.ts +++ b/apps/mobile/src/state/remote-environment-projections.test.ts @@ -7,7 +7,7 @@ import type { ServerConfig } from "@t3tools/contracts"; import { EnvironmentId } from "@t3tools/contracts"; import { describe, expect, it } from "@effect/vitest"; import * as Option from "effect/Option"; -import { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry } from "effect/reactivity"; import { createRemoteEnvironmentProjectionAtoms } from "./remote-environment-projections"; diff --git a/apps/mobile/src/state/remote-environment-projections.ts b/apps/mobile/src/state/remote-environment-projections.ts index 48b9649f5475..c70acce6d932 100644 --- a/apps/mobile/src/state/remote-environment-projections.ts +++ b/apps/mobile/src/state/remote-environment-projections.ts @@ -5,7 +5,7 @@ import type { import { connectionCatalogDisplayUrl } from "@t3tools/client-runtime/connection"; import type { EnvironmentId, ServerConfig } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import type { SavedRemoteConnection } from "../lib/connection"; import type { EnvironmentRuntimeState } from "./remote-runtime-types"; diff --git a/apps/mobile/src/state/session.ts b/apps/mobile/src/state/session.ts index 747ab7c72ee2..18086c601852 100644 --- a/apps/mobile/src/state/session.ts +++ b/apps/mobile/src/state/session.ts @@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react"; import { createEnvironmentSessionAtoms } from "@t3tools/client-runtime/state/session"; import type { EnvironmentId } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { connectionAtomRuntime } from "../connection/runtime"; diff --git a/apps/mobile/src/state/shell.ts b/apps/mobile/src/state/shell.ts index 75c4db8701bb..6b6c3a9a29d7 100644 --- a/apps/mobile/src/state/shell.ts +++ b/apps/mobile/src/state/shell.ts @@ -8,7 +8,7 @@ import { import { useAtomValue } from "@effect/atom-react"; import type { EnvironmentId } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { environmentCatalog } from "../connection/catalog"; import { connectionAtomRuntime } from "../connection/runtime"; diff --git a/apps/mobile/src/state/thread-composer-error.ts b/apps/mobile/src/state/thread-composer-error.ts index bf51139ede97..0de3b3536321 100644 --- a/apps/mobile/src/state/thread-composer-error.ts +++ b/apps/mobile/src/state/thread-composer-error.ts @@ -1,4 +1,4 @@ -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { appAtomRegistry } from "./atom-registry"; diff --git a/apps/mobile/src/state/thread-list-environments.test.ts b/apps/mobile/src/state/thread-list-environments.test.ts index fcb31285d5ae..8c99457a9646 100644 --- a/apps/mobile/src/state/thread-list-environments.test.ts +++ b/apps/mobile/src/state/thread-list-environments.test.ts @@ -6,7 +6,7 @@ import { type ServerProvider, } from "@t3tools/contracts"; import { describe, expect, it } from "@effect/vitest"; -import { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry } from "effect/reactivity"; import { createThreadListEnvironmentsAtom } from "./thread-list-environments"; const ID = EnvironmentId.make("one"); diff --git a/apps/mobile/src/state/thread-list-environments.ts b/apps/mobile/src/state/thread-list-environments.ts index 278ce0ec9e23..9df8a12ac502 100644 --- a/apps/mobile/src/state/thread-list-environments.ts +++ b/apps/mobile/src/state/thread-list-environments.ts @@ -5,7 +5,7 @@ import { type ServerConfig, type ServerProvider, } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; export type ThreadListProvider = Pick< ServerProvider, diff --git a/apps/mobile/src/state/thread-order.test.ts b/apps/mobile/src/state/thread-order.test.ts index b30447a01907..d39120a50005 100644 --- a/apps/mobile/src/state/thread-order.test.ts +++ b/apps/mobile/src/state/thread-order.test.ts @@ -1,6 +1,6 @@ import type { EnvironmentThreadShell } from "@t3tools/client-runtime/state/shell"; import { EnvironmentId, ThreadId } from "@t3tools/contracts"; -import type { Atom } from "effect/unstable/reactivity"; +import type { Atom } from "effect/reactivity"; import { afterEach, describe, expect, it, vi } from "vite-plus/test"; import { createPendingThreadOrder } from "../features/threads/threadOrder"; @@ -14,19 +14,19 @@ import { import { environmentThreadShells } from "./threads"; vi.mock("./atom-registry", async () => { - const { AtomRegistry } = await import("effect/unstable/reactivity"); + const { AtomRegistry } = await import("effect/reactivity"); return { appAtomRegistry: AtomRegistry.make() }; }); vi.mock("./threads", async () => { - const { Atom } = await import("effect/unstable/reactivity"); + const { Atom } = await import("effect/reactivity"); return { environmentThreadShells: { threadShellsAtom: Atom.make([]).pipe(Atom.keepAlive) } }; }); vi.mock("./server", async () => { - const { Atom } = await import("effect/unstable/reactivity"); + const { Atom } = await import("effect/reactivity"); return { environmentServerConfigsAtom: Atom.make(new Map()).pipe(Atom.keepAlive) }; }); vi.mock("./use-thread-outbox", async () => { - const { Atom } = await import("effect/unstable/reactivity"); + const { Atom } = await import("effect/reactivity"); return { queuedThreadKeysAtom: Atom.make(new Set()).pipe(Atom.keepAlive) }; }); diff --git a/apps/mobile/src/state/thread-order.ts b/apps/mobile/src/state/thread-order.ts index f83252e9cb8a..7667d47d159d 100644 --- a/apps/mobile/src/state/thread-order.ts +++ b/apps/mobile/src/state/thread-order.ts @@ -1,6 +1,6 @@ import { useAtomValue } from "@effect/atom-react"; import { useEffect } from "react"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { reconcilePendingThreadOrder, diff --git a/apps/mobile/src/state/thread-outbox-manager.ts b/apps/mobile/src/state/thread-outbox-manager.ts index 520a9c72133a..827507ad4ab2 100644 --- a/apps/mobile/src/state/thread-outbox-manager.ts +++ b/apps/mobile/src/state/thread-outbox-manager.ts @@ -1,6 +1,6 @@ import { EnvironmentId, MessageId, ThreadId } from "@t3tools/contracts"; import * as Schema from "effect/Schema"; -import { Atom, type AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, type AtomRegistry } from "effect/reactivity"; import { flattenQueuedThreadMessages, diff --git a/apps/mobile/src/state/thread-outbox.test.ts b/apps/mobile/src/state/thread-outbox.test.ts index 734caeab226a..cbaffbbe5041 100644 --- a/apps/mobile/src/state/thread-outbox.test.ts +++ b/apps/mobile/src/state/thread-outbox.test.ts @@ -13,9 +13,9 @@ import { ProviderInstanceId, ThreadId, } from "@t3tools/contracts"; -import { AtomRegistry } from "effect/unstable/reactivity"; -import * as RpcClientError from "effect/unstable/rpc/RpcClientError"; -import * as Socket from "effect/unstable/socket/Socket"; +import { AtomRegistry } from "effect/reactivity"; +import * as RpcClientError from "effect/rpc/RpcClientError"; +import * as Socket from "effect/socket/Socket"; import { onTestFinished, vi } from "vite-plus/test"; const outboxFiles = vi.hoisted(() => new Map()); diff --git a/apps/mobile/src/state/threads.ts b/apps/mobile/src/state/threads.ts index 223c26460869..c056ce417f92 100644 --- a/apps/mobile/src/state/threads.ts +++ b/apps/mobile/src/state/threads.ts @@ -9,7 +9,7 @@ import { } from "@t3tools/client-runtime/state/threads"; import type { EnvironmentId, ThreadId } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { environmentCatalog } from "../connection/catalog"; import { connectionAtomRuntime } from "../connection/runtime"; diff --git a/apps/mobile/src/state/usage.ts b/apps/mobile/src/state/usage.ts index c5895d353fef..a2e7589aadb6 100644 --- a/apps/mobile/src/state/usage.ts +++ b/apps/mobile/src/state/usage.ts @@ -19,7 +19,7 @@ import { import { needsCursorKeychainAccess, refreshUsage } from "@t3tools/client-runtime/state/usage"; import { mergeUsage, type EnvironmentUsage, type MergedUsage } from "@t3tools/shared/usageMerge"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { useCallback, useMemo } from "react"; import { appAtomRegistry } from "./atom-registry"; diff --git a/apps/mobile/src/state/use-atom-query-runner.ts b/apps/mobile/src/state/use-atom-query-runner.ts index 691b1f43cb87..d90caee210a8 100644 --- a/apps/mobile/src/state/use-atom-query-runner.ts +++ b/apps/mobile/src/state/use-atom-query-runner.ts @@ -4,7 +4,7 @@ import { type AtomQueryOptions, type AtomCommandResult, } from "@t3tools/client-runtime/state/runtime"; -import { AsyncResult, type Atom } from "effect/unstable/reactivity"; +import { AsyncResult, type Atom } from "effect/reactivity"; import { useCallback, useContext } from "react"; export function useAtomQueryRunner( diff --git a/apps/mobile/src/state/use-composer-drafts.ts b/apps/mobile/src/state/use-composer-drafts.ts index 780485c0718f..e5efb1420785 100644 --- a/apps/mobile/src/state/use-composer-drafts.ts +++ b/apps/mobile/src/state/use-composer-drafts.ts @@ -21,7 +21,7 @@ import { } from "@t3tools/contracts"; import * as Schema from "effect/Schema"; import { useEffect } from "react"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { writeFileAtomically } from "../lib/atomic-file"; import { createComposerContextHistory, referencedComposerContext } from "../lib/composerContext"; diff --git a/apps/mobile/src/state/use-remote-environment-registry.ts b/apps/mobile/src/state/use-remote-environment-registry.ts index 3a8a1022d665..d2d654b05f14 100644 --- a/apps/mobile/src/state/use-remote-environment-registry.ts +++ b/apps/mobile/src/state/use-remote-environment-registry.ts @@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react"; import { useNavigation } from "@react-navigation/native"; import type { EnvironmentId } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { useCallback } from "react"; import { Alert } from "react-native"; diff --git a/apps/mobile/src/state/use-selected-thread-git-actions.ts b/apps/mobile/src/state/use-selected-thread-git-actions.ts index e66f690428e8..fde1b795d34f 100644 --- a/apps/mobile/src/state/use-selected-thread-git-actions.ts +++ b/apps/mobile/src/state/use-selected-thread-git-actions.ts @@ -13,7 +13,7 @@ import { sanitizeFeatureBranchName, } from "@t3tools/shared/git"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useBranches } from "../state/queries"; import { threadEnvironment } from "../state/threads"; diff --git a/apps/mobile/src/state/use-selected-thread-requests.ts b/apps/mobile/src/state/use-selected-thread-requests.ts index af736a7a1b79..b33a0d7e4326 100644 --- a/apps/mobile/src/state/use-selected-thread-requests.ts +++ b/apps/mobile/src/state/use-selected-thread-requests.ts @@ -19,7 +19,7 @@ import { type PendingThreadRequests, type ThreadUserInputQuestion, } from "@t3tools/client-runtime/state/thread-requests"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { threadEnvironment } from "../state/threads"; import { scopedRequestKey } from "../lib/scopedEntities"; diff --git a/apps/mobile/src/state/use-thread-composer-state.ts b/apps/mobile/src/state/use-thread-composer-state.ts index 9688eddc65a4..0db48453529c 100644 --- a/apps/mobile/src/state/use-thread-composer-state.ts +++ b/apps/mobile/src/state/use-thread-composer-state.ts @@ -81,8 +81,8 @@ import { resolveComposerDispatchMode, type ActiveTurnComposerAction, } from "@t3tools/client-runtime/state/composer-dispatch"; -import { Atom } from "effect/unstable/reactivity"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { prepareTurnAttachments } from "../lib/attachmentUpload"; import { DEFAULT_FOLLOW_UP_BEHAVIOR } from "../lib/followUpBehavior"; import { mobilePreferencesAtom } from "./preferences"; diff --git a/apps/mobile/src/state/use-thread-detail.ts b/apps/mobile/src/state/use-thread-detail.ts index 5a7f521cbe18..9a523890eae0 100644 --- a/apps/mobile/src/state/use-thread-detail.ts +++ b/apps/mobile/src/state/use-thread-detail.ts @@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react"; import type { PendingThreadRequests } from "@t3tools/client-runtime/state/thread-requests"; import type { EnvironmentThread } from "@t3tools/client-runtime/state/shell"; import type { EnvironmentId, OrchestrationV2ThreadProjection, ThreadId } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { environmentThreadDetails, useEnvironmentThread } from "./threads"; import { useThreadSelection } from "./use-thread-selection"; diff --git a/apps/mobile/src/state/use-thread-outbox-drain.test.ts b/apps/mobile/src/state/use-thread-outbox-drain.test.ts index a7b807e6267a..ce725e82de70 100644 --- a/apps/mobile/src/state/use-thread-outbox-drain.test.ts +++ b/apps/mobile/src/state/use-thread-outbox-drain.test.ts @@ -83,7 +83,7 @@ vi.mock("./entities", () => ({ })); vi.mock("./server", async () => { - const { Atom } = await import("effect/unstable/reactivity"); + const { Atom } = await import("effect/reactivity"); return { serverEnvironment: { configValueAtom: Atom.family(() => Atom.make(null)) } }; }); @@ -96,7 +96,7 @@ vi.mock("./use-atom-command", () => ({ })); vi.mock("./use-thread-outbox", async () => { - const { Atom } = await import("effect/unstable/reactivity"); + const { Atom } = await import("effect/reactivity"); return { editingQueuedMessageIdsAtom: Atom.make>({}).pipe(Atom.keepAlive), useThreadOutboxMessages: () => ({}), diff --git a/apps/mobile/src/state/use-thread-outbox-drain.ts b/apps/mobile/src/state/use-thread-outbox-drain.ts index db4d5b14f590..85c6cecb8f70 100644 --- a/apps/mobile/src/state/use-thread-outbox-drain.ts +++ b/apps/mobile/src/state/use-thread-outbox-drain.ts @@ -15,7 +15,7 @@ import { } from "@t3tools/contracts"; import { buildTemporaryWorktreeBranchName } from "@t3tools/shared/git"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useCallback, useEffect, useRef, useState } from "react"; import { Alert } from "react-native"; diff --git a/apps/mobile/src/state/use-thread-outbox.ts b/apps/mobile/src/state/use-thread-outbox.ts index e8599e1ecbb7..e97951b50cb2 100644 --- a/apps/mobile/src/state/use-thread-outbox.ts +++ b/apps/mobile/src/state/use-thread-outbox.ts @@ -1,7 +1,7 @@ import { useAtomValue } from "@effect/atom-react"; import type { EnvironmentShellStatus } from "@t3tools/client-runtime/state/shell"; import type { EnvironmentId, MessageId } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { appAtomRegistry } from "./atom-registry"; import { environmentShell } from "./shell"; diff --git a/apps/mobile/src/state/use-thread-pr.ts b/apps/mobile/src/state/use-thread-pr.ts index c903abbb07f2..8895fcb671dc 100644 --- a/apps/mobile/src/state/use-thread-pr.ts +++ b/apps/mobile/src/state/use-thread-pr.ts @@ -5,7 +5,7 @@ import { createLinkedPullRequestSummaryAtomFamily, pullRequestDetailToVcsStatus, } from "@t3tools/client-runtime/state/pull-requests"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { useCallback, useEffect, useMemo } from "react"; import { connectionAtomRuntime } from "../connection/runtime"; diff --git a/apps/mobile/src/state/use-vcs-action-state.ts b/apps/mobile/src/state/use-vcs-action-state.ts index e169005a07fa..318d38cd1980 100644 --- a/apps/mobile/src/state/use-vcs-action-state.ts +++ b/apps/mobile/src/state/use-vcs-action-state.ts @@ -1,6 +1,6 @@ import { useAtomValue } from "@effect/atom-react"; import { type VcsActionState, type VcsActionTarget } from "@t3tools/client-runtime/state/vcs"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { useCallback, useEffect, useRef, useState } from "react"; import { appAtomRegistry } from "./atom-registry"; diff --git a/apps/mobile/src/state/v2-item-support.ts b/apps/mobile/src/state/v2-item-support.ts index f9fa51dc7567..1387ae99bba4 100644 --- a/apps/mobile/src/state/v2-item-support.ts +++ b/apps/mobile/src/state/v2-item-support.ts @@ -7,7 +7,7 @@ import { type V2ItemSupport, } from "@t3tools/client-runtime/state/item-support"; import type { EnvironmentId, ThreadId, TurnItemId } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { environmentThreadDetails } from "./threads"; diff --git a/apps/mobile/src/state/workspace-connection-atoms.test.ts b/apps/mobile/src/state/workspace-connection-atoms.test.ts index a46499f8b0ce..3edce3eb5271 100644 --- a/apps/mobile/src/state/workspace-connection-atoms.test.ts +++ b/apps/mobile/src/state/workspace-connection-atoms.test.ts @@ -8,7 +8,7 @@ import type { EnvironmentCatalogState } from "@t3tools/client-runtime/state/conn import type { EnvironmentShellSummary } from "@t3tools/client-runtime/state/shell"; import { EnvironmentId, type ServerConfig } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry } from "effect/reactivity"; import { createWorkspaceConnectionAtoms } from "./workspace-connection-atoms"; import { projectWorkspaceEnvironment, projectWorkspaceState } from "./workspaceModel"; diff --git a/apps/mobile/src/state/workspace-connection-atoms.ts b/apps/mobile/src/state/workspace-connection-atoms.ts index 4a1c24f3839a..c7d8376e23ea 100644 --- a/apps/mobile/src/state/workspace-connection-atoms.ts +++ b/apps/mobile/src/state/workspace-connection-atoms.ts @@ -2,7 +2,7 @@ import type { EnvironmentPresentation, NetworkStatus } from "@t3tools/client-run import type { EnvironmentCatalogState } from "@t3tools/client-runtime/state/connections"; import type { EnvironmentId } from "@t3tools/contracts"; import { createEnvironmentSummaryAtoms } from "@t3tools/client-runtime/state/presentation"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { projectWorkspaceConnectionState } from "./workspaceModel"; diff --git a/apps/mobile/src/widgets/SubscriptionUsageCoordinator.tsx b/apps/mobile/src/widgets/SubscriptionUsageCoordinator.tsx index 4a805b48ce22..000dcc21b15d 100644 --- a/apps/mobile/src/widgets/SubscriptionUsageCoordinator.tsx +++ b/apps/mobile/src/widgets/SubscriptionUsageCoordinator.tsx @@ -1,5 +1,5 @@ import { useAtomValue } from "@effect/atom-react"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import * as Linking from "expo-linking"; import { useEffect } from "react"; import { Platform } from "react-native"; diff --git a/apps/server/integration/NetworkTransferMeasurement.integration.ts b/apps/server/integration/NetworkTransferMeasurement.integration.ts index 3ed0ab8a3e11..ad5b1f0b7b7f 100644 --- a/apps/server/integration/NetworkTransferMeasurement.integration.ts +++ b/apps/server/integration/NetworkTransferMeasurement.integration.ts @@ -9,8 +9,8 @@ import * as Exit from "effect/Exit"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; -import { RpcClient, RpcSerialization } from "effect/unstable/rpc"; -import * as Socket from "effect/unstable/socket/Socket"; +import { RpcClient, RpcSerialization } from "effect/rpc"; +import * as Socket from "effect/socket/Socket"; export class TransferHttpRequestError extends Schema.TaggedError()( "TransferHttpRequestError", diff --git a/apps/server/integration/transferBudgetV2.integration.test.ts b/apps/server/integration/transferBudgetV2.integration.test.ts index c992a923d9c0..1fafd695abe4 100644 --- a/apps/server/integration/transferBudgetV2.integration.test.ts +++ b/apps/server/integration/transferBudgetV2.integration.test.ts @@ -31,10 +31,10 @@ import * as Queue from "effect/Queue"; import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import * as HttpApi from "effect/unstable/httpapi/HttpApi"; -import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder"; -import { HttpRouter, HttpServer } from "effect/unstable/http"; -import { Rpc, RpcGroup, RpcServer, RpcSerialization } from "effect/unstable/rpc"; +import * as HttpApi from "effect/http-api/HttpApi"; +import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder"; +import { HttpRouter, HttpServer } from "effect/http"; +import { Rpc, RpcGroup, RpcServer, RpcSerialization } from "effect/rpc"; import { SqlitePersistenceMemory } from "../src/persistence/Layers/Sqlite.ts"; import { OrchestrationEventStoreLive } from "../src/persistence/Layers/OrchestrationEventStore.ts"; import * as EventStore from "../src/orchestration-v2/EventStore.ts"; diff --git a/apps/server/package.json b/apps/server/package.json index 1740815918ad..595657dfe376 100644 --- a/apps/server/package.json +++ b/apps/server/package.json @@ -35,9 +35,9 @@ "@ff-labs/fff-node": "0.9.4", "@napi-rs/keyring": "^1.3.0", "@opencode-ai/sdk": "^1.3.15", - "@opencode/client": "2.0.18", - "@opencode/protocol": "2.0.18", - "@opencode/schema": "2.0.18", + "@opencode/client": "2.0.23", + "@opencode/protocol": "2.0.23", + "@opencode/schema": "2.0.23", "diff": "8.0.3", "effect": "catalog:", "jose": "catalog:", diff --git a/apps/server/scripts/cli.ts b/apps/server/scripts/cli.ts index a2292fbf9a7d..60bc08b0d4bb 100644 --- a/apps/server/scripts/cli.ts +++ b/apps/server/scripts/cli.ts @@ -6,8 +6,8 @@ import * as FileSystem from "effect/FileSystem"; import * as Logger from "effect/Logger"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; -import { Command, Flag } from "effect/unstable/cli"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { Command, Flag } from "effect/cli"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { DEVELOPMENT_ICON_OVERRIDES } from "../../../scripts/lib/brand-assets.ts"; import { findEsmImportsOfExternalPackages } from "../../../scripts/lib/cli-executable-imports.ts"; diff --git a/apps/server/scripts/evaluate-thread-titles.ts b/apps/server/scripts/evaluate-thread-titles.ts index 4c6e04bb510e..4e0691fe3a06 100644 --- a/apps/server/scripts/evaluate-thread-titles.ts +++ b/apps/server/scripts/evaluate-thread-titles.ts @@ -6,7 +6,7 @@ // Add --initial to evaluate only the opening request. import * as NodeUtil from "node:util"; import * as NodeCrypto from "node:crypto"; -import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient"; +import * as FetchHttpClient from "effect/http/FetchHttpClient"; import * as NodeServices from "@effect/platform-node/NodeServices"; import { CodexSettings, ProviderInstanceId } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; diff --git a/apps/server/scripts/migrate-dev-db.test.ts b/apps/server/scripts/migrate-dev-db.test.ts index 694af7bbf305..731a67d94cb6 100644 --- a/apps/server/scripts/migrate-dev-db.test.ts +++ b/apps/server/scripts/migrate-dev-db.test.ts @@ -3,7 +3,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../src/persistence/Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/scripts/migrate-dev-db.ts b/apps/server/scripts/migrate-dev-db.ts index c0982f731e77..340d37a9c2b4 100644 --- a/apps/server/scripts/migrate-dev-db.ts +++ b/apps/server/scripts/migrate-dev-db.ts @@ -36,8 +36,8 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; -import { Command, Flag } from "effect/unstable/cli"; +import * as SqlClient from "effect/sql/SqlClient"; +import { Command, Flag } from "effect/cli"; import * as ProjectionStore from "../src/orchestration-v2/ProjectionStore.ts"; import { migrationManifest, runMigrations } from "../src/persistence/Migrations.ts"; diff --git a/apps/server/scripts/record-codex-app-server-replay-fixture.ts b/apps/server/scripts/record-codex-app-server-replay-fixture.ts index f6da1ccbfdf1..f77b81996f5f 100644 --- a/apps/server/scripts/record-codex-app-server-replay-fixture.ts +++ b/apps/server/scripts/record-codex-app-server-replay-fixture.ts @@ -14,7 +14,7 @@ import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as PlatformError from "effect/PlatformError"; import * as Effect from "effect/Effect"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as CodexClient from "effect-codex-app-server/client"; import type * as CodexSchema from "effect-codex-app-server/schema"; diff --git a/apps/server/scripts/record-cursor-agent-sdk-replay-fixture.ts b/apps/server/scripts/record-cursor-agent-sdk-replay-fixture.ts index 6497880f36e7..1ccfb13c1bc5 100644 --- a/apps/server/scripts/record-cursor-agent-sdk-replay-fixture.ts +++ b/apps/server/scripts/record-cursor-agent-sdk-replay-fixture.ts @@ -9,7 +9,7 @@ import * as Path from "effect/Path"; import * as Redacted from "effect/Redacted"; import * as Schema from "effect/Schema"; import * as Struct from "effect/Struct"; -import { Command, Flag } from "effect/unstable/cli"; +import { Command, Flag } from "effect/cli"; import { recordCursorAgentSdkReplayTranscript, diff --git a/apps/server/scripts/record-grok-acp-replay-fixture.ts b/apps/server/scripts/record-grok-acp-replay-fixture.ts index f09a3e51f0cb..43aef35a175b 100644 --- a/apps/server/scripts/record-grok-acp-replay-fixture.ts +++ b/apps/server/scripts/record-grok-acp-replay-fixture.ts @@ -21,7 +21,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import type * as EffectAcpProtocol from "effect-acp/protocol"; import * as ServerConfig from "../src/config.ts"; diff --git a/apps/server/scripts/record-pi-rpc-replay-fixture.ts b/apps/server/scripts/record-pi-rpc-replay-fixture.ts index 731620f728c1..dc03732d36be 100644 --- a/apps/server/scripts/record-pi-rpc-replay-fixture.ts +++ b/apps/server/scripts/record-pi-rpc-replay-fixture.ts @@ -20,7 +20,7 @@ import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import { TestClock } from "effect/testing"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { makePiProviderAdapterRegistryLayer, diff --git a/apps/server/scripts/t3-sqlite-state.test.ts b/apps/server/scripts/t3-sqlite-state.test.ts index e0c734e11e86..45bc78b30e0d 100644 --- a/apps/server/scripts/t3-sqlite-state.test.ts +++ b/apps/server/scripts/t3-sqlite-state.test.ts @@ -3,7 +3,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; import { runSqliteState } from "./t3-sqlite-state.ts"; diff --git a/apps/server/scripts/t3-sqlite-state.ts b/apps/server/scripts/t3-sqlite-state.ts index 2298cfd49c0e..f905ac2588a5 100644 --- a/apps/server/scripts/t3-sqlite-state.ts +++ b/apps/server/scripts/t3-sqlite-state.ts @@ -11,8 +11,8 @@ import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; -import { Argument, Command, Flag } from "effect/unstable/cli"; +import * as SqlClient from "effect/sql/SqlClient"; +import { Argument, Command, Flag } from "effect/cli"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/scripts/verify-background-live.ts b/apps/server/scripts/verify-background-live.ts index 557d730402bf..5a76f33b2cf9 100644 --- a/apps/server/scripts/verify-background-live.ts +++ b/apps/server/scripts/verify-background-live.ts @@ -18,8 +18,8 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { Socket } from "effect/unstable/socket"; -import { RpcClient, RpcSerialization } from "effect/unstable/rpc"; +import { Socket } from "effect/socket"; +import { RpcClient, RpcSerialization } from "effect/rpc"; import { ORCHESTRATION_PROTOCOL_VERSION, ORCHESTRATION_PROTOCOL_HEADER, diff --git a/apps/server/src/assets/AssetAccess.test.ts b/apps/server/src/assets/AssetAccess.test.ts index 35844a6be11a..0907333032de 100644 --- a/apps/server/src/assets/AssetAccess.test.ts +++ b/apps/server/src/assets/AssetAccess.test.ts @@ -14,8 +14,8 @@ import * as Path from "effect/Path"; import * as PlatformError from "effect/PlatformError"; import * as Schema from "effect/Schema"; import * as TestClock from "effect/testing/TestClock"; -import { HttpClient, HttpClientResponse, HttpServerResponse } from "effect/unstable/http"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient, HttpClientResponse, HttpServerResponse } from "effect/http"; +import { ChildProcessSpawner } from "effect/process"; import { vi } from "vite-plus/test"; import * as ServerSecretStore from "../auth/ServerSecretStore.ts"; diff --git a/apps/server/src/assets/AssetAccess.ts b/apps/server/src/assets/AssetAccess.ts index be0d280fef76..427d95b380e5 100644 --- a/apps/server/src/assets/AssetAccess.ts +++ b/apps/server/src/assets/AssetAccess.ts @@ -33,7 +33,7 @@ import { PROJECT_FAVICON_FALLBACK_MARKER } from "@t3tools/shared/projectFavicon" import * as Clock from "effect/Clock"; import * as Crypto from "effect/Crypto"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Hex from "effect/encoding/Hex"; import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; @@ -657,7 +657,7 @@ export const issueAssetUrl = Effect.fn("AssetAccess.issueAssetUrl")(function* (i ), ); const revision = yield* crypto.digest("SHA-256", faviconBytes).pipe( - Effect.map(Encoding.encodeHex), + Effect.map(Hex.encode), Effect.mapError( (cause) => new AssetProjectFaviconInspectionError({ diff --git a/apps/server/src/assets/AttachmentUpload.ts b/apps/server/src/assets/AttachmentUpload.ts index 28b20c7ba267..a6e83d8853c8 100644 --- a/apps/server/src/assets/AttachmentUpload.ts +++ b/apps/server/src/assets/AttachmentUpload.ts @@ -12,7 +12,7 @@ import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import type * as HttpServerRequest from "effect/unstable/http/HttpServerRequest"; +import type * as HttpServerRequest from "effect/http/HttpServerRequest"; import { attachmentFileExtension, diff --git a/apps/server/src/assets/GitHubMediaFetch.ts b/apps/server/src/assets/GitHubMediaFetch.ts index 495c2fa14c3b..39ed14f8b609 100644 --- a/apps/server/src/assets/GitHubMediaFetch.ts +++ b/apps/server/src/assets/GitHubMediaFetch.ts @@ -1,4 +1,4 @@ -import * as Mime from "effect/unstable/http/Mime"; +import * as Mime from "effect/http/Mime"; import { githubMediaFileName } from "@t3tools/shared/githubMedia"; import * as Clock from "effect/Clock"; import * as Effect from "effect/Effect"; @@ -10,7 +10,7 @@ import { HttpClientRequest, HttpServerResponse, type HttpClientResponse, -} from "effect/unstable/http"; +} from "effect/http"; import * as GitHubCli from "../sourceControl/GitHubCli.ts"; diff --git a/apps/server/src/assets/NativeAppIconResolver.test.ts b/apps/server/src/assets/NativeAppIconResolver.test.ts index 206f5e952cd6..224ebce7b5df 100644 --- a/apps/server/src/assets/NativeAppIconResolver.test.ts +++ b/apps/server/src/assets/NativeAppIconResolver.test.ts @@ -4,7 +4,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; import * as ServerConfig from "../config.ts"; diff --git a/apps/server/src/assets/NativeAppIconResolver.ts b/apps/server/src/assets/NativeAppIconResolver.ts index 34299f95142f..b883f625d33d 100644 --- a/apps/server/src/assets/NativeAppIconResolver.ts +++ b/apps/server/src/assets/NativeAppIconResolver.ts @@ -13,7 +13,7 @@ import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as PlatformError from "effect/PlatformError"; import * as Semaphore from "effect/Semaphore"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; import * as ServerConfig from "../config.ts"; diff --git a/apps/server/src/auth/EnvironmentAuth.test.ts b/apps/server/src/auth/EnvironmentAuth.test.ts index bfa1b87deb99..8145ae489807 100644 --- a/apps/server/src/auth/EnvironmentAuth.test.ts +++ b/apps/server/src/auth/EnvironmentAuth.test.ts @@ -5,7 +5,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Redacted from "effect/Redacted"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as ServerConfig from "../config.ts"; import * as ServerEnvironment from "../environment/ServerEnvironment.ts"; diff --git a/apps/server/src/auth/EnvironmentAuth.ts b/apps/server/src/auth/EnvironmentAuth.ts index 4254691a2487..c61c0e9cf9ae 100644 --- a/apps/server/src/auth/EnvironmentAuth.ts +++ b/apps/server/src/auth/EnvironmentAuth.ts @@ -28,7 +28,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest"; +import * as HttpServerRequest from "effect/http/HttpServerRequest"; import * as ServerEnvironment from "../environment/ServerEnvironment.ts"; import * as ServerConfig from "../config.ts"; diff --git a/apps/server/src/auth/RpcAuthorization.test.ts b/apps/server/src/auth/RpcAuthorization.test.ts index fc355f66a9eb..1af8fd7c6214 100644 --- a/apps/server/src/auth/RpcAuthorization.test.ts +++ b/apps/server/src/auth/RpcAuthorization.test.ts @@ -9,7 +9,7 @@ import { import { describe, expect, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as RpcTest from "effect/unstable/rpc/RpcTest"; +import * as RpcTest from "effect/rpc/RpcTest"; import { RPC_REQUIRED_SCOPES, diff --git a/apps/server/src/auth/RpcAuthorization.ts b/apps/server/src/auth/RpcAuthorization.ts index 54d8e2a906bf..fb4a43185ef0 100644 --- a/apps/server/src/auth/RpcAuthorization.ts +++ b/apps/server/src/auth/RpcAuthorization.ts @@ -16,7 +16,7 @@ import { } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import type * as RpcGroup from "effect/unstable/rpc/RpcGroup"; +import type * as RpcGroup from "effect/rpc/RpcGroup"; type WsRpcMethod = RpcGroup.Rpcs["_tag"]; diff --git a/apps/server/src/auth/SessionStore.test.ts b/apps/server/src/auth/SessionStore.test.ts index 72f91e21d16f..9c3d421144b0 100644 --- a/apps/server/src/auth/SessionStore.test.ts +++ b/apps/server/src/auth/SessionStore.test.ts @@ -10,7 +10,7 @@ import * as Queue from "effect/Queue"; import * as Redacted from "effect/Redacted"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as ServerConfig from "../config.ts"; import * as ServerEnvironment from "../environment/ServerEnvironment.ts"; diff --git a/apps/server/src/auth/dpop.ts b/apps/server/src/auth/dpop.ts index 5e026f584273..b66a75fa9f5f 100644 --- a/apps/server/src/auth/dpop.ts +++ b/apps/server/src/auth/dpop.ts @@ -6,9 +6,9 @@ import type { DpopFailureReason } from "@t3tools/contracts"; import * as Crypto from "effect/Crypto"; import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import * as Option from "effect/Option"; -import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest"; +import * as HttpServerRequest from "effect/http/HttpServerRequest"; import { ServerAuthDpopReplayKeyCalculationError, @@ -89,7 +89,7 @@ export const verifyRequestDpopProof = (input: { Effect.flatMap((crypto) => crypto.digest("SHA-256", new TextEncoder().encode(`${result.thumbprint}:${result.jti}`)), ), - Effect.map(Encoding.encodeBase64Url), + Effect.map(Base64Url.encode), Effect.mapError( (cause) => new ServerAuthDpopReplayKeyCalculationError({ diff --git a/apps/server/src/auth/http.test.ts b/apps/server/src/auth/http.test.ts index 793f86349650..6597944a3efb 100644 --- a/apps/server/src/auth/http.test.ts +++ b/apps/server/src/auth/http.test.ts @@ -7,11 +7,11 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Redacted from "effect/Redacted"; import * as Schema from "effect/Schema"; -import * as Etag from "effect/unstable/http/Etag"; -import * as HttpPlatform from "effect/unstable/http/HttpPlatform"; -import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder"; -import * as HttpApi from "effect/unstable/httpapi/HttpApi"; -import * as HttpRouter from "effect/unstable/http/HttpRouter"; +import * as Etag from "effect/http/Etag"; +import * as HttpPlatform from "effect/http/HttpPlatform"; +import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder"; +import * as HttpApi from "effect/http-api/HttpApi"; +import * as HttpRouter from "effect/http/HttpRouter"; import * as ServerConfig from "../config.ts"; import * as ServerEnvironment from "../environment/ServerEnvironment.ts"; diff --git a/apps/server/src/auth/http.ts b/apps/server/src/auth/http.ts index 0f927580367d..26551f77e8dd 100644 --- a/apps/server/src/auth/http.ts +++ b/apps/server/src/auth/http.ts @@ -29,10 +29,10 @@ import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import { identity } from "effect/Function"; import * as Layer from "effect/Layer"; -import * as Cookies from "effect/unstable/http/Cookies"; -import * as HttpEffect from "effect/unstable/http/HttpEffect"; -import { HttpServerRequest, HttpServerResponse } from "effect/unstable/http"; -import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder"; +import * as Cookies from "effect/http/Cookies"; +import * as HttpEffect from "effect/http/HttpEffect"; +import { HttpServerRequest, HttpServerResponse } from "effect/http"; +import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder"; import * as EnvironmentAuth from "./EnvironmentAuth.ts"; import * as SessionStore from "./SessionStore.ts"; diff --git a/apps/server/src/auth/replayMarkers.ts b/apps/server/src/auth/replayMarkers.ts index 67b56b722334..2d29ed202523 100644 --- a/apps/server/src/auth/replayMarkers.ts +++ b/apps/server/src/auth/replayMarkers.ts @@ -40,7 +40,7 @@ export const pruneExpiredReplayMarkers = Effect.fn("replayMarkers.pruneExpired") name.endsWith(".bin") && REPLAY_MARKER_PREFIXES.some((prefix) => name.startsWith(prefix)), ); // `partition` visits every marker, so one locked file does not stop the sweep. - const [failures, removed] = yield* Effect.partition(markers, (name) => { + const [removed, failures] = yield* Effect.partition(markers, (name) => { const markerPath = path.join(secretsDir, name); return fileSystem.stat(markerPath).pipe( Effect.flatMap((info) => diff --git a/apps/server/src/auth/utils.ts b/apps/server/src/auth/utils.ts index 30d59d654010..88315aebbf2a 100644 --- a/apps/server/src/auth/utils.ts +++ b/apps/server/src/auth/utils.ts @@ -3,9 +3,9 @@ import type { AuthClientMetadataDeviceType, AuthClientPresentationMetadata, } from "@t3tools/contracts"; -import type * as HttpServerRequest from "effect/unstable/http/HttpServerRequest"; +import type * as HttpServerRequest from "effect/http/HttpServerRequest"; import * as NodeCrypto from "node:crypto"; -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import * as Result from "effect/Result"; const SESSION_COOKIE_NAME = "t3_session"; @@ -81,12 +81,12 @@ export function isRemoteReachableHost(host: string | undefined): boolean { export function base64UrlEncode(input: string | Uint8Array): string { return typeof input === "string" - ? Encoding.encodeBase64Url(new TextEncoder().encode(input)) - : Encoding.encodeBase64Url(input); + ? Base64Url.encode(new TextEncoder().encode(input)) + : Base64Url.encode(input); } export function base64UrlDecodeUtf8(input: string): string { - return Result.getOrThrow(Encoding.decodeBase64UrlString(input)); + return Result.getOrThrow(Base64Url.decodeString(input)); } export function signPayload(payload: string, secret: Uint8Array): string { diff --git a/apps/server/src/binCli.ts b/apps/server/src/binCli.ts index c39fa3e3b620..ffcc7d586e35 100644 --- a/apps/server/src/binCli.ts +++ b/apps/server/src/binCli.ts @@ -2,8 +2,8 @@ import * as NodeRuntime from "@effect/platform-node/NodeRuntime"; import * as NodeServices from "@effect/platform-node/NodeServices"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import { Argument, Command } from "effect/unstable/cli"; -import * as CliError from "effect/unstable/cli/CliError"; +import { Argument, Command } from "effect/cli"; +import * as CliError from "effect/cli/CliError"; import * as NetService from "@t3tools/shared/Net"; import packageJson from "../package.json" with { type: "json" }; diff --git a/apps/server/src/checkpointing/Utils.ts b/apps/server/src/checkpointing/Utils.ts index 2698839864b7..528796bb7fad 100644 --- a/apps/server/src/checkpointing/Utils.ts +++ b/apps/server/src/checkpointing/Utils.ts @@ -1,11 +1,11 @@ -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import { CheckpointRef, ProjectId, type ThreadId } from "@t3tools/contracts"; const CHECKPOINT_REFS_PREFIX = "refs/t3/checkpoints"; export function checkpointRefForThreadTurn(threadId: ThreadId, turnCount: number): CheckpointRef { return CheckpointRef.make( - `${CHECKPOINT_REFS_PREFIX}/${Encoding.encodeBase64Url(threadId)}/turn/${turnCount}`, + `${CHECKPOINT_REFS_PREFIX}/${Base64Url.encode(threadId)}/turn/${turnCount}`, ); } diff --git a/apps/server/src/cli/acpMcpBridge.ts b/apps/server/src/cli/acpMcpBridge.ts index e5771b4bf6d7..204df4d0a210 100644 --- a/apps/server/src/cli/acpMcpBridge.ts +++ b/apps/server/src/cli/acpMcpBridge.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import { Argument, Command } from "effect/unstable/cli"; +import { Argument, Command } from "effect/cli"; import { runAcpMcpCliFastPath } from "../mcp/AcpMcpStdioBridge.ts"; diff --git a/apps/server/src/cli/app.test.ts b/apps/server/src/cli/app.test.ts index a91ea416ffca..4bde751dcf41 100644 --- a/apps/server/src/cli/app.test.ts +++ b/apps/server/src/cli/app.test.ts @@ -18,7 +18,7 @@ import * as ConfigProvider from "effect/ConfigProvider"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; -import { Command } from "effect/unstable/cli"; +import { Command } from "effect/cli"; import { afterEach, describe, expect, vi } from "vite-plus/test"; import { makeCli } from "../binCli.ts"; diff --git a/apps/server/src/cli/app.ts b/apps/server/src/cli/app.ts index 83696e0c9e21..35fe0489f52f 100644 --- a/apps/server/src/cli/app.ts +++ b/apps/server/src/cli/app.ts @@ -22,7 +22,7 @@ import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { Argument, Command } from "effect/unstable/cli"; +import { Argument, Command } from "effect/cli"; import { expandHomePath, resolveBaseDir } from "../os-jank.ts"; import { baseDirFlag } from "./config.ts"; diff --git a/apps/server/src/cli/auth.ts b/apps/server/src/cli/auth.ts index f37c65eac9ed..b9c2ae9d8189 100644 --- a/apps/server/src/cli/auth.ts +++ b/apps/server/src/cli/auth.ts @@ -8,7 +8,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as References from "effect/References"; -import { Argument, Command, Flag, GlobalFlag } from "effect/unstable/cli"; +import { Argument, Command, Flag, GlobalFlag } from "effect/cli"; import * as EnvironmentAuth from "../auth/EnvironmentAuth.ts"; diff --git a/apps/server/src/cli/claudeHistory.ts b/apps/server/src/cli/claudeHistory.ts index 30660223c5f6..b48ed2818a59 100644 --- a/apps/server/src/cli/claudeHistory.ts +++ b/apps/server/src/cli/claudeHistory.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import { Argument, Command } from "effect/unstable/cli"; +import { Argument, Command } from "effect/cli"; import { runClaudeHistoryWorker } from "../claudeHistoryWorker.ts"; diff --git a/apps/server/src/cli/config.ts b/apps/server/src/cli/config.ts index e78b8b54d73b..7fb547e1a69b 100644 --- a/apps/server/src/cli/config.ts +++ b/apps/server/src/cli/config.ts @@ -18,8 +18,8 @@ import * as Redacted from "effect/Redacted"; import * as Schema from "effect/Schema"; import * as SchemaIssue from "effect/SchemaIssue"; import * as SchemaTransformation from "effect/SchemaTransformation"; -import { Argument, Flag } from "effect/unstable/cli"; -import * as CliError from "effect/unstable/cli/CliError"; +import { Argument, Flag } from "effect/cli"; +import * as CliError from "effect/cli/CliError"; import { readBootstrapEnvelope } from "../bootstrap.ts"; import * as ServerConfig from "../config.ts"; diff --git a/apps/server/src/cli/connect.ts b/apps/server/src/cli/connect.ts index 3427941bedeb..997f403288d1 100644 --- a/apps/server/src/cli/connect.ts +++ b/apps/server/src/cli/connect.ts @@ -20,14 +20,9 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as References from "effect/References"; import * as Schema from "effect/Schema"; -import { Command, Flag, GlobalFlag, Prompt } from "effect/unstable/cli"; -import { - FetchHttpClient, - HttpClient, - HttpClientRequest, - HttpClientResponse, -} from "effect/unstable/http"; -import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient"; +import { Command, Flag, GlobalFlag, Prompt } from "effect/cli"; +import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; +import * as HttpApiClient from "effect/http-api/HttpApiClient"; import * as EnvironmentAuth from "../auth/EnvironmentAuth.ts"; import * as ServerSecretStore from "../auth/ServerSecretStore.ts"; diff --git a/apps/server/src/cli/pair.test.ts b/apps/server/src/cli/pair.test.ts index 15e77f1752e4..1bafd6ce4380 100644 --- a/apps/server/src/cli/pair.test.ts +++ b/apps/server/src/cli/pair.test.ts @@ -11,7 +11,7 @@ import { assert, describe, expect, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as TestConsole from "effect/testing/TestConsole"; -import { Command } from "effect/unstable/cli"; +import { Command } from "effect/cli"; import { cli } from "../binCli.ts"; import { diff --git a/apps/server/src/cli/pair.ts b/apps/server/src/cli/pair.ts index 04ce0332c14c..9687b4aa4e15 100644 --- a/apps/server/src/cli/pair.ts +++ b/apps/server/src/cli/pair.ts @@ -32,13 +32,8 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as References from "effect/References"; import * as Schema from "effect/Schema"; -import { Command, Flag, GlobalFlag } from "effect/unstable/cli"; -import { - FetchHttpClient, - HttpClient, - HttpClientRequest, - HttpClientResponse, -} from "effect/unstable/http"; +import { Command, Flag, GlobalFlag } from "effect/cli"; +import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; import * as EnvironmentAuth from "../auth/EnvironmentAuth.ts"; import * as ServerConfig from "../config.ts"; diff --git a/apps/server/src/cli/project.test.ts b/apps/server/src/cli/project.test.ts index 1a489bdcb64a..720ead5e2fb8 100644 --- a/apps/server/src/cli/project.test.ts +++ b/apps/server/src/cli/project.test.ts @@ -23,7 +23,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as References from "effect/References"; import * as Stream from "effect/Stream"; -import { Command } from "effect/unstable/cli"; +import { Command } from "effect/cli"; import { cli } from "../binCli.ts"; import * as ServerConfig from "../config.ts"; diff --git a/apps/server/src/cli/project.ts b/apps/server/src/cli/project.ts index c0d3c26b4461..0d0c783010c4 100644 --- a/apps/server/src/cli/project.ts +++ b/apps/server/src/cli/project.ts @@ -17,9 +17,9 @@ import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as References from "effect/References"; import * as Schema from "effect/Schema"; -import { Argument, Command, Flag, GlobalFlag } from "effect/unstable/cli"; -import { FetchHttpClient, HttpClient, HttpClientError } from "effect/unstable/http"; -import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient"; +import { Argument, Command, Flag, GlobalFlag } from "effect/cli"; +import { FetchHttpClient, HttpClient, HttpClientError } from "effect/http"; +import * as HttpApiClient from "effect/http-api/HttpApiClient"; import * as EnvironmentAuth from "../auth/EnvironmentAuth.ts"; diff --git a/apps/server/src/cli/server.ts b/apps/server/src/cli/server.ts index 44662c36b540..3062a840e59e 100644 --- a/apps/server/src/cli/server.ts +++ b/apps/server/src/cli/server.ts @@ -3,8 +3,8 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import { Command, GlobalFlag } from "effect/unstable/cli"; -import * as CliError from "effect/unstable/cli/CliError"; +import { Command, GlobalFlag } from "effect/cli"; +import * as CliError from "effect/cli/CliError"; import * as ServerConfig from "../config.ts"; import { runServer } from "../server.ts"; diff --git a/apps/server/src/cli/service.test.ts b/apps/server/src/cli/service.test.ts index 74c2489e7b12..f58fe4a17815 100644 --- a/apps/server/src/cli/service.test.ts +++ b/apps/server/src/cli/service.test.ts @@ -7,7 +7,7 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Terminal from "effect/Terminal"; -import { Command } from "effect/unstable/cli"; +import { Command } from "effect/cli"; import { afterEach, vi } from "vite-plus/test"; import packageJson from "../../package.json" with { type: "json" }; diff --git a/apps/server/src/cli/service.ts b/apps/server/src/cli/service.ts index 692bf4f3a099..409f7cb5a517 100644 --- a/apps/server/src/cli/service.ts +++ b/apps/server/src/cli/service.ts @@ -3,8 +3,8 @@ import * as Console from "effect/Console"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Terminal from "effect/Terminal"; -import { Command, Flag, GlobalFlag, Prompt } from "effect/unstable/cli"; -import { FetchHttpClient } from "effect/unstable/http"; +import { Command, Flag, GlobalFlag, Prompt } from "effect/cli"; +import { FetchHttpClient } from "effect/http"; import packageJson from "../../package.json" with { type: "json" }; import * as BootService from "../cloud/bootService.ts"; diff --git a/apps/server/src/cli/serviceLauncher.ts b/apps/server/src/cli/serviceLauncher.ts index 280177fc2807..ddd53fd63026 100644 --- a/apps/server/src/cli/serviceLauncher.ts +++ b/apps/server/src/cli/serviceLauncher.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import { Command } from "effect/unstable/cli"; +import { Command } from "effect/cli"; import { main as runServiceLauncher } from "../serviceLauncher.ts"; diff --git a/apps/server/src/cli/servicePreflight.ts b/apps/server/src/cli/servicePreflight.ts index 94aea99091e0..eefb2a35d37c 100644 --- a/apps/server/src/cli/servicePreflight.ts +++ b/apps/server/src/cli/servicePreflight.ts @@ -1,6 +1,6 @@ import * as Console from "effect/Console"; import * as Effect from "effect/Effect"; -import { Command, Flag } from "effect/unstable/cli"; +import { Command, Flag } from "effect/cli"; import { runServicePreflight } from "../cloud/servicePreflight.ts"; diff --git a/apps/server/src/cli/sshHelper.ts b/apps/server/src/cli/sshHelper.ts index 58d88fed34a3..09538c7df22d 100644 --- a/apps/server/src/cli/sshHelper.ts +++ b/apps/server/src/cli/sshHelper.ts @@ -8,7 +8,7 @@ import * as NodeHttp from "node:http"; import * as NodeNet from "node:net"; import * as Effect from "effect/Effect"; -import { Argument, Command } from "effect/unstable/cli"; +import { Argument, Command } from "effect/cli"; /** * Small helpers the SSH launch script needs on the remote host. The script diff --git a/apps/server/src/cli/theme.test.ts b/apps/server/src/cli/theme.test.ts index 0600c4ef08b6..edf309ccc33b 100644 --- a/apps/server/src/cli/theme.test.ts +++ b/apps/server/src/cli/theme.test.ts @@ -10,7 +10,7 @@ import { assert, describe, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as TestConsole from "effect/testing/TestConsole"; -import { Command } from "effect/unstable/cli"; +import { Command } from "effect/cli"; import { cli } from "../binCli.ts"; import { symlinksSupported } from "@t3tools/shared/testing/symlinks"; diff --git a/apps/server/src/cli/theme.ts b/apps/server/src/cli/theme.ts index ab662596267a..13f451b42363 100644 --- a/apps/server/src/cli/theme.ts +++ b/apps/server/src/cli/theme.ts @@ -33,7 +33,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { Argument, Command, Flag } from "effect/unstable/cli"; +import { Argument, Command, Flag } from "effect/cli"; import { writeFileStringAtomically } from "../atomicWrite.ts"; import * as ServerConfig from "../config.ts"; diff --git a/apps/server/src/cli/trace.ts b/apps/server/src/cli/trace.ts index 61a209471d6e..744c5957441b 100644 --- a/apps/server/src/cli/trace.ts +++ b/apps/server/src/cli/trace.ts @@ -13,7 +13,7 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import { Command, Flag } from "effect/unstable/cli"; +import { Command, Flag } from "effect/cli"; import * as ServerConfig from "../config.ts"; import { streamTraceFileLines, toRotatedTracePaths } from "../diagnostics/TraceDiagnostics.ts"; diff --git a/apps/server/src/cli/triage.ts b/apps/server/src/cli/triage.ts index b408e3550112..a7bd06fab678 100644 --- a/apps/server/src/cli/triage.ts +++ b/apps/server/src/cli/triage.ts @@ -24,7 +24,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { Command, Flag } from "effect/unstable/cli"; +import { Command, Flag } from "effect/cli"; import packageJson from "../../package.json" with { type: "json" }; import * as BootService from "../cloud/bootService.ts"; diff --git a/apps/server/src/cli/uninstall.ts b/apps/server/src/cli/uninstall.ts index a59d22ffd3b9..01bb6af9d227 100644 --- a/apps/server/src/cli/uninstall.ts +++ b/apps/server/src/cli/uninstall.ts @@ -15,7 +15,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { Command, Flag, GlobalFlag, Prompt } from "effect/unstable/cli"; +import { Command, Flag, GlobalFlag, Prompt } from "effect/cli"; import * as BootService from "../cloud/bootService.ts"; import { pinnedRuntimeVersionsDir } from "../cloud/pinnedRuntime.ts"; diff --git a/apps/server/src/cli/update.ts b/apps/server/src/cli/update.ts index 5a67ba267965..a077cb8cab70 100644 --- a/apps/server/src/cli/update.ts +++ b/apps/server/src/cli/update.ts @@ -22,13 +22,8 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { Argument, Command, Flag, GlobalFlag, Prompt } from "effect/unstable/cli"; -import { - FetchHttpClient, - HttpClient, - HttpClientRequest, - HttpClientResponse, -} from "effect/unstable/http"; +import { Argument, Command, Flag, GlobalFlag, Prompt } from "effect/cli"; +import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; import packageJson from "../../package.json" with { type: "json" }; import * as BootService from "../cloud/bootService.ts"; diff --git a/apps/server/src/cloud/CliTokenManager.test.ts b/apps/server/src/cloud/CliTokenManager.test.ts index 37f645cbd4ff..ed021fcab1f9 100644 --- a/apps/server/src/cloud/CliTokenManager.test.ts +++ b/apps/server/src/cloud/CliTokenManager.test.ts @@ -4,7 +4,7 @@ import * as ConfigProvider from "effect/ConfigProvider"; import * as Deferred from "effect/Deferred"; import * as Duration from "effect/Duration"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import * as Fiber from "effect/Fiber"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; @@ -12,8 +12,8 @@ import * as Queue from "effect/Queue"; import * as Schema from "effect/Schema"; import * as Terminal from "effect/Terminal"; import * as TestClock from "effect/testing/TestClock"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientResponse from "effect/http/HttpClientResponse"; import * as CliTokenManager from "./CliTokenManager.ts"; @@ -36,10 +36,8 @@ const TestIdTokenPayloadJson = Schema.fromJsonString(Schema.Struct({ email: Sche const encodeTestIdTokenHeader = Schema.encodeSync(TestIdTokenHeaderJson); const encodeTestIdTokenPayload = Schema.encodeSync(TestIdTokenPayloadJson); const idTokenWithEmail = (() => { - const header = Encoding.encodeBase64Url(encodeTestIdTokenHeader({ alg: "none" })); - const payload = Encoding.encodeBase64Url( - encodeTestIdTokenPayload({ email: "theo@example.test" }), - ); + const header = Base64Url.encode(encodeTestIdTokenHeader({ alg: "none" })); + const payload = Base64Url.encode(encodeTestIdTokenPayload({ email: "theo@example.test" })); return `${header}.${payload}.`; })(); diff --git a/apps/server/src/cloud/CliTokenManager.ts b/apps/server/src/cloud/CliTokenManager.ts index 2a666651a9a5..817b25df2aed 100644 --- a/apps/server/src/cloud/CliTokenManager.ts +++ b/apps/server/src/cloud/CliTokenManager.ts @@ -10,20 +10,20 @@ import * as Crypto from "effect/Crypto"; import * as Deferred from "effect/Deferred"; import * as Duration from "effect/Duration"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Queue from "effect/Queue"; import * as Schema from "effect/Schema"; import * as Semaphore from "effect/Semaphore"; import * as Terminal from "effect/Terminal"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientError from "effect/unstable/http/HttpClientError"; -import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest"; -import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"; -import * as HttpRouter from "effect/unstable/http/HttpRouter"; -import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest"; -import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientError from "effect/http/HttpClientError"; +import * as HttpClientRequest from "effect/http/HttpClientRequest"; +import * as HttpClientResponse from "effect/http/HttpClientResponse"; +import * as HttpRouter from "effect/http/HttpRouter"; +import * as HttpServerRequest from "effect/http/HttpServerRequest"; +import * as HttpServerResponse from "effect/http/HttpServerResponse"; import { buildConnectAuthorizeRequestUrl } from "@t3tools/shared/connectAuth"; @@ -170,7 +170,7 @@ function idTokenIdentity(idToken: string | undefined): string | null { if (!idToken) return null; const payload = idToken.split(".")[1]; if (!payload) return null; - const decoded = Encoding.decodeBase64UrlString(payload); + const decoded = Base64Url.decodeString(payload); if (decoded._tag !== "Success") return null; const claims = decodeOidcIdentityClaimsJson(decoded.success); if (Option.isNone(claims)) return null; @@ -299,11 +299,11 @@ const exchangeToken = Effect.fn("cloud.cli_token.exchange")(function* ( const makePkceRequest = Effect.gen(function* () { const crypto = yield* Crypto.Crypto; - const verifier = Encoding.encodeBase64Url(yield* crypto.randomBytes(32)); - const challenge = Encoding.encodeBase64Url( + const verifier = Base64Url.encode(yield* crypto.randomBytes(32)); + const challenge = Base64Url.encode( yield* crypto.digest("SHA-256", new TextEncoder().encode(verifier)), ); - const state = Encoding.encodeBase64Url(yield* crypto.randomBytes(16)); + const state = Base64Url.encode(yield* crypto.randomBytes(16)); return { verifier, challenge, state }; }); diff --git a/apps/server/src/cloud/ManagedEndpointRuntime.test.ts b/apps/server/src/cloud/ManagedEndpointRuntime.test.ts index 71677a43d6b8..aebefed787c1 100644 --- a/apps/server/src/cloud/ManagedEndpointRuntime.test.ts +++ b/apps/server/src/cloud/ManagedEndpointRuntime.test.ts @@ -11,7 +11,7 @@ import * as Queue from "effect/Queue"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import type { RelayManagedEndpointRuntimeConfig } from "@t3tools/contracts/relay"; import * as RelayClient from "@t3tools/shared/relayClient"; diff --git a/apps/server/src/cloud/ManagedEndpointRuntime.ts b/apps/server/src/cloud/ManagedEndpointRuntime.ts index 21091c5c446e..25426fcba4ce 100644 --- a/apps/server/src/cloud/ManagedEndpointRuntime.ts +++ b/apps/server/src/cloud/ManagedEndpointRuntime.ts @@ -12,8 +12,8 @@ import * as Result from "effect/Result"; import * as Semaphore from "effect/Semaphore"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import * as ChildProcess from "effect/unstable/process/ChildProcess"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcess from "effect/process/ChildProcess"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; export type CloudManagedEndpointRuntimeStatus = | { diff --git a/apps/server/src/cloud/bootService.test.ts b/apps/server/src/cloud/bootService.test.ts index 25609853d2d3..4d8bae4377c4 100644 --- a/apps/server/src/cloud/bootService.test.ts +++ b/apps/server/src/cloud/bootService.test.ts @@ -11,8 +11,8 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; -import { HttpClient } from "effect/unstable/http"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import { HttpClient } from "effect/http"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as ProcessRunner from "../processRunner.ts"; import * as BootService from "./bootService.ts"; diff --git a/apps/server/src/cloud/bootService.ts b/apps/server/src/cloud/bootService.ts index fc8fc1549a6b..0b102579887a 100644 --- a/apps/server/src/cloud/bootService.ts +++ b/apps/server/src/cloud/bootService.ts @@ -13,7 +13,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; -import { HttpClient } from "effect/unstable/http"; +import { HttpClient } from "effect/http"; import * as Schema from "effect/Schema"; import { CLI_RELEASE_BASE_URL_ENV } from "@t3tools/shared/cliRelease"; diff --git a/apps/server/src/cloud/http.test.ts b/apps/server/src/cloud/http.test.ts index d248d46e4feb..77d432308477 100644 --- a/apps/server/src/cloud/http.test.ts +++ b/apps/server/src/cloud/http.test.ts @@ -18,7 +18,7 @@ import { HttpClientResponse, HttpServerRequest, type HttpClientRequest, -} from "effect/unstable/http"; +} from "effect/http"; import { DESKTOP_UPDATE_RESTART_MARKER_FILE, EnvironmentId } from "@t3tools/contracts"; import { RelayClientTracer } from "@t3tools/shared/relayTracing"; diff --git a/apps/server/src/cloud/http.ts b/apps/server/src/cloud/http.ts index a7e3de8c7283..82337df5b6a7 100644 --- a/apps/server/src/cloud/http.ts +++ b/apps/server/src/cloud/http.ts @@ -58,11 +58,11 @@ import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Schedule from "effect/Schedule"; -import * as HttpEffect from "effect/unstable/http/HttpEffect"; -import { HttpServerRequest, HttpServerResponse } from "effect/unstable/http"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; -import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder"; -import * as HttpServer from "effect/unstable/http/HttpServer"; +import * as HttpEffect from "effect/http/HttpEffect"; +import { HttpServerRequest, HttpServerResponse } from "effect/http"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; +import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder"; +import * as HttpServer from "effect/http/HttpServer"; import * as EnvironmentAuth from "../auth/EnvironmentAuth.ts"; import * as ServerSecretStore from "../auth/ServerSecretStore.ts"; diff --git a/apps/server/src/cloud/pinnedRuntime.test.ts b/apps/server/src/cloud/pinnedRuntime.test.ts index 27092f20a3e7..4c75a78ff03f 100644 --- a/apps/server/src/cloud/pinnedRuntime.test.ts +++ b/apps/server/src/cloud/pinnedRuntime.test.ts @@ -5,8 +5,8 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Fiber from "effect/Fiber"; import * as Path from "effect/Path"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import { HttpClient, HttpClientResponse } from "effect/http"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as ProcessRunner from "../processRunner.ts"; import { diff --git a/apps/server/src/cloud/pinnedRuntime.ts b/apps/server/src/cloud/pinnedRuntime.ts index 892ed4bcaba1..3c04e4960d10 100644 --- a/apps/server/src/cloud/pinnedRuntime.ts +++ b/apps/server/src/cloud/pinnedRuntime.ts @@ -1,13 +1,13 @@ import * as Duration from "effect/Duration"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Hex from "effect/encoding/Hex"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Option from "effect/Option"; import * as Stream from "effect/Stream"; import * as Semaphore from "effect/Semaphore"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; import { CLI_RELEASE_CHECKSUMS_FILE, @@ -224,7 +224,7 @@ const installFromArchive = Effect.fn("cloud.pinned_runtime.install_archive")(fun catch: (cause) => new PinnedRuntimeInstallError({ step: "verifying the t3 release archive", cause }), }); - if (Encoding.encodeHex(new Uint8Array(digest)) !== expected) { + if (Hex.encode(new Uint8Array(digest)) !== expected) { return yield* new PinnedRuntimeInstallError({ step: "verifying the t3 release archive checksum", }); diff --git a/apps/server/src/cloud/relayResponse.test.ts b/apps/server/src/cloud/relayResponse.test.ts index 9f53378f14ce..7bbe2ec7005a 100644 --- a/apps/server/src/cloud/relayResponse.test.ts +++ b/apps/server/src/cloud/relayResponse.test.ts @@ -1,7 +1,7 @@ import { expect, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; -import { HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; -import * as HttpClientError from "effect/unstable/http/HttpClientError"; +import { HttpClientRequest, HttpClientResponse } from "effect/http"; +import * as HttpClientError from "effect/http/HttpClientError"; import { filterRelayResponse, relayRequestError, shouldRetryCloudLink } from "./relayResponse.ts"; diff --git a/apps/server/src/cloud/relayResponse.ts b/apps/server/src/cloud/relayResponse.ts index df04642158eb..eeb33f84ab6e 100644 --- a/apps/server/src/cloud/relayResponse.ts +++ b/apps/server/src/cloud/relayResponse.ts @@ -9,8 +9,8 @@ import { RelayProtectedError } from "@t3tools/contracts/relay"; import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"; -import { isHttpClientError } from "effect/unstable/http/HttpClientError"; +import * as HttpClientResponse from "effect/http/HttpClientResponse"; +import { isHttpClientError } from "effect/http/HttpClientError"; const isRelayResponseError = Schema.is( Schema.Union([ diff --git a/apps/server/src/cloud/selfUpdate.test.ts b/apps/server/src/cloud/selfUpdate.test.ts index 05c96c95c2df..2ee84535470c 100644 --- a/apps/server/src/cloud/selfUpdate.test.ts +++ b/apps/server/src/cloud/selfUpdate.test.ts @@ -8,8 +8,8 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Fiber from "effect/Fiber"; import * as Path from "effect/Path"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import { HttpClient, HttpClientResponse } from "effect/http"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as ServerConfig from "../config.ts"; import * as DesktopAppUpdate from "../desktopUpdate/DesktopAppUpdate.ts"; diff --git a/apps/server/src/cloud/selfUpdate.ts b/apps/server/src/cloud/selfUpdate.ts index 6a6d3d92d5b1..47c4949de739 100644 --- a/apps/server/src/cloud/selfUpdate.ts +++ b/apps/server/src/cloud/selfUpdate.ts @@ -18,7 +18,7 @@ import * as Ref from "effect/Ref"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; -import { HttpClient } from "effect/unstable/http"; +import { HttpClient } from "effect/http"; import { CLI_RELEASE_BASE_URL_ENV } from "@t3tools/shared/cliRelease"; diff --git a/apps/server/src/cloud/traceRelayRequest.ts b/apps/server/src/cloud/traceRelayRequest.ts index 1481b891224d..a2b52742bf6f 100644 --- a/apps/server/src/cloud/traceRelayRequest.ts +++ b/apps/server/src/cloud/traceRelayRequest.ts @@ -1,7 +1,7 @@ import { withRelayClientTracing } from "@t3tools/shared/relayTracing"; import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; -import { HttpServerRequest, HttpTraceContext } from "effect/unstable/http"; +import { HttpServerRequest, HttpTraceContext } from "effect/http"; export const traceRelayRequest = ( effect: Effect.Effect, diff --git a/apps/server/src/device/DeviceHubProxy.test.ts b/apps/server/src/device/DeviceHubProxy.test.ts index 9fde32d87289..1e7d8e7c1c46 100644 --- a/apps/server/src/device/DeviceHubProxy.test.ts +++ b/apps/server/src/device/DeviceHubProxy.test.ts @@ -8,7 +8,7 @@ import { } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import { HttpClient, HttpClientResponse, HttpRouter } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse, HttpRouter } from "effect/http"; import * as EnvironmentAuth from "../auth/EnvironmentAuth.ts"; import * as DeviceService from "./DeviceService.ts"; import { deviceHubProxyRouteLayer } from "./DeviceHubProxy.ts"; diff --git a/apps/server/src/device/DeviceHubProxy.ts b/apps/server/src/device/DeviceHubProxy.ts index 706137796654..0caafff1bfa4 100644 --- a/apps/server/src/device/DeviceHubProxy.ts +++ b/apps/server/src/device/DeviceHubProxy.ts @@ -24,8 +24,8 @@ import { HttpRouter, HttpServerRequest, HttpServerResponse, -} from "effect/unstable/http"; -import * as Socket from "effect/unstable/socket/Socket"; +} from "effect/http"; +import * as Socket from "effect/socket/Socket"; import * as NodeSocket from "@effect/platform-node/NodeSocket"; import * as EnvironmentAuth from "../auth/EnvironmentAuth.ts"; diff --git a/apps/server/src/device/DeviceMultiHost.test.ts b/apps/server/src/device/DeviceMultiHost.test.ts index 33b63c96b7b5..0a96f97defba 100644 --- a/apps/server/src/device/DeviceMultiHost.test.ts +++ b/apps/server/src/device/DeviceMultiHost.test.ts @@ -3,7 +3,7 @@ import { ThreadId } from "@t3tools/contracts"; import * as Deferred from "effect/Deferred"; import * as Fiber from "effect/Fiber"; import * as Effect from "effect/Effect"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import * as ServerSettings from "../serverSettings.ts"; import * as DeviceHost from "./DeviceHost.ts"; import * as DeviceService from "./DeviceService.ts"; diff --git a/apps/server/src/device/DeviceService.test.ts b/apps/server/src/device/DeviceService.test.ts index 9a9663533259..3c942a2a3a36 100644 --- a/apps/server/src/device/DeviceService.test.ts +++ b/apps/server/src/device/DeviceService.test.ts @@ -15,7 +15,7 @@ import * as PubSub from "effect/PubSub"; import * as Ref from "effect/Ref"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import * as ServerSettings from "../serverSettings.ts"; import * as DeviceHost from "./DeviceHost.ts"; import { NodeRuntimeUnavailableError } from "@t3tools/shared/nodeRuntime"; diff --git a/apps/server/src/device/DeviceService.ts b/apps/server/src/device/DeviceService.ts index dcb81d95eb99..e402db235a1c 100644 --- a/apps/server/src/device/DeviceService.ts +++ b/apps/server/src/device/DeviceService.ts @@ -56,7 +56,7 @@ import * as Scope from "effect/Scope"; import * as Semaphore from "effect/Semaphore"; import * as Stream from "effect/Stream"; import * as SynchronizedRef from "effect/SynchronizedRef"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; import * as ServerSettings from "../serverSettings.ts"; import { isLocalSshDeviceHost, remoteSshDeviceHosts } from "./localSshDeviceHost.ts"; diff --git a/apps/server/src/device/DeviceToolchain.test.ts b/apps/server/src/device/DeviceToolchain.test.ts index d7812a92b48e..78dc719b141e 100644 --- a/apps/server/src/device/DeviceToolchain.test.ts +++ b/apps/server/src/device/DeviceToolchain.test.ts @@ -4,7 +4,7 @@ import * as NodeServices from "@effect/platform-node/NodeServices"; import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as ProcessRunner from "../processRunner.ts"; import { diff --git a/apps/server/src/device/LocalDeviceHost.test.ts b/apps/server/src/device/LocalDeviceHost.test.ts index 3f299db6d0c4..7dde6263defd 100644 --- a/apps/server/src/device/LocalDeviceHost.test.ts +++ b/apps/server/src/device/LocalDeviceHost.test.ts @@ -14,8 +14,8 @@ import * as FileSystem from "effect/FileSystem"; import * as LocalDeviceHost from "./LocalDeviceHost.ts"; import * as NodeServices from "@effect/platform-node/NodeServices"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; -import { HttpClient } from "effect/unstable/http"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; +import { HttpClient } from "effect/http"; import * as NetService from "@t3tools/shared/Net"; import * as ServerConfig from "../config.ts"; import * as ProcessRunner from "../processRunner.ts"; diff --git a/apps/server/src/device/LocalDeviceHost.ts b/apps/server/src/device/LocalDeviceHost.ts index 096b8312f89e..261ae79a680c 100644 --- a/apps/server/src/device/LocalDeviceHost.ts +++ b/apps/server/src/device/LocalDeviceHost.ts @@ -43,9 +43,9 @@ import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Semaphore from "effect/Semaphore"; import * as Stream from "effect/Stream"; -import { HttpClient } from "effect/unstable/http"; -import * as ChildProcess from "effect/unstable/process/ChildProcess"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import { HttpClient } from "effect/http"; +import * as ChildProcess from "effect/process/ChildProcess"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as ServerConfig from "../config.ts"; import * as ProcessRunner from "../processRunner.ts"; diff --git a/apps/server/src/device/SshDeviceHost.test.ts b/apps/server/src/device/SshDeviceHost.test.ts index 71a15190ddc8..f0d0a7ece0ae 100644 --- a/apps/server/src/device/SshDeviceHost.test.ts +++ b/apps/server/src/device/SshDeviceHost.test.ts @@ -8,9 +8,9 @@ import * as Layer from "effect/Layer"; import * as PlatformError from "effect/PlatformError"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientResponse from "effect/http/HttpClientResponse"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as ServerConfig from "../config.ts"; import * as DeviceHost from "./DeviceHost.ts"; import * as SshDeviceHost from "./SshDeviceHost.ts"; diff --git a/apps/server/src/device/SshDeviceHost.ts b/apps/server/src/device/SshDeviceHost.ts index 4ed6d740215c..f9ad91087c3b 100644 --- a/apps/server/src/device/SshDeviceHost.ts +++ b/apps/server/src/device/SshDeviceHost.ts @@ -17,9 +17,9 @@ import * as Scope from "effect/Scope"; import * as Semaphore from "effect/Semaphore"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as ChildProcess from "effect/unstable/process/ChildProcess"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as HttpClient from "effect/http/HttpClient"; +import * as ChildProcess from "effect/process/ChildProcess"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as ServerConfig from "../config.ts"; import * as DeviceHost from "./DeviceHost.ts"; import { quoteRemoteArg, remoteDeviceEnvironment, remoteDeviceScript } from "./sshDeviceScript.ts"; diff --git a/apps/server/src/device/deviceToolMaintenance.test.ts b/apps/server/src/device/deviceToolMaintenance.test.ts index 4c46be11bba4..67da025672fa 100644 --- a/apps/server/src/device/deviceToolMaintenance.test.ts +++ b/apps/server/src/device/deviceToolMaintenance.test.ts @@ -1,7 +1,7 @@ import * as Effect from "effect/Effect"; import * as NodePathLayer from "@effect/platform-node/NodePath"; import * as ProcessRunner from "../processRunner.ts"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; // @effect-diagnostics nodeBuiltinImport:off - tests the same standalone script used by local and SSH hosts. import { describe, expect, it } from "@effect/vitest"; import * as NodeFSP from "node:fs/promises"; diff --git a/apps/server/src/device/localSshDeviceHost.test.ts b/apps/server/src/device/localSshDeviceHost.test.ts index d4d202950a46..77ece8dbe3e7 100644 --- a/apps/server/src/device/localSshDeviceHost.test.ts +++ b/apps/server/src/device/localSshDeviceHost.test.ts @@ -3,7 +3,7 @@ import * as NodeServices from "@effect/platform-node/NodeServices"; import * as Effect from "effect/Effect"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import { isLocalSshDeviceHost, LocalDeviceHostAddresses, diff --git a/apps/server/src/environment/DirectEndpoints.test.ts b/apps/server/src/environment/DirectEndpoints.test.ts index 5bbce9d86686..aac94d75ee6f 100644 --- a/apps/server/src/environment/DirectEndpoints.test.ts +++ b/apps/server/src/environment/DirectEndpoints.test.ts @@ -5,9 +5,9 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientResponse from "effect/http/HttpClientResponse"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import { describe, expect, it } from "vite-plus/test"; import * as ServerConfig from "../config.ts"; diff --git a/apps/server/src/environment/DirectEndpoints.ts b/apps/server/src/environment/DirectEndpoints.ts index aa333a598ca4..d875e6d1a96f 100644 --- a/apps/server/src/environment/DirectEndpoints.ts +++ b/apps/server/src/environment/DirectEndpoints.ts @@ -19,8 +19,8 @@ import * as Duration from "effect/Duration"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; -import { HttpClient } from "effect/unstable/http"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import { HttpClient } from "effect/http"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as NodeNet from "node:net"; import * as NodeOS from "node:os"; diff --git a/apps/server/src/environment/RemoteOpenTargets.test.ts b/apps/server/src/environment/RemoteOpenTargets.test.ts index 2f876b9955c1..36ae80337265 100644 --- a/apps/server/src/environment/RemoteOpenTargets.test.ts +++ b/apps/server/src/environment/RemoteOpenTargets.test.ts @@ -5,7 +5,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import { describe, expect } from "vite-plus/test"; import * as RemoteOpenTargets from "./RemoteOpenTargets.ts"; diff --git a/apps/server/src/environment/RemoteOpenTargets.ts b/apps/server/src/environment/RemoteOpenTargets.ts index c0cd658a28c7..e0acfaee2f48 100644 --- a/apps/server/src/environment/RemoteOpenTargets.ts +++ b/apps/server/src/environment/RemoteOpenTargets.ts @@ -15,7 +15,7 @@ import { readTailscaleStatus } from "@t3tools/tailscale"; import * as Context from "effect/Context"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; const SSH_PORT = 22; diff --git a/apps/server/src/environment/ServerEnvironmentLabel.test.ts b/apps/server/src/environment/ServerEnvironmentLabel.test.ts index 6fc06b889dbc..65db791675b5 100644 --- a/apps/server/src/environment/ServerEnvironmentLabel.test.ts +++ b/apps/server/src/environment/ServerEnvironmentLabel.test.ts @@ -6,7 +6,7 @@ import * as Logger from "effect/Logger"; import * as PlatformError from "effect/PlatformError"; import * as References from "effect/References"; import * as Schema from "effect/Schema"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import { HostProcessHostname, HostProcessPlatform } from "@t3tools/shared/hostProcess"; import { vi } from "vite-plus/test"; diff --git a/apps/server/src/environment/ServerEnvironmentMachine.test.ts b/apps/server/src/environment/ServerEnvironmentMachine.test.ts index 2ae0989227de..509cab5973bd 100644 --- a/apps/server/src/environment/ServerEnvironmentMachine.test.ts +++ b/apps/server/src/environment/ServerEnvironmentMachine.test.ts @@ -3,7 +3,7 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as PlatformError from "effect/PlatformError"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; import { vi } from "vite-plus/test"; diff --git a/apps/server/src/git/GitManager.test.ts b/apps/server/src/git/GitManager.test.ts index 501e97cedad5..a4674ad7d576 100644 --- a/apps/server/src/git/GitManager.test.ts +++ b/apps/server/src/git/GitManager.test.ts @@ -17,7 +17,7 @@ import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import { TestClock } from "effect/testing"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { expect } from "vite-plus/test"; import type { GitActionProgressEvent, diff --git a/apps/server/src/http.test.ts b/apps/server/src/http.test.ts index a18678796fad..daa881365e41 100644 --- a/apps/server/src/http.test.ts +++ b/apps/server/src/http.test.ts @@ -12,12 +12,8 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Queue from "effect/Queue"; -import { - HttpClient, - HttpClientRequest, - HttpRouter, - HttpServerResponse, -} from "effect/unstable/http"; +import * as Tracer from "effect/Tracer"; +import { HttpClient, HttpClientRequest, HttpRouter, HttpServerResponse } from "effect/http"; import { openMediaFile } from "./assets/MediaFile.ts"; import { ORCHESTRATION_PROTOCOL_HEADER } from "@t3tools/contracts"; @@ -33,8 +29,48 @@ import { isLoopbackHostname, resolveDevRedirectUrl, staticAndDevRouteLayer, + withUntracedRequests, } from "./http.ts"; +describe("untraced requests", () => { + it.effect("drops the HTTP server span for browser trace exports, query string included", () => { + const spanNames: Array = []; + return Effect.gen(function* () { + const routes = Layer.effectDiscard( + Effect.gen(function* () { + const router = yield* HttpRouter.HttpRouter; + yield* router.add("POST", "/api/observability/v1/traces", HttpServerResponse.empty()); + yield* router.add("GET", "/api/environment", HttpServerResponse.empty()); + }), + ); + const services = yield* Layer.build( + withUntracedRequests(HttpRouter.serve(routes, { disableListenLog: true })).pipe( + Layer.provideMerge(NodeHttpServer.layerTest), + ), + ); + const client = Context.get(services, HttpClient.HttpClient); + + yield* client.post("/api/observability/v1/traces"); + yield* client.post("/api/observability/v1/traces?x=1"); + expect(spanNames).toEqual([]); + + yield* client.get("/api/environment"); + expect(spanNames).toContain("http.server GET"); + }).pipe( + Effect.scoped, + Effect.provideService( + Tracer.Tracer, + Tracer.make({ + span: (options) => { + if (options.kind === "server") spanNames.push(options.name); + return new Tracer.NativeSpan(options); + }, + }), + ), + ); + }); +}); + describe("browser API CORS", () => { it("accepts protocol negotiation with authenticated browser headers", async () => { const routeLayer = Layer.effectDiscard( @@ -86,15 +122,16 @@ const fileResponseLayer = Layer.mergeAll(NodeHttpPlatform.layer, NodeServices.la const makeStaticRequest = Effect.fn("HttpTest.makeStaticRequest")(function* (staticDir: string) { const config = yield* ServerConfig.ServerConfig; const fileSystem = yield* FileSystem.FileSystem; - const path = yield* Path.Path; const appLayer = Layer.merge(staticAndDevRouteLayer, httpCompressionLayer).pipe( - Layer.provideMerge(ServerConfig.layer({ ...config, staticDir })), Layer.provideMerge(NodeHttpPlatform.layer), - Layer.provideMerge(Layer.succeed(FileSystem.FileSystem, fileSystem)), - Layer.provideMerge(Layer.succeed(Path.Path, path)), ); + // HttpRouter.serve reuses services from the layers around it before the + // app's own, and NodeHttpServer.layerTest brings a real FileSystem, so the + // caller's FileSystem and static directory go between the two. const services = yield* Layer.build( HttpRouter.serve(appLayer, { disableListenLog: true }).pipe( + Layer.provideMerge(ServerConfig.layer({ ...config, staticDir })), + Layer.provideMerge(Layer.succeed(FileSystem.FileSystem, fileSystem)), Layer.provideMerge(NodeHttpServer.layerTest), ), ); diff --git a/apps/server/src/http.ts b/apps/server/src/http.ts index 30b368e62167..7be9c6adad0b 100644 --- a/apps/server/src/http.ts +++ b/apps/server/src/http.ts @@ -1,4 +1,4 @@ -import * as Mime from "effect/unstable/http/Mime"; +import * as Mime from "effect/http/Mime"; import { AuthOrchestrationOperateScope, AuthOrchestrationReadScope, @@ -23,9 +23,9 @@ import { HttpServerResponse, HttpServerRequest, HttpServerRespondable, -} from "effect/unstable/http"; -import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder"; -import { OtlpTracer, OtlpSerialization } from "effect/unstable/observability"; +} from "effect/http"; +import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder"; +import { OtlpTracer, OtlpSerialization } from "effect/observability"; import * as ServerConfig from "./config.ts"; import { ASSET_ROUTE_PREFIX, resolveAsset } from "./assets/AssetAccess.ts"; @@ -375,17 +375,19 @@ const UNTRACED_REQUEST_PATHS: ReadonlySet = new Set([OTLP_TRACES_PROXY_P // Skips the HTTP server span for UNTRACED_REQUEST_PATHS. That span starts // before routing, so a route handler cannot skip it. TracerDisabledWhen is one -// predicate for the whole server and the last layer to provide it wins, so -// makeRoutesLayer provides this one last. Add paths here instead of providing -// TracerDisabledWhen again; server.test.ts fails if a later layer replaces it. -// The query string is ignored, as in routing. -export const untracedRequestsLayer = Layer.succeed(HttpMiddleware.TracerDisabledWhen)((request) => { +// predicate for the whole server, and HttpRouter.serve builds its routes +// privately, so it is provided to the served layer, never merged into the +// routes. Add paths here instead of providing it again. The query string is +// ignored, as in routing. +const untracedRequestsLayer = Layer.succeed(HttpMiddleware.TracerDisabledWhen)((request) => { const queryIndex = request.url.indexOf("?"); return UNTRACED_REQUEST_PATHS.has( queryIndex === -1 ? request.url : request.url.slice(0, queryIndex), ); }); +export const withUntracedRequests = Layer.provide(untracedRequestsLayer); + export const assetRouteLayer = HttpRouter.add( "GET", `${ASSET_ROUTE_PREFIX}/*`, diff --git a/apps/server/src/imageMime.ts b/apps/server/src/imageMime.ts index 958f004d4ac5..7ad8c37211f7 100644 --- a/apps/server/src/imageMime.ts +++ b/apps/server/src/imageMime.ts @@ -1,5 +1,5 @@ import * as Option from "effect/Option"; -import * as Mime from "effect/unstable/http/Mime"; +import * as Mime from "effect/http/Mime"; const IMAGE_EXTENSION_BY_MIME_TYPE: Record = { "image/avif": ".avif", diff --git a/apps/server/src/mcp/McpDeviceToolkit.test.ts b/apps/server/src/mcp/McpDeviceToolkit.test.ts index f5aba005f9a8..03675f36c92e 100644 --- a/apps/server/src/mcp/McpDeviceToolkit.test.ts +++ b/apps/server/src/mcp/McpDeviceToolkit.test.ts @@ -8,7 +8,7 @@ import { } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import { McpSchema, McpServer } from "effect/unstable/ai"; +import { McpSchema, McpServer } from "effect/ai"; import * as ServerConfig from "../config.ts"; import * as DeviceService from "../device/DeviceService.ts"; diff --git a/apps/server/src/mcp/McpHttpServer.test.ts b/apps/server/src/mcp/McpHttpServer.test.ts index 96a0de29f3d0..be6b8aba3244 100644 --- a/apps/server/src/mcp/McpHttpServer.test.ts +++ b/apps/server/src/mcp/McpHttpServer.test.ts @@ -11,8 +11,8 @@ import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { McpProtocol, McpSchema, McpServer } from "effect/unstable/ai"; -import { HttpBody, HttpClient, HttpRouter, HttpServerResponse } from "effect/unstable/http"; +import { McpProtocol, McpSchema, McpServer } from "effect/ai"; +import { HttpBody, HttpClient, HttpRouter, HttpServerResponse } from "effect/http"; import * as ProjectService from "../project/ProjectService.ts"; import * as ServerConfig from "../config.ts"; diff --git a/apps/server/src/mcp/McpHttpServer.ts b/apps/server/src/mcp/McpHttpServer.ts index 5c8f146bcadf..1bf9e8a852bb 100644 --- a/apps/server/src/mcp/McpHttpServer.ts +++ b/apps/server/src/mcp/McpHttpServer.ts @@ -11,8 +11,8 @@ import * as Schema from "effect/Schema"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; import type * as Types from "effect/Types"; -import { McpProtocol, McpSchema, McpServer, Tool } from "effect/unstable/ai"; -import { HttpRouter, HttpServerRequest, HttpServerResponse } from "effect/unstable/http"; +import { McpProtocol, McpSchema, McpServer, Tool } from "effect/ai"; +import { HttpRouter, HttpServerRequest, HttpServerResponse } from "effect/http"; import { PreviewAutomationError } from "@t3tools/contracts"; import packageJson from "../../package.json" with { type: "json" }; diff --git a/apps/server/src/mcp/McpSessionRegistry.test.ts b/apps/server/src/mcp/McpSessionRegistry.test.ts index 719bed1ed4e7..6b6207dc2660 100644 --- a/apps/server/src/mcp/McpSessionRegistry.test.ts +++ b/apps/server/src/mcp/McpSessionRegistry.test.ts @@ -2,8 +2,8 @@ import * as NodeServices from "@effect/platform-node/NodeServices"; import { expect, it } from "@effect/vitest"; import { EnvironmentId, ProviderInstanceId, ThreadId } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; -import { HttpServer } from "effect/unstable/http"; -import * as NetAddress from "effect/unstable/net/NetAddress"; +import { HttpServer } from "effect/http"; +import * as NetAddress from "effect/net/NetAddress"; import * as ServerEnvironment from "../environment/ServerEnvironment.ts"; import * as McpSessionRegistry from "./McpSessionRegistry.ts"; diff --git a/apps/server/src/mcp/McpSessionRegistry.ts b/apps/server/src/mcp/McpSessionRegistry.ts index 10b933d4f45b..f90d344efaff 100644 --- a/apps/server/src/mcp/McpSessionRegistry.ts +++ b/apps/server/src/mcp/McpSessionRegistry.ts @@ -5,8 +5,8 @@ import * as Crypto from "effect/Crypto"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as SynchronizedRef from "effect/SynchronizedRef"; -import { HttpServer } from "effect/unstable/http"; -import * as NetAddress from "effect/unstable/net/NetAddress"; +import { HttpServer } from "effect/http"; +import * as NetAddress from "effect/net/NetAddress"; import * as ServerEnvironment from "../environment/ServerEnvironment.ts"; import * as McpInvocationContext from "./McpInvocationContext.ts"; diff --git a/apps/server/src/mcp/OrchestratorMcpToolkit.integration.test.ts b/apps/server/src/mcp/OrchestratorMcpToolkit.integration.test.ts index 132b2d3f635f..2b91ae43db2a 100644 --- a/apps/server/src/mcp/OrchestratorMcpToolkit.integration.test.ts +++ b/apps/server/src/mcp/OrchestratorMcpToolkit.integration.test.ts @@ -45,7 +45,7 @@ import * as PubSub from "effect/PubSub"; import * as Ref from "effect/Ref"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { McpSchema, McpServer } from "effect/unstable/ai"; +import { McpSchema, McpServer } from "effect/ai"; import { ClaudeProviderCapabilitiesV2 } from "../orchestration-v2/Adapters/ClaudeAdapterV2.ts"; import { CodexProviderCapabilitiesV2 } from "../orchestration-v2/Adapters/CodexAdapterV2.ts"; @@ -77,6 +77,13 @@ import * as McpHttpServer from "./McpHttpServer.ts"; import * as McpInvocationContext from "./McpInvocationContext.ts"; import { delegatedTaskRun, hasPendingChildRuns } from "./OrchestratorMcpService.ts"; +// Effect returns a declared tool failure as `isError` with its encoded payload +// as JSON text, never as `structuredContent`. +const declaredFailure = (result: McpSchema.CallToolResult) => { + const text = result.content[0]; + return result.isError === true && text?.type === "text" ? JSON.parse(text.text) : undefined; +}; + const parentThreadId = ThreadId.make("thread:mcp-orchestrator-parent"); const projectId = ProjectId.make("project:mcp-orchestrator"); const codexInstanceId = ProviderInstanceId.make("codex"); @@ -1173,7 +1180,7 @@ describe("orchestrator MCP toolkit", () => { truncated: true, }); const missingQueueRead = yield* invoke("t3_queue_read", { queuedRunId: parentRun.id }); - expect(missingQueueRead.structuredContent).toMatchObject({ code: "invalid_request" }); + expect(declaredFailure(missingQueueRead)).toMatchObject({ code: "invalid_request" }); const queueRaceStatus = yield* invoke("task_status", { taskId: queueRace.task.id }); expect(queueRaceStatus.isError).toBe(false); yield* waitForProjection( @@ -1327,7 +1334,7 @@ describe("orchestrator MCP toolkit", () => { "t3_thread_update", { action: "rename", title: "Denied title" }, ); - expect(deniedThreadUpdate.structuredContent).toMatchObject({ + expect(declaredFailure(deniedThreadUpdate)).toMatchObject({ _tag: "OrchestratorMcpFailure", code: "capability_denied", }); @@ -1748,7 +1755,7 @@ describe("orchestrator MCP toolkit", () => { mode: "async", clientRequestId: "delegate-rejected-options-1", }); - expect(rejectedOptionsCall.structuredContent).toMatchObject({ + expect(declaredFailure(rejectedOptionsCall)).toMatchObject({ _tag: "OrchestratorMcpFailure", code: "invalid_request", message: expect.stringContaining("rejected options"), @@ -1769,7 +1776,7 @@ describe("orchestrator MCP toolkit", () => { mode: "async", clientRequestId: "delegate-duplicate-options-1", }); - expect(duplicateOptionsCall.structuredContent).toMatchObject({ + expect(declaredFailure(duplicateOptionsCall)).toMatchObject({ _tag: "OrchestratorMcpFailure", code: "invalid_request", message: expect.stringContaining("more than once"), diff --git a/apps/server/src/mcp/PreviewAutomationBroker.test.ts b/apps/server/src/mcp/PreviewAutomationBroker.test.ts index fe08b0875ed1..2d3bad1df2e2 100644 --- a/apps/server/src/mcp/PreviewAutomationBroker.test.ts +++ b/apps/server/src/mcp/PreviewAutomationBroker.test.ts @@ -26,8 +26,8 @@ import * as Result from "effect/Result"; import * as Scheduler from "effect/Scheduler"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import * as RpcGroup from "effect/unstable/rpc/RpcGroup"; -import * as RpcTest from "effect/unstable/rpc/RpcTest"; +import * as RpcGroup from "effect/rpc/RpcGroup"; +import * as RpcTest from "effect/rpc/RpcTest"; import { rpcScopeAuthorizationLayer } from "../auth/RpcAuthorization.ts"; import * as PreviewAutomationBroker from "./PreviewAutomationBroker.ts"; diff --git a/apps/server/src/mcp/toolkits/attachment/tools.ts b/apps/server/src/mcp/toolkits/attachment/tools.ts index f93bb06729e8..62c44c9363ab 100644 --- a/apps/server/src/mcp/toolkits/attachment/tools.ts +++ b/apps/server/src/mcp/toolkits/attachment/tools.ts @@ -12,7 +12,7 @@ import { import * as Crypto from "effect/Crypto"; import * as FileSystem from "effect/FileSystem"; import * as Schema from "effect/Schema"; -import { Tool, Toolkit } from "effect/unstable/ai"; +import { Tool, Toolkit } from "effect/ai"; import * as ServerSecretStore from "../../../auth/ServerSecretStore.ts"; import * as ServerConfig from "../../../config.ts"; import * as ThreadManagementService from "../../../orchestration-v2/ThreadManagementService.ts"; diff --git a/apps/server/src/mcp/toolkits/core.test.ts b/apps/server/src/mcp/toolkits/core.test.ts index 99834a5ce5b4..065df710c8ee 100644 --- a/apps/server/src/mcp/toolkits/core.test.ts +++ b/apps/server/src/mcp/toolkits/core.test.ts @@ -11,7 +11,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; import { McpAttachmentInput } from "./attachment/input.ts"; -import { McpSchema, McpServer, Tool } from "effect/unstable/ai"; +import { McpSchema, McpServer, Tool } from "effect/ai"; import { OrchestratorProjectionError } from "../../orchestration-v2/Orchestrator.ts"; import * as ProviderAdapterRegistry from "../../orchestration-v2/ProviderAdapterRegistry.ts"; @@ -32,6 +32,13 @@ import * as AttachmentHandlers from "./attachment/handlers.ts"; import { ThreadToolkit } from "./thread/tools.ts"; import { WorktreeToolkit } from "./worktree/tools.ts"; import { DeviceToolkit } from "./device/tools.ts"; + +// Effect returns a declared tool failure as `isError` with its encoded payload +// as JSON text, never as `structuredContent`. +const declaredFailure = (result: McpSchema.CallToolResult) => { + const text = result.content[0]; + return result.isError === true && text?.type === "text" ? JSON.parse(text.text) : undefined; +}; import { PullRequestsToolkit } from "./pullRequests/tools.ts"; import { resolveT3McpToolDefinition, @@ -118,7 +125,7 @@ it.effect("checks capability before accessing services through the production re }), Effect.provideService(McpSchema.McpServerClient, client), ); - expect(result.structuredContent).toMatchObject({ code: "capability_denied" }); + expect(declaredFailure(result)).toMatchObject({ code: "capability_denied" }); }).pipe( Effect.provide( McpHttpServer.ThreadToolkitRegistrationLive.pipe( @@ -139,7 +146,7 @@ it.effect("returns a bounded public failure without serializing storage causes", Effect.provideService(McpInvocationContext.McpInvocationContext, scope), Effect.provideService(McpSchema.McpServerClient, client), ); - expect(result.structuredContent).toEqual({ + expect(declaredFailure(result)).toEqual({ _tag: "OrchestratorMcpFailure", code: "orchestration_error", 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 ); const untargeted = yield* call("t3_thread_organize", { action: "pin" }, clientScope("auto")); - expect(untargeted.structuredContent).toMatchObject({ code: "target_required" }); + expect(declaredFailure(untargeted)).toMatchObject({ code: "target_required" }); const pinned = yield* call( "t3_thread_organize", @@ -258,7 +265,7 @@ it.effect("a client caller targets any thread within its ceiling and cannot act { action: "pin", threadId: "other-project-thread" }, clientScope("approval-required"), ); - expect(aboveCeiling.structuredContent).toMatchObject({ + expect(declaredFailure(aboveCeiling)).toMatchObject({ code: "runtime_mode_escalation_denied", }); @@ -267,7 +274,7 @@ it.effect("a client caller targets any thread within its ceiling and cannot act { sourcePoint: { type: "latest_stable" } }, clientScope("auto"), ); - expect(forked.structuredContent).toMatchObject({ code: "target_required" }); + expect(declaredFailure(forked)).toMatchObject({ code: "target_required" }); }).pipe( Effect.provide( McpHttpServer.ThreadToolkitRegistrationLive.pipe( @@ -314,7 +321,7 @@ it.effect("refuses act-as-caller tools to a client caller", () => ), Effect.provideService(McpSchema.McpServerClient, client), ); - expect(result.structuredContent).toMatchObject({ code: "thread_credential_required" }); + expect(declaredFailure(result)).toMatchObject({ code: "thread_credential_required" }); }).pipe( Effect.provide( McpHttpServer.OrchestratorToolkitRegistrationLive.pipe( @@ -344,9 +351,9 @@ it.effect("a caller cannot rewrite a scheduled task that runs above its own mode scheduledTaskId: "task-full-access", prompt: "Run something else", }); - expect(update.structuredContent).toMatchObject({ code: "runtime_mode_escalation_denied" }); + expect(declaredFailure(update)).toMatchObject({ code: "runtime_mode_escalation_denied" }); const remove = yield* call("delete_scheduled_task", { scheduledTaskId: "task-full-access" }); - expect(remove.structuredContent).toMatchObject({ code: "runtime_mode_escalation_denied" }); + expect(declaredFailure(remove)).toMatchObject({ code: "runtime_mode_escalation_denied" }); const allowed = yield* call("update_scheduled_task", { scheduledTaskId: "task-auto", enabled: false, @@ -416,7 +423,7 @@ it.effect("a caller cannot interrupt a thread that runs above its own modes", () Effect.provideService(McpInvocationContext.McpInvocationContext, clientScope("auto")), Effect.provideService(McpSchema.McpServerClient, client), ); - expect(result.structuredContent).toMatchObject({ code: "runtime_mode_escalation_denied" }); + expect(declaredFailure(result)).toMatchObject({ code: "runtime_mode_escalation_denied" }); }).pipe( Effect.provide( McpHttpServer.OrchestratorToolkitRegistrationLive.pipe( diff --git a/apps/server/src/mcp/toolkits/device/tools.ts b/apps/server/src/mcp/toolkits/device/tools.ts index c27545f86923..90e75ceb25c7 100644 --- a/apps/server/src/mcp/toolkits/device/tools.ts +++ b/apps/server/src/mcp/toolkits/device/tools.ts @@ -11,7 +11,7 @@ import * as Schema from "effect/Schema"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as ServerConfig from "../../../config.ts"; -import { Tool, Toolkit } from "effect/unstable/ai"; +import { Tool, Toolkit } from "effect/ai"; import * as McpInvocationContext from "../../McpInvocationContext.ts"; import * as DeviceService from "../../../device/DeviceService.ts"; diff --git a/apps/server/src/mcp/toolkits/environment/tools.ts b/apps/server/src/mcp/toolkits/environment/tools.ts index 76fb7ea1324d..e441174900ce 100644 --- a/apps/server/src/mcp/toolkits/environment/tools.ts +++ b/apps/server/src/mcp/toolkits/environment/tools.ts @@ -7,7 +7,7 @@ import { ServerSettingsPatch, } from "@t3tools/contracts"; import * as Schema from "effect/Schema"; -import { Tool, Toolkit } from "effect/unstable/ai"; +import { Tool, Toolkit } from "effect/ai"; import * as ServerEnvironment from "../../../environment/ServerEnvironment.ts"; import * as ThreadCommandExecutor from "../../../orchestration-v2/ThreadCommandExecutor.ts"; import * as ThreadManagementService from "../../../orchestration-v2/ThreadManagementService.ts"; diff --git a/apps/server/src/mcp/toolkits/orchestrator/tools.test.ts b/apps/server/src/mcp/toolkits/orchestrator/tools.test.ts index 572cdcbf43e9..0e5b57e6d8a1 100644 --- a/apps/server/src/mcp/toolkits/orchestrator/tools.test.ts +++ b/apps/server/src/mcp/toolkits/orchestrator/tools.test.ts @@ -1,5 +1,5 @@ import { assert, describe, it } from "@effect/vitest"; -import { Tool } from "effect/unstable/ai"; +import { Tool } from "effect/ai"; import { CreateThreadsTool, diff --git a/apps/server/src/mcp/toolkits/orchestrator/tools.ts b/apps/server/src/mcp/toolkits/orchestrator/tools.ts index 540de4e1ca06..8daa419cc131 100644 --- a/apps/server/src/mcp/toolkits/orchestrator/tools.ts +++ b/apps/server/src/mcp/toolkits/orchestrator/tools.ts @@ -28,7 +28,7 @@ import { ThreadMetadataMcpUpdateInput, ThreadMetadataMcpUpdateResult, } from "@t3tools/contracts"; -import { Tool, Toolkit } from "effect/unstable/ai"; +import { Tool, Toolkit } from "effect/ai"; import * as McpInvocationContext from "../../McpInvocationContext.ts"; import * as OrchestratorMcpService from "../../OrchestratorMcpService.ts"; diff --git a/apps/server/src/mcp/toolkits/preview/tools.test.ts b/apps/server/src/mcp/toolkits/preview/tools.test.ts index 0937fba72c60..645d7d474c04 100644 --- a/apps/server/src/mcp/toolkits/preview/tools.test.ts +++ b/apps/server/src/mcp/toolkits/preview/tools.test.ts @@ -1,5 +1,5 @@ import { expect, it } from "@effect/vitest"; -import { Tool } from "effect/unstable/ai"; +import { Tool } from "effect/ai"; import { PreviewToolkit } from "./tools.ts"; diff --git a/apps/server/src/mcp/toolkits/preview/tools.ts b/apps/server/src/mcp/toolkits/preview/tools.ts index 1c790e8b643a..95a531d75eca 100644 --- a/apps/server/src/mcp/toolkits/preview/tools.ts +++ b/apps/server/src/mcp/toolkits/preview/tools.ts @@ -21,7 +21,7 @@ import { } from "@t3tools/contracts"; import * as Schema from "effect/Schema"; import * as FileSystem from "effect/FileSystem"; -import { Tool, Toolkit } from "effect/unstable/ai"; +import { Tool, Toolkit } from "effect/ai"; import * as McpInvocationContext from "../../McpInvocationContext.ts"; import * as PreviewAutomationBroker from "../../PreviewAutomationBroker.ts"; diff --git a/apps/server/src/mcp/toolkits/previewControls/tools.ts b/apps/server/src/mcp/toolkits/previewControls/tools.ts index c9870a658584..52d476a7e1f0 100644 --- a/apps/server/src/mcp/toolkits/previewControls/tools.ts +++ b/apps/server/src/mcp/toolkits/previewControls/tools.ts @@ -6,7 +6,7 @@ import { PreviewTabId, } from "@t3tools/contracts"; import * as Schema from "effect/Schema"; -import { Tool, Toolkit } from "effect/unstable/ai"; +import { Tool, Toolkit } from "effect/ai"; import * as PreviewManager from "../../../preview/Manager.ts"; import * as McpInvocationContext from "../../McpInvocationContext.ts"; diff --git a/apps/server/src/mcp/toolkits/project/tools.ts b/apps/server/src/mcp/toolkits/project/tools.ts index e42b0012dd69..43d0a0866e4e 100644 --- a/apps/server/src/mcp/toolkits/project/tools.ts +++ b/apps/server/src/mcp/toolkits/project/tools.ts @@ -22,7 +22,7 @@ import * as ServerConfig from "../../../config.ts"; import * as ThreadLaunchService from "../../../orchestration-v2/ThreadLaunchService.ts"; import * as Crypto from "effect/Crypto"; import * as Schema from "effect/Schema"; -import { Tool, Toolkit } from "effect/unstable/ai"; +import { Tool, Toolkit } from "effect/ai"; import * as ProjectService from "../../../project/ProjectService.ts"; import * as ManagedProjectFolders from "../../../project/ManagedProjectFolders.ts"; import * as ThreadManagementService from "../../../orchestration-v2/ThreadManagementService.ts"; diff --git a/apps/server/src/mcp/toolkits/pullRequests/handlers.test.ts b/apps/server/src/mcp/toolkits/pullRequests/handlers.test.ts index 93485a41175c..3709abf67f54 100644 --- a/apps/server/src/mcp/toolkits/pullRequests/handlers.test.ts +++ b/apps/server/src/mcp/toolkits/pullRequests/handlers.test.ts @@ -14,7 +14,7 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Ref from "effect/Ref"; import * as Stream from "effect/Stream"; -import type { Tool } from "effect/unstable/ai"; +import type { Tool } from "effect/ai"; import * as Orchestrator from "../../../orchestration-v2/Orchestrator.ts"; import { diff --git a/apps/server/src/mcp/toolkits/pullRequests/tools.ts b/apps/server/src/mcp/toolkits/pullRequests/tools.ts index 6dd8f7a795a8..fa839896c88b 100644 --- a/apps/server/src/mcp/toolkits/pullRequests/tools.ts +++ b/apps/server/src/mcp/toolkits/pullRequests/tools.ts @@ -7,8 +7,8 @@ import { ThreadId, } from "@t3tools/contracts"; import * as Schema from "effect/Schema"; -import * as Tool from "effect/unstable/ai/Tool"; -import * as Toolkit from "effect/unstable/ai/Toolkit"; +import * as Tool from "effect/ai/Tool"; +import * as Toolkit from "effect/ai/Toolkit"; import * as McpInvocationContext from "../../McpInvocationContext.ts"; import * as Orchestrator from "../../../orchestration-v2/Orchestrator.ts"; diff --git a/apps/server/src/mcp/toolkits/thread/tools.ts b/apps/server/src/mcp/toolkits/thread/tools.ts index bc2188037246..0958e6f3add9 100644 --- a/apps/server/src/mcp/toolkits/thread/tools.ts +++ b/apps/server/src/mcp/toolkits/thread/tools.ts @@ -21,7 +21,7 @@ import { } from "@t3tools/contracts"; import * as Crypto from "effect/Crypto"; import * as Schema from "effect/Schema"; -import { Tool, Toolkit } from "effect/unstable/ai"; +import { Tool, Toolkit } from "effect/ai"; import * as ThreadSearch from "../../../orchestration-v2/ThreadSearch.ts"; import * as ScheduledTaskService from "../../../scheduledTasks/ScheduledTaskService.ts"; diff --git a/apps/server/src/mcp/toolkits/worktree/registration.test.ts b/apps/server/src/mcp/toolkits/worktree/registration.test.ts index c9d6955a634d..452302095eaf 100644 --- a/apps/server/src/mcp/toolkits/worktree/registration.test.ts +++ b/apps/server/src/mcp/toolkits/worktree/registration.test.ts @@ -9,7 +9,7 @@ import { ProviderInstanceId, ThreadId } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; -import { HttpBody, HttpClient, HttpRouter } from "effect/unstable/http"; +import { HttpBody, HttpClient, HttpRouter } from "effect/http"; import * as ServerEnvironment from "../../../environment/ServerEnvironment.ts"; import * as GitWorkflowService from "../../../git/GitWorkflowService.ts"; diff --git a/apps/server/src/mcp/toolkits/worktree/tools.ts b/apps/server/src/mcp/toolkits/worktree/tools.ts index 373be5d3e46d..56e227aa14b6 100644 --- a/apps/server/src/mcp/toolkits/worktree/tools.ts +++ b/apps/server/src/mcp/toolkits/worktree/tools.ts @@ -12,7 +12,7 @@ import * as Schema from "effect/Schema"; import * as GitWorkflowService from "../../../git/GitWorkflowService.ts"; import * as ProjectService from "../../../project/ProjectService.ts"; import * as ThreadManagementService from "../../../orchestration-v2/ThreadManagementService.ts"; -import { Tool, Toolkit } from "effect/unstable/ai"; +import { Tool, Toolkit } from "effect/ai"; import * as McpInvocationContext from "../../McpInvocationContext.ts"; import * as WorktreeMcpService from "../../WorktreeMcpService.ts"; diff --git a/apps/server/src/observability/Layers/Observability.ts b/apps/server/src/observability/Layers/Observability.ts index 77ebe8410a91..65e4438926d3 100644 --- a/apps/server/src/observability/Layers/Observability.ts +++ b/apps/server/src/observability/Layers/Observability.ts @@ -9,9 +9,9 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as References from "effect/References"; import * as Tracer from "effect/Tracer"; -import * as OtlpExporter from "effect/unstable/observability/OtlpExporter"; -import * as OtlpMetrics from "effect/unstable/observability/OtlpMetrics"; -import * as OtlpTracer from "effect/unstable/observability/OtlpTracer"; +import * as OtlpExporter from "effect/observability/OtlpExporter"; +import * as OtlpMetrics from "effect/observability/OtlpMetrics"; +import * as OtlpTracer from "effect/observability/OtlpTracer"; import * as ServerConfig from "../../config.ts"; import * as ResourceAttribution from "../../resourceTelemetry/ResourceAttribution.ts"; diff --git a/apps/server/src/orchestration-v2/AcpRegistryOrchestratorV2.live.test.ts b/apps/server/src/orchestration-v2/AcpRegistryOrchestratorV2.live.test.ts index b733aa19790b..017537685a32 100644 --- a/apps/server/src/orchestration-v2/AcpRegistryOrchestratorV2.live.test.ts +++ b/apps/server/src/orchestration-v2/AcpRegistryOrchestratorV2.live.test.ts @@ -16,7 +16,7 @@ import * as Console from "effect/Console"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as ResetCreditCoordinator from "../provider/Layers/resetCreditCoordinator.ts"; -import { FetchHttpClient } from "effect/unstable/http"; +import { FetchHttpClient } from "effect/http"; import { describe } from "vite-plus/test"; import * as CheckpointStore from "../checkpointing/CheckpointStore.ts"; diff --git a/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts b/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts index 031fa17c0506..b129a90a3946 100644 --- a/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts +++ b/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.test.ts @@ -49,7 +49,7 @@ import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; import * as Scope from "effect/Scope"; import * as TestClock from "effect/testing/TestClock"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as EffectAcpErrors from "effect-acp/errors"; import type * as EffectAcpProtocol from "effect-acp/protocol"; import type * as EffectAcpSchema from "effect-acp/compat"; diff --git a/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.testkit.ts b/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.testkit.ts index 1fe86add6065..cf9c20e2860a 100644 --- a/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.testkit.ts +++ b/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.testkit.ts @@ -10,7 +10,7 @@ import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; import type * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as EffectAcpErrors from "effect-acp/errors"; import * as AcpSessionRuntime from "../../provider/acp/AcpSessionRuntime.ts"; diff --git a/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.ts b/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.ts index e5ae85129e2f..6b5b1b91fb01 100644 --- a/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.ts +++ b/apps/server/src/orchestration-v2/Adapters/AcpAdapterV2.ts @@ -51,7 +51,7 @@ import * as Result from "effect/Result"; import * as Scope from "effect/Scope"; import * as Semaphore from "effect/Semaphore"; import * as Stream from "effect/Stream"; -import type { ChildProcessSpawner } from "effect/unstable/process"; +import type { ChildProcessSpawner } from "effect/process"; import * as EffectAcpErrors from "effect-acp/errors"; import type * as EffectAcpProtocol from "effect-acp/protocol"; import type * as EffectAcpSchema from "effect-acp/compat"; diff --git a/apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.test.ts b/apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.test.ts index 907d0794111a..ff19918c5291 100644 --- a/apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.test.ts +++ b/apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.test.ts @@ -10,8 +10,8 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient, HttpClientResponse } from "effect/http"; +import { ChildProcessSpawner } from "effect/process"; import * as EffectAcpErrors from "effect-acp/errors"; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.testkit.ts b/apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.testkit.ts index 113b5b10a725..45b18f1bea4f 100644 --- a/apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.testkit.ts +++ b/apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.testkit.ts @@ -7,7 +7,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as ServerConfig from "../../config.ts"; import * as IdAllocator from "../IdAllocator.ts"; diff --git a/apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.ts b/apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.ts index af9530a043ae..86df1e23322b 100644 --- a/apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.ts +++ b/apps/server/src/orchestration-v2/Adapters/AcpRegistryAdapterV2.ts @@ -18,7 +18,7 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; import type * as Scope from "effect/Scope"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as EffectAcpErrors from "effect-acp/errors"; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts b/apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts index 6f2924c86bfc..d6d16646f993 100644 --- a/apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts +++ b/apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.test.ts @@ -19,7 +19,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Stream from "effect/Stream"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import type * as EffectAcpSchema from "effect-acp/compat"; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.ts b/apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.ts index bcee0edf38c2..1ee304556cc1 100644 --- a/apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.ts +++ b/apps/server/src/orchestration-v2/Adapters/AntigravityAdapterV2.ts @@ -131,16 +131,18 @@ export function makeAntigravityAcpAdapterFlavor( const makeRuntime = (input: AcpAdapterV2RuntimeInput) => Effect.gen(function* () { // AcpAdapterV2 owns the runtime scope; sign-in and sign-out stop the - // process by closing it, and the adapter respawns on the next turn. - const scope = yield* Effect.scope; - const runtime = yield* options.withProcess( - Scope.close(scope, Exit.void), - options.makeRuntime({ - ...input, - clientFileSystem: true, - additionalDirectories: [options.serverConfig.attachmentsDir], - }), - ); + // process by closing a child of it, and the adapter respawns on the next turn. + const scope = yield* Scope.fork(yield* Effect.scope); + const runtime = yield* options + .withProcess( + Scope.close(scope, Exit.void), + options.makeRuntime({ + ...input, + clientFileSystem: true, + additionalDirectories: [options.serverConfig.attachmentsDir], + }), + ) + .pipe(Effect.provideService(Scope.Scope, scope)); return { ...runtime, start: () => diff --git a/apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts b/apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts index 9bb9ee2dce16..9675290ec181 100644 --- a/apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts +++ b/apps/server/src/orchestration-v2/Adapters/ClaudeAdapterV2.test.ts @@ -43,7 +43,7 @@ import * as Queue from "effect/Queue"; import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import { Tool } from "effect/unstable/ai"; +import { Tool } from "effect/ai"; import { formatClaudeResumeCompactionQuestion } from "@t3tools/shared/claudeCompaction"; import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; import { SpawnExecutableResolution } from "@t3tools/shared/shell"; diff --git a/apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.test.ts b/apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.test.ts index f8b635a9fa9c..d4999c753cab 100644 --- a/apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.test.ts +++ b/apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.test.ts @@ -46,7 +46,7 @@ import * as Ref from "effect/Ref"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; import { TestClock } from "effect/testing"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import packageJson from "../../../package.json" with { type: "json" }; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.ts b/apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.ts index 8dad9de3929f..704d0dfac8fc 100644 --- a/apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.ts +++ b/apps/server/src/orchestration-v2/Adapters/CodexAdapterV2.ts @@ -78,7 +78,7 @@ import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Semaphore from "effect/Semaphore"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { resolveAttachmentPath } from "../../attachmentStore.ts"; import { getCodexServiceTierOptionValue } from "../../codexModelOptions.ts"; diff --git a/apps/server/src/orchestration-v2/Adapters/GrokAdapterV2.test.ts b/apps/server/src/orchestration-v2/Adapters/GrokAdapterV2.test.ts index 281882c9eb55..ce42d796c282 100644 --- a/apps/server/src/orchestration-v2/Adapters/GrokAdapterV2.test.ts +++ b/apps/server/src/orchestration-v2/Adapters/GrokAdapterV2.test.ts @@ -19,7 +19,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as PlatformError from "effect/PlatformError"; import * as Schema from "effect/Schema"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import type * as EffectAcpSchema from "effect-acp/compat"; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/orchestration-v2/Adapters/GrokAdapterV2.testkit.ts b/apps/server/src/orchestration-v2/Adapters/GrokAdapterV2.testkit.ts index e997d21d1a4c..65b61848c30e 100644 --- a/apps/server/src/orchestration-v2/Adapters/GrokAdapterV2.testkit.ts +++ b/apps/server/src/orchestration-v2/Adapters/GrokAdapterV2.testkit.ts @@ -6,7 +6,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; import { resolveSelfInvocation } from "@t3tools/shared/nodeRuntime"; diff --git a/apps/server/src/orchestration-v2/Adapters/GrokAdapterV2.ts b/apps/server/src/orchestration-v2/Adapters/GrokAdapterV2.ts index c7f6f26d89fa..e5fc6f09caa4 100644 --- a/apps/server/src/orchestration-v2/Adapters/GrokAdapterV2.ts +++ b/apps/server/src/orchestration-v2/Adapters/GrokAdapterV2.ts @@ -20,7 +20,7 @@ import * as Path from "effect/Path"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; import type * as Scope from "effect/Scope"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as EffectAcpErrors from "effect-acp/errors"; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/orchestration-v2/Adapters/OpenCode2AdapterV2.test.ts b/apps/server/src/orchestration-v2/Adapters/OpenCode2AdapterV2.test.ts index 6df5f827fa76..1b05810c1acd 100644 --- a/apps/server/src/orchestration-v2/Adapters/OpenCode2AdapterV2.test.ts +++ b/apps/server/src/orchestration-v2/Adapters/OpenCode2AdapterV2.test.ts @@ -3218,6 +3218,8 @@ describe("OpenCode2 adapter", () => { const seen: Array = []; const ended = yield* Deferred.make(); const nextEnded = yield* Deferred.make(); + // One consumer reads every terminal; a second reader would race it for the queue. + const thirdEnded = yield* Deferred.make(); yield* runtime.events.pipe( Stream.tap((event) => Effect.gen(function* () { @@ -3225,6 +3227,7 @@ describe("OpenCode2 adapter", () => { seen.push(event.status); if (seen.length === 1) yield* Deferred.succeed(ended, undefined); if (seen.length === 2) yield* Deferred.succeed(nextEnded, undefined); + if (seen.length === 3) yield* Deferred.succeed(thirdEnded, undefined); }), ), Stream.runDrain, @@ -3256,7 +3259,7 @@ describe("OpenCode2 adapter", () => { providerTurnOrdinal: 3, attemptId: RunAttemptId.make("attempt:opencode2-adapter:3"), }); - yield* terminalOf(runtime); + yield* Deferred.await(thirdEnded); }).pipe(Effect.scoped), ); diff --git a/apps/server/src/orchestration-v2/Adapters/OpenCode2AdapterV2.testkit.ts b/apps/server/src/orchestration-v2/Adapters/OpenCode2AdapterV2.testkit.ts index 8048e24ff0d6..19b32b43c718 100644 --- a/apps/server/src/orchestration-v2/Adapters/OpenCode2AdapterV2.testkit.ts +++ b/apps/server/src/orchestration-v2/Adapters/OpenCode2AdapterV2.testkit.ts @@ -15,10 +15,10 @@ import { import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientError from "effect/unstable/http/HttpClientError"; -import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"; -import * as UrlParams from "effect/unstable/http/UrlParams"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientError from "effect/http/HttpClientError"; +import * as HttpClientResponse from "effect/http/HttpClientResponse"; +import * as UrlParams from "effect/http/UrlParams"; import * as ServerConfig from "../../config.ts"; import * as OpenCode2Client from "../../provider/opencode2/OpenCode2Client.ts"; diff --git a/apps/server/src/orchestration-v2/Adapters/PiAdapterV2.test.ts b/apps/server/src/orchestration-v2/Adapters/PiAdapterV2.test.ts index f31e0425cdbc..57682172eb2e 100644 --- a/apps/server/src/orchestration-v2/Adapters/PiAdapterV2.test.ts +++ b/apps/server/src/orchestration-v2/Adapters/PiAdapterV2.test.ts @@ -29,7 +29,7 @@ import * as Schema from "effect/Schema"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as ServerConfig from "../../config.ts"; import * as McpProviderSession from "../../mcp/McpProviderSession.ts"; diff --git a/apps/server/src/orchestration-v2/Adapters/PiAdapterV2.testkit.ts b/apps/server/src/orchestration-v2/Adapters/PiAdapterV2.testkit.ts index f8e99469b388..865f9383001e 100644 --- a/apps/server/src/orchestration-v2/Adapters/PiAdapterV2.testkit.ts +++ b/apps/server/src/orchestration-v2/Adapters/PiAdapterV2.testkit.ts @@ -28,7 +28,7 @@ import * as Queue from "effect/Queue"; import * as Schema from "effect/Schema"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as ServerConfig from "../../config.ts"; import * as IdAllocator from "../IdAllocator.ts"; diff --git a/apps/server/src/orchestration-v2/Adapters/PiAdapterV2.ts b/apps/server/src/orchestration-v2/Adapters/PiAdapterV2.ts index 80238ee56bcc..87e24f92b0e8 100644 --- a/apps/server/src/orchestration-v2/Adapters/PiAdapterV2.ts +++ b/apps/server/src/orchestration-v2/Adapters/PiAdapterV2.ts @@ -57,7 +57,7 @@ import * as Queue from "effect/Queue"; import * as Schema from "effect/Schema"; import * as Semaphore from "effect/Semaphore"; import * as Stream from "effect/Stream"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { resolveAttachmentPath } from "../../attachmentStore.ts"; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/orchestration-v2/Adapters/PiRpc.ts b/apps/server/src/orchestration-v2/Adapters/PiRpc.ts index bc6d09d6b421..5d6bab908cd2 100644 --- a/apps/server/src/orchestration-v2/Adapters/PiRpc.ts +++ b/apps/server/src/orchestration-v2/Adapters/PiRpc.ts @@ -26,7 +26,7 @@ import * as Queue from "effect/Queue"; import * as Scope from "effect/Scope"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; import { resolveSpawnCommand } from "@t3tools/shared/shell"; diff --git a/apps/server/src/orchestration-v2/CheckpointCaptureService.test.ts b/apps/server/src/orchestration-v2/CheckpointCaptureService.test.ts index d9efb6232af5..aeadcb5b7eb3 100644 --- a/apps/server/src/orchestration-v2/CheckpointCaptureService.test.ts +++ b/apps/server/src/orchestration-v2/CheckpointCaptureService.test.ts @@ -19,7 +19,7 @@ import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Ref from "effect/Ref"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts"; import * as CheckpointStore from "../checkpointing/CheckpointStore.ts"; diff --git a/apps/server/src/orchestration-v2/CheckpointService.ts b/apps/server/src/orchestration-v2/CheckpointService.ts index 1338f68328d1..10e12150c5a3 100644 --- a/apps/server/src/orchestration-v2/CheckpointService.ts +++ b/apps/server/src/orchestration-v2/CheckpointService.ts @@ -13,7 +13,7 @@ import * as NodeCrypto from "node:crypto"; import * as Context from "effect/Context"; import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import * as KeyedLock from "@t3tools/shared/KeyedLock"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; @@ -163,7 +163,7 @@ export function checkpointRefForScopeOrdinal(input: { }): CheckpointRef { const scopeKey = NodeCrypto.createHash("sha256").update(input.scopeId).digest("hex").slice(0, 32); return CheckpointRef.make( - `${CHECKPOINT_REFS_PREFIX}/${Encoding.encodeBase64Url(scopeKey)}/ordinal/${input.ordinalWithinScope}`, + `${CHECKPOINT_REFS_PREFIX}/${Base64Url.encode(scopeKey)}/ordinal/${input.ordinalWithinScope}`, ); } diff --git a/apps/server/src/orchestration-v2/CursorOrchestratorV2.live.test.ts b/apps/server/src/orchestration-v2/CursorOrchestratorV2.live.test.ts index 61e746551fe4..4710a8d95a55 100644 --- a/apps/server/src/orchestration-v2/CursorOrchestratorV2.live.test.ts +++ b/apps/server/src/orchestration-v2/CursorOrchestratorV2.live.test.ts @@ -14,7 +14,7 @@ import * as Console from "effect/Console"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as ResetCreditCoordinator from "../provider/Layers/resetCreditCoordinator.ts"; -import { FetchHttpClient } from "effect/unstable/http"; +import { FetchHttpClient } from "effect/http"; import { describe } from "vite-plus/test"; import * as CheckpointStore from "../checkpointing/CheckpointStore.ts"; diff --git a/apps/server/src/orchestration-v2/EffectOutbox.ts b/apps/server/src/orchestration-v2/EffectOutbox.ts index 9f63d8c568b6..db0ea8366a04 100644 --- a/apps/server/src/orchestration-v2/EffectOutbox.ts +++ b/apps/server/src/orchestration-v2/EffectOutbox.ts @@ -21,7 +21,7 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Queue from "effect/Queue"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export const OrchestrationEffectRequestV2 = Schema.Union([ Schema.Struct({ diff --git a/apps/server/src/orchestration-v2/EventSink.ts b/apps/server/src/orchestration-v2/EventSink.ts index 71b6f0ea994f..cb5af46f17c6 100644 --- a/apps/server/src/orchestration-v2/EventSink.ts +++ b/apps/server/src/orchestration-v2/EventSink.ts @@ -20,7 +20,7 @@ import * as PubSub from "effect/PubSub"; import * as Semaphore from "effect/Semaphore"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { replayAndBufferProjectedLiveEvents } from "./LiveStreamBudget.ts"; import type { UnsequencedProjectEvent } from "../persistence/Services/OrchestrationEventStore.ts"; diff --git a/apps/server/src/orchestration-v2/EventStore.ts b/apps/server/src/orchestration-v2/EventStore.ts index da3ccca2f267..f0c8a79bdc56 100644 --- a/apps/server/src/orchestration-v2/EventStore.ts +++ b/apps/server/src/orchestration-v2/EventStore.ts @@ -11,7 +11,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import type * as SqlClient from "effect/unstable/sql/SqlClient"; +import type * as SqlClient from "effect/sql/SqlClient"; import { OrchestrationEventStoreLive } from "../persistence/Layers/OrchestrationEventStore.ts"; import * as OrchestrationEventStore from "../persistence/Services/OrchestrationEventStore.ts"; diff --git a/apps/server/src/orchestration-v2/FoundationPersistence.test.ts b/apps/server/src/orchestration-v2/FoundationPersistence.test.ts index dc7eacc59ba5..03f4886ce171 100644 --- a/apps/server/src/orchestration-v2/FoundationPersistence.test.ts +++ b/apps/server/src/orchestration-v2/FoundationPersistence.test.ts @@ -37,8 +37,8 @@ import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; import * as Tracer from "effect/Tracer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; -import * as Statement from "effect/unstable/sql/Statement"; +import * as SqlClient from "effect/sql/SqlClient"; +import * as Statement from "effect/sql/Statement"; import { LIVE_STREAM_MAX_ITEMS, LiveStreamBufferError } from "./LiveStreamBudget.ts"; import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts"; diff --git a/apps/server/src/orchestration-v2/GrokOrchestratorV2.live.test.ts b/apps/server/src/orchestration-v2/GrokOrchestratorV2.live.test.ts index d1c7e20bd49c..248b5da378bf 100644 --- a/apps/server/src/orchestration-v2/GrokOrchestratorV2.live.test.ts +++ b/apps/server/src/orchestration-v2/GrokOrchestratorV2.live.test.ts @@ -14,7 +14,7 @@ import * as Console from "effect/Console"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as ResetCreditCoordinator from "../provider/Layers/resetCreditCoordinator.ts"; -import { FetchHttpClient } from "effect/unstable/http"; +import { FetchHttpClient } from "effect/http"; import { describe } from "vite-plus/test"; import * as CheckpointStore from "../checkpointing/CheckpointStore.ts"; diff --git a/apps/server/src/orchestration-v2/OpenCode2OrchestratorV2.live.test.ts b/apps/server/src/orchestration-v2/OpenCode2OrchestratorV2.live.test.ts index 835a9d19bf8b..c619253d9c0f 100644 --- a/apps/server/src/orchestration-v2/OpenCode2OrchestratorV2.live.test.ts +++ b/apps/server/src/orchestration-v2/OpenCode2OrchestratorV2.live.test.ts @@ -39,8 +39,8 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { FetchHttpClient, HttpClient } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { FetchHttpClient, HttpClient } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { describe } from "vite-plus/test"; import * as ResetCreditCoordinator from "../provider/Layers/resetCreditCoordinator.ts"; diff --git a/apps/server/src/orchestration-v2/Orchestrator.control-reads.test.ts b/apps/server/src/orchestration-v2/Orchestrator.control-reads.test.ts index 1a02b71982fe..e8431a8ae3f0 100644 --- a/apps/server/src/orchestration-v2/Orchestrator.control-reads.test.ts +++ b/apps/server/src/orchestration-v2/Orchestrator.control-reads.test.ts @@ -20,7 +20,7 @@ import { import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts"; import { CodexProviderCapabilitiesV2 } from "./Adapters/CodexAdapterV2.ts"; import * as Orchestrator from "./Orchestrator.ts"; diff --git a/apps/server/src/orchestration-v2/ProjectSettingsUpgrade.integration.test.ts b/apps/server/src/orchestration-v2/ProjectSettingsUpgrade.integration.test.ts index b056b27b1282..883151f60b38 100644 --- a/apps/server/src/orchestration-v2/ProjectSettingsUpgrade.integration.test.ts +++ b/apps/server/src/orchestration-v2/ProjectSettingsUpgrade.integration.test.ts @@ -7,7 +7,7 @@ import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as CheckpointStore from "../checkpointing/CheckpointStore.ts"; import * as ServerConfig from "../config.ts"; diff --git a/apps/server/src/orchestration-v2/ProjectStore.test.ts b/apps/server/src/orchestration-v2/ProjectStore.test.ts index 97003a92b5e2..96079ff62f83 100644 --- a/apps/server/src/orchestration-v2/ProjectStore.test.ts +++ b/apps/server/src/orchestration-v2/ProjectStore.test.ts @@ -3,7 +3,7 @@ import { EventId, ProjectId, ProviderInstanceId } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts"; import * as ProjectStore from "./ProjectStore.ts"; diff --git a/apps/server/src/orchestration-v2/ProjectStore.ts b/apps/server/src/orchestration-v2/ProjectStore.ts index ba4cdd2aaeff..e7bbecbb09be 100644 --- a/apps/server/src/orchestration-v2/ProjectStore.ts +++ b/apps/server/src/orchestration-v2/ProjectStore.ts @@ -13,8 +13,8 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; -import * as SqlSchema from "effect/unstable/sql/SqlSchema"; +import * as SqlClient from "effect/sql/SqlClient"; +import * as SqlSchema from "effect/sql/SqlSchema"; export class ProjectStoreV2Error extends Schema.TaggedError()( "ProjectStoreV2Error", diff --git a/apps/server/src/orchestration-v2/ProjectionControlReads.test.ts b/apps/server/src/orchestration-v2/ProjectionControlReads.test.ts index 4889a48b3d83..55443dbb6a3e 100644 --- a/apps/server/src/orchestration-v2/ProjectionControlReads.test.ts +++ b/apps/server/src/orchestration-v2/ProjectionControlReads.test.ts @@ -19,7 +19,7 @@ import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts"; import * as ProjectionStore from "./ProjectionStore.ts"; import * as ProviderSessionManager from "./ProviderSessionManager.ts"; diff --git a/apps/server/src/orchestration-v2/ProjectionMaintenance.ts b/apps/server/src/orchestration-v2/ProjectionMaintenance.ts index e2386bb26930..8c10de314202 100644 --- a/apps/server/src/orchestration-v2/ProjectionMaintenance.ts +++ b/apps/server/src/orchestration-v2/ProjectionMaintenance.ts @@ -5,7 +5,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as EventStore from "./EventStore.ts"; import * as ProjectionStore from "./ProjectionStore.ts"; diff --git a/apps/server/src/orchestration-v2/ProjectionRecovery.test.ts b/apps/server/src/orchestration-v2/ProjectionRecovery.test.ts index 617655e38fb1..8557a9435c03 100644 --- a/apps/server/src/orchestration-v2/ProjectionRecovery.test.ts +++ b/apps/server/src/orchestration-v2/ProjectionRecovery.test.ts @@ -20,7 +20,7 @@ import { import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts"; import { CodexProviderCapabilitiesV2 } from "./Adapters/CodexAdapterV2.ts"; diff --git a/apps/server/src/orchestration-v2/ProjectionSettlement.test.ts b/apps/server/src/orchestration-v2/ProjectionSettlement.test.ts index 4028b4986e88..2a76341b42e1 100644 --- a/apps/server/src/orchestration-v2/ProjectionSettlement.test.ts +++ b/apps/server/src/orchestration-v2/ProjectionSettlement.test.ts @@ -18,8 +18,8 @@ import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; -import * as Statement from "effect/unstable/sql/Statement"; +import * as SqlClient from "effect/sql/SqlClient"; +import * as Statement from "effect/sql/Statement"; import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts"; import * as ProjectionStore from "./ProjectionStore.ts"; diff --git a/apps/server/src/orchestration-v2/ProjectionStore.test.ts b/apps/server/src/orchestration-v2/ProjectionStore.test.ts index 3bb7617eef0f..c4581497768b 100644 --- a/apps/server/src/orchestration-v2/ProjectionStore.test.ts +++ b/apps/server/src/orchestration-v2/ProjectionStore.test.ts @@ -25,7 +25,7 @@ import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { projectThreadAwarenessV2 } from "@t3tools/shared/agentAwareness"; import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts"; diff --git a/apps/server/src/orchestration-v2/ProjectionStore.ts b/apps/server/src/orchestration-v2/ProjectionStore.ts index a6be3079946f..70abf77de7cd 100644 --- a/apps/server/src/orchestration-v2/ProjectionStore.ts +++ b/apps/server/src/orchestration-v2/ProjectionStore.ts @@ -67,8 +67,8 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Ref from "effect/Ref"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; -import type * as Statement from "effect/unstable/sql/Statement"; +import * as SqlClient from "effect/sql/SqlClient"; +import type * as Statement from "effect/sql/Statement"; import { isThreadHistoryUserTurn, diff --git a/apps/server/src/orchestration-v2/ProviderRuntimeRecoveryPerformance.test.ts b/apps/server/src/orchestration-v2/ProviderRuntimeRecoveryPerformance.test.ts index b000351508aa..1db376ca3c8f 100644 --- a/apps/server/src/orchestration-v2/ProviderRuntimeRecoveryPerformance.test.ts +++ b/apps/server/src/orchestration-v2/ProviderRuntimeRecoveryPerformance.test.ts @@ -23,7 +23,7 @@ import * as Console from "effect/Console"; import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts"; import * as ServerSettings from "../serverSettings.ts"; diff --git a/apps/server/src/orchestration-v2/ProviderSessionManager.test.ts b/apps/server/src/orchestration-v2/ProviderSessionManager.test.ts index 0d44bac4c054..527b95f4a3fb 100644 --- a/apps/server/src/orchestration-v2/ProviderSessionManager.test.ts +++ b/apps/server/src/orchestration-v2/ProviderSessionManager.test.ts @@ -1,4 +1,4 @@ -import * as NetAddress from "effect/unstable/net/NetAddress"; +import * as NetAddress from "effect/net/NetAddress"; import * as NodeServices from "@effect/platform-node/NodeServices"; import { assert, it } from "@effect/vitest"; import { @@ -29,7 +29,7 @@ import * as Queue from "effect/Queue"; import * as Ref from "effect/Ref"; import * as Stream from "effect/Stream"; import { TestClock } from "effect/testing"; -import { HttpServer } from "effect/unstable/http"; +import { HttpServer } from "effect/http"; import { ProviderWorkspaceMissingError } from "../provider/Errors.ts"; import * as ServerEnvironment from "../environment/ServerEnvironment.ts"; diff --git a/apps/server/src/orchestration-v2/RunCompletionReads.test.ts b/apps/server/src/orchestration-v2/RunCompletionReads.test.ts index 89d5cd3e1291..d8054be9a586 100644 --- a/apps/server/src/orchestration-v2/RunCompletionReads.test.ts +++ b/apps/server/src/orchestration-v2/RunCompletionReads.test.ts @@ -12,7 +12,7 @@ import { import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts"; import * as ProjectionStore from "./ProjectionStore.ts"; diff --git a/apps/server/src/orchestration-v2/ThreadSearch.test.ts b/apps/server/src/orchestration-v2/ThreadSearch.test.ts index d84f572e837f..144ff0623da7 100644 --- a/apps/server/src/orchestration-v2/ThreadSearch.test.ts +++ b/apps/server/src/orchestration-v2/ThreadSearch.test.ts @@ -10,7 +10,7 @@ import { import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts"; import * as ProjectionStore from "./ProjectionStore.ts"; diff --git a/apps/server/src/orchestration-v2/ThreadSearch.ts b/apps/server/src/orchestration-v2/ThreadSearch.ts index 4b0eef0df6f5..855556dd3d19 100644 --- a/apps/server/src/orchestration-v2/ThreadSearch.ts +++ b/apps/server/src/orchestration-v2/ThreadSearch.ts @@ -10,8 +10,8 @@ import * as Context from "effect/Context"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; -import * as SqlSchema from "effect/unstable/sql/SqlSchema"; +import * as SqlClient from "effect/sql/SqlClient"; +import * as SqlSchema from "effect/sql/SqlSchema"; /** Carries no query text: search input is user content. */ export class ThreadSearchError extends Schema.TaggedError()( diff --git a/apps/server/src/orchestration-v2/ThreadTransportPerformance.test.ts b/apps/server/src/orchestration-v2/ThreadTransportPerformance.test.ts index 8f5037dfcfd5..60ff0008d365 100644 --- a/apps/server/src/orchestration-v2/ThreadTransportPerformance.test.ts +++ b/apps/server/src/orchestration-v2/ThreadTransportPerformance.test.ts @@ -13,7 +13,7 @@ import { } from "@t3tools/contracts"; import * as DateTime from "effect/DateTime"; import * as Schema from "effect/Schema"; -import type * as RpcMessage from "effect/unstable/rpc/RpcMessage"; +import type * as RpcMessage from "effect/rpc/RpcMessage"; import { describe, expect, it } from "vite-plus/test"; import { buildBoundedThreadStreamSnapshot } from "./ThreadStream.ts"; diff --git a/apps/server/src/orchestration-v2/TurnItemPositionStore.ts b/apps/server/src/orchestration-v2/TurnItemPositionStore.ts index 1147a85d60e8..016fe4f84017 100644 --- a/apps/server/src/orchestration-v2/TurnItemPositionStore.ts +++ b/apps/server/src/orchestration-v2/TurnItemPositionStore.ts @@ -3,7 +3,7 @@ import * as Context from "effect/Context"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export class TurnItemPositionStoreError extends Schema.TaggedError()( "TurnItemPositionStoreError", diff --git a/apps/server/src/orchestration-v2/TurnStartReads.test.ts b/apps/server/src/orchestration-v2/TurnStartReads.test.ts index 7c24750e7ed6..5bdd45119d86 100644 --- a/apps/server/src/orchestration-v2/TurnStartReads.test.ts +++ b/apps/server/src/orchestration-v2/TurnStartReads.test.ts @@ -15,7 +15,7 @@ import { import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts"; import * as ProjectionStore from "./ProjectionStore.ts"; diff --git a/apps/server/src/orchestration-v2/http.ts b/apps/server/src/orchestration-v2/http.ts index 572f651cad4a..f7205ded5546 100644 --- a/apps/server/src/orchestration-v2/http.ts +++ b/apps/server/src/orchestration-v2/http.ts @@ -7,8 +7,8 @@ import { } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Predicate from "effect/Predicate"; -import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder"; +import * as SqlClient from "effect/sql/SqlClient"; import { annotateEnvironmentRequest, diff --git a/apps/server/src/orchestration-v2/legacy/LegacyV1Cutover.integration.test.ts b/apps/server/src/orchestration-v2/legacy/LegacyV1Cutover.integration.test.ts index 7ce2e1fe2542..37629fda7e82 100644 --- a/apps/server/src/orchestration-v2/legacy/LegacyV1Cutover.integration.test.ts +++ b/apps/server/src/orchestration-v2/legacy/LegacyV1Cutover.integration.test.ts @@ -24,7 +24,7 @@ import * as PubSub from "effect/PubSub"; import * as References from "effect/References"; import * as Ref from "effect/Ref"; import * as Stream from "effect/Stream"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../../persistence/Migrations.ts"; import { makeSqlitePersistenceLive } from "../../persistence/Layers/Sqlite.ts"; diff --git a/apps/server/src/orchestration-v2/legacy/LegacyV1ThreadImporter.test.ts b/apps/server/src/orchestration-v2/legacy/LegacyV1ThreadImporter.test.ts index d07a3f5b6ef3..07c02dcaf80d 100644 --- a/apps/server/src/orchestration-v2/legacy/LegacyV1ThreadImporter.test.ts +++ b/apps/server/src/orchestration-v2/legacy/LegacyV1ThreadImporter.test.ts @@ -4,7 +4,7 @@ import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Tracer from "effect/Tracer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { SqlitePersistenceMemory } from "../../persistence/Layers/Sqlite.ts"; import { listLinkedPullRequestThreads } from "../../pullRequest/linkedThreads.ts"; diff --git a/apps/server/src/orchestration-v2/legacy/LegacyV1ThreadImporter.ts b/apps/server/src/orchestration-v2/legacy/LegacyV1ThreadImporter.ts index 9a87bec48bbb..86fcff68b7da 100644 --- a/apps/server/src/orchestration-v2/legacy/LegacyV1ThreadImporter.ts +++ b/apps/server/src/orchestration-v2/legacy/LegacyV1ThreadImporter.ts @@ -28,7 +28,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as EventSink from "../EventSink.ts"; import { randomUuidV4 } from "../RandomUuid.ts"; diff --git a/apps/server/src/orchestration-v2/runtimeLayer.test.ts b/apps/server/src/orchestration-v2/runtimeLayer.test.ts index a9f68a75b7d4..ac49f0945448 100644 --- a/apps/server/src/orchestration-v2/runtimeLayer.test.ts +++ b/apps/server/src/orchestration-v2/runtimeLayer.test.ts @@ -37,7 +37,7 @@ import * as Option from "effect/Option"; import * as Queue from "effect/Queue"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as CheckpointStore from "../checkpointing/CheckpointStore.ts"; import * as GitWorkflow from "../git/GitWorkflowService.ts"; diff --git a/apps/server/src/orchestration-v2/testkit/ProviderReplayHarness.ts b/apps/server/src/orchestration-v2/testkit/ProviderReplayHarness.ts index 053825ad6962..b56fed5408cd 100644 --- a/apps/server/src/orchestration-v2/testkit/ProviderReplayHarness.ts +++ b/apps/server/src/orchestration-v2/testkit/ProviderReplayHarness.ts @@ -7,9 +7,9 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as PlatformError from "effect/PlatformError"; -import type * as SqlClient from "effect/unstable/sql/SqlClient"; -import type { MigrationError } from "effect/unstable/sql/Migrator"; -import type { SqlError } from "effect/unstable/sql/SqlError"; +import type * as SqlClient from "effect/sql/SqlClient"; +import type { MigrationError } from "effect/sql/Migrator"; +import type { SqlError } from "effect/sql/SqlError"; import * as CheckpointStore from "../../checkpointing/CheckpointStore.ts"; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/orchestration-v2/testkit/ProviderSwitch.integration.test.ts b/apps/server/src/orchestration-v2/testkit/ProviderSwitch.integration.test.ts index 98ee5d6c8537..eef3a9420d16 100644 --- a/apps/server/src/orchestration-v2/testkit/ProviderSwitch.integration.test.ts +++ b/apps/server/src/orchestration-v2/testkit/ProviderSwitch.integration.test.ts @@ -30,7 +30,7 @@ import * as PubSub from "effect/PubSub"; import * as Ref from "effect/Ref"; import * as Stream from "effect/Stream"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { SqlitePersistenceMemory } from "../../persistence/Layers/Sqlite.ts"; import { CommandPolicyCapabilityUnsupportedError } from "../CommandPolicy.ts"; diff --git a/apps/server/src/orchestration-v2/testkit/ReplayFixtureWorkspace.ts b/apps/server/src/orchestration-v2/testkit/ReplayFixtureWorkspace.ts index 0b088e0d009e..1239d5bfbd9e 100644 --- a/apps/server/src/orchestration-v2/testkit/ReplayFixtureWorkspace.ts +++ b/apps/server/src/orchestration-v2/testkit/ReplayFixtureWorkspace.ts @@ -4,7 +4,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as PlatformError from "effect/PlatformError"; import * as Schema from "effect/Schema"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; class ReplayFixtureGitCommandError extends Schema.TaggedError()( "ReplayFixtureGitCommandError", diff --git a/apps/server/src/orchestration-v2/testkit/ThreadFork.integration.test.ts b/apps/server/src/orchestration-v2/testkit/ThreadFork.integration.test.ts index a2e2c87c3220..a40cb9f5d863 100644 --- a/apps/server/src/orchestration-v2/testkit/ThreadFork.integration.test.ts +++ b/apps/server/src/orchestration-v2/testkit/ThreadFork.integration.test.ts @@ -14,7 +14,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as PlatformError from "effect/PlatformError"; import * as Schema from "effect/Schema"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { ClaudeOrchestratorReplayHarness } from "../Adapters/ClaudeAdapterV2.testkit.ts"; import { CodexOrchestratorReplayHarness } from "../Adapters/CodexAdapterV2.testkit.ts"; diff --git a/apps/server/src/persistence/AuthPairingLinks.ts b/apps/server/src/persistence/AuthPairingLinks.ts index 7ad1d95ed7bc..f1082a1fa373 100644 --- a/apps/server/src/persistence/AuthPairingLinks.ts +++ b/apps/server/src/persistence/AuthPairingLinks.ts @@ -3,8 +3,8 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; -import * as SqlSchema from "effect/unstable/sql/SqlSchema"; +import * as SqlClient from "effect/sql/SqlClient"; +import * as SqlSchema from "effect/sql/SqlSchema"; import { AuthEnvironmentScopes } from "@t3tools/contracts"; diff --git a/apps/server/src/persistence/AuthSessions.ts b/apps/server/src/persistence/AuthSessions.ts index bbc8fc75685a..995a21acb225 100644 --- a/apps/server/src/persistence/AuthSessions.ts +++ b/apps/server/src/persistence/AuthSessions.ts @@ -3,8 +3,8 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; -import * as SqlSchema from "effect/unstable/sql/SqlSchema"; +import * as SqlClient from "effect/sql/SqlClient"; +import * as SqlSchema from "effect/sql/SqlSchema"; import { AuthClientMetadataDeviceType, diff --git a/apps/server/src/persistence/Errors.test.ts b/apps/server/src/persistence/Errors.test.ts index 5b9d37b3a655..2e8907d199bd 100644 --- a/apps/server/src/persistence/Errors.test.ts +++ b/apps/server/src/persistence/Errors.test.ts @@ -2,7 +2,7 @@ import { assert, it } from "@effect/vitest"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { PersistenceDecodeError, PersistenceSqlError, toPersistenceSqlError } from "./Errors.ts"; diff --git a/apps/server/src/persistence/Layers/OrchestrationCommandReceipts.ts b/apps/server/src/persistence/Layers/OrchestrationCommandReceipts.ts index 4302b9004f94..54176cd586bf 100644 --- a/apps/server/src/persistence/Layers/OrchestrationCommandReceipts.ts +++ b/apps/server/src/persistence/Layers/OrchestrationCommandReceipts.ts @@ -1,5 +1,5 @@ -import * as SqlClient from "effect/unstable/sql/SqlClient"; -import * as SqlSchema from "effect/unstable/sql/SqlSchema"; +import * as SqlClient from "effect/sql/SqlClient"; +import * as SqlSchema from "effect/sql/SqlSchema"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; diff --git a/apps/server/src/persistence/Layers/OrchestrationEventStore.sequence.test.ts b/apps/server/src/persistence/Layers/OrchestrationEventStore.sequence.test.ts index c5d630610b8c..eb3b3c28ccce 100644 --- a/apps/server/src/persistence/Layers/OrchestrationEventStore.sequence.test.ts +++ b/apps/server/src/persistence/Layers/OrchestrationEventStore.sequence.test.ts @@ -6,7 +6,7 @@ import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; import * as Tracer from "effect/Tracer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Layers/OrchestrationEventStore.test.ts b/apps/server/src/persistence/Layers/OrchestrationEventStore.test.ts index fc43700b06a4..7cf5bc6af204 100644 --- a/apps/server/src/persistence/Layers/OrchestrationEventStore.test.ts +++ b/apps/server/src/persistence/Layers/OrchestrationEventStore.test.ts @@ -17,8 +17,8 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; -import * as Statement from "effect/unstable/sql/Statement"; +import * as SqlClient from "effect/sql/SqlClient"; +import * as Statement from "effect/sql/Statement"; import { LIVE_STREAM_MAX_ITEMS, diff --git a/apps/server/src/persistence/Layers/OrchestrationEventStore.ts b/apps/server/src/persistence/Layers/OrchestrationEventStore.ts index 26eca3c7d855..610b031ad92f 100644 --- a/apps/server/src/persistence/Layers/OrchestrationEventStore.ts +++ b/apps/server/src/persistence/Layers/OrchestrationEventStore.ts @@ -13,8 +13,8 @@ import { ThreadId, type OrchestrationV2DomainEvent, } from "@t3tools/contracts"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; -import * as SqlSchema from "effect/unstable/sql/SqlSchema"; +import * as SqlClient from "effect/sql/SqlClient"; +import * as SqlSchema from "effect/sql/SqlSchema"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as PubSub from "effect/PubSub"; diff --git a/apps/server/src/persistence/Layers/Sqlite.test.ts b/apps/server/src/persistence/Layers/Sqlite.test.ts index 5bcbd35e918c..0798456467f2 100644 --- a/apps/server/src/persistence/Layers/Sqlite.test.ts +++ b/apps/server/src/persistence/Layers/Sqlite.test.ts @@ -8,7 +8,7 @@ import * as NodeServices from "@effect/platform-node/NodeServices"; import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { SqlitePersistenceMemory, diff --git a/apps/server/src/persistence/Layers/Sqlite.ts b/apps/server/src/persistence/Layers/Sqlite.ts index 68e700dc23e3..39c530989dea 100644 --- a/apps/server/src/persistence/Layers/Sqlite.ts +++ b/apps/server/src/persistence/Layers/Sqlite.ts @@ -2,7 +2,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; import { runMigrations } from "../Migrations.ts"; diff --git a/apps/server/src/persistence/Migrations.ts b/apps/server/src/persistence/Migrations.ts index fbc588af10a1..561aca8bb5ef 100644 --- a/apps/server/src/persistence/Migrations.ts +++ b/apps/server/src/persistence/Migrations.ts @@ -8,9 +8,9 @@ * schema is always up to date before the application starts. */ -import * as Migrator from "effect/unstable/sql/Migrator"; +import * as Migrator from "effect/sql/Migrator"; import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { reconcileV2PreviewMigration } from "./reconcileV2PreviewMigration.ts"; // Import all migrations statically diff --git a/apps/server/src/persistence/Migrations/001_OrchestrationEvents.ts b/apps/server/src/persistence/Migrations/001_OrchestrationEvents.ts index b8e0cd43fa01..b547dc1bc627 100644 --- a/apps/server/src/persistence/Migrations/001_OrchestrationEvents.ts +++ b/apps/server/src/persistence/Migrations/001_OrchestrationEvents.ts @@ -1,4 +1,4 @@ -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as Effect from "effect/Effect"; export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/002_OrchestrationCommandReceipts.ts b/apps/server/src/persistence/Migrations/002_OrchestrationCommandReceipts.ts index a81f309fbf90..4e545d5e6606 100644 --- a/apps/server/src/persistence/Migrations/002_OrchestrationCommandReceipts.ts +++ b/apps/server/src/persistence/Migrations/002_OrchestrationCommandReceipts.ts @@ -1,4 +1,4 @@ -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as Effect from "effect/Effect"; export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/003_CheckpointDiffBlobs.ts b/apps/server/src/persistence/Migrations/003_CheckpointDiffBlobs.ts index 2a5d32a027ee..0f9078a3f682 100644 --- a/apps/server/src/persistence/Migrations/003_CheckpointDiffBlobs.ts +++ b/apps/server/src/persistence/Migrations/003_CheckpointDiffBlobs.ts @@ -1,4 +1,4 @@ -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as Effect from "effect/Effect"; export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/004_ProviderSessionRuntime.ts b/apps/server/src/persistence/Migrations/004_ProviderSessionRuntime.ts index f468ad49cf93..9aebc2a4e71b 100644 --- a/apps/server/src/persistence/Migrations/004_ProviderSessionRuntime.ts +++ b/apps/server/src/persistence/Migrations/004_ProviderSessionRuntime.ts @@ -1,4 +1,4 @@ -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as Effect from "effect/Effect"; export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/005_Projections.ts b/apps/server/src/persistence/Migrations/005_Projections.ts index c950da76a18e..7c27ba44a496 100644 --- a/apps/server/src/persistence/Migrations/005_Projections.ts +++ b/apps/server/src/persistence/Migrations/005_Projections.ts @@ -1,4 +1,4 @@ -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as Effect from "effect/Effect"; export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/006_ProjectionThreadSessionRuntimeModeColumns.ts b/apps/server/src/persistence/Migrations/006_ProjectionThreadSessionRuntimeModeColumns.ts index a988a509766f..9198198872da 100644 --- a/apps/server/src/persistence/Migrations/006_ProjectionThreadSessionRuntimeModeColumns.ts +++ b/apps/server/src/persistence/Migrations/006_ProjectionThreadSessionRuntimeModeColumns.ts @@ -1,4 +1,4 @@ -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as Effect from "effect/Effect"; const DEFAULT_RUNTIME_MODE = "full-access"; diff --git a/apps/server/src/persistence/Migrations/007_ProjectionThreadMessageAttachments.ts b/apps/server/src/persistence/Migrations/007_ProjectionThreadMessageAttachments.ts index d2cbe5b2b041..679259bfdf72 100644 --- a/apps/server/src/persistence/Migrations/007_ProjectionThreadMessageAttachments.ts +++ b/apps/server/src/persistence/Migrations/007_ProjectionThreadMessageAttachments.ts @@ -1,4 +1,4 @@ -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as Effect from "effect/Effect"; export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/008_ProjectionThreadActivitySequence.ts b/apps/server/src/persistence/Migrations/008_ProjectionThreadActivitySequence.ts index 6000f0c62cb4..299a7fb82f08 100644 --- a/apps/server/src/persistence/Migrations/008_ProjectionThreadActivitySequence.ts +++ b/apps/server/src/persistence/Migrations/008_ProjectionThreadActivitySequence.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/009_ProviderSessionRuntimeMode.ts b/apps/server/src/persistence/Migrations/009_ProviderSessionRuntimeMode.ts index 50b556d39afe..82aa5df871b8 100644 --- a/apps/server/src/persistence/Migrations/009_ProviderSessionRuntimeMode.ts +++ b/apps/server/src/persistence/Migrations/009_ProviderSessionRuntimeMode.ts @@ -1,4 +1,4 @@ -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as Effect from "effect/Effect"; export default Effect.asVoid(SqlClient.SqlClient); diff --git a/apps/server/src/persistence/Migrations/010_ProjectionThreadsRuntimeMode.ts b/apps/server/src/persistence/Migrations/010_ProjectionThreadsRuntimeMode.ts index 93d1f0a8ec73..a0c2c72f1f84 100644 --- a/apps/server/src/persistence/Migrations/010_ProjectionThreadsRuntimeMode.ts +++ b/apps/server/src/persistence/Migrations/010_ProjectionThreadsRuntimeMode.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/011_OrchestrationThreadCreatedRuntimeMode.ts b/apps/server/src/persistence/Migrations/011_OrchestrationThreadCreatedRuntimeMode.ts index a1021a4da93b..8387e32f52c2 100644 --- a/apps/server/src/persistence/Migrations/011_OrchestrationThreadCreatedRuntimeMode.ts +++ b/apps/server/src/persistence/Migrations/011_OrchestrationThreadCreatedRuntimeMode.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/012_ProjectionThreadsInteractionMode.ts b/apps/server/src/persistence/Migrations/012_ProjectionThreadsInteractionMode.ts index 60695ac6cc74..1a49be029b96 100644 --- a/apps/server/src/persistence/Migrations/012_ProjectionThreadsInteractionMode.ts +++ b/apps/server/src/persistence/Migrations/012_ProjectionThreadsInteractionMode.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/013_ProjectionThreadProposedPlans.ts b/apps/server/src/persistence/Migrations/013_ProjectionThreadProposedPlans.ts index 2af642c838a3..53e25d44b699 100644 --- a/apps/server/src/persistence/Migrations/013_ProjectionThreadProposedPlans.ts +++ b/apps/server/src/persistence/Migrations/013_ProjectionThreadProposedPlans.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/014_ProjectionThreadProposedPlanImplementation.ts b/apps/server/src/persistence/Migrations/014_ProjectionThreadProposedPlanImplementation.ts index c7a82bfb3393..15869b613cbd 100644 --- a/apps/server/src/persistence/Migrations/014_ProjectionThreadProposedPlanImplementation.ts +++ b/apps/server/src/persistence/Migrations/014_ProjectionThreadProposedPlanImplementation.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/015_ProjectionTurnsSourceProposedPlan.ts b/apps/server/src/persistence/Migrations/015_ProjectionTurnsSourceProposedPlan.ts index 57a26618799e..5c9a39d0c56f 100644 --- a/apps/server/src/persistence/Migrations/015_ProjectionTurnsSourceProposedPlan.ts +++ b/apps/server/src/persistence/Migrations/015_ProjectionTurnsSourceProposedPlan.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/016_CanonicalizeModelSelections.test.ts b/apps/server/src/persistence/Migrations/016_CanonicalizeModelSelections.test.ts index ca32b1bddd41..78624fa13709 100644 --- a/apps/server/src/persistence/Migrations/016_CanonicalizeModelSelections.test.ts +++ b/apps/server/src/persistence/Migrations/016_CanonicalizeModelSelections.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/016_CanonicalizeModelSelections.ts b/apps/server/src/persistence/Migrations/016_CanonicalizeModelSelections.ts index 68d7baf83fa2..c1fd390eed77 100644 --- a/apps/server/src/persistence/Migrations/016_CanonicalizeModelSelections.ts +++ b/apps/server/src/persistence/Migrations/016_CanonicalizeModelSelections.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/017_ProjectionThreadsArchivedAt.ts b/apps/server/src/persistence/Migrations/017_ProjectionThreadsArchivedAt.ts index 35d05f189bf4..e1c725ec5ecc 100644 --- a/apps/server/src/persistence/Migrations/017_ProjectionThreadsArchivedAt.ts +++ b/apps/server/src/persistence/Migrations/017_ProjectionThreadsArchivedAt.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/018_ProjectionThreadsArchivedAtIndex.ts b/apps/server/src/persistence/Migrations/018_ProjectionThreadsArchivedAtIndex.ts index b12ab1bcfbd1..da13b1b4fdd3 100644 --- a/apps/server/src/persistence/Migrations/018_ProjectionThreadsArchivedAtIndex.ts +++ b/apps/server/src/persistence/Migrations/018_ProjectionThreadsArchivedAtIndex.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/019_ProjectionSnapshotLookupIndexes.test.ts b/apps/server/src/persistence/Migrations/019_ProjectionSnapshotLookupIndexes.test.ts index 248c74b43b34..84f69deb273f 100644 --- a/apps/server/src/persistence/Migrations/019_ProjectionSnapshotLookupIndexes.test.ts +++ b/apps/server/src/persistence/Migrations/019_ProjectionSnapshotLookupIndexes.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/019_ProjectionSnapshotLookupIndexes.ts b/apps/server/src/persistence/Migrations/019_ProjectionSnapshotLookupIndexes.ts index bf74a5147d72..27e74082a9c6 100644 --- a/apps/server/src/persistence/Migrations/019_ProjectionSnapshotLookupIndexes.ts +++ b/apps/server/src/persistence/Migrations/019_ProjectionSnapshotLookupIndexes.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/020_AuthAccessManagement.ts b/apps/server/src/persistence/Migrations/020_AuthAccessManagement.ts index 1be7fa80ff0a..1b7b9a6aa7e1 100644 --- a/apps/server/src/persistence/Migrations/020_AuthAccessManagement.ts +++ b/apps/server/src/persistence/Migrations/020_AuthAccessManagement.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/021_AuthSessionClientMetadata.ts b/apps/server/src/persistence/Migrations/021_AuthSessionClientMetadata.ts index 3b387fdcfd26..1426208f23ab 100644 --- a/apps/server/src/persistence/Migrations/021_AuthSessionClientMetadata.ts +++ b/apps/server/src/persistence/Migrations/021_AuthSessionClientMetadata.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/022_AuthSessionLastConnectedAt.ts b/apps/server/src/persistence/Migrations/022_AuthSessionLastConnectedAt.ts index e806a073a550..9394f2e539b8 100644 --- a/apps/server/src/persistence/Migrations/022_AuthSessionLastConnectedAt.ts +++ b/apps/server/src/persistence/Migrations/022_AuthSessionLastConnectedAt.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/023_ProjectionThreadShellSummary.ts b/apps/server/src/persistence/Migrations/023_ProjectionThreadShellSummary.ts index 759f87e8ad75..3a550e943761 100644 --- a/apps/server/src/persistence/Migrations/023_ProjectionThreadShellSummary.ts +++ b/apps/server/src/persistence/Migrations/023_ProjectionThreadShellSummary.ts @@ -1,4 +1,4 @@ -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as Effect from "effect/Effect"; export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/024_BackfillProjectionThreadShellSummary.test.ts b/apps/server/src/persistence/Migrations/024_BackfillProjectionThreadShellSummary.test.ts index 73c579a13366..c90499c93625 100644 --- a/apps/server/src/persistence/Migrations/024_BackfillProjectionThreadShellSummary.test.ts +++ b/apps/server/src/persistence/Migrations/024_BackfillProjectionThreadShellSummary.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/024_BackfillProjectionThreadShellSummary.ts b/apps/server/src/persistence/Migrations/024_BackfillProjectionThreadShellSummary.ts index 549906dfb03b..9be3764e715b 100644 --- a/apps/server/src/persistence/Migrations/024_BackfillProjectionThreadShellSummary.ts +++ b/apps/server/src/persistence/Migrations/024_BackfillProjectionThreadShellSummary.ts @@ -1,4 +1,4 @@ -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as Effect from "effect/Effect"; export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/025_CleanupInvalidProjectionPendingApprovals.test.ts b/apps/server/src/persistence/Migrations/025_CleanupInvalidProjectionPendingApprovals.test.ts index 7e65f4c04f72..8b790cfd87e4 100644 --- a/apps/server/src/persistence/Migrations/025_CleanupInvalidProjectionPendingApprovals.test.ts +++ b/apps/server/src/persistence/Migrations/025_CleanupInvalidProjectionPendingApprovals.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/025_CleanupInvalidProjectionPendingApprovals.ts b/apps/server/src/persistence/Migrations/025_CleanupInvalidProjectionPendingApprovals.ts index 33a6512c750b..f15b9d911705 100644 --- a/apps/server/src/persistence/Migrations/025_CleanupInvalidProjectionPendingApprovals.ts +++ b/apps/server/src/persistence/Migrations/025_CleanupInvalidProjectionPendingApprovals.ts @@ -1,4 +1,4 @@ -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as Effect from "effect/Effect"; export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/026_CanonicalizeModelSelectionOptions.test.ts b/apps/server/src/persistence/Migrations/026_CanonicalizeModelSelectionOptions.test.ts index 5dd053cfe77c..e14486644035 100644 --- a/apps/server/src/persistence/Migrations/026_CanonicalizeModelSelectionOptions.test.ts +++ b/apps/server/src/persistence/Migrations/026_CanonicalizeModelSelectionOptions.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/026_CanonicalizeModelSelectionOptions.ts b/apps/server/src/persistence/Migrations/026_CanonicalizeModelSelectionOptions.ts index 15c08debf64c..102edca038df 100644 --- a/apps/server/src/persistence/Migrations/026_CanonicalizeModelSelectionOptions.ts +++ b/apps/server/src/persistence/Migrations/026_CanonicalizeModelSelectionOptions.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; /** * Canonicalize `modelSelection.options` / `defaultModelSelection.options` from diff --git a/apps/server/src/persistence/Migrations/027_028_ProviderInstanceIdColumns.test.ts b/apps/server/src/persistence/Migrations/027_028_ProviderInstanceIdColumns.test.ts index aa99f0c862a2..403cc46f5a0e 100644 --- a/apps/server/src/persistence/Migrations/027_028_ProviderInstanceIdColumns.test.ts +++ b/apps/server/src/persistence/Migrations/027_028_ProviderInstanceIdColumns.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/027_ProviderSessionRuntimeInstanceId.ts b/apps/server/src/persistence/Migrations/027_ProviderSessionRuntimeInstanceId.ts index 7ae0e55b13c5..3acf4b9fdf2d 100644 --- a/apps/server/src/persistence/Migrations/027_ProviderSessionRuntimeInstanceId.ts +++ b/apps/server/src/persistence/Migrations/027_ProviderSessionRuntimeInstanceId.ts @@ -15,7 +15,7 @@ * multiple instances of the same driver. Keeping that compatibility at the * persistence boundary keeps the fallback out of active routing code. */ -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as Effect from "effect/Effect"; export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/028_ProjectionThreadSessionInstanceId.ts b/apps/server/src/persistence/Migrations/028_ProjectionThreadSessionInstanceId.ts index bc4ba98044f9..a84f9786f4c6 100644 --- a/apps/server/src/persistence/Migrations/028_ProjectionThreadSessionInstanceId.ts +++ b/apps/server/src/persistence/Migrations/028_ProjectionThreadSessionInstanceId.ts @@ -1,4 +1,4 @@ -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as Effect from "effect/Effect"; export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/029_ProjectionThreadDetailOrderingIndexes.test.ts b/apps/server/src/persistence/Migrations/029_ProjectionThreadDetailOrderingIndexes.test.ts index cd246d16ee87..43cd9821b611 100644 --- a/apps/server/src/persistence/Migrations/029_ProjectionThreadDetailOrderingIndexes.test.ts +++ b/apps/server/src/persistence/Migrations/029_ProjectionThreadDetailOrderingIndexes.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/029_ProjectionThreadDetailOrderingIndexes.ts b/apps/server/src/persistence/Migrations/029_ProjectionThreadDetailOrderingIndexes.ts index 4a0595afa9b7..29691fa11b2d 100644 --- a/apps/server/src/persistence/Migrations/029_ProjectionThreadDetailOrderingIndexes.ts +++ b/apps/server/src/persistence/Migrations/029_ProjectionThreadDetailOrderingIndexes.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/030_ProjectionThreadShellArchiveIndexes.ts b/apps/server/src/persistence/Migrations/030_ProjectionThreadShellArchiveIndexes.ts index 3b7bf51f04b0..95fab43eef5f 100644 --- a/apps/server/src/persistence/Migrations/030_ProjectionThreadShellArchiveIndexes.ts +++ b/apps/server/src/persistence/Migrations/030_ProjectionThreadShellArchiveIndexes.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/031_AuthAuthorizationScopes.test.ts b/apps/server/src/persistence/Migrations/031_AuthAuthorizationScopes.test.ts index 60b0079d79f9..c497d205c3e3 100644 --- a/apps/server/src/persistence/Migrations/031_AuthAuthorizationScopes.test.ts +++ b/apps/server/src/persistence/Migrations/031_AuthAuthorizationScopes.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/031_AuthAuthorizationScopes.ts b/apps/server/src/persistence/Migrations/031_AuthAuthorizationScopes.ts index 59f9f9695c2b..e9bc08195f3d 100644 --- a/apps/server/src/persistence/Migrations/031_AuthAuthorizationScopes.ts +++ b/apps/server/src/persistence/Migrations/031_AuthAuthorizationScopes.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; /** * This is an intentional alpha cutover: role-bearing credentials and sessions diff --git a/apps/server/src/persistence/Migrations/032_AuthPairingProofKeyThumbprint.ts b/apps/server/src/persistence/Migrations/032_AuthPairingProofKeyThumbprint.ts index db414213a11b..b0c430333941 100644 --- a/apps/server/src/persistence/Migrations/032_AuthPairingProofKeyThumbprint.ts +++ b/apps/server/src/persistence/Migrations/032_AuthPairingProofKeyThumbprint.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/033_ProjectionThreadsSettled.ts b/apps/server/src/persistence/Migrations/033_ProjectionThreadsSettled.ts index e93407defe28..543080821e6a 100644 --- a/apps/server/src/persistence/Migrations/033_ProjectionThreadsSettled.ts +++ b/apps/server/src/persistence/Migrations/033_ProjectionThreadsSettled.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/034_ProjectionThreadsSnoozed.ts b/apps/server/src/persistence/Migrations/034_ProjectionThreadsSnoozed.ts index 5259ae445014..172aa09d8971 100644 --- a/apps/server/src/persistence/Migrations/034_ProjectionThreadsSnoozed.ts +++ b/apps/server/src/persistence/Migrations/034_ProjectionThreadsSnoozed.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/035_ProjectionThreadTitleRegeneration.test.ts b/apps/server/src/persistence/Migrations/035_ProjectionThreadTitleRegeneration.test.ts index cf0ecff3253a..d753cf06d3cd 100644 --- a/apps/server/src/persistence/Migrations/035_ProjectionThreadTitleRegeneration.test.ts +++ b/apps/server/src/persistence/Migrations/035_ProjectionThreadTitleRegeneration.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/035_ProjectionThreadTitleRegeneration.ts b/apps/server/src/persistence/Migrations/035_ProjectionThreadTitleRegeneration.ts index ee3dd4a07745..f12641b32447 100644 --- a/apps/server/src/persistence/Migrations/035_ProjectionThreadTitleRegeneration.ts +++ b/apps/server/src/persistence/Migrations/035_ProjectionThreadTitleRegeneration.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/036_ProjectionThreadsPinned.ts b/apps/server/src/persistence/Migrations/036_ProjectionThreadsPinned.ts index c96e4693fc57..5ba13208d3c0 100644 --- a/apps/server/src/persistence/Migrations/036_ProjectionThreadsPinned.ts +++ b/apps/server/src/persistence/Migrations/036_ProjectionThreadsPinned.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/037_ProjectionTurnsKeysetIndex.ts b/apps/server/src/persistence/Migrations/037_ProjectionTurnsKeysetIndex.ts index 6b1ee7c03043..b1645d527862 100644 --- a/apps/server/src/persistence/Migrations/037_ProjectionTurnsKeysetIndex.ts +++ b/apps/server/src/persistence/Migrations/037_ProjectionTurnsKeysetIndex.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; /** * Composite index for windowed thread detail reads. Pagination orders turns by diff --git a/apps/server/src/persistence/Migrations/038_ProjectionThreadsPinOrderKey.ts b/apps/server/src/persistence/Migrations/038_ProjectionThreadsPinOrderKey.ts index d6735ebdbfbe..b84faf1a91d1 100644 --- a/apps/server/src/persistence/Migrations/038_ProjectionThreadsPinOrderKey.ts +++ b/apps/server/src/persistence/Migrations/038_ProjectionThreadsPinOrderKey.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/039_ProjectionProjectsDefaultThreadEnvMode.ts b/apps/server/src/persistence/Migrations/039_ProjectionProjectsDefaultThreadEnvMode.ts index 2ac6f78e6dee..de0aa2311ce4 100644 --- a/apps/server/src/persistence/Migrations/039_ProjectionProjectsDefaultThreadEnvMode.ts +++ b/apps/server/src/persistence/Migrations/039_ProjectionProjectsDefaultThreadEnvMode.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/040_ProjectionProjectFaviconPath.test.ts b/apps/server/src/persistence/Migrations/040_ProjectionProjectFaviconPath.test.ts index 524831e891ab..2894ef698ccb 100644 --- a/apps/server/src/persistence/Migrations/040_ProjectionProjectFaviconPath.test.ts +++ b/apps/server/src/persistence/Migrations/040_ProjectionProjectFaviconPath.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/040_ProjectionProjectFaviconPath.ts b/apps/server/src/persistence/Migrations/040_ProjectionProjectFaviconPath.ts index 8424e8d5e728..7e16896c9ab0 100644 --- a/apps/server/src/persistence/Migrations/040_ProjectionProjectFaviconPath.ts +++ b/apps/server/src/persistence/Migrations/040_ProjectionProjectFaviconPath.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/041_AuthSessionClientConnection.test.ts b/apps/server/src/persistence/Migrations/041_AuthSessionClientConnection.test.ts index 4f106de404a0..90467511e678 100644 --- a/apps/server/src/persistence/Migrations/041_AuthSessionClientConnection.test.ts +++ b/apps/server/src/persistence/Migrations/041_AuthSessionClientConnection.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/041_AuthSessionClientConnection.ts b/apps/server/src/persistence/Migrations/041_AuthSessionClientConnection.ts index 2194c3cd0f14..5d49814bf715 100644 --- a/apps/server/src/persistence/Migrations/041_AuthSessionClientConnection.ts +++ b/apps/server/src/persistence/Migrations/041_AuthSessionClientConnection.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; // Client-declared surface (web/desktop/mobile) and app version, refreshed on // every WebSocket connect so the row tracks the client's current build instead diff --git a/apps/server/src/persistence/Migrations/042_ProjectionThreadLinkedPullRequest.test.ts b/apps/server/src/persistence/Migrations/042_ProjectionThreadLinkedPullRequest.test.ts index a4ed1653a962..5039e70fb989 100644 --- a/apps/server/src/persistence/Migrations/042_ProjectionThreadLinkedPullRequest.test.ts +++ b/apps/server/src/persistence/Migrations/042_ProjectionThreadLinkedPullRequest.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/042_ProjectionThreadLinkedPullRequest.ts b/apps/server/src/persistence/Migrations/042_ProjectionThreadLinkedPullRequest.ts index a026f39c392a..0882f176df70 100644 --- a/apps/server/src/persistence/Migrations/042_ProjectionThreadLinkedPullRequest.ts +++ b/apps/server/src/persistence/Migrations/042_ProjectionThreadLinkedPullRequest.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/043_ProjectionThreadsUnsettledAt.ts b/apps/server/src/persistence/Migrations/043_ProjectionThreadsUnsettledAt.ts index 981d3c78f3a6..87438836e5a0 100644 --- a/apps/server/src/persistence/Migrations/043_ProjectionThreadsUnsettledAt.ts +++ b/apps/server/src/persistence/Migrations/043_ProjectionThreadsUnsettledAt.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/044_ClearAutomaticProjectModelDefaults.ts b/apps/server/src/persistence/Migrations/044_ClearAutomaticProjectModelDefaults.ts index 469402907fa5..9ecfe949a389 100644 --- a/apps/server/src/persistence/Migrations/044_ClearAutomaticProjectModelDefaults.ts +++ b/apps/server/src/persistence/Migrations/044_ClearAutomaticProjectModelDefaults.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/045_ProjectionProjectsAutoPull.ts b/apps/server/src/persistence/Migrations/045_ProjectionProjectsAutoPull.ts index 3a0ca678f6c5..c9f9d2d1f0db 100644 --- a/apps/server/src/persistence/Migrations/045_ProjectionProjectsAutoPull.ts +++ b/apps/server/src/persistence/Migrations/045_ProjectionProjectsAutoPull.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/046_RepairAutomaticSettlementTimestamps.test.ts b/apps/server/src/persistence/Migrations/046_RepairAutomaticSettlementTimestamps.test.ts index de7c6f01f659..8aee17bde992 100644 --- a/apps/server/src/persistence/Migrations/046_RepairAutomaticSettlementTimestamps.test.ts +++ b/apps/server/src/persistence/Migrations/046_RepairAutomaticSettlementTimestamps.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/046_RepairAutomaticSettlementTimestamps.ts b/apps/server/src/persistence/Migrations/046_RepairAutomaticSettlementTimestamps.ts index 4bc3b9d523df..b415264a7176 100644 --- a/apps/server/src/persistence/Migrations/046_RepairAutomaticSettlementTimestamps.ts +++ b/apps/server/src/persistence/Migrations/046_RepairAutomaticSettlementTimestamps.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; // Server auto-settlement used to stamp settledAt with the sweep time instead // of the thread's last activity. Repair the projection only: the engine and diff --git a/apps/server/src/persistence/Migrations/047_ProjectionProjectIcon.test.ts b/apps/server/src/persistence/Migrations/047_ProjectionProjectIcon.test.ts index c601bb0077fe..0a62831b201f 100644 --- a/apps/server/src/persistence/Migrations/047_ProjectionProjectIcon.test.ts +++ b/apps/server/src/persistence/Migrations/047_ProjectionProjectIcon.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/047_ProjectionProjectIcon.ts b/apps/server/src/persistence/Migrations/047_ProjectionProjectIcon.ts index 0523a47b1c56..1c44e576baaf 100644 --- a/apps/server/src/persistence/Migrations/047_ProjectionProjectIcon.ts +++ b/apps/server/src/persistence/Migrations/047_ProjectionProjectIcon.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/048_ProjectionThreadBranchPullRequest.ts b/apps/server/src/persistence/Migrations/048_ProjectionThreadBranchPullRequest.ts index 49870b59635d..ae8a67c58a88 100644 --- a/apps/server/src/persistence/Migrations/048_ProjectionThreadBranchPullRequest.ts +++ b/apps/server/src/persistence/Migrations/048_ProjectionThreadBranchPullRequest.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/049_ProjectionThreadsActiveOrderKey.test.ts b/apps/server/src/persistence/Migrations/049_ProjectionThreadsActiveOrderKey.test.ts index 938ab25d0f8a..277bab11e31d 100644 --- a/apps/server/src/persistence/Migrations/049_ProjectionThreadsActiveOrderKey.test.ts +++ b/apps/server/src/persistence/Migrations/049_ProjectionThreadsActiveOrderKey.test.ts @@ -1,6 +1,6 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; import { runMigrations } from "../Migrations.ts"; diff --git a/apps/server/src/persistence/Migrations/049_ProjectionThreadsActiveOrderKey.ts b/apps/server/src/persistence/Migrations/049_ProjectionThreadsActiveOrderKey.ts index 6f40ec38d081..3d028e367115 100644 --- a/apps/server/src/persistence/Migrations/049_ProjectionThreadsActiveOrderKey.ts +++ b/apps/server/src/persistence/Migrations/049_ProjectionThreadsActiveOrderKey.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/050_ProjectionThreadPullRequests.test.ts b/apps/server/src/persistence/Migrations/050_ProjectionThreadPullRequests.test.ts index 7f3bc58d1cc1..9c40c3521ee1 100644 --- a/apps/server/src/persistence/Migrations/050_ProjectionThreadPullRequests.test.ts +++ b/apps/server/src/persistence/Migrations/050_ProjectionThreadPullRequests.test.ts @@ -2,7 +2,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/050_ProjectionThreadPullRequests.ts b/apps/server/src/persistence/Migrations/050_ProjectionThreadPullRequests.ts index 2a53307c8901..0ee0f00c0b33 100644 --- a/apps/server/src/persistence/Migrations/050_ProjectionThreadPullRequests.ts +++ b/apps/server/src/persistence/Migrations/050_ProjectionThreadPullRequests.ts @@ -1,6 +1,6 @@ import { legacyThreadPullRequestKey } from "@t3tools/shared/threadPullRequests"; import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; interface LegacyLinkedThreadRow { readonly threadId: string; diff --git a/apps/server/src/persistence/Migrations/051_ProjectionThreadMessageContext.test.ts b/apps/server/src/persistence/Migrations/051_ProjectionThreadMessageContext.test.ts index a0e59217cd30..50d4a4576cdf 100644 --- a/apps/server/src/persistence/Migrations/051_ProjectionThreadMessageContext.test.ts +++ b/apps/server/src/persistence/Migrations/051_ProjectionThreadMessageContext.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/051_ProjectionThreadMessageContext.ts b/apps/server/src/persistence/Migrations/051_ProjectionThreadMessageContext.ts index 03d8a374a091..a2902a9cfb6f 100644 --- a/apps/server/src/persistence/Migrations/051_ProjectionThreadMessageContext.ts +++ b/apps/server/src/persistence/Migrations/051_ProjectionThreadMessageContext.ts @@ -1,4 +1,4 @@ -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as Effect from "effect/Effect"; export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/052_ProjectionThreadTitleState.ts b/apps/server/src/persistence/Migrations/052_ProjectionThreadTitleState.ts index bdc8a21ed778..a25482d49db7 100644 --- a/apps/server/src/persistence/Migrations/052_ProjectionThreadTitleState.ts +++ b/apps/server/src/persistence/Migrations/052_ProjectionThreadTitleState.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/053_PullRequestFilesViewed.ts b/apps/server/src/persistence/Migrations/053_PullRequestFilesViewed.ts index 5e7f67c0b189..02a888838b53 100644 --- a/apps/server/src/persistence/Migrations/053_PullRequestFilesViewed.ts +++ b/apps/server/src/persistence/Migrations/053_PullRequestFilesViewed.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/054_ProjectionThreadsAutoSettleDisabledAt.test.ts b/apps/server/src/persistence/Migrations/054_ProjectionThreadsAutoSettleDisabledAt.test.ts index df6403316e5b..bf19a0199fce 100644 --- a/apps/server/src/persistence/Migrations/054_ProjectionThreadsAutoSettleDisabledAt.test.ts +++ b/apps/server/src/persistence/Migrations/054_ProjectionThreadsAutoSettleDisabledAt.test.ts @@ -1,6 +1,6 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; import { runMigrations } from "../Migrations.ts"; diff --git a/apps/server/src/persistence/Migrations/054_ProjectionThreadsAutoSettleDisabledAt.ts b/apps/server/src/persistence/Migrations/054_ProjectionThreadsAutoSettleDisabledAt.ts index f91f6d8abdfa..8e0f479bc731 100644 --- a/apps/server/src/persistence/Migrations/054_ProjectionThreadsAutoSettleDisabledAt.ts +++ b/apps/server/src/persistence/Migrations/054_ProjectionThreadsAutoSettleDisabledAt.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/055_OrchestrationV2.application-event-source.test.ts b/apps/server/src/persistence/Migrations/055_OrchestrationV2.application-event-source.test.ts index cd96a7ef22e7..069e25d6975b 100644 --- a/apps/server/src/persistence/Migrations/055_OrchestrationV2.application-event-source.test.ts +++ b/apps/server/src/persistence/Migrations/055_OrchestrationV2.application-event-source.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/055_OrchestrationV2.effect-cancellation.test.ts b/apps/server/src/persistence/Migrations/055_OrchestrationV2.effect-cancellation.test.ts index 76861f22fc83..ad5d492fc06e 100644 --- a/apps/server/src/persistence/Migrations/055_OrchestrationV2.effect-cancellation.test.ts +++ b/apps/server/src/persistence/Migrations/055_OrchestrationV2.effect-cancellation.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/055_OrchestrationV2.test.ts b/apps/server/src/persistence/Migrations/055_OrchestrationV2.test.ts index b12ac9701938..71a323f99ddf 100644 --- a/apps/server/src/persistence/Migrations/055_OrchestrationV2.test.ts +++ b/apps/server/src/persistence/Migrations/055_OrchestrationV2.test.ts @@ -1,7 +1,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { migrationEntries, runMigrations } from "../Migrations.ts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; diff --git a/apps/server/src/persistence/Migrations/055_OrchestrationV2.ts b/apps/server/src/persistence/Migrations/055_OrchestrationV2.ts index 721c71ba3629..7b658c296a44 100644 --- a/apps/server/src/persistence/Migrations/055_OrchestrationV2.ts +++ b/apps/server/src/persistence/Migrations/055_OrchestrationV2.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import ApplicationEventSequenceIndexes from "./OrchestrationV2/ApplicationEventSequenceIndexes.ts"; import ApplicationEventSource from "./OrchestrationV2/ApplicationEventSource.ts"; diff --git a/apps/server/src/persistence/Migrations/056_RemoveRedundantProjectionIndexes.test.ts b/apps/server/src/persistence/Migrations/056_RemoveRedundantProjectionIndexes.test.ts index f7d92f3dc968..1b18002eed7c 100644 --- a/apps/server/src/persistence/Migrations/056_RemoveRedundantProjectionIndexes.test.ts +++ b/apps/server/src/persistence/Migrations/056_RemoveRedundantProjectionIndexes.test.ts @@ -2,7 +2,7 @@ import { assert, it } from "@effect/vitest"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { runMigrations } from "../Migrations.ts"; diff --git a/apps/server/src/persistence/Migrations/056_RemoveRedundantProjectionIndexes.ts b/apps/server/src/persistence/Migrations/056_RemoveRedundantProjectionIndexes.ts index 2ed4c9e11a36..bc3245ea64cb 100644 --- a/apps/server/src/persistence/Migrations/056_RemoveRedundantProjectionIndexes.ts +++ b/apps/server/src/persistence/Migrations/056_RemoveRedundantProjectionIndexes.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; export default Effect.gen(function* () { const sql = yield* SqlClient.SqlClient; diff --git a/apps/server/src/persistence/Migrations/OrchestrationV2/ApplicationEventSequenceIndexes.ts b/apps/server/src/persistence/Migrations/OrchestrationV2/ApplicationEventSequenceIndexes.ts index 7872d416190f..66f0a7c98b7f 100644 --- a/apps/server/src/persistence/Migrations/OrchestrationV2/ApplicationEventSequenceIndexes.ts +++ b/apps/server/src/persistence/Migrations/OrchestrationV2/ApplicationEventSequenceIndexes.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; // Index setup composed by migration 055. export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/OrchestrationV2/ApplicationEventSource.ts b/apps/server/src/persistence/Migrations/OrchestrationV2/ApplicationEventSource.ts index 1365d886a2d9..9dca17a5ba11 100644 --- a/apps/server/src/persistence/Migrations/OrchestrationV2/ApplicationEventSource.ts +++ b/apps/server/src/persistence/Migrations/OrchestrationV2/ApplicationEventSource.ts @@ -1,6 +1,6 @@ import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; interface LegacyV2EventRow { readonly event_id: string; diff --git a/apps/server/src/persistence/Migrations/OrchestrationV2/EffectCancellation.ts b/apps/server/src/persistence/Migrations/OrchestrationV2/EffectCancellation.ts index e04363684ab6..12c54a6e8b98 100644 --- a/apps/server/src/persistence/Migrations/OrchestrationV2/EffectCancellation.ts +++ b/apps/server/src/persistence/Migrations/OrchestrationV2/EffectCancellation.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; // Schema setup composed by migration 055. export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/OrchestrationV2/Foundation.ts b/apps/server/src/persistence/Migrations/OrchestrationV2/Foundation.ts index 3ee1cde819bf..ebc6ebbc346d 100644 --- a/apps/server/src/persistence/Migrations/OrchestrationV2/Foundation.ts +++ b/apps/server/src/persistence/Migrations/OrchestrationV2/Foundation.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; /** * Production-facing V2 persistence setup composed by migration 055. diff --git a/apps/server/src/persistence/Migrations/OrchestrationV2/LegacyV1ImportState.ts b/apps/server/src/persistence/Migrations/OrchestrationV2/LegacyV1ImportState.ts index 915aa31227ab..42aa47300c1c 100644 --- a/apps/server/src/persistence/Migrations/OrchestrationV2/LegacyV1ImportState.ts +++ b/apps/server/src/persistence/Migrations/OrchestrationV2/LegacyV1ImportState.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; /** * Tracks the incremental import of v1 materialized thread state into the v2 diff --git a/apps/server/src/persistence/Migrations/OrchestrationV2/ProviderSessionBindings.ts b/apps/server/src/persistence/Migrations/OrchestrationV2/ProviderSessionBindings.ts index 769da3c4ca8f..79d9e655e3d4 100644 --- a/apps/server/src/persistence/Migrations/OrchestrationV2/ProviderSessionBindings.ts +++ b/apps/server/src/persistence/Migrations/OrchestrationV2/ProviderSessionBindings.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; // Schema setup composed by migration 055. export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/OrchestrationV2/RecoveryIndexes.ts b/apps/server/src/persistence/Migrations/OrchestrationV2/RecoveryIndexes.ts index 4bd8f6251459..92c7cfb927eb 100644 --- a/apps/server/src/persistence/Migrations/OrchestrationV2/RecoveryIndexes.ts +++ b/apps/server/src/persistence/Migrations/OrchestrationV2/RecoveryIndexes.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; // Index setup composed by migration 055. export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/OrchestrationV2/ScheduledTasks.ts b/apps/server/src/persistence/Migrations/OrchestrationV2/ScheduledTasks.ts index f35830314516..38e67092bbd5 100644 --- a/apps/server/src/persistence/Migrations/OrchestrationV2/ScheduledTasks.ts +++ b/apps/server/src/persistence/Migrations/OrchestrationV2/ScheduledTasks.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; // Schema setup composed by migration 055. export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/OrchestrationV2/ShellIndexes.ts b/apps/server/src/persistence/Migrations/OrchestrationV2/ShellIndexes.ts index 5a9ab2a5d6cd..6c49dfb79175 100644 --- a/apps/server/src/persistence/Migrations/OrchestrationV2/ShellIndexes.ts +++ b/apps/server/src/persistence/Migrations/OrchestrationV2/ShellIndexes.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; // Index setup composed by migration 055. export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/OrchestrationV2/Subagents.ts b/apps/server/src/persistence/Migrations/OrchestrationV2/Subagents.ts index a874987634c3..d63dc6a112a8 100644 --- a/apps/server/src/persistence/Migrations/OrchestrationV2/Subagents.ts +++ b/apps/server/src/persistence/Migrations/OrchestrationV2/Subagents.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; // Schema setup composed by migration 055. export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/Migrations/OrchestrationV2/ThreadLaunchWorkflows.ts b/apps/server/src/persistence/Migrations/OrchestrationV2/ThreadLaunchWorkflows.ts index 1e5557c60821..0a77b3cb5b94 100644 --- a/apps/server/src/persistence/Migrations/OrchestrationV2/ThreadLaunchWorkflows.ts +++ b/apps/server/src/persistence/Migrations/OrchestrationV2/ThreadLaunchWorkflows.ts @@ -1,5 +1,5 @@ import * as Effect from "effect/Effect"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; // Schema setup composed by migration 055. export default Effect.gen(function* () { diff --git a/apps/server/src/persistence/ProviderSessionRuntime.ts b/apps/server/src/persistence/ProviderSessionRuntime.ts index 415e246a1c6b..364b96bbf6e4 100644 --- a/apps/server/src/persistence/ProviderSessionRuntime.ts +++ b/apps/server/src/persistence/ProviderSessionRuntime.ts @@ -6,8 +6,8 @@ import * as Option from "effect/Option"; import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; import * as Struct from "effect/Struct"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; -import * as SqlSchema from "effect/unstable/sql/SqlSchema"; +import * as SqlClient from "effect/sql/SqlClient"; +import * as SqlSchema from "effect/sql/SqlSchema"; import { AgentSessionImportSource, diff --git a/apps/server/src/persistence/PullRequestFilesViewed.ts b/apps/server/src/persistence/PullRequestFilesViewed.ts index 9904e244018a..4e28f836d2ed 100644 --- a/apps/server/src/persistence/PullRequestFilesViewed.ts +++ b/apps/server/src/persistence/PullRequestFilesViewed.ts @@ -2,8 +2,8 @@ import * as Context from "effect/Context"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; -import * as SqlSchema from "effect/unstable/sql/SqlSchema"; +import * as SqlClient from "effect/sql/SqlClient"; +import * as SqlSchema from "effect/sql/SqlSchema"; import { SourceControlProviderKind } from "@t3tools/contracts"; diff --git a/apps/server/src/persistence/RepositoryErrorCorrelation.test.ts b/apps/server/src/persistence/RepositoryErrorCorrelation.test.ts index 379b06e2a222..c7c9db88ea80 100644 --- a/apps/server/src/persistence/RepositoryErrorCorrelation.test.ts +++ b/apps/server/src/persistence/RepositoryErrorCorrelation.test.ts @@ -3,7 +3,7 @@ import { assert, describe, it } from "@effect/vitest"; import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as AuthPairingLinks from "./AuthPairingLinks.ts"; import * as AuthSessions from "./AuthSessions.ts"; diff --git a/apps/server/src/persistence/initializeV2Database.test.ts b/apps/server/src/persistence/initializeV2Database.test.ts index 8a96d71324a9..21a76eda39ff 100644 --- a/apps/server/src/persistence/initializeV2Database.test.ts +++ b/apps/server/src/persistence/initializeV2Database.test.ts @@ -10,7 +10,7 @@ import { ThreadId } from "@t3tools/contracts"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as ServerConfig from "../config.ts"; import * as SqlitePersistence from "./Layers/Sqlite.ts"; diff --git a/apps/server/src/persistence/reconcileV2PreviewMigration.test.ts b/apps/server/src/persistence/reconcileV2PreviewMigration.test.ts index ecaec10e5b4c..c0778bea2e9a 100644 --- a/apps/server/src/persistence/reconcileV2PreviewMigration.test.ts +++ b/apps/server/src/persistence/reconcileV2PreviewMigration.test.ts @@ -2,8 +2,8 @@ import { assert, describe, it } from "@effect/vitest"; import * as NodeSqliteClient from "@t3tools/shared/nodeSqliteClient"; import * as Effect from "effect/Effect"; import * as Exit from "effect/Exit"; -import * as Migrator from "effect/unstable/sql/Migrator"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as Migrator from "effect/sql/Migrator"; +import * as SqlClient from "effect/sql/SqlClient"; import { migrationManifest, runMigrations } from "./Migrations.ts"; import PullRequestFilesViewed from "./Migrations/053_PullRequestFilesViewed.ts"; diff --git a/apps/server/src/persistence/reconcileV2PreviewMigration.ts b/apps/server/src/persistence/reconcileV2PreviewMigration.ts index d19f46c29cef..cbf83ef55f57 100644 --- a/apps/server/src/persistence/reconcileV2PreviewMigration.ts +++ b/apps/server/src/persistence/reconcileV2PreviewMigration.ts @@ -1,6 +1,6 @@ import * as Effect from "effect/Effect"; -import * as Migrator from "effect/unstable/sql/Migrator"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as Migrator from "effect/sql/Migrator"; +import * as SqlClient from "effect/sql/SqlClient"; import PullRequestFilesViewed from "./Migrations/053_PullRequestFilesViewed.ts"; import AutoSettleDisabledAt from "./Migrations/054_ProjectionThreadsAutoSettleDisabledAt.ts"; diff --git a/apps/server/src/preview/PortScanner.test.ts b/apps/server/src/preview/PortScanner.test.ts index d790002f95f1..d4df5c6bebb8 100644 --- a/apps/server/src/preview/PortScanner.test.ts +++ b/apps/server/src/preview/PortScanner.test.ts @@ -20,7 +20,7 @@ import * as Scope from "effect/Scope"; import * as TestClock from "effect/testing/TestClock"; import * as Tracer from "effect/Tracer"; import { expect } from "vite-plus/test"; -import { FetchHttpClient } from "effect/unstable/http"; +import { FetchHttpClient } from "effect/http"; import * as ProcessRunner from "../processRunner.ts"; import * as PortScanner from "./PortScanner.ts"; diff --git a/apps/server/src/preview/PortScanner.ts b/apps/server/src/preview/PortScanner.ts index 9eee1a3e215e..6fb25077df3a 100644 --- a/apps/server/src/preview/PortScanner.ts +++ b/apps/server/src/preview/PortScanner.ts @@ -36,7 +36,7 @@ import * as Ref from "effect/Ref"; import * as Schedule from "effect/Schedule"; import * as Scope from "effect/Scope"; import * as Semaphore from "effect/Semaphore"; -import { FetchHttpClient, HttpClient } from "effect/unstable/http"; +import { FetchHttpClient, HttpClient } from "effect/http"; import * as ProcessRunner from "../processRunner.ts"; diff --git a/apps/server/src/process/externalLauncher.test.ts b/apps/server/src/process/externalLauncher.test.ts index 9a5c8b99ce7d..2c16c51de280 100644 --- a/apps/server/src/process/externalLauncher.test.ts +++ b/apps/server/src/process/externalLauncher.test.ts @@ -15,7 +15,7 @@ import * as Path from "effect/Path"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; import { SpawnExecutableResolution } from "@t3tools/shared/shell"; diff --git a/apps/server/src/process/externalLauncher.ts b/apps/server/src/process/externalLauncher.ts index 058318ea9d55..ffd7a6213e2b 100644 --- a/apps/server/src/process/externalLauncher.ts +++ b/apps/server/src/process/externalLauncher.ts @@ -30,7 +30,7 @@ import * as Config from "effect/Config"; import * as Context from "effect/Context"; import * as Deferred from "effect/Deferred"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64 from "effect/encoding/Base64"; import * as Exit from "effect/Exit"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; @@ -39,8 +39,8 @@ import * as Path from "effect/Path"; import * as Ref from "effect/Ref"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import * as ChildProcess from "effect/unstable/process/ChildProcess"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcess from "effect/process/ChildProcess"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; // ============================== // Definitions @@ -175,7 +175,7 @@ function encodeUtf16LeBase64(input: string): string { bytes[index * 2] = code & 0xff; bytes[index * 2 + 1] = code >>> 8; } - return Encoding.encodeBase64(bytes); + return Base64.encode(bytes); } function escapePowerShellStringLiteral(input: string): string { diff --git a/apps/server/src/processRunner.test.ts b/apps/server/src/processRunner.test.ts index d7f3799e103b..d241b3b3a4d4 100644 --- a/apps/server/src/processRunner.test.ts +++ b/apps/server/src/processRunner.test.ts @@ -8,7 +8,7 @@ import * as PlatformError from "effect/PlatformError"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; import { TestClock } from "effect/testing"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { HostProcessEnvironment, HostProcessPlatform } from "@t3tools/shared/hostProcess"; import { SpawnExecutableResolution } from "@t3tools/shared/shell"; diff --git a/apps/server/src/processRunner.ts b/apps/server/src/processRunner.ts index 049125de3fbf..3fd4734069f3 100644 --- a/apps/server/src/processRunner.ts +++ b/apps/server/src/processRunner.ts @@ -7,8 +7,8 @@ import * as PlatformError from "effect/PlatformError"; import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import * as ChildProcess from "effect/unstable/process/ChildProcess"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcess from "effect/process/ChildProcess"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; import { resolveSpawnCommand } from "@t3tools/shared/shell"; import { diff --git a/apps/server/src/project/ProjectService.deletion.test.ts b/apps/server/src/project/ProjectService.deletion.test.ts index 955baa79a79d..a65a28d3a36f 100644 --- a/apps/server/src/project/ProjectService.deletion.test.ts +++ b/apps/server/src/project/ProjectService.deletion.test.ts @@ -14,7 +14,7 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; import { TestClock } from "effect/testing"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as ServerConfig from "../config.ts"; import { OrchestrationEffectRequestV2 } from "../orchestration-v2/EffectOutbox.ts"; diff --git a/apps/server/src/project/ProjectService.test.ts b/apps/server/src/project/ProjectService.test.ts index 98e576a6fe9b..60e216bf24ef 100644 --- a/apps/server/src/project/ProjectService.test.ts +++ b/apps/server/src/project/ProjectService.test.ts @@ -8,7 +8,7 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Ref from "effect/Ref"; import { TestClock } from "effect/testing"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as ServerConfig from "../config.ts"; import * as EventSink from "../orchestration-v2/EventSink.ts"; diff --git a/apps/server/src/project/RepositoryIdentityResolver.test.ts b/apps/server/src/project/RepositoryIdentityResolver.test.ts index 58f199b834e2..4996e4023507 100644 --- a/apps/server/src/project/RepositoryIdentityResolver.test.ts +++ b/apps/server/src/project/RepositoryIdentityResolver.test.ts @@ -8,7 +8,7 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import { TestClock } from "effect/testing"; import * as ProcessRunner from "../processRunner.ts"; diff --git a/apps/server/src/project/http.ts b/apps/server/src/project/http.ts index 1d4e591233b3..3b6389498800 100644 --- a/apps/server/src/project/http.ts +++ b/apps/server/src/project/http.ts @@ -4,7 +4,7 @@ import { EnvironmentHttpApi, } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; -import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder"; +import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder"; import { annotateEnvironmentRequest, diff --git a/apps/server/src/provider/AntigravityInstallation.test.ts b/apps/server/src/provider/AntigravityInstallation.test.ts index 63363b0d5213..be0fa4f00b16 100644 --- a/apps/server/src/provider/AntigravityInstallation.test.ts +++ b/apps/server/src/provider/AntigravityInstallation.test.ts @@ -19,8 +19,8 @@ import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import { HttpClient, HttpClientResponse } from "effect/http"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as NodeCrypto from "node:crypto"; import * as AntigravityInstallation from "./AntigravityInstallation.ts"; diff --git a/apps/server/src/provider/AntigravityInstallation.ts b/apps/server/src/provider/AntigravityInstallation.ts index a0a6d81487ed..81ae67f4cf40 100644 --- a/apps/server/src/provider/AntigravityInstallation.ts +++ b/apps/server/src/provider/AntigravityInstallation.ts @@ -23,8 +23,8 @@ import * as Scope from "effect/Scope"; import * as Semaphore from "effect/Semaphore"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as NodeCrypto from "node:crypto"; import * as NodeFSP from "node:fs/promises"; import type * as NodeStream from "node:stream"; diff --git a/apps/server/src/provider/CodexChatGptAuth.test.ts b/apps/server/src/provider/CodexChatGptAuth.test.ts index 1bad9db0df10..fc840d029b99 100644 --- a/apps/server/src/provider/CodexChatGptAuth.test.ts +++ b/apps/server/src/provider/CodexChatGptAuth.test.ts @@ -12,7 +12,7 @@ import * as Fiber from "effect/Fiber"; import * as Deferred from "effect/Deferred"; import * as TestClock from "effect/testing/TestClock"; import { subscribeChatGptHandoff } from "./CodexChatGptHandoff.ts"; -import { FetchHttpClient } from "effect/unstable/http"; +import { FetchHttpClient } from "effect/http"; import { exportJWK, generateKeyPair, SignJWT } from "jose"; import * as ServerSecretStore from "../auth/ServerSecretStore.ts"; import * as ServerEnvironment from "../environment/ServerEnvironment.ts"; diff --git a/apps/server/src/provider/CodexChatGptAuth.ts b/apps/server/src/provider/CodexChatGptAuth.ts index 210cc9e96842..5b06bf70209c 100644 --- a/apps/server/src/provider/CodexChatGptAuth.ts +++ b/apps/server/src/provider/CodexChatGptAuth.ts @@ -20,7 +20,7 @@ import * as Schema from "effect/Schema"; import * as Semaphore from "effect/Semaphore"; import * as ProviderAuthFlow from "./ProviderAuthFlow.ts"; import type { ProviderAuthFlowContext } from "./ProviderAuthFlow.ts"; -import { HttpClient, HttpClientRequest } from "effect/unstable/http"; +import { HttpClient, HttpClientRequest } from "effect/http"; import * as ProviderCredentialStore from "./ProviderCredentialStore.ts"; import { withChatGptSessionLock } from "./CodexChatGptSessionLock.ts"; import * as ServerSecretStore from "../auth/ServerSecretStore.ts"; diff --git a/apps/server/src/provider/CodexChatGptHandoff.ts b/apps/server/src/provider/CodexChatGptHandoff.ts index f50c211a2d04..d2a9e042836a 100644 --- a/apps/server/src/provider/CodexChatGptHandoff.ts +++ b/apps/server/src/provider/CodexChatGptHandoff.ts @@ -3,7 +3,7 @@ import { ProviderSetupError } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Stream from "effect/Stream"; -import { FetchHttpClient } from "effect/unstable/http"; +import { FetchHttpClient } from "effect/http"; import * as ServerSecretStore from "../auth/ServerSecretStore.ts"; import * as ServerEnvironment from "../environment/ServerEnvironment.ts"; import { makeCodexChatGptAuth } from "./CodexChatGptAuth.ts"; diff --git a/apps/server/src/provider/CodexChatGptModels.test.ts b/apps/server/src/provider/CodexChatGptModels.test.ts index 9e7ec690d1df..736f1319d7f0 100644 --- a/apps/server/src/provider/CodexChatGptModels.test.ts +++ b/apps/server/src/provider/CodexChatGptModels.test.ts @@ -1,7 +1,7 @@ // @effect-diagnostics preferSchemaOverJson:off - Mock HTTP responses use JSON fixtures. import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import { chatGptModels } from "./CodexChatGptModels.ts"; it.effect( diff --git a/apps/server/src/provider/CodexChatGptModels.ts b/apps/server/src/provider/CodexChatGptModels.ts index 5b00d1d82886..6a3dcb3b872a 100644 --- a/apps/server/src/provider/CodexChatGptModels.ts +++ b/apps/server/src/provider/CodexChatGptModels.ts @@ -1,7 +1,7 @@ import type { ServerProviderModel } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; -import { HttpClient, HttpClientRequest } from "effect/unstable/http"; +import { HttpClient, HttpClientRequest } from "effect/http"; export class ChatGptCatalogError extends Schema.TaggedError()( "ChatGptCatalogError", diff --git a/apps/server/src/provider/CodexInstallation.test.ts b/apps/server/src/provider/CodexInstallation.test.ts index 2cc54cf83285..a00319e22625 100644 --- a/apps/server/src/provider/CodexInstallation.test.ts +++ b/apps/server/src/provider/CodexInstallation.test.ts @@ -13,7 +13,7 @@ import * as Option from "effect/Option"; import * as Exit from "effect/Exit"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import * as NodeCrypto from "node:crypto"; import * as CodexInstallation from "./CodexInstallation.ts"; diff --git a/apps/server/src/provider/CodexInstallation.ts b/apps/server/src/provider/CodexInstallation.ts index 543122fe8ae1..7dfce2bba433 100644 --- a/apps/server/src/provider/CodexInstallation.ts +++ b/apps/server/src/provider/CodexInstallation.ts @@ -22,8 +22,8 @@ import * as Scope from "effect/Scope"; import * as Semaphore from "effect/Semaphore"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as NodeCrypto from "node:crypto"; import * as ServerConfig from "../config.ts"; import * as ModelManifest from "./ModelManifest.ts"; diff --git a/apps/server/src/provider/CodexManagedRuntime.test.ts b/apps/server/src/provider/CodexManagedRuntime.test.ts index 494ff88a2299..c35fadcd0c64 100644 --- a/apps/server/src/provider/CodexManagedRuntime.test.ts +++ b/apps/server/src/provider/CodexManagedRuntime.test.ts @@ -10,7 +10,7 @@ import * as Path from "effect/Path"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import * as ServerConfig from "../config.ts"; import * as ServerSecretStore from "../auth/ServerSecretStore.ts"; import * as ServerEnvironment from "../environment/ServerEnvironment.ts"; diff --git a/apps/server/src/provider/Drivers/AcpRegistryDriver.ts b/apps/server/src/provider/Drivers/AcpRegistryDriver.ts index 897dbec5d7fc..4d01dcf6aa86 100644 --- a/apps/server/src/provider/Drivers/AcpRegistryDriver.ts +++ b/apps/server/src/provider/Drivers/AcpRegistryDriver.ts @@ -19,7 +19,7 @@ import * as Ref from "effect/Ref"; import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; import * as Semaphore from "effect/Semaphore"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts"; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/provider/Drivers/AntigravityDriver.test.ts b/apps/server/src/provider/Drivers/AntigravityDriver.test.ts index 1aad2d3310cc..4a33d05f13c4 100644 --- a/apps/server/src/provider/Drivers/AntigravityDriver.test.ts +++ b/apps/server/src/provider/Drivers/AntigravityDriver.test.ts @@ -19,7 +19,7 @@ import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as TestClock from "effect/testing/TestClock"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts"; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/provider/Drivers/AntigravityDriver.ts b/apps/server/src/provider/Drivers/AntigravityDriver.ts index cabcc643006e..248cf2199a14 100644 --- a/apps/server/src/provider/Drivers/AntigravityDriver.ts +++ b/apps/server/src/provider/Drivers/AntigravityDriver.ts @@ -15,7 +15,7 @@ import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import type { AcpError } from "effect-acp/errors"; import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts"; diff --git a/apps/server/src/provider/Drivers/ClaudeDriver.ts b/apps/server/src/provider/Drivers/ClaudeDriver.ts index 87c33163a28b..01f755586d3d 100644 --- a/apps/server/src/provider/Drivers/ClaudeDriver.ts +++ b/apps/server/src/provider/Drivers/ClaudeDriver.ts @@ -20,8 +20,8 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { HttpClient } from "effect/unstable/http"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient } from "effect/http"; +import { ChildProcessSpawner } from "effect/process"; import { makeClaudeTextGeneration } from "../../textGeneration/ClaudeTextGeneration.ts"; import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts"; diff --git a/apps/server/src/provider/Drivers/CodexDriver.test.ts b/apps/server/src/provider/Drivers/CodexDriver.test.ts index 4d1a4ce3519f..85d73d7639d4 100644 --- a/apps/server/src/provider/Drivers/CodexDriver.test.ts +++ b/apps/server/src/provider/Drivers/CodexDriver.test.ts @@ -18,9 +18,9 @@ import * as PlatformError from "effect/PlatformError"; import * as Schema from "effect/Schema"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; -import * as ChildProcess from "effect/unstable/process/ChildProcess"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import { HttpClient, HttpClientResponse } from "effect/http"; +import * as ChildProcess from "effect/process/ChildProcess"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts"; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/provider/Drivers/CodexDriver.ts b/apps/server/src/provider/Drivers/CodexDriver.ts index 20a00064a343..927ec4da42eb 100644 --- a/apps/server/src/provider/Drivers/CodexDriver.ts +++ b/apps/server/src/provider/Drivers/CodexDriver.ts @@ -27,8 +27,8 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { HttpClient } from "effect/unstable/http"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient } from "effect/http"; +import { ChildProcessSpawner } from "effect/process"; import { makeCodexTextGeneration } from "../../textGeneration/CodexTextGeneration.ts"; import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts"; diff --git a/apps/server/src/provider/Drivers/CodexManagedProvider.ts b/apps/server/src/provider/Drivers/CodexManagedProvider.ts index 7d1c3eafefde..7c7f7d6ab979 100644 --- a/apps/server/src/provider/Drivers/CodexManagedProvider.ts +++ b/apps/server/src/provider/Drivers/CodexManagedProvider.ts @@ -2,7 +2,7 @@ import { ProviderDriverKind, TextGenerationError, type CodexSettings } from "@t3 import * as Effect from "effect/Effect"; import * as Stream from "effect/Stream"; import * as Option from "effect/Option"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { makeCodexTextGeneration } from "../../textGeneration/CodexTextGeneration.ts"; import { ServerSettingsService } from "../../serverSettings.ts"; import { chatGptModels } from "../CodexChatGptModels.ts"; @@ -19,7 +19,7 @@ import { mergeProviderInstanceEnvironment } from "../ProviderInstanceEnvironment import { type ProviderDriverCreateInput, type ProviderInstance } from "../ProviderDriver.ts"; import { codexContinuationIdentity } from "./CodexHomeLayout.ts"; import { withInstanceIdentity } from "./instanceIdentity.ts"; -import { HttpClient } from "effect/unstable/http"; +import { HttpClient } from "effect/http"; const DRIVER = ProviderDriverKind.make("codex"); export const makeManagedCodexProvider = Effect.fn("makeManagedCodexProvider")(function* ( diff --git a/apps/server/src/provider/Drivers/CursorDriver.test.ts b/apps/server/src/provider/Drivers/CursorDriver.test.ts index 78bafdabc5bf..218af6c817f1 100644 --- a/apps/server/src/provider/Drivers/CursorDriver.test.ts +++ b/apps/server/src/provider/Drivers/CursorDriver.test.ts @@ -8,8 +8,8 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Stream from "effect/Stream"; import { vi } from "vite-plus/test"; -import { HttpClient } from "effect/unstable/http"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import { HttpClient } from "effect/http"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts"; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/provider/Drivers/CursorDriver.ts b/apps/server/src/provider/Drivers/CursorDriver.ts index 116ae062c93c..5e8da04fb205 100644 --- a/apps/server/src/provider/Drivers/CursorDriver.ts +++ b/apps/server/src/provider/Drivers/CursorDriver.ts @@ -12,7 +12,7 @@ import * as Crypto from "effect/Crypto"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { HttpClient } from "effect/unstable/http"; +import { HttpClient } from "effect/http"; import { readCursorUsageLimits } from "../Layers/cursorUsageLimits.ts"; import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts"; diff --git a/apps/server/src/provider/Drivers/GrokDriver.test.ts b/apps/server/src/provider/Drivers/GrokDriver.test.ts index a9d6791a3e50..8d3eca51c78f 100644 --- a/apps/server/src/provider/Drivers/GrokDriver.test.ts +++ b/apps/server/src/provider/Drivers/GrokDriver.test.ts @@ -6,8 +6,8 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; -import { HttpClient } from "effect/unstable/http"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import { HttpClient } from "effect/http"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts"; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/provider/Drivers/GrokDriver.ts b/apps/server/src/provider/Drivers/GrokDriver.ts index c056a740cfac..03b6e6f4f37c 100644 --- a/apps/server/src/provider/Drivers/GrokDriver.ts +++ b/apps/server/src/provider/Drivers/GrokDriver.ts @@ -4,8 +4,8 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { HttpClient } from "effect/unstable/http"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient } from "effect/http"; +import { ChildProcessSpawner } from "effect/process"; import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts"; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/provider/Drivers/GrokSkills.test.ts b/apps/server/src/provider/Drivers/GrokSkills.test.ts index ce8a31b51985..6f194644617f 100644 --- a/apps/server/src/provider/Drivers/GrokSkills.test.ts +++ b/apps/server/src/provider/Drivers/GrokSkills.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { discoverGrokSkills } from "./GrokSkills.ts"; diff --git a/apps/server/src/provider/Drivers/GrokSkills.ts b/apps/server/src/provider/Drivers/GrokSkills.ts index 36391e3d2008..9d0d45d4820e 100644 --- a/apps/server/src/provider/Drivers/GrokSkills.ts +++ b/apps/server/src/provider/Drivers/GrokSkills.ts @@ -19,7 +19,7 @@ import type { GrokSettings, ServerProviderSkill } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import { ChildProcess } from "effect/unstable/process"; +import { ChildProcess } from "effect/process"; import { resolveSpawnCommand } from "@t3tools/shared/shell"; import { spawnAndCollect } from "../providerSnapshot.ts"; diff --git a/apps/server/src/provider/Drivers/OpenCodeDriver.test.ts b/apps/server/src/provider/Drivers/OpenCodeDriver.test.ts index 48100991e71c..94cff709c2de 100644 --- a/apps/server/src/provider/Drivers/OpenCodeDriver.test.ts +++ b/apps/server/src/provider/Drivers/OpenCodeDriver.test.ts @@ -11,8 +11,8 @@ import * as Effect from "effect/Effect"; import * as Fiber from "effect/Fiber"; import * as Layer from "effect/Layer"; import * as TestClock from "effect/testing/TestClock"; -import { HttpClient } from "effect/unstable/http"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient } from "effect/http"; +import { ChildProcessSpawner } from "effect/process"; import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts"; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/provider/Drivers/OpenCodeDriver.ts b/apps/server/src/provider/Drivers/OpenCodeDriver.ts index a16516c40a27..4c3fb6c82475 100644 --- a/apps/server/src/provider/Drivers/OpenCodeDriver.ts +++ b/apps/server/src/provider/Drivers/OpenCodeDriver.ts @@ -21,8 +21,8 @@ import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { HttpClient } from "effect/unstable/http"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient } from "effect/http"; +import { ChildProcessSpawner } from "effect/process"; import * as OpenCode2TextGeneration from "../../textGeneration/OpenCode2TextGeneration.ts"; import { makeOpenCodeTextGeneration } from "../../textGeneration/OpenCodeTextGeneration.ts"; diff --git a/apps/server/src/provider/Drivers/PiDriver.ts b/apps/server/src/provider/Drivers/PiDriver.ts index bed38746b6da..685f6efbaaef 100644 --- a/apps/server/src/provider/Drivers/PiDriver.ts +++ b/apps/server/src/provider/Drivers/PiDriver.ts @@ -11,8 +11,8 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { HttpClient } from "effect/unstable/http"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient } from "effect/http"; +import { ChildProcessSpawner } from "effect/process"; import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts"; import * as ServerConfig from "../../config.ts"; diff --git a/apps/server/src/provider/Layers/ClaudeProvider.ts b/apps/server/src/provider/Layers/ClaudeProvider.ts index 78805fab5ae2..a1b7f2494641 100644 --- a/apps/server/src/provider/Layers/ClaudeProvider.ts +++ b/apps/server/src/provider/Layers/ClaudeProvider.ts @@ -12,7 +12,7 @@ import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Ref from "effect/Ref"; import * as Result from "effect/Result"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { createModelCapabilities } from "@t3tools/shared/model"; import { resolveSpawnCommand } from "@t3tools/shared/shell"; import { diff --git a/apps/server/src/provider/Layers/CodexProvider.ts b/apps/server/src/provider/Layers/CodexProvider.ts index dcb606932ab9..d2fe58913be3 100644 --- a/apps/server/src/provider/Layers/CodexProvider.ts +++ b/apps/server/src/provider/Layers/CodexProvider.ts @@ -7,8 +7,8 @@ import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Types from "effect/Types"; -import * as ChildProcess from "effect/unstable/process/ChildProcess"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcess from "effect/process/ChildProcess"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as CodexClient from "effect-codex-app-server/client"; import * as CodexSchema from "effect-codex-app-server/schema"; import * as CodexErrors from "effect-codex-app-server/errors"; diff --git a/apps/server/src/provider/Layers/GrokProvider.test.ts b/apps/server/src/provider/Layers/GrokProvider.test.ts index a51b124aadf5..c0bf61dc40fa 100644 --- a/apps/server/src/provider/Layers/GrokProvider.test.ts +++ b/apps/server/src/provider/Layers/GrokProvider.test.ts @@ -7,7 +7,7 @@ import { describe, expect, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Schema from "effect/Schema"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import { GrokSettings } from "@t3tools/contracts"; import { diff --git a/apps/server/src/provider/Layers/GrokProvider.ts b/apps/server/src/provider/Layers/GrokProvider.ts index 9da0c08cff4a..2e470a3caef3 100644 --- a/apps/server/src/provider/Layers/GrokProvider.ts +++ b/apps/server/src/provider/Layers/GrokProvider.ts @@ -16,8 +16,8 @@ import * as Exit from "effect/Exit"; import * as Option from "effect/Option"; import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; -import { HttpClient } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { createModelCapabilities } from "@t3tools/shared/model"; import { resolveSpawnCommand } from "@t3tools/shared/shell"; diff --git a/apps/server/src/provider/Layers/OpenCodeProvider.test.ts b/apps/server/src/provider/Layers/OpenCodeProvider.test.ts index e60515694ba5..d5bb089e4c43 100644 --- a/apps/server/src/provider/Layers/OpenCodeProvider.test.ts +++ b/apps/server/src/provider/Layers/OpenCodeProvider.test.ts @@ -10,7 +10,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; import * as TestClock from "effect/testing/TestClock"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import { beforeEach } from "vite-plus/test"; import { OpenCodeSettings } from "@t3tools/contracts"; diff --git a/apps/server/src/provider/Layers/PiProvider.test.ts b/apps/server/src/provider/Layers/PiProvider.test.ts index 4f7a6f6adf1f..7ca54dbf3cb0 100644 --- a/apps/server/src/provider/Layers/PiProvider.test.ts +++ b/apps/server/src/provider/Layers/PiProvider.test.ts @@ -3,7 +3,7 @@ import { assert, describe, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { checkPiProviderStatus, MINIMUM_PI_VERSION } from "./PiProvider.ts"; diff --git a/apps/server/src/provider/Layers/PiProvider.ts b/apps/server/src/provider/Layers/PiProvider.ts index 47285b17f739..1a576c4fe2c3 100644 --- a/apps/server/src/provider/Layers/PiProvider.ts +++ b/apps/server/src/provider/Layers/PiProvider.ts @@ -23,8 +23,8 @@ import * as Stream from "effect/Stream"; import * as Exit from "effect/Exit"; import * as Option from "effect/Option"; import * as Result from "effect/Result"; -import { HttpClient } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { buildPiRpcLaunch, diff --git a/apps/server/src/provider/Layers/ProviderInstanceRegistryLive.test.ts b/apps/server/src/provider/Layers/ProviderInstanceRegistryLive.test.ts index ef6366749be7..4b3b4d17ef10 100644 --- a/apps/server/src/provider/Layers/ProviderInstanceRegistryLive.test.ts +++ b/apps/server/src/provider/Layers/ProviderInstanceRegistryLive.test.ts @@ -45,7 +45,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Stream from "effect/Stream"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import * as BackgroundPolicy from "../../background/BackgroundPolicy.ts"; import * as AntigravityInstallation from "../AntigravityInstallation.ts"; diff --git a/apps/server/src/provider/Layers/ProviderRegistry.test.ts b/apps/server/src/provider/Layers/ProviderRegistry.test.ts index ee52a71bba5f..595d671c0381 100644 --- a/apps/server/src/provider/Layers/ProviderRegistry.test.ts +++ b/apps/server/src/provider/Layers/ProviderRegistry.test.ts @@ -31,8 +31,8 @@ import { type ServerSettings as ContractServerSettings, } from "@t3tools/contracts"; import * as PlatformError from "effect/PlatformError"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient, HttpClientResponse } from "effect/http"; +import { ChildProcessSpawner } from "effect/process"; import { deepMerge } from "@t3tools/shared/Struct"; import { createModelCapabilities } from "@t3tools/shared/model"; import { applyServerSettingsPatch } from "@t3tools/shared/serverSettings"; diff --git a/apps/server/src/provider/Layers/claudeResetCredits.test.ts b/apps/server/src/provider/Layers/claudeResetCredits.test.ts index 17f9a03c48bd..0dcb409ffa3c 100644 --- a/apps/server/src/provider/Layers/claudeResetCredits.test.ts +++ b/apps/server/src/provider/Layers/claudeResetCredits.test.ts @@ -8,7 +8,7 @@ import * as Fiber from "effect/Fiber"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as TestClock from "effect/testing/TestClock"; -import { HttpClient, HttpClientResponse, UrlParams } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse, UrlParams } from "effect/http"; import { describe, expect, it } from "vite-plus/test"; import * as ClaudeResetCredits from "./claudeResetCredits.ts"; diff --git a/apps/server/src/provider/Layers/claudeResetCredits.ts b/apps/server/src/provider/Layers/claudeResetCredits.ts index f02c17214c83..ff2d5778ec9f 100644 --- a/apps/server/src/provider/Layers/claudeResetCredits.ts +++ b/apps/server/src/provider/Layers/claudeResetCredits.ts @@ -19,7 +19,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; const API_BASE = "https://api.anthropic.com"; const PROGRAM = "cedar_ember"; diff --git a/apps/server/src/provider/Layers/cursorUsageLimits.test.ts b/apps/server/src/provider/Layers/cursorUsageLimits.test.ts index a6628d965d0c..5ce2cee7fe8c 100644 --- a/apps/server/src/provider/Layers/cursorUsageLimits.test.ts +++ b/apps/server/src/provider/Layers/cursorUsageLimits.test.ts @@ -4,7 +4,7 @@ import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import { cursorUsageResponseToLimits, readCursorUsageLimits } from "./cursorUsageLimits.ts"; const withNodeServices = (effect: Effect.Effect) => diff --git a/apps/server/src/provider/Layers/cursorUsageLimits.ts b/apps/server/src/provider/Layers/cursorUsageLimits.ts index c798537b5020..470ed06446db 100644 --- a/apps/server/src/provider/Layers/cursorUsageLimits.ts +++ b/apps/server/src/provider/Layers/cursorUsageLimits.ts @@ -8,7 +8,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; import { clampPercent, makeUnavailableUsageLimits, diff --git a/apps/server/src/provider/Layers/grokUsageLimits.ts b/apps/server/src/provider/Layers/grokUsageLimits.ts index 7dc561d07ec0..27ae53bb6638 100644 --- a/apps/server/src/provider/Layers/grokUsageLimits.ts +++ b/apps/server/src/provider/Layers/grokUsageLimits.ts @@ -6,7 +6,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; import { clampPercent, makeUnavailableUsageLimits, diff --git a/apps/server/src/provider/Layers/openCodeUsageLimits.ts b/apps/server/src/provider/Layers/openCodeUsageLimits.ts index 74d0bd75b9f8..f2b0d6ffd21a 100644 --- a/apps/server/src/provider/Layers/openCodeUsageLimits.ts +++ b/apps/server/src/provider/Layers/openCodeUsageLimits.ts @@ -8,7 +8,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; import { clampPercent, diff --git a/apps/server/src/provider/ModelManifest.test.ts b/apps/server/src/provider/ModelManifest.test.ts index 5bfd13a6947d..55db24a22241 100644 --- a/apps/server/src/provider/ModelManifest.test.ts +++ b/apps/server/src/provider/ModelManifest.test.ts @@ -6,7 +6,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as TestClock from "effect/testing/TestClock"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import * as ServerConfig from "../config.ts"; import * as ServerSettings from "../serverSettings.ts"; diff --git a/apps/server/src/provider/ModelManifest.ts b/apps/server/src/provider/ModelManifest.ts index d1af1086e750..2b518b58491e 100644 --- a/apps/server/src/provider/ModelManifest.ts +++ b/apps/server/src/provider/ModelManifest.ts @@ -28,7 +28,7 @@ import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Semaphore from "effect/Semaphore"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import { ServerConfig } from "../config.ts"; import * as ServerSettings from "../serverSettings.ts"; diff --git a/apps/server/src/provider/OpenCodeServerLedger.test.ts b/apps/server/src/provider/OpenCodeServerLedger.test.ts index 99058ab8fe14..8298abfcd3d3 100644 --- a/apps/server/src/provider/OpenCodeServerLedger.test.ts +++ b/apps/server/src/provider/OpenCodeServerLedger.test.ts @@ -12,7 +12,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Scope from "effect/Scope"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as OpenCodeRuntime from "./opencodeRuntime.ts"; import * as OpenCodeServerLedger from "./OpenCodeServerLedger.ts"; diff --git a/apps/server/src/provider/OpenCodeServerLedger.ts b/apps/server/src/provider/OpenCodeServerLedger.ts index 654e4c0c2889..ef833571862a 100644 --- a/apps/server/src/provider/OpenCodeServerLedger.ts +++ b/apps/server/src/provider/OpenCodeServerLedger.ts @@ -6,7 +6,7 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as ServerConfig from "../config.ts"; import { signalProcessGroup } from "../process/processGroup.ts"; diff --git a/apps/server/src/provider/acp/AcpClientTerminals.test.ts b/apps/server/src/provider/acp/AcpClientTerminals.test.ts index 9ac187f3507f..c923a996898f 100644 --- a/apps/server/src/provider/acp/AcpClientTerminals.test.ts +++ b/apps/server/src/provider/acp/AcpClientTerminals.test.ts @@ -2,7 +2,7 @@ import * as NodeServices from "@effect/platform-node/NodeServices"; import { describe, expect, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Result from "effect/Result"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { makeAcpClientTerminals, diff --git a/apps/server/src/provider/acp/AcpClientTerminals.ts b/apps/server/src/provider/acp/AcpClientTerminals.ts index 1d901a2db507..c7743d60daae 100644 --- a/apps/server/src/provider/acp/AcpClientTerminals.ts +++ b/apps/server/src/provider/acp/AcpClientTerminals.ts @@ -6,7 +6,7 @@ import * as Fiber from "effect/Fiber"; import * as Scope from "effect/Scope"; import * as Semaphore from "effect/Semaphore"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as EffectAcpErrors from "effect-acp/errors"; import type * as EffectAcpSchema from "effect-acp/compat"; import * as NodeBuffer from "node:buffer"; diff --git a/apps/server/src/provider/acp/AcpRegistryAuth.ts b/apps/server/src/provider/acp/AcpRegistryAuth.ts index 6c8a0d9f12c1..6a885b711120 100644 --- a/apps/server/src/provider/acp/AcpRegistryAuth.ts +++ b/apps/server/src/provider/acp/AcpRegistryAuth.ts @@ -12,7 +12,7 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Queue from "effect/Queue"; import * as Scope from "effect/Scope"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import type * as AcpSchema from "effect-acp/compat"; import * as PtyAdapter from "../../terminal/PtyAdapter.ts"; diff --git a/apps/server/src/provider/acp/AcpRegistryProbe.ts b/apps/server/src/provider/acp/AcpRegistryProbe.ts index 76d1ca0effde..0ee7ea1a878b 100644 --- a/apps/server/src/provider/acp/AcpRegistryProbe.ts +++ b/apps/server/src/provider/acp/AcpRegistryProbe.ts @@ -19,7 +19,7 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Ref from "effect/Ref"; import * as Result from "effect/Result"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import type * as EffectAcpErrors from "effect-acp/errors"; import type * as EffectAcpSchema from "effect-acp/compat"; diff --git a/apps/server/src/provider/acp/AcpRegistrySupport.test.ts b/apps/server/src/provider/acp/AcpRegistrySupport.test.ts index dd29f89a2549..6ba7700e7da2 100644 --- a/apps/server/src/provider/acp/AcpRegistrySupport.test.ts +++ b/apps/server/src/provider/acp/AcpRegistrySupport.test.ts @@ -14,10 +14,10 @@ import * as Path from "effect/Path"; import * as Fiber from "effect/Fiber"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import * as TestClock from "effect/testing/TestClock"; import * as NodeCrypto from "node:crypto"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as AcpRegistrySupport from "./AcpRegistrySupport.ts"; import * as ServerSettings from "../../serverSettings.ts"; diff --git a/apps/server/src/provider/acp/AcpRegistrySupport.ts b/apps/server/src/provider/acp/AcpRegistrySupport.ts index 600ba3a6aaaa..0b02f733babb 100644 --- a/apps/server/src/provider/acp/AcpRegistrySupport.ts +++ b/apps/server/src/provider/acp/AcpRegistrySupport.ts @@ -35,8 +35,8 @@ import * as Ref from "effect/Ref"; import * as Schema from "effect/Schema"; import * as Semaphore from "effect/Semaphore"; import * as Stream from "effect/Stream"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as NodeCrypto from "node:crypto"; import { collectUint8StreamText } from "../../stream/collectUint8StreamText.ts"; diff --git a/apps/server/src/provider/acp/AcpSessionRuntime.ts b/apps/server/src/provider/acp/AcpSessionRuntime.ts index eb7129cf9482..3ab2154b91fe 100644 --- a/apps/server/src/provider/acp/AcpSessionRuntime.ts +++ b/apps/server/src/provider/acp/AcpSessionRuntime.ts @@ -20,8 +20,8 @@ import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Semaphore from "effect/Semaphore"; import * as Stream from "effect/Stream"; -import * as ChildProcess from "effect/unstable/process/ChildProcess"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcess from "effect/process/ChildProcess"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as EffectAcpClient from "effect-acp/client"; import * as EffectAcpErrors from "effect-acp/errors"; import type * as EffectAcpSchema from "effect-acp/compat"; @@ -1387,7 +1387,8 @@ export const make = ( Effect.gen(function* () { const crypto = yield* Crypto.Crypto; const spawner = yield* ChildProcessSpawner.ChildProcessSpawner; - const runtimeScope = yield* Scope.Scope; + // A child of the caller's scope, so termination can close the runtime without closing the caller's. + const runtimeScope = yield* Scope.fork(yield* Scope.Scope); const eventQueue = yield* Queue.unbounded(); const modeStateRef = yield* Ref.make(undefined); const toolCallsRef = yield* Ref.make(new Map()); diff --git a/apps/server/src/provider/acp/AntigravityAcpSupport.ts b/apps/server/src/provider/acp/AntigravityAcpSupport.ts index 264ff09e4103..a3aa8005cfb1 100644 --- a/apps/server/src/provider/acp/AntigravityAcpSupport.ts +++ b/apps/server/src/provider/acp/AntigravityAcpSupport.ts @@ -13,7 +13,7 @@ import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as EffectAcpErrors from "effect-acp/errors"; import type * as EffectAcpSchema from "effect-acp/compat"; diff --git a/apps/server/src/provider/acp/GrokAcpCliProbe.test.ts b/apps/server/src/provider/acp/GrokAcpCliProbe.test.ts index 514a921db169..b5c8177d61f0 100644 --- a/apps/server/src/provider/acp/GrokAcpCliProbe.test.ts +++ b/apps/server/src/provider/acp/GrokAcpCliProbe.test.ts @@ -15,7 +15,7 @@ import * as Deferred from "effect/Deferred"; import * as Fiber from "effect/Fiber"; import * as FileSystem from "effect/FileSystem"; import * as Stream from "effect/Stream"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { describe, expect } from "vite-plus/test"; import { makeGrokAcpRuntime } from "./GrokAcpSupport.ts"; diff --git a/apps/server/src/provider/acp/GrokAcpSupport.ts b/apps/server/src/provider/acp/GrokAcpSupport.ts index f623b253d1cf..0039a12683b8 100644 --- a/apps/server/src/provider/acp/GrokAcpSupport.ts +++ b/apps/server/src/provider/acp/GrokAcpSupport.ts @@ -10,7 +10,7 @@ import * as Crypto from "effect/Crypto"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Scope from "effect/Scope"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as EffectAcpErrors from "effect-acp/errors"; import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; import { normalizeModelSlug } from "@t3tools/shared/model"; diff --git a/apps/server/src/provider/antigravityAuthSupport.test.ts b/apps/server/src/provider/antigravityAuthSupport.test.ts index c2402c87c3ca..8f794b59a1af 100644 --- a/apps/server/src/provider/antigravityAuthSupport.test.ts +++ b/apps/server/src/provider/antigravityAuthSupport.test.ts @@ -18,9 +18,9 @@ import * as Path from "effect/Path"; import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import * as Ndjson from "effect/unstable/encoding/Ndjson"; -import * as ChildProcess from "effect/unstable/process/ChildProcess"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as Ndjson from "effect/encoding/Ndjson"; +import * as ChildProcess from "effect/process/ChildProcess"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as AcpErrors from "effect-acp/errors"; import { symlinksSupported } from "@t3tools/shared/testing/symlinks"; diff --git a/apps/server/src/provider/antigravityAuthSupport.ts b/apps/server/src/provider/antigravityAuthSupport.ts index 6eaa4ec7a497..7a87854b19db 100644 --- a/apps/server/src/provider/antigravityAuthSupport.ts +++ b/apps/server/src/provider/antigravityAuthSupport.ts @@ -6,14 +6,14 @@ import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; import { resolveNodeExecutable, nodeRuntimeUnavailableMessage } from "@t3tools/shared/nodeRuntime"; import * as Crypto from "effect/Crypto"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Hex from "effect/encoding/Hex"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import type * as PlatformError from "effect/PlatformError"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import * as ChildProcess from "effect/unstable/process/ChildProcess"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcess from "effect/process/ChildProcess"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as AcpErrors from "effect-acp/errors"; import { collectUint8StreamText } from "../stream/collectUint8StreamText.ts"; @@ -202,9 +202,7 @@ export const resolveAntigravityInstanceDirectories = Effect.fn( )(function* (stateDir: string, instanceId: ProviderInstanceId) { const crypto = yield* Crypto.Crypto; const path = yield* Path.Path; - const key = Encoding.encodeHex( - yield* crypto.digest("SHA-256", new TextEncoder().encode(instanceId)), - ); + const key = Hex.encode(yield* crypto.digest("SHA-256", new TextEncoder().encode(instanceId))); return { profile: path.join(stateDir, "providers", "antigravity", key), runtimeTemp: path.join(stateDir, "antigravity-tmp", key.slice(0, 12)), diff --git a/apps/server/src/provider/opencode2/OpenCode2Client.events.test.ts b/apps/server/src/provider/opencode2/OpenCode2Client.events.test.ts index 4dfcfad26e30..333a554a75f4 100644 --- a/apps/server/src/provider/opencode2/OpenCode2Client.events.test.ts +++ b/apps/server/src/provider/opencode2/OpenCode2Client.events.test.ts @@ -7,7 +7,7 @@ import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; import { TestClock } from "effect/testing"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import { describe } from "vite-plus/test"; import * as OpenCode2Client from "./OpenCode2Client.ts"; diff --git a/apps/server/src/provider/opencode2/OpenCode2Client.live.test.ts b/apps/server/src/provider/opencode2/OpenCode2Client.live.test.ts index 8c62ebafba60..95da430a6e2f 100644 --- a/apps/server/src/provider/opencode2/OpenCode2Client.live.test.ts +++ b/apps/server/src/provider/opencode2/OpenCode2Client.live.test.ts @@ -11,7 +11,7 @@ import * as NodeServices from "@effect/platform-node/NodeServices"; import { AbsolutePath, Location, Model, Provider } from "@opencode/client/effect"; import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import * as Fiber from "effect/Fiber"; import * as FileSystem from "effect/FileSystem"; import * as Filter from "effect/Filter"; @@ -19,8 +19,8 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Stream from "effect/Stream"; -import { FetchHttpClient } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { FetchHttpClient } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as NodeCrypto from "node:crypto"; import { describe } from "vite-plus/test"; @@ -36,7 +36,7 @@ const startServer = Effect.fn("OpenCode2ClientLive.startServer")(function* (bina const directory = path.join(root, "work"); yield* fs.makeDirectory(directory); // Non-ASCII on purpose: OpenCode decodes Basic credentials as UTF-8. - const password = `${Encoding.encodeBase64Url(NodeCrypto.randomBytes(32))}-pässwörd€`; + const password = `${Base64Url.encode(NodeCrypto.randomBytes(32))}-pässwörd€`; const child = yield* spawner.spawn( ChildProcess.make(binary, ["serve", "--hostname=127.0.0.1", "--port=0"], { cwd: directory, @@ -89,7 +89,7 @@ describe.runIf(binaryPath !== undefined)("OpenCode2Client live", () => { }); const info = yield* client.server.info(); - assert.strictEqual(info.version, "2.0.18"); + assert.strictEqual(info.version, "2.0.23"); assert.strictEqual(info.pid, server.pid); const session = yield* client.session.create({ diff --git a/apps/server/src/provider/opencode2/OpenCode2Client.test.ts b/apps/server/src/provider/opencode2/OpenCode2Client.test.ts index 33fe77d096ad..52baf0f99647 100644 --- a/apps/server/src/provider/opencode2/OpenCode2Client.test.ts +++ b/apps/server/src/provider/opencode2/OpenCode2Client.test.ts @@ -2,7 +2,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Redacted from "effect/Redacted"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import { describe } from "vite-plus/test"; import * as OpenCode2Client from "./OpenCode2Client.ts"; diff --git a/apps/server/src/provider/opencode2/OpenCode2Client.ts b/apps/server/src/provider/opencode2/OpenCode2Client.ts index d42b9e0cef86..231a5da3ae2b 100644 --- a/apps/server/src/provider/opencode2/OpenCode2Client.ts +++ b/apps/server/src/provider/opencode2/OpenCode2Client.ts @@ -8,11 +8,11 @@ import * as Redacted from "effect/Redacted"; import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import * as Sse from "effect/unstable/encoding/Sse"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientError from "effect/unstable/http/HttpClientError"; -import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest"; -import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"; +import * as Sse from "effect/encoding/Sse"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientError from "effect/http/HttpClientError"; +import * as HttpClientRequest from "effect/http/HttpClientRequest"; +import * as HttpClientResponse from "effect/http/HttpClientResponse"; /** OpenCode 2 accepts only HTTP Basic auth, always with this user name. */ const OPENCODE_USERNAME = "opencode"; diff --git a/apps/server/src/provider/opencode2/OpenCode2Server.live.test.ts b/apps/server/src/provider/opencode2/OpenCode2Server.live.test.ts index 0bb14980ce2b..4fcc7dbdd2d1 100644 --- a/apps/server/src/provider/opencode2/OpenCode2Server.live.test.ts +++ b/apps/server/src/provider/opencode2/OpenCode2Server.live.test.ts @@ -19,8 +19,8 @@ import * as Path from "effect/Path"; import * as Redacted from "effect/Redacted"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import { FetchHttpClient } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { FetchHttpClient } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { describe } from "vite-plus/test"; import * as OpenCodeRuntime from "../opencodeRuntime.ts"; diff --git a/apps/server/src/provider/opencode2/OpenCode2Server.test.ts b/apps/server/src/provider/opencode2/OpenCode2Server.test.ts index f55af658f0b2..b7adc4830cbc 100644 --- a/apps/server/src/provider/opencode2/OpenCode2Server.test.ts +++ b/apps/server/src/provider/opencode2/OpenCode2Server.test.ts @@ -12,7 +12,7 @@ import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Redacted from "effect/Redacted"; import * as TestClock from "effect/testing/TestClock"; -import { FetchHttpClient, HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { FetchHttpClient, HttpClient, HttpClientResponse } from "effect/http"; import { describe } from "vite-plus/test"; import * as OpenCodeRuntime from "../opencodeRuntime.ts"; diff --git a/apps/server/src/provider/opencode2/OpenCode2Server.ts b/apps/server/src/provider/opencode2/OpenCode2Server.ts index ebb8dbd48d30..993905521146 100644 --- a/apps/server/src/provider/opencode2/OpenCode2Server.ts +++ b/apps/server/src/provider/opencode2/OpenCode2Server.ts @@ -9,11 +9,11 @@ import type { OpenCodeClient } from "@opencode/client/effect"; import * as Context from "effect/Context"; import * as Crypto from "effect/Crypto"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import * as Layer from "effect/Layer"; import * as P from "effect/Predicate"; import * as Redacted from "effect/Redacted"; -import * as HttpClientError from "effect/unstable/http/HttpClientError"; +import * as HttpClientError from "effect/http/HttpClientError"; import { OpenCodeRuntimeError } from "../opencodeRuntime.ts"; import * as OpenCodeServerOwner from "../OpenCodeServerOwner.ts"; @@ -45,7 +45,7 @@ export class OpenCode2Server extends Context.Service< export const generatePassword = Effect.gen(function* () { const crypto = yield* Crypto.Crypto; const bytes = yield* crypto.randomBytes(32).pipe(Effect.orDie); - return Redacted.make(Encoding.encodeBase64Url(bytes), { label: "OPENCODE_PASSWORD" }); + return Redacted.make(Base64Url.encode(bytes), { label: "OPENCODE_PASSWORD" }); }); /** diff --git a/apps/server/src/provider/opencodeRuntime.environment.test.ts b/apps/server/src/provider/opencodeRuntime.environment.test.ts index 586b7fb1448d..6b7284d0a6f8 100644 --- a/apps/server/src/provider/opencodeRuntime.environment.test.ts +++ b/apps/server/src/provider/opencodeRuntime.environment.test.ts @@ -12,7 +12,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as TestClock from "effect/testing/TestClock"; -import { FetchHttpClient, HttpClient } from "effect/unstable/http"; +import { FetchHttpClient, HttpClient } from "effect/http"; import { describe, expect, it } from "vite-plus/test"; import * as OpenCodeRuntime from "./opencodeRuntime.ts"; diff --git a/apps/server/src/provider/opencodeRuntime.ts b/apps/server/src/provider/opencodeRuntime.ts index f14a93257486..e318c0daf190 100644 --- a/apps/server/src/provider/opencodeRuntime.ts +++ b/apps/server/src/provider/opencodeRuntime.ts @@ -28,7 +28,7 @@ import * as Result from "effect/Result"; import * as Scope from "effect/Scope"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { signalProcessGroup } from "../process/processGroup.ts"; import { isWindowsCommandNotFound } from "../processRunner.ts"; diff --git a/apps/server/src/provider/opencodeVersionProbe.test.ts b/apps/server/src/provider/opencodeVersionProbe.test.ts index 17b2ba201b27..75d3873e19a4 100644 --- a/apps/server/src/provider/opencodeVersionProbe.test.ts +++ b/apps/server/src/provider/opencodeVersionProbe.test.ts @@ -1,6 +1,6 @@ import { assert, describe, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; -import { HttpClient, HttpClientError, HttpClientRequest } from "effect/unstable/http"; +import { HttpClient, HttpClientError, HttpClientRequest } from "effect/http"; import * as OpenCodeRuntime from "./opencodeRuntime.ts"; import { diff --git a/apps/server/src/provider/opencodeVersionProbe.ts b/apps/server/src/provider/opencodeVersionProbe.ts index f31a79b63b47..d6f9f1bce8e1 100644 --- a/apps/server/src/provider/opencodeVersionProbe.ts +++ b/apps/server/src/provider/opencodeVersionProbe.ts @@ -6,7 +6,7 @@ import * as Effect from "effect/Effect"; import * as Exit from "effect/Exit"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import { HttpClient, HttpClientRequest } from "effect/unstable/http"; +import { HttpClient, HttpClientRequest } from "effect/http"; import * as OpenCodeRuntime from "./opencodeRuntime.ts"; import { parseGenericCliVersion } from "./providerSnapshot.ts"; diff --git a/apps/server/src/provider/providerMaintenance.test.ts b/apps/server/src/provider/providerMaintenance.test.ts index c832ee8c17e9..65ffc731ddce 100644 --- a/apps/server/src/provider/providerMaintenance.test.ts +++ b/apps/server/src/provider/providerMaintenance.test.ts @@ -11,8 +11,8 @@ import * as Crypto from "effect/Crypto"; import * as Effect from "effect/Effect"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { HttpClient } from "effect/unstable/http"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient } from "effect/http"; +import { ChildProcessSpawner } from "effect/process"; import { createProviderVersionAdvisory, makeTargetedProviderUpdateAction, diff --git a/apps/server/src/provider/providerMaintenance.ts b/apps/server/src/provider/providerMaintenance.ts index 3314ebe0bae7..e5d48a989465 100644 --- a/apps/server/src/provider/providerMaintenance.ts +++ b/apps/server/src/provider/providerMaintenance.ts @@ -17,8 +17,8 @@ import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { HttpClient, HttpClientRequest } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient, HttpClientRequest } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { collectUint8StreamText } from "../stream/collectUint8StreamText.ts"; diff --git a/apps/server/src/provider/providerMaintenanceRunner.test.ts b/apps/server/src/provider/providerMaintenanceRunner.test.ts index 64554ce263d3..52c70fc18888 100644 --- a/apps/server/src/provider/providerMaintenanceRunner.test.ts +++ b/apps/server/src/provider/providerMaintenanceRunner.test.ts @@ -15,8 +15,8 @@ import * as Ref from "effect/Ref"; import * as Schema from "effect/Schema"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient, HttpClientResponse } from "effect/http"; +import { ChildProcessSpawner } from "effect/process"; import { HostProcessEnvironment, HostProcessPlatform } from "@t3tools/shared/hostProcess"; import { SpawnExecutableResolution } from "@t3tools/shared/shell"; diff --git a/apps/server/src/provider/providerMaintenanceRunner.ts b/apps/server/src/provider/providerMaintenanceRunner.ts index 918e9ce3454e..b47befabe08f 100644 --- a/apps/server/src/provider/providerMaintenanceRunner.ts +++ b/apps/server/src/provider/providerMaintenanceRunner.ts @@ -18,8 +18,8 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Ref from "effect/Ref"; import * as Schema from "effect/Schema"; -import { HttpClient } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as ModelManifest from "./ModelManifest.ts"; import { resolveProviderCompatibility } from "./providerCompatibility.ts"; diff --git a/apps/server/src/provider/providerSnapshot.test.ts b/apps/server/src/provider/providerSnapshot.test.ts index 5c45362daa74..32d8649d2699 100644 --- a/apps/server/src/provider/providerSnapshot.test.ts +++ b/apps/server/src/provider/providerSnapshot.test.ts @@ -7,7 +7,7 @@ import * as Layer from "effect/Layer"; import * as PlatformError from "effect/PlatformError"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { isCommandMissingCause, diff --git a/apps/server/src/provider/providerSnapshot.ts b/apps/server/src/provider/providerSnapshot.ts index 002ee3633bf1..f180c5facb1c 100644 --- a/apps/server/src/provider/providerSnapshot.ts +++ b/apps/server/src/provider/providerSnapshot.ts @@ -15,7 +15,7 @@ import * as Effect from "effect/Effect"; import * as PlatformError from "effect/PlatformError"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { readCustomModelEntries } from "@t3tools/shared/model"; import { isWindowsCommandNotFound } from "../processRunner.ts"; import { createProviderVersionAdvisory } from "./providerMaintenance.ts"; diff --git a/apps/server/src/provider/testFixtures/opencodeProbeResponses.ts b/apps/server/src/provider/testFixtures/opencodeProbeResponses.ts index 4ab85d22e550..0eff526acd4f 100644 --- a/apps/server/src/provider/testFixtures/opencodeProbeResponses.ts +++ b/apps/server/src/provider/testFixtures/opencodeProbeResponses.ts @@ -3,7 +3,7 @@ * `HttpClient` so the version probe runs against real bytes. */ import * as Effect from "effect/Effect"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; interface RecordedResponse { readonly status: number; diff --git a/apps/server/src/pullRequest/AzureDevOpsPullRequestCli.test.ts b/apps/server/src/pullRequest/AzureDevOpsPullRequestCli.test.ts index 6e378c43b1b6..a6824d8a0a13 100644 --- a/apps/server/src/pullRequest/AzureDevOpsPullRequestCli.test.ts +++ b/apps/server/src/pullRequest/AzureDevOpsPullRequestCli.test.ts @@ -1,7 +1,7 @@ import { afterEach, assert, expect, it, vi } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as AzureDevOpsCli from "../sourceControl/AzureDevOpsCli.ts"; import * as AzureDevOpsPullRequestCli from "./AzureDevOpsPullRequestCli.ts"; diff --git a/apps/server/src/pullRequest/GitHubPullRequestCli.test.ts b/apps/server/src/pullRequest/GitHubPullRequestCli.test.ts index 7db96681297f..3ccbf8194213 100644 --- a/apps/server/src/pullRequest/GitHubPullRequestCli.test.ts +++ b/apps/server/src/pullRequest/GitHubPullRequestCli.test.ts @@ -6,7 +6,7 @@ import * as Fiber from "effect/Fiber"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; import * as TestClock from "effect/testing/TestClock"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as GitHubCli from "../sourceControl/GitHubCli.ts"; import * as VcsProcess from "../vcs/VcsProcess.ts"; diff --git a/apps/server/src/pullRequest/GitLabPullRequestCli.test.ts b/apps/server/src/pullRequest/GitLabPullRequestCli.test.ts index daa85ee9eb8f..76fb1059b91d 100644 --- a/apps/server/src/pullRequest/GitLabPullRequestCli.test.ts +++ b/apps/server/src/pullRequest/GitLabPullRequestCli.test.ts @@ -1,7 +1,7 @@ import { afterEach, assert, expect, it, vi } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as GitLabCli from "../sourceControl/GitLabCli.ts"; import * as GitLabPullRequestCli from "./GitLabPullRequestCli.ts"; diff --git a/apps/server/src/pullRequest/PullRequestReadCache.test.ts b/apps/server/src/pullRequest/PullRequestReadCache.test.ts index 03bfe88abfd0..c4df383e4b1a 100644 --- a/apps/server/src/pullRequest/PullRequestReadCache.test.ts +++ b/apps/server/src/pullRequest/PullRequestReadCache.test.ts @@ -6,7 +6,7 @@ import * as Effect from "effect/Effect"; import * as Fiber from "effect/Fiber"; import * as FileSystem from "effect/FileSystem"; import * as TestClock from "effect/testing/TestClock"; -import * as KeyValueStore from "effect/unstable/persistence/KeyValueStore"; +import * as KeyValueStore from "effect/persistence/KeyValueStore"; import * as PullRequestReadCache from "./PullRequestReadCache.ts"; const cacheLayer = (directory: string) => diff --git a/apps/server/src/pullRequest/PullRequestReadCache.ts b/apps/server/src/pullRequest/PullRequestReadCache.ts index da48e2694f76..b7188d514f82 100644 --- a/apps/server/src/pullRequest/PullRequestReadCache.ts +++ b/apps/server/src/pullRequest/PullRequestReadCache.ts @@ -4,7 +4,7 @@ import * as Equal from "effect/Equal"; import * as Hash from "effect/Hash"; import { PullRequestOperationError, PullRequestUnavailableError } from "@t3tools/contracts"; import * as Crypto from "effect/Crypto"; -import * as Encoding from "effect/Encoding"; +import * as Hex from "effect/encoding/Hex"; import * as Context from "effect/Context"; import * as Duration from "effect/Duration"; import * as Effect from "effect/Effect"; @@ -13,10 +13,10 @@ import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Semaphore from "effect/Semaphore"; -import * as KeyValueStore from "effect/unstable/persistence/KeyValueStore"; -import * as Persistable from "effect/unstable/persistence/Persistable"; -import * as PersistedCache from "effect/unstable/persistence/PersistedCache"; -import * as Persistence from "effect/unstable/persistence/Persistence"; +import * as KeyValueStore from "effect/persistence/KeyValueStore"; +import * as Persistable from "effect/persistence/Persistable"; +import * as PersistedCache from "effect/persistence/PersistedCache"; +import * as Persistence from "effect/persistence/Persistence"; import * as ServerConfig from "../config.ts"; const CONCURRENT_READS = 512; @@ -72,7 +72,7 @@ export const make = Effect.gen(function* () { let enabled = true; const lock = yield* Semaphore.make(CONCURRENT_READS); const digest = (key: string) => - crypto.digest("SHA-256", new TextEncoder().encode(key)).pipe(Effect.map(Encoding.encodeHex)); + crypto.digest("SHA-256", new TextEncoder().encode(key)).pipe(Effect.map(Hex.encode)); const revisions = yield* Cache.makeWith( () => backing diff --git a/apps/server/src/pullRequest/PullRequestService.test.ts b/apps/server/src/pullRequest/PullRequestService.test.ts index 14785b3f8e6b..7f62db11fec6 100644 --- a/apps/server/src/pullRequest/PullRequestService.test.ts +++ b/apps/server/src/pullRequest/PullRequestService.test.ts @@ -1,6 +1,6 @@ import * as NodeServices from "@effect/platform-node/NodeServices"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; -import * as KeyValueStore from "effect/unstable/persistence/KeyValueStore"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; +import * as KeyValueStore from "effect/persistence/KeyValueStore"; import { assert, it } from "@effect/vitest"; import * as Cause from "effect/Cause"; import * as Clock from "effect/Clock"; diff --git a/apps/server/src/pullRequest/gitHubConditionalChecks.test.ts b/apps/server/src/pullRequest/gitHubConditionalChecks.test.ts index d4772789e133..7ef2acebad94 100644 --- a/apps/server/src/pullRequest/gitHubConditionalChecks.test.ts +++ b/apps/server/src/pullRequest/gitHubConditionalChecks.test.ts @@ -4,7 +4,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; import * as Redacted from "effect/Redacted"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import type { PullRequestCheck } from "@t3tools/contracts"; import * as GitHubCli from "../sourceControl/GitHubCli.ts"; diff --git a/apps/server/src/pullRequest/githubStackActions.test.ts b/apps/server/src/pullRequest/githubStackActions.test.ts index 4ed254514ee0..61ad7da3c7b0 100644 --- a/apps/server/src/pullRequest/githubStackActions.test.ts +++ b/apps/server/src/pullRequest/githubStackActions.test.ts @@ -3,7 +3,7 @@ import * as Layer from "effect/Layer"; import * as Effect from "effect/Effect"; import * as Fiber from "effect/Fiber"; import * as TestClock from "effect/testing/TestClock"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as GitHubCli from "../sourceControl/GitHubCli.ts"; import { runGitHubStackAction as runStackAction } from "./githubStackActions.ts"; diff --git a/apps/server/src/pullRequest/http.ts b/apps/server/src/pullRequest/http.ts index 88756e64accb..3676f329748c 100644 --- a/apps/server/src/pullRequest/http.ts +++ b/apps/server/src/pullRequest/http.ts @@ -1,6 +1,6 @@ import { AuthOrchestrationReadScope, EnvironmentHttpApi } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; -import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder"; +import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder"; import { annotateEnvironmentRequest, requireEnvironmentScope } from "../auth/http.ts"; import * as PullRequestService from "./PullRequestService.ts"; diff --git a/apps/server/src/pullRequest/linkedThreads.test.ts b/apps/server/src/pullRequest/linkedThreads.test.ts index 90832a03a42a..3ec69a74d20b 100644 --- a/apps/server/src/pullRequest/linkedThreads.test.ts +++ b/apps/server/src/pullRequest/linkedThreads.test.ts @@ -1,7 +1,7 @@ import { assert, expect, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { SqlitePersistenceMemory } from "../persistence/Layers/Sqlite.ts"; import { listLinkedPullRequestThreads } from "./linkedThreads.ts"; diff --git a/apps/server/src/pullRequest/linkedThreads.ts b/apps/server/src/pullRequest/linkedThreads.ts index e60598534620..f5bf1d9c286c 100644 --- a/apps/server/src/pullRequest/linkedThreads.ts +++ b/apps/server/src/pullRequest/linkedThreads.ts @@ -10,7 +10,7 @@ import { } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; const decodeLinkedThreads = Schema.decodeUnknownEffect(PullRequestLinkedThreadsResult); diff --git a/apps/server/src/relay/AgentAwarenessRelay.test.ts b/apps/server/src/relay/AgentAwarenessRelay.test.ts index 4467fd9768ea..9c69a2cc524c 100644 --- a/apps/server/src/relay/AgentAwarenessRelay.test.ts +++ b/apps/server/src/relay/AgentAwarenessRelay.test.ts @@ -25,7 +25,7 @@ import * as Ref from "effect/Ref"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient"; +import * as FetchHttpClient from "effect/http/FetchHttpClient"; import * as ServerSecretStore from "../auth/ServerSecretStore.ts"; import { diff --git a/apps/server/src/relay/AgentAwarenessRelay.ts b/apps/server/src/relay/AgentAwarenessRelay.ts index bc0e3d233119..25c3d1cb1bdc 100644 --- a/apps/server/src/relay/AgentAwarenessRelay.ts +++ b/apps/server/src/relay/AgentAwarenessRelay.ts @@ -32,10 +32,10 @@ import * as Queue from "effect/Queue"; import * as Ref from "effect/Ref"; import type * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest"; -import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient"; +import * as FetchHttpClient from "effect/http/FetchHttpClient"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientRequest from "effect/http/HttpClientRequest"; +import * as HttpApiClient from "effect/http-api/HttpApiClient"; import * as ServerSecretStore from "../auth/ServerSecretStore.ts"; import { diff --git a/apps/server/src/resourceTelemetry/DesktopTelemetryReceiver.ts b/apps/server/src/resourceTelemetry/DesktopTelemetryReceiver.ts index 2084fd47350a..cb9bee58f7cd 100644 --- a/apps/server/src/resourceTelemetry/DesktopTelemetryReceiver.ts +++ b/apps/server/src/resourceTelemetry/DesktopTelemetryReceiver.ts @@ -23,7 +23,7 @@ import * as Schema from "effect/Schema"; import * as Semaphore from "effect/Semaphore"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import * as Ndjson from "effect/unstable/encoding/Ndjson"; +import * as Ndjson from "effect/encoding/Ndjson"; import * as ServerConfig from "../config.ts"; import * as ServerSettings from "../serverSettings.ts"; diff --git a/apps/server/src/resourceTelemetry/HostResources.ts b/apps/server/src/resourceTelemetry/HostResources.ts index 392ea1650ea5..607172b0f109 100644 --- a/apps/server/src/resourceTelemetry/HostResources.ts +++ b/apps/server/src/resourceTelemetry/HostResources.ts @@ -7,7 +7,7 @@ import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; export class HostResources extends Context.Service< HostResources, diff --git a/apps/server/src/resourceTelemetry/NativeTelemetryClient.ts b/apps/server/src/resourceTelemetry/NativeTelemetryClient.ts index cf618aedbea7..5630467655f8 100644 --- a/apps/server/src/resourceTelemetry/NativeTelemetryClient.ts +++ b/apps/server/src/resourceTelemetry/NativeTelemetryClient.ts @@ -32,8 +32,8 @@ import * as Schema from "effect/Schema"; import * as Semaphore from "effect/Semaphore"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import * as Ndjson from "effect/unstable/encoding/Ndjson"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import * as Ndjson from "effect/encoding/Ndjson"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as ResourceMonitorBinary from "./ResourceMonitorBinary.ts"; import * as ServerConfig from "../config.ts"; diff --git a/apps/server/src/scheduledTasks/ScheduledTaskService.test.ts b/apps/server/src/scheduledTasks/ScheduledTaskService.test.ts index 19bb8bf2fa0e..0095d1436c17 100644 --- a/apps/server/src/scheduledTasks/ScheduledTaskService.test.ts +++ b/apps/server/src/scheduledTasks/ScheduledTaskService.test.ts @@ -8,7 +8,7 @@ import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Logger from "effect/Logger"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as Deferred from "effect/Deferred"; import * as Ref from "effect/Ref"; diff --git a/apps/server/src/scheduledTasks/ScheduledTaskService.ts b/apps/server/src/scheduledTasks/ScheduledTaskService.ts index d2a6dedc46f5..f6fd7e9cb8c5 100644 --- a/apps/server/src/scheduledTasks/ScheduledTaskService.ts +++ b/apps/server/src/scheduledTasks/ScheduledTaskService.ts @@ -26,7 +26,7 @@ import * as Ref from "effect/Ref"; import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as ThreadLaunchService from "../orchestration-v2/ThreadLaunchService.ts"; import * as ThreadManagementService from "../orchestration-v2/ThreadManagementService.ts"; diff --git a/apps/server/src/scheduling/Scheduler.integration.test.ts b/apps/server/src/scheduling/Scheduler.integration.test.ts index 3a437ebe533c..0984cee10874 100644 --- a/apps/server/src/scheduling/Scheduler.integration.test.ts +++ b/apps/server/src/scheduling/Scheduler.integration.test.ts @@ -15,7 +15,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Queue from "effect/Queue"; import * as Ref from "effect/Ref"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as TestClock from "effect/testing/TestClock"; import * as ProjectionStore from "../orchestration-v2/ProjectionStore.ts"; diff --git a/apps/server/src/server.ts b/apps/server/src/server.ts index 50322b82857d..4f7db2a7141e 100644 --- a/apps/server/src/server.ts +++ b/apps/server/src/server.ts @@ -18,8 +18,8 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Stream from "effect/Stream"; import * as Schedule from "effect/Schedule"; -import { FetchHttpClient, HttpRouter, HttpServer } from "effect/unstable/http"; -import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder"; +import { FetchHttpClient, HttpRouter, HttpServer } from "effect/http"; +import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder"; import * as BackgroundPolicy from "./background/BackgroundPolicy.ts"; import * as HostPowerMonitor from "./background/HostPowerMonitor.ts"; @@ -32,7 +32,7 @@ import { staticAndDevRouteLayer, browserApiCorsLayer, httpCompressionLayer, - untracedRequestsLayer, + withUntracedRequests, } from "./http.ts"; import { guardHttpResponseWriteErrors } from "./httpResponseErrorGuard.ts"; import { fixPath } from "./os-jank.ts"; @@ -660,8 +660,6 @@ const makeRoutesLayer = Layer.mergeAll( McpHttpServer.layer.pipe( Layer.provide(ProviderAdapterRegistry.layerFromProviderInstanceRegistry), ), - // Last, so no route layer can replace the server's one TracerDisabledWhen. - untracedRequestsLayer, ).pipe( // Both transports consume the same service instance, so caches single-flight across clients // and mutations observed on WebSocket invalidate patches subsequently read over HTTP. @@ -1012,7 +1010,10 @@ const makeServerLayer = Layer.unwrap( const routesLayer = HttpRouter.serve(makeRoutesLayer.pipe(Layer.provide(launcherLayer)), { disableLogger: !config.logWebSocketEvents, routerConfig: HTTP_ROUTER_CONFIG, - }).pipe(Layer.tap(() => Deferred.succeed(routesReady, undefined).pipe(Effect.orDie))); + }).pipe( + withUntracedRequests, + Layer.tap(() => Deferred.succeed(routesReady, undefined).pipe(Effect.orDie)), + ); const serverApplicationLayer = Layer.mergeAll( routesLayer, httpListeningLayer, diff --git a/apps/server/src/serverLogger.test.ts b/apps/server/src/serverLogger.test.ts index 43843b249eea..d7307709212e 100644 --- a/apps/server/src/serverLogger.test.ts +++ b/apps/server/src/serverLogger.test.ts @@ -6,8 +6,8 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Tracer from "effect/Tracer"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientResponse from "effect/http/HttpClientResponse"; import { DEFAULT_SIGNAL_EXPORT } from "@t3tools/shared/observability"; import * as OtelEnvironment from "@t3tools/shared/otelEnvironment"; diff --git a/apps/server/src/serverLogger.ts b/apps/server/src/serverLogger.ts index 795a6975312e..ae602b922967 100644 --- a/apps/server/src/serverLogger.ts +++ b/apps/server/src/serverLogger.ts @@ -3,8 +3,8 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Logger from "effect/Logger"; import * as References from "effect/References"; -import * as OtlpExporter from "effect/unstable/observability/OtlpExporter"; -import * as OtlpLogger from "effect/unstable/observability/OtlpLogger"; +import * as OtlpExporter from "effect/observability/OtlpExporter"; +import * as OtlpLogger from "effect/observability/OtlpLogger"; import * as ServerConfig from "./config.ts"; diff --git a/apps/server/src/serverSettings.test.ts b/apps/server/src/serverSettings.test.ts index 05c685259f73..35df600e76a6 100644 --- a/apps/server/src/serverSettings.test.ts +++ b/apps/server/src/serverSettings.test.ts @@ -24,7 +24,7 @@ import * as PlatformError from "effect/PlatformError"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as ServerSecretStore from "./auth/ServerSecretStore.ts"; import * as ServerConfig from "./config.ts"; import { SqlitePersistenceMemory } from "./persistence/Layers/Sqlite.ts"; diff --git a/apps/server/src/serverSettings.ts b/apps/server/src/serverSettings.ts index 7d4d8b4c268e..04530f9f790a 100644 --- a/apps/server/src/serverSettings.ts +++ b/apps/server/src/serverSettings.ts @@ -50,7 +50,7 @@ import * as SchemaTransformation from "effect/SchemaTransformation"; import * as Semaphore from "effect/Semaphore"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import { writeFileStringAtomically } from "./atomicWrite.ts"; import { resolveSymlinkTarget } from "@t3tools/shared/symlink"; import * as ServerConfig from "./config.ts"; diff --git a/apps/server/src/sourceControl/AzureDevOpsCli.test.ts b/apps/server/src/sourceControl/AzureDevOpsCli.test.ts index 24b28af13fe4..aa3874ebaffe 100644 --- a/apps/server/src/sourceControl/AzureDevOpsCli.test.ts +++ b/apps/server/src/sourceControl/AzureDevOpsCli.test.ts @@ -5,7 +5,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as PlatformError from "effect/PlatformError"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { VcsProcessExitError, VcsProcessSpawnError } from "@t3tools/contracts"; import * as VcsProcess from "../vcs/VcsProcess.ts"; diff --git a/apps/server/src/sourceControl/BitbucketApi.test.ts b/apps/server/src/sourceControl/BitbucketApi.test.ts index 83965a38b21c..8e2bc56c007b 100644 --- a/apps/server/src/sourceControl/BitbucketApi.test.ts +++ b/apps/server/src/sourceControl/BitbucketApi.test.ts @@ -7,12 +7,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as TestClock from "effect/testing/TestClock"; -import { - HttpClient, - HttpClientError, - HttpClientRequest, - HttpClientResponse, -} from "effect/unstable/http"; +import { HttpClient, HttpClientError, HttpClientRequest, HttpClientResponse } from "effect/http"; import { GitCommandError } from "@t3tools/contracts"; import * as BitbucketApi from "./BitbucketApi.ts"; diff --git a/apps/server/src/sourceControl/BitbucketApi.ts b/apps/server/src/sourceControl/BitbucketApi.ts index 2404e6b497e3..3f34385a2d3c 100644 --- a/apps/server/src/sourceControl/BitbucketApi.ts +++ b/apps/server/src/sourceControl/BitbucketApi.ts @@ -15,7 +15,7 @@ import { type SourceControlRepositoryCloneUrls, type SourceControlRepositoryVisibility, } from "@t3tools/contracts"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; import { sanitizeBranchFragment } from "@t3tools/shared/git"; import { detectSourceControlProviderFromRemoteUrl, diff --git a/apps/server/src/sourceControl/ForgejoCli.ts b/apps/server/src/sourceControl/ForgejoCli.ts index 0eacba0759cf..c9298efb9d1d 100644 --- a/apps/server/src/sourceControl/ForgejoCli.ts +++ b/apps/server/src/sourceControl/ForgejoCli.ts @@ -9,8 +9,8 @@ import * as Semaphore from "effect/Semaphore"; import * as NodeOS from "node:os"; // @effect-diagnostics-next-line nodeBuiltinImport:off - fj storage paths use explicit Windows and POSIX layouts, independently of this process's platform. import * as NodePath from "node:path"; -import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/http"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/http"; +import { ChildProcessSpawner } from "effect/process"; import { decodeJsonResult } from "@t3tools/shared/schemaJson"; import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; import * as VcsProcess from "../vcs/VcsProcess.ts"; diff --git a/apps/server/src/sourceControl/GitHubCli.test.ts b/apps/server/src/sourceControl/GitHubCli.test.ts index b604ec568aeb..88c877605381 100644 --- a/apps/server/src/sourceControl/GitHubCli.test.ts +++ b/apps/server/src/sourceControl/GitHubCli.test.ts @@ -9,7 +9,7 @@ import * as Layer from "effect/Layer"; import * as PlatformError from "effect/PlatformError"; import * as Redacted from "effect/Redacted"; import * as Schema from "effect/Schema"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { VcsProcessExitError, VcsProcessSpawnError } from "@t3tools/contracts"; import * as VcsProcess from "../vcs/VcsProcess.ts"; diff --git a/apps/server/src/sourceControl/GitHubSourceControlProvider.test.ts b/apps/server/src/sourceControl/GitHubSourceControlProvider.test.ts index 751420dfc5a1..a486c27ab66c 100644 --- a/apps/server/src/sourceControl/GitHubSourceControlProvider.test.ts +++ b/apps/server/src/sourceControl/GitHubSourceControlProvider.test.ts @@ -3,7 +3,7 @@ import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as VcsProcess from "../vcs/VcsProcess.ts"; import * as GitHubCli from "./GitHubCli.ts"; diff --git a/apps/server/src/sourceControl/GitLabCli.test.ts b/apps/server/src/sourceControl/GitLabCli.test.ts index c5f22fe3088f..a87a32831098 100644 --- a/apps/server/src/sourceControl/GitLabCli.test.ts +++ b/apps/server/src/sourceControl/GitLabCli.test.ts @@ -1,7 +1,7 @@ import { assert, it, afterEach, expect, vi } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { VcsProcessExitError } from "@t3tools/contracts"; diff --git a/apps/server/src/sourceControl/GitLabSourceControlProvider.test.ts b/apps/server/src/sourceControl/GitLabSourceControlProvider.test.ts index de0e6bad76c0..513c2e2fc3b5 100644 --- a/apps/server/src/sourceControl/GitLabSourceControlProvider.test.ts +++ b/apps/server/src/sourceControl/GitLabSourceControlProvider.test.ts @@ -2,7 +2,7 @@ import { assert, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as GitLabCli from "./GitLabCli.ts"; import { parseGitLabAuthStatusHosts } from "./gitLabAuthStatus.ts"; diff --git a/apps/server/src/sourceControl/SourceControlDiscovery.test.ts b/apps/server/src/sourceControl/SourceControlDiscovery.test.ts index 1f5a8138b252..397eeb3af60a 100644 --- a/apps/server/src/sourceControl/SourceControlDiscovery.test.ts +++ b/apps/server/src/sourceControl/SourceControlDiscovery.test.ts @@ -7,8 +7,8 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { ChildProcessSpawner } from "effect/unstable/process"; -import { FetchHttpClient, HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { ChildProcessSpawner } from "effect/process"; +import { FetchHttpClient, HttpClient, HttpClientResponse } from "effect/http"; import { VcsProcessSpawnError } from "@t3tools/contracts"; import * as ServerConfig from "../config.ts"; diff --git a/apps/server/src/sourceControl/SourceControlProviderRegistry.test.ts b/apps/server/src/sourceControl/SourceControlProviderRegistry.test.ts index 11c0fcc97cd0..ed590bc89c85 100644 --- a/apps/server/src/sourceControl/SourceControlProviderRegistry.test.ts +++ b/apps/server/src/sourceControl/SourceControlProviderRegistry.test.ts @@ -4,7 +4,7 @@ import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { VcsRepositoryDetectionError } from "@t3tools/contracts"; import * as ServerConfig from "../config.ts"; diff --git a/apps/server/src/sourceControl/SourceControlRepositoryService.test.ts b/apps/server/src/sourceControl/SourceControlRepositoryService.test.ts index ea90320eb8b6..d5f870872ccb 100644 --- a/apps/server/src/sourceControl/SourceControlRepositoryService.test.ts +++ b/apps/server/src/sourceControl/SourceControlRepositoryService.test.ts @@ -6,7 +6,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as Layer from "effect/Layer"; import * as PlatformError from "effect/PlatformError"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { GitCommandError, SourceControlProviderError } from "@t3tools/contracts"; diff --git a/apps/server/src/startupAccess.ts b/apps/server/src/startupAccess.ts index 041d43315ee8..4bc2578eeca7 100644 --- a/apps/server/src/startupAccess.ts +++ b/apps/server/src/startupAccess.ts @@ -2,7 +2,7 @@ import * as NodeOS from "node:os"; import { QrCode } from "@t3tools/shared/qrCode"; import * as Effect from "effect/Effect"; -import { HttpServer } from "effect/unstable/http"; +import { HttpServer } from "effect/http"; import * as ServerConfig from "./config.ts"; import * as EnvironmentAuth from "./auth/EnvironmentAuth.ts"; diff --git a/apps/server/src/storageCleanup.ts b/apps/server/src/storageCleanup.ts index ec7a10e403cc..6b68d986dabe 100644 --- a/apps/server/src/storageCleanup.ts +++ b/apps/server/src/storageCleanup.ts @@ -3,7 +3,7 @@ import { OrchestrationV2ProviderSessionJson, } from "@t3tools/contracts"; import * as Schema from "effect/Schema"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import type { OrchestrationV2ThreadShell, ProjectId, diff --git a/apps/server/src/telemetry/AnalyticsService.test.ts b/apps/server/src/telemetry/AnalyticsService.test.ts index e2966306329d..c81278179c44 100644 --- a/apps/server/src/telemetry/AnalyticsService.test.ts +++ b/apps/server/src/telemetry/AnalyticsService.test.ts @@ -6,11 +6,11 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; import * as TestClock from "effect/testing/TestClock"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientError from "effect/unstable/http/HttpClientError"; -import * as HttpServer from "effect/unstable/http/HttpServer"; -import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest"; -import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientError from "effect/http/HttpClientError"; +import * as HttpServer from "effect/http/HttpServer"; +import * as HttpServerRequest from "effect/http/HttpServerRequest"; +import * as HttpServerResponse from "effect/http/HttpServerResponse"; import { HostProcessArchitecture, HostProcessPlatform } from "@t3tools/shared/hostProcess"; import * as ServerConfig from "../config.ts"; diff --git a/apps/server/src/telemetry/AnalyticsService.ts b/apps/server/src/telemetry/AnalyticsService.ts index 4d1db714eb96..3d10e93a26d6 100644 --- a/apps/server/src/telemetry/AnalyticsService.ts +++ b/apps/server/src/telemetry/AnalyticsService.ts @@ -23,9 +23,9 @@ import * as Random from "effect/Random"; import * as Ref from "effect/Ref"; import * as Result from "effect/Result"; import * as Semaphore from "effect/Semaphore"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest"; -import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientRequest from "effect/http/HttpClientRequest"; +import * as HttpClientResponse from "effect/http/HttpClientResponse"; import packageJson from "../../package.json" with { type: "json" }; import * as ServerConfig from "../config.ts"; diff --git a/apps/server/src/telemetry/Identify.ts b/apps/server/src/telemetry/Identify.ts index b593ab224913..13aec2968fea 100644 --- a/apps/server/src/telemetry/Identify.ts +++ b/apps/server/src/telemetry/Identify.ts @@ -1,7 +1,7 @@ import * as NodeOS from "node:os"; import * as Crypto from "effect/Crypto"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Hex from "effect/encoding/Hex"; import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; @@ -157,7 +157,7 @@ const readIdentityFile = ( const hash = (source: TelemetryIdentitySource, value: string) => Crypto.Crypto.pipe( Effect.flatMap((crypto) => crypto.digest("SHA-256", new TextEncoder().encode(value))), - Effect.map(Encoding.encodeHex), + Effect.map(Hex.encode), Effect.mapError( (cause) => new TelemetryIdentityHashError({ diff --git a/apps/server/src/terminal/Manager.test.ts b/apps/server/src/terminal/Manager.test.ts index b2b379edb85d..bd310224d0fe 100644 --- a/apps/server/src/terminal/Manager.test.ts +++ b/apps/server/src/terminal/Manager.test.ts @@ -18,7 +18,7 @@ import * as Clock from "effect/Clock"; import * as Deferred from "effect/Deferred"; import * as Duration from "effect/Duration"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import * as Exit from "effect/Exit"; import * as Fiber from "effect/Fiber"; import * as FileSystem from "effect/FileSystem"; @@ -32,7 +32,7 @@ import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { expect } from "vite-plus/test"; import * as ServerSecretStore from "../auth/ServerSecretStore.ts"; @@ -200,7 +200,7 @@ function restartInput(overrides: Partial = {}): TerminalRe const historyLogPath = (logsDir: string, threadId = "thread-1") => Effect.service(Path.Path).pipe( - Effect.map(({ join }) => join(logsDir, `terminal_${Encoding.encodeBase64Url(threadId)}.log`)), + Effect.map(({ join }) => join(logsDir, `terminal_${Base64Url.encode(threadId)}.log`)), ); const multiTerminalHistoryLogPath = ( @@ -210,12 +210,12 @@ const multiTerminalHistoryLogPath = ( ) => Effect.service(Path.Path).pipe( Effect.map(({ join }) => { - const threadPart = `terminal_${Encoding.encodeBase64Url(threadId)}`; + const threadPart = `terminal_${Base64Url.encode(threadId)}`; return join( logsDir, terminalId === DEFAULT_TERMINAL_ID ? `${threadPart}.log` - : `${threadPart}_${Encoding.encodeBase64Url(terminalId)}.log`, + : `${threadPart}_${Base64Url.encode(terminalId)}.log`, ); }), ); diff --git a/apps/server/src/terminal/Manager.ts b/apps/server/src/terminal/Manager.ts index 8766255b7226..e98ff0349ec1 100644 --- a/apps/server/src/terminal/Manager.ts +++ b/apps/server/src/terminal/Manager.ts @@ -49,7 +49,7 @@ import { getTerminalLabel } from "@t3tools/shared/terminalLabels"; import * as DateTime from "effect/DateTime"; import * as Context from "effect/Context"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import * as Equal from "effect/Equal"; import * as Exit from "effect/Exit"; import * as Fiber from "effect/Fiber"; @@ -1228,11 +1228,11 @@ function legacySafeThreadId(threadId: string): string { } function toSafeThreadId(threadId: string): string { - return `terminal_${Encoding.encodeBase64Url(threadId)}`; + return `terminal_${Base64Url.encode(threadId)}`; } function toSafeTerminalId(terminalId: string): string { - return Encoding.encodeBase64Url(terminalId); + return Base64Url.encode(terminalId); } function toSessionKey(threadId: string, terminalId: string): string { diff --git a/apps/server/src/terminal/OutputProtocol.test.ts b/apps/server/src/terminal/OutputProtocol.test.ts index 58fa9e3d74d6..548a09c08686 100644 --- a/apps/server/src/terminal/OutputProtocol.test.ts +++ b/apps/server/src/terminal/OutputProtocol.test.ts @@ -6,7 +6,7 @@ import * as Queue from "effect/Queue"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import { Rpc, RpcGroup, RpcMessage, RpcSerialization, RpcServer } from "effect/unstable/rpc"; +import { Rpc, RpcGroup, RpcMessage, RpcSerialization, RpcServer } from "effect/rpc"; import { withTerminalOutputWindow } from "./OutputProtocol.ts"; diff --git a/apps/server/src/terminal/OutputProtocol.ts b/apps/server/src/terminal/OutputProtocol.ts index 1bd4934f94cc..441961a7952f 100644 --- a/apps/server/src/terminal/OutputProtocol.ts +++ b/apps/server/src/terminal/OutputProtocol.ts @@ -1,6 +1,6 @@ import { WS_METHODS } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; -import type { RpcServer } from "effect/unstable/rpc"; +import type { RpcServer } from "effect/rpc"; const MAX_PENDING_CHUNKS = 8; const MAX_PENDING_BYTES = 64 * 1024; diff --git a/apps/server/src/textGeneration/ClaudeTextGeneration.ts b/apps/server/src/textGeneration/ClaudeTextGeneration.ts index b9f2aa0871d1..28694dc15f42 100644 --- a/apps/server/src/textGeneration/ClaudeTextGeneration.ts +++ b/apps/server/src/textGeneration/ClaudeTextGeneration.ts @@ -12,7 +12,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { type ClaudeSettings, type ModelSelection } from "@t3tools/contracts"; import { formatGeneratedBranchName, sanitizeFeatureBranchName } from "@t3tools/shared/git"; diff --git a/apps/server/src/textGeneration/CodexTextGeneration.ts b/apps/server/src/textGeneration/CodexTextGeneration.ts index 22adbc587017..046aae999654 100644 --- a/apps/server/src/textGeneration/CodexTextGeneration.ts +++ b/apps/server/src/textGeneration/CodexTextGeneration.ts @@ -5,7 +5,7 @@ import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { type CodexSettings, diff --git a/apps/server/src/textGeneration/GrokTextGeneration.ts b/apps/server/src/textGeneration/GrokTextGeneration.ts index ee7bc28d64fa..b6f51d45c439 100644 --- a/apps/server/src/textGeneration/GrokTextGeneration.ts +++ b/apps/server/src/textGeneration/GrokTextGeneration.ts @@ -3,7 +3,7 @@ import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Ref from "effect/Ref"; import * as Schema from "effect/Schema"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import type * as EffectAcpErrors from "effect-acp/errors"; import { type GrokSettings, type ModelSelection } from "@t3tools/contracts"; diff --git a/apps/server/src/textGeneration/PiTextGeneration.ts b/apps/server/src/textGeneration/PiTextGeneration.ts index 1a4dfb93bfc3..038901ecfd78 100644 --- a/apps/server/src/textGeneration/PiTextGeneration.ts +++ b/apps/server/src/textGeneration/PiTextGeneration.ts @@ -8,7 +8,7 @@ import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Queue from "effect/Queue"; import * as Schema from "effect/Schema"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { TextGenerationError, type ModelSelection, type PiSettings } from "@t3tools/contracts"; import { formatGeneratedBranchName, sanitizeFeatureBranchName } from "@t3tools/shared/git"; diff --git a/apps/server/src/usage/UsageService.test.ts b/apps/server/src/usage/UsageService.test.ts index 62345d8472e1..9dd60ffcc32d 100644 --- a/apps/server/src/usage/UsageService.test.ts +++ b/apps/server/src/usage/UsageService.test.ts @@ -27,7 +27,7 @@ import * as Layer from "effect/Layer"; import * as Scheduler from "effect/Scheduler"; import * as Schema from "effect/Schema"; import * as TestClock from "effect/testing/TestClock"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import * as ServerConfig from "../config.ts"; import * as ServerSettings from "../serverSettings.ts"; diff --git a/apps/server/src/usage/UsageService.ts b/apps/server/src/usage/UsageService.ts index ca56c36028bb..6a3c75f79e40 100644 --- a/apps/server/src/usage/UsageService.ts +++ b/apps/server/src/usage/UsageService.ts @@ -42,7 +42,7 @@ import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Semaphore from "effect/Semaphore"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import * as ServerConfig from "../config.ts"; import { expandHomePath } from "../pathExpansion.ts"; diff --git a/apps/server/src/usage/cliproxyApi.test.ts b/apps/server/src/usage/cliproxyApi.test.ts index 10ce966ef1e2..7e6e727ddbad 100644 --- a/apps/server/src/usage/cliproxyApi.test.ts +++ b/apps/server/src/usage/cliproxyApi.test.ts @@ -2,7 +2,7 @@ import { describe, expect, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; import * as TestClock from "effect/testing/TestClock"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import { creditRedeemRequestId, makeCliproxyApi } from "./cliproxyApi.ts"; diff --git a/apps/server/src/usage/cliproxyApi.ts b/apps/server/src/usage/cliproxyApi.ts index 6bfd3fe4772e..04307f21282b 100644 --- a/apps/server/src/usage/cliproxyApi.ts +++ b/apps/server/src/usage/cliproxyApi.ts @@ -10,7 +10,7 @@ import { import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; import { codexPlanLabel } from "../provider/Layers/CodexProvider.ts"; import { codexRateLimitsToLimits } from "../provider/Layers/codexUsageLimits.ts"; diff --git a/apps/server/src/vcs/GitVcsDriver.test.ts b/apps/server/src/vcs/GitVcsDriver.test.ts index 6b8920501281..84a2a3037206 100644 --- a/apps/server/src/vcs/GitVcsDriver.test.ts +++ b/apps/server/src/vcs/GitVcsDriver.test.ts @@ -11,7 +11,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as PlatformError from "effect/PlatformError"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { assert, it } from "@effect/vitest"; import { CheckpointRef, GitCommandError, VcsProcessExitError } from "@t3tools/contracts"; diff --git a/apps/server/src/vcs/GitVcsDriver.ts b/apps/server/src/vcs/GitVcsDriver.ts index 8e9147669433..87ec4aaa662d 100644 --- a/apps/server/src/vcs/GitVcsDriver.ts +++ b/apps/server/src/vcs/GitVcsDriver.ts @@ -8,7 +8,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { GitCommandError, diff --git a/apps/server/src/vcs/GitVcsDriverCore.test.ts b/apps/server/src/vcs/GitVcsDriverCore.test.ts index 17ae6e309fee..01088f5b158f 100644 --- a/apps/server/src/vcs/GitVcsDriverCore.test.ts +++ b/apps/server/src/vcs/GitVcsDriverCore.test.ts @@ -20,7 +20,7 @@ import * as Schema from "effect/Schema"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { GitCommandError, diff --git a/apps/server/src/vcs/GitVcsDriverCore.ts b/apps/server/src/vcs/GitVcsDriverCore.ts index 935fb3d24a72..9ad0c97b009d 100644 --- a/apps/server/src/vcs/GitVcsDriverCore.ts +++ b/apps/server/src/vcs/GitVcsDriverCore.ts @@ -4,7 +4,7 @@ import * as Crypto from "effect/Crypto"; import * as DateTime from "effect/DateTime"; import * as Duration from "effect/Duration"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Hex from "effect/encoding/Hex"; import * as Exit from "effect/Exit"; import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; @@ -16,7 +16,7 @@ import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Semaphore from "effect/Semaphore"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { GitCommandError, @@ -2782,7 +2782,7 @@ export const makeGitVcsDriverCore = Effect.fn("makeGitVcsDriverCore")(function* const baseDiff = baseResult.stdout; const hashDiff = (diff: string, files: ReadonlyArray) => crypto.digest("SHA-256", new TextEncoder().encode(JSON.stringify([diff, files]))).pipe( - Effect.map(Encoding.encodeHex), + Effect.map(Hex.encode), Effect.mapError( (cause) => new GitCommandError({ diff --git a/apps/server/src/vcs/VcsDriverRegistry.test.ts b/apps/server/src/vcs/VcsDriverRegistry.test.ts index 0ad2450eb192..f88b33e84567 100644 --- a/apps/server/src/vcs/VcsDriverRegistry.test.ts +++ b/apps/server/src/vcs/VcsDriverRegistry.test.ts @@ -2,7 +2,7 @@ import { assert, it, describe } from "@effect/vitest"; import * as NodeServices from "@effect/platform-node/NodeServices"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as VcsProcess from "./VcsProcess.ts"; import * as VcsProjectConfig from "./VcsProjectConfig.ts"; diff --git a/apps/server/src/vcs/VcsProcess.test.ts b/apps/server/src/vcs/VcsProcess.test.ts index 169383d2cbf8..a08e1eb75b07 100644 --- a/apps/server/src/vcs/VcsProcess.test.ts +++ b/apps/server/src/vcs/VcsProcess.test.ts @@ -12,7 +12,7 @@ import * as Queue from "effect/Queue"; import * as Ref from "effect/Ref"; import * as Schema from "effect/Schema"; import { TestClock } from "effect/testing"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { VcsProcessExitError, diff --git a/apps/server/src/vcs/VcsProcess.ts b/apps/server/src/vcs/VcsProcess.ts index 25f3a23c368a..0739cd98fdc6 100644 --- a/apps/server/src/vcs/VcsProcess.ts +++ b/apps/server/src/vcs/VcsProcess.ts @@ -5,7 +5,7 @@ import * as Layer from "effect/Layer"; import * as Match from "effect/Match"; import * as Schedule from "effect/Schedule"; import * as Semaphore from "effect/Semaphore"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { type VcsError, diff --git a/apps/server/src/vcs/VcsProvisioningService.test.ts b/apps/server/src/vcs/VcsProvisioningService.test.ts index 0a28f9c9b2ce..54e13f3dc6ef 100644 --- a/apps/server/src/vcs/VcsProvisioningService.test.ts +++ b/apps/server/src/vcs/VcsProvisioningService.test.ts @@ -3,7 +3,7 @@ import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as VcsDriver from "./VcsDriver.ts"; import * as VcsDriverRegistry from "./VcsDriverRegistry.ts"; diff --git a/apps/server/src/ws.test.ts b/apps/server/src/ws.test.ts index 630d64c49b6c..ae263ac15fd3 100644 --- a/apps/server/src/ws.test.ts +++ b/apps/server/src/ws.test.ts @@ -16,7 +16,7 @@ import * as Path from "effect/Path"; import * as Queue from "effect/Queue"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as ExternalLauncher from "./process/externalLauncher.ts"; import { diff --git a/apps/server/src/ws.ts b/apps/server/src/ws.ts index 8838de05b423..f47594e08ff9 100644 --- a/apps/server/src/ws.ts +++ b/apps/server/src/ws.ts @@ -5,7 +5,7 @@ import * as NodeCrypto from "node:crypto"; import * as DateTime from "effect/DateTime"; import * as Duration from "effect/Duration"; -import * as Encoding from "effect/Encoding"; +import * as Base64 from "effect/encoding/Base64"; import * as Effect from "effect/Effect"; import * as Fiber from "effect/Fiber"; import * as FileSystem from "effect/FileSystem"; @@ -105,8 +105,8 @@ import { HttpServerRequest, HttpServerRespondable, HttpServerResponse, -} from "effect/unstable/http"; -import { RpcSerialization, RpcServer } from "effect/unstable/rpc"; +} from "effect/http"; +import { RpcSerialization, RpcServer } from "effect/rpc"; import * as CheckpointDiffQuery from "./checkpointing/CheckpointDiffQuery.ts"; import * as ServerConfig from "./config.ts"; @@ -223,7 +223,7 @@ import * as TraceDiagnostics from "./diagnostics/TraceDiagnostics.ts"; import * as PullRequestService from "./pullRequest/PullRequestService.ts"; import { listLinkedPullRequestThreads } from "./pullRequest/linkedThreads.ts"; import { pullRequestSyncKey } from "./pullRequest/pullRequestSyncKey.ts"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as PullRequestSyncReactor from "./orchestration-v2/PullRequestSyncReactor.ts"; import * as SourceControlDiscovery from "./sourceControl/SourceControlDiscovery.ts"; import * as SourceControlRepositoryService from "./sourceControl/SourceControlRepositoryService.ts"; @@ -383,7 +383,7 @@ const persistChatAttachments = Effect.fn("ws.assets.persistChatAttachments")(fun message: `Attachment ${attachment.name} has an invalid image payload.`, }); } - const bytes = yield* Effect.fromResult(Encoding.decodeBase64(parsed.base64)).pipe( + const bytes = yield* Effect.fromResult(Base64.decode(parsed.base64)).pipe( Effect.mapError( (cause) => new PersistChatAttachmentsError({ diff --git a/apps/web/src/assets/assetUrls.ts b/apps/web/src/assets/assetUrls.ts index 89a864f76d41..593eaf6c0730 100644 --- a/apps/web/src/assets/assetUrls.ts +++ b/apps/web/src/assets/assetUrls.ts @@ -7,7 +7,7 @@ import { } from "@t3tools/client-runtime/state/assets"; import { squashAtomCommandFailure } from "@t3tools/client-runtime/state/runtime"; import type { AssetResource, EnvironmentId } from "@t3tools/contracts"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useCallback, useMemo } from "react"; import { assetEnvironment } from "~/state/assets"; diff --git a/apps/web/src/authBootstrap.test.ts b/apps/web/src/authBootstrap.test.ts index cac54fe1ec84..0e4c5d46df4a 100644 --- a/apps/web/src/authBootstrap.test.ts +++ b/apps/web/src/authBootstrap.test.ts @@ -7,7 +7,7 @@ import { } from "@t3tools/contracts"; import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; -import { HttpClientError, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; +import { HttpClientError, HttpClientRequest, HttpClientResponse } from "effect/http"; import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { installEnvironmentHttpTest } from "../test/environmentHttpTest"; diff --git a/apps/web/src/browser/browserRecording.ts b/apps/web/src/browser/browserRecording.ts index 0bbe4bd7bf18..1b5eef3be2eb 100644 --- a/apps/web/src/browser/browserRecording.ts +++ b/apps/web/src/browser/browserRecording.ts @@ -2,7 +2,7 @@ import { DESKTOP_PREVIEW_RECORDING_CAPTURE_TRIGGER } from "@t3tools/contracts"; import type { DesktopPreviewRecordingArtifact, ScopedThreadRef } from "@t3tools/contracts"; import { useAtomValue } from "@effect/atom-react"; import * as Schema from "effect/Schema"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { previewBridge } from "~/components/preview/previewBridge"; import { ensureClientSettingsHydrated, getClientSettings } from "~/hooks/useSettings"; diff --git a/apps/web/src/browser/openFileInPreview.ts b/apps/web/src/browser/openFileInPreview.ts index a320e3ba34da..38ab15eb826b 100644 --- a/apps/web/src/browser/openFileInPreview.ts +++ b/apps/web/src/browser/openFileInPreview.ts @@ -13,7 +13,7 @@ import { } from "@t3tools/client-runtime/state/runtime"; import * as Cause from "effect/Cause"; import * as Data from "effect/Data"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { resolveAssetUrl } from "~/assets/assetUrls"; import { diff --git a/apps/web/src/browser/previewWebviewConfigState.ts b/apps/web/src/browser/previewWebviewConfigState.ts index 98d985eba388..f9f4637e14c4 100644 --- a/apps/web/src/browser/previewWebviewConfigState.ts +++ b/apps/web/src/browser/previewWebviewConfigState.ts @@ -7,7 +7,7 @@ import type { import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { previewBridge } from "~/components/preview/previewBridge"; diff --git a/apps/web/src/cloud/linkEnvironment.test.ts b/apps/web/src/cloud/linkEnvironment.test.ts index cb0da7b07d7f..a9f1f9b9891c 100644 --- a/apps/web/src/cloud/linkEnvironment.test.ts +++ b/apps/web/src/cloud/linkEnvironment.test.ts @@ -11,7 +11,7 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { HttpClient } from "effect/unstable/http"; +import { HttpClient } from "effect/http"; import { afterEach, beforeEach, vi } from "vite-plus/test"; import { AVAILABLE_CONNECTION_STATE, diff --git a/apps/web/src/cloud/linkEnvironment.ts b/apps/web/src/cloud/linkEnvironment.ts index c12541a59a92..40f12cebb9a4 100644 --- a/apps/web/src/cloud/linkEnvironment.ts +++ b/apps/web/src/cloud/linkEnvironment.ts @@ -3,7 +3,7 @@ import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { HttpClient } from "effect/unstable/http"; +import { HttpClient } from "effect/http"; import { EnvironmentCloudEndpointUnavailableError, type EnvironmentCloudLinkStateResult, diff --git a/apps/web/src/cloud/managedRelayState.ts b/apps/web/src/cloud/managedRelayState.ts index c8f33d1d9d3d..35c3703626aa 100644 --- a/apps/web/src/cloud/managedRelayState.ts +++ b/apps/web/src/cloud/managedRelayState.ts @@ -18,7 +18,7 @@ import type { EnvironmentId } from "@t3tools/contracts"; import * as Context from "effect/Context"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { useCallback, useEffect } from "react"; import { runtime } from "../lib/runtime"; diff --git a/apps/web/src/cloud/primaryCloudLinkState.ts b/apps/web/src/cloud/primaryCloudLinkState.ts index c5871fa65d66..d46ee641d574 100644 --- a/apps/web/src/cloud/primaryCloudLinkState.ts +++ b/apps/web/src/cloud/primaryCloudLinkState.ts @@ -5,8 +5,8 @@ import * as Context from "effect/Context"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; -import { HttpClient } from "effect/unstable/http"; +import { AsyncResult, Atom } from "effect/reactivity"; +import { HttpClient } from "effect/http"; import { useCallback, useMemo } from "react"; import { usePrimaryEnvironment } from "../state/environments"; diff --git a/apps/web/src/components/ChatMarkdown.tsx b/apps/web/src/components/ChatMarkdown.tsx index 26b97c24719d..cfd0ddf1b2af 100644 --- a/apps/web/src/components/ChatMarkdown.tsx +++ b/apps/web/src/components/ChatMarkdown.tsx @@ -53,7 +53,7 @@ import { inlineCodeFilePathCandidate } from "@t3tools/client-runtime/markdown-li import { mediaFileReference, mediaUrlReference } from "@t3tools/client-runtime/media-reference"; import { mediaKindFromPath, mediaMimeTypeFromExtension } from "@t3tools/shared/filePreview"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import React, { Children, Suspense, diff --git a/apps/web/src/components/ChatView.logic.test.ts b/apps/web/src/components/ChatView.logic.test.ts index 9e6b96b21018..cc0c7dd35753 100644 --- a/apps/web/src/components/ChatView.logic.test.ts +++ b/apps/web/src/components/ChatView.logic.test.ts @@ -28,7 +28,7 @@ import type { CodexArtifactTemplate } from "@t3tools/client-runtime/codex-artifa import * as DateTime from "effect/DateTime"; import * as Option from "effect/Option"; import { afterEach, describe, expect, it, vi } from "vite-plus/test"; -import { Atom, AsyncResult } from "effect/unstable/reactivity"; +import { Atom, AsyncResult } from "effect/reactivity"; import { appAtomRegistry } from "../rpc/atomRegistry"; import { environmentThreadDetails } from "../state/threads"; diff --git a/apps/web/src/components/ChatView.tsx b/apps/web/src/components/ChatView.tsx index ec924e2c694a..d02a1ea4c881 100644 --- a/apps/web/src/components/ChatView.tsx +++ b/apps/web/src/components/ChatView.tsx @@ -139,7 +139,7 @@ import { resolveThreadReferenceCopyTarget } from "@t3tools/shared/threadReferenc import { nextTerminalId, resolveTerminalSessionLabel } from "@t3tools/shared/terminalLabels"; import { Debouncer } from "@tanstack/react-pacer"; import { useAtomValue } from "@effect/atom-react"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { Fragment, lazy, @@ -168,7 +168,7 @@ import { type AtomCommandResult, } from "@t3tools/client-runtime/state/runtime"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { isElectron } from "../env"; import { readLocalApi } from "../localApi"; import { useDiffPanelStore } from "../diffPanelStore"; diff --git a/apps/web/src/components/ProviderUpdateEnvironmentRows.test.tsx b/apps/web/src/components/ProviderUpdateEnvironmentRows.test.tsx index b34f82a775ac..6760fb57b948 100644 --- a/apps/web/src/components/ProviderUpdateEnvironmentRows.test.tsx +++ b/apps/web/src/components/ProviderUpdateEnvironmentRows.test.tsx @@ -6,7 +6,7 @@ import { ProviderInstanceId, type ServerProvider, } from "@t3tools/contracts"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import type { LocalEnvironmentUpdateGroup, diff --git a/apps/web/src/components/ProviderUpdateLaunchNotification.logic.test.ts b/apps/web/src/components/ProviderUpdateLaunchNotification.logic.test.ts index 5e27fa901f0e..d388f9f036cb 100644 --- a/apps/web/src/components/ProviderUpdateLaunchNotification.logic.test.ts +++ b/apps/web/src/components/ProviderUpdateLaunchNotification.logic.test.ts @@ -6,7 +6,7 @@ import { type ServerProvider, } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { buildLocalEnvironmentUpdateGroups, diff --git a/apps/web/src/components/ServerUpdateAction.test.tsx b/apps/web/src/components/ServerUpdateAction.test.tsx index 116b7fdd21bb..b065ef8c8349 100644 --- a/apps/web/src/components/ServerUpdateAction.test.tsx +++ b/apps/web/src/components/ServerUpdateAction.test.tsx @@ -3,7 +3,7 @@ import { create, type ReactTestRenderer } from "react-test-renderer"; import { renderToStaticMarkup } from "react-dom/server"; import type { EnvironmentId, ServerInstallation } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test"; const testState = vi.hoisted(() => ({ diff --git a/apps/web/src/components/Sidebar.logic.test.ts b/apps/web/src/components/Sidebar.logic.test.ts index 6d3432f3ddb9..d8e4bab4187c 100644 --- a/apps/web/src/components/Sidebar.logic.test.ts +++ b/apps/web/src/components/Sidebar.logic.test.ts @@ -4,7 +4,7 @@ import { deriveActiveWorkStartedAt } from "../session-logic.ts"; import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { defaultAnimateLayoutChanges, type AnimateLayoutChanges } from "@dnd-kit/sortable"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { animateSidebarLayoutChanges, archiveSelectedThreadEntries, diff --git a/apps/web/src/components/Sidebar.logic.ts b/apps/web/src/components/Sidebar.logic.ts index 3ad4ac09bc31..7e7010d59a42 100644 --- a/apps/web/src/components/Sidebar.logic.ts +++ b/apps/web/src/components/Sidebar.logic.ts @@ -10,7 +10,7 @@ import { defaultAnimateLayoutChanges, type AnimateLayoutChanges } from "@dnd-kit import { threadSearchMatchKey } from "@t3tools/client-runtime/state/thread-search"; import type { ContextMenuItem, EnvironmentId, ThreadId } from "@t3tools/contracts"; import type { SidebarProjectSortOrder, SidebarThreadSortOrder } from "@t3tools/contracts/settings"; -import type { AsyncResult } from "effect/unstable/reactivity"; +import type { AsyncResult } from "effect/reactivity"; import { planPinnedReorder } from "@t3tools/client-runtime/state/thread-sort"; import { effectiveSnoozed, diff --git a/apps/web/src/components/ThreadStatusIndicators.subscriptions.test.tsx b/apps/web/src/components/ThreadStatusIndicators.subscriptions.test.tsx index 2628125363ac..e32fb1000944 100644 --- a/apps/web/src/components/ThreadStatusIndicators.subscriptions.test.tsx +++ b/apps/web/src/components/ThreadStatusIndicators.subscriptions.test.tsx @@ -11,7 +11,7 @@ const state = vi.hoisted(() => ({ queries: [] as string[] })); vi.mock("../state/entities", () => ({ useProject: () => null, useServerConfigs: () => new Map() })); vi.mock("../uiStateStore", () => ({ useUiStateStore: () => undefined })); vi.mock("../state/vcs", async () => { - const { AsyncResult, Atom } = await import("effect/unstable/reactivity"); + const { AsyncResult, Atom } = await import("effect/reactivity"); const statuses = Atom.family((cwd: string) => Atom.make(() => { state.queries.push(`vcs:${cwd}`); @@ -42,7 +42,7 @@ vi.mock("../state/vcs", async () => { }); vi.mock("../state/pullRequests", async (importOriginal) => { const original = await importOriginal(); - const { AsyncResult, Atom } = await import("effect/unstable/reactivity"); + const { AsyncResult, Atom } = await import("effect/reactivity"); const { ProjectId } = await import("@t3tools/contracts"); const summaries = Atom.family((number: number) => Atom.make(() => { diff --git a/apps/web/src/components/ThreadStatusIndicators.test.ts b/apps/web/src/components/ThreadStatusIndicators.test.ts index 3a32610bdb91..75d0a16f5af7 100644 --- a/apps/web/src/components/ThreadStatusIndicators.test.ts +++ b/apps/web/src/components/ThreadStatusIndicators.test.ts @@ -1,7 +1,7 @@ import { ProjectId, type PullRequestSummary, type VcsStatusResult } from "@t3tools/contracts"; import { describe, expect, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; -import { AtomRegistry } from "effect/unstable/reactivity"; +import { AtomRegistry } from "effect/reactivity"; import type { AnimationEvent } from "react"; import { diff --git a/apps/web/src/components/ThreadStatusIndicators.tsx b/apps/web/src/components/ThreadStatusIndicators.tsx index 946834bb297e..b17d8f324c67 100644 --- a/apps/web/src/components/ThreadStatusIndicators.tsx +++ b/apps/web/src/components/ThreadStatusIndicators.tsx @@ -13,7 +13,7 @@ import { type ThreadPullRequestLink, type VcsStatusResult, } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { FolderGit2Icon, TerminalIcon } from "lucide-react"; import { useCallback, useMemo } from "react"; import { appAtomRegistry } from "../rpc/atomRegistry"; diff --git a/apps/web/src/components/chat/useAutoBalanceUpdateBanner.tsx b/apps/web/src/components/chat/useAutoBalanceUpdateBanner.tsx index 244638e8eebf..47ea5fe7c278 100644 --- a/apps/web/src/components/chat/useAutoBalanceUpdateBanner.tsx +++ b/apps/web/src/components/chat/useAutoBalanceUpdateBanner.tsx @@ -1,6 +1,6 @@ import { useAtomValue } from "@effect/atom-react"; import type { ServerUpdateState } from "@t3tools/client-runtime/state/server"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { useMemo, useState } from "react"; import type { EnvironmentPresentation } from "~/state/environments"; diff --git a/apps/web/src/components/cloud/CloudEnvironmentConnectList.test.tsx b/apps/web/src/components/cloud/CloudEnvironmentConnectList.test.tsx index d7f2e030cb58..d596866efc53 100644 --- a/apps/web/src/components/cloud/CloudEnvironmentConnectList.test.tsx +++ b/apps/web/src/components/cloud/CloudEnvironmentConnectList.test.tsx @@ -2,7 +2,7 @@ import type { Discovery } from "@t3tools/client-runtime/relay"; import type { AtomCommandResult } from "@t3tools/client-runtime/state/runtime"; import { EnvironmentId, ORCHESTRATION_PROTOCOL_VERSION } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { act, useState, type ButtonHTMLAttributes, type ReactNode } from "react"; import { create, type ReactTestRenderer } from "react-test-renderer"; import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test"; diff --git a/apps/web/src/components/diffs/useReviewFilePatches.ts b/apps/web/src/components/diffs/useReviewFilePatches.ts index 8ac353e86be8..60536fdd5d79 100644 --- a/apps/web/src/components/diffs/useReviewFilePatches.ts +++ b/apps/web/src/components/diffs/useReviewFilePatches.ts @@ -1,8 +1,8 @@ import { RegistryContext, useAtomValue } from "@effect/atom-react"; import type { FileDiffMetadata } from "@pierre/diffs"; import type { EnvironmentId, ReviewDiffPreviewSource } from "@t3tools/contracts"; -import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"; -import * as Atom from "effect/unstable/reactivity/Atom"; +import * as AsyncResult from "effect/reactivity/AsyncResult"; +import * as Atom from "effect/reactivity/Atom"; import { useCallback, useContext, useEffect, useMemo, useRef, useState } from "react"; import { getRenderablePatch, resolveFileDiffPath, type RenderablePatch } from "~/lib/diffRendering"; import { reviewEnvironment } from "~/state/review"; diff --git a/apps/web/src/components/files/fileSaveCoordinator.test.ts b/apps/web/src/components/files/fileSaveCoordinator.test.ts index 0874bbb1e662..263957f11c42 100644 --- a/apps/web/src/components/files/fileSaveCoordinator.test.ts +++ b/apps/web/src/components/files/fileSaveCoordinator.test.ts @@ -1,7 +1,7 @@ import { afterEach, describe, expect, it, vi } from "vite-plus/test"; import type { AtomCommandResult } from "@t3tools/client-runtime/state/runtime"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { FileSaveCoordinator } from "./fileSaveCoordinator"; diff --git a/apps/web/src/components/files/projectFilesQueryState.test.tsx b/apps/web/src/components/files/projectFilesQueryState.test.tsx index 8ac6f4e1cd26..a33465f6cb19 100644 --- a/apps/web/src/components/files/projectFilesQueryState.test.tsx +++ b/apps/web/src/components/files/projectFilesQueryState.test.tsx @@ -5,7 +5,7 @@ import { type ProjectReadFileResult, } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; -import { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry } from "effect/reactivity"; import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; const projectMocks = vi.hoisted(() => ({ diff --git a/apps/web/src/components/files/projectFilesQueryState.ts b/apps/web/src/components/files/projectFilesQueryState.ts index a6a556231e18..fa4657ca815f 100644 --- a/apps/web/src/components/files/projectFilesQueryState.ts +++ b/apps/web/src/components/files/projectFilesQueryState.ts @@ -8,7 +8,7 @@ import { import * as Cause from "effect/Cause"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { useCallback } from "react"; import { appAtomRegistry } from "~/rpc/atomRegistry"; diff --git a/apps/web/src/components/files/useFileSaveCoordinator.test.tsx b/apps/web/src/components/files/useFileSaveCoordinator.test.tsx index 603f97cf1f26..8f49798ceeba 100644 --- a/apps/web/src/components/files/useFileSaveCoordinator.test.tsx +++ b/apps/web/src/components/files/useFileSaveCoordinator.test.tsx @@ -1,5 +1,5 @@ import { EnvironmentId } from "@t3tools/contracts"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { act, StrictMode } from "react"; import { create, type ReactTestRenderer } from "react-test-renderer"; import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test"; diff --git a/apps/web/src/components/onboarding/FirstRunGate.tsx b/apps/web/src/components/onboarding/FirstRunGate.tsx index 0fda2ee2cecc..15187b90defa 100644 --- a/apps/web/src/components/onboarding/FirstRunGate.tsx +++ b/apps/web/src/components/onboarding/FirstRunGate.tsx @@ -1,7 +1,7 @@ import { RefreshIcon } from "~/components/ui/refresh-icon"; import { useAtomValue } from "@effect/atom-react"; import { useLocation, useNavigate } from "@tanstack/react-router"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { useEffect, useState } from "react"; import { diff --git a/apps/web/src/components/preview/PreviewAutomationHosts.test.tsx b/apps/web/src/components/preview/PreviewAutomationHosts.test.tsx index 542b84907b6e..b26f25bb79b0 100644 --- a/apps/web/src/components/preview/PreviewAutomationHosts.test.tsx +++ b/apps/web/src/components/preview/PreviewAutomationHosts.test.tsx @@ -10,7 +10,7 @@ import { } from "@t3tools/contracts"; import type { AtomCommandResult } from "@t3tools/client-runtime/state/runtime"; import * as Cause from "effect/Cause"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { act } from "react"; import { create, type ReactTestRenderer } from "react-test-renderer"; import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test"; diff --git a/apps/web/src/components/preview/PreviewAutomationHosts.tsx b/apps/web/src/components/preview/PreviewAutomationHosts.tsx index 4a3f9b7c88ac..0a4b60be391f 100644 --- a/apps/web/src/components/preview/PreviewAutomationHosts.tsx +++ b/apps/web/src/components/preview/PreviewAutomationHosts.tsx @@ -22,7 +22,7 @@ import { } from "@t3tools/contracts"; import { resolvePreviewViewport } from "@t3tools/shared/previewViewport"; import { useCallback, useContext, useEffect, useMemo, useRef, useState } from "react"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { useShallow } from "zustand/react/shallow"; import { diff --git a/apps/web/src/components/preview/addBrowserSurface.test.ts b/apps/web/src/components/preview/addBrowserSurface.test.ts index de54c2014b2a..5d2b78ce4cc5 100644 --- a/apps/web/src/components/preview/addBrowserSurface.test.ts +++ b/apps/web/src/components/preview/addBrowserSurface.test.ts @@ -6,7 +6,7 @@ import { type PreviewSessionSnapshot, type ScopedThreadRef, } from "@t3tools/contracts"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { diff --git a/apps/web/src/components/preview/closePreviewSession.test.ts b/apps/web/src/components/preview/closePreviewSession.test.ts index d61d2975a275..1df3e22702aa 100644 --- a/apps/web/src/components/preview/closePreviewSession.test.ts +++ b/apps/web/src/components/preview/closePreviewSession.test.ts @@ -4,7 +4,7 @@ import type { ScopedThreadRef, } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { diff --git a/apps/web/src/components/preview/openPreviewSession.test.ts b/apps/web/src/components/preview/openPreviewSession.test.ts index fe14211280c2..70751aef8342 100644 --- a/apps/web/src/components/preview/openPreviewSession.test.ts +++ b/apps/web/src/components/preview/openPreviewSession.test.ts @@ -7,7 +7,7 @@ import { type ScopedThreadRef, } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test"; import * as browserDefaults from "~/browser/browserDefaults"; diff --git a/apps/web/src/components/preview/openPreviewSession.ts b/apps/web/src/components/preview/openPreviewSession.ts index 07dab9a0b36d..1b2f31a85da8 100644 --- a/apps/web/src/components/preview/openPreviewSession.ts +++ b/apps/web/src/components/preview/openPreviewSession.ts @@ -7,7 +7,7 @@ import type { } from "@t3tools/contracts"; import type { AtomCommandResult } from "@t3tools/client-runtime/state/runtime"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { browserDefaultOpenProfileId, diff --git a/apps/web/src/components/preview/openTerminalLinkInPreview.test.ts b/apps/web/src/components/preview/openTerminalLinkInPreview.test.ts index 96629b5c9b02..34c7192cd0e2 100644 --- a/apps/web/src/components/preview/openTerminalLinkInPreview.test.ts +++ b/apps/web/src/components/preview/openTerminalLinkInPreview.test.ts @@ -1,6 +1,6 @@ import type { PreviewSessionSnapshot, ScopedThreadRef } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test"; import { diff --git a/apps/web/src/components/preview/previewAutomationRequestConsumer.test.ts b/apps/web/src/components/preview/previewAutomationRequestConsumer.test.ts index af3a95c32c78..8cde319236b8 100644 --- a/apps/web/src/components/preview/previewAutomationRequestConsumer.test.ts +++ b/apps/web/src/components/preview/previewAutomationRequestConsumer.test.ts @@ -6,7 +6,7 @@ import { PreviewTabId, ThreadId, } from "@t3tools/contracts"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { describe, expect, it, vi } from "vite-plus/test"; import { diff --git a/apps/web/src/components/preview/previewAutomationRequestConsumer.ts b/apps/web/src/components/preview/previewAutomationRequestConsumer.ts index 89a9387e4af6..b3177ee4360c 100644 --- a/apps/web/src/components/preview/previewAutomationRequestConsumer.ts +++ b/apps/web/src/components/preview/previewAutomationRequestConsumer.ts @@ -4,7 +4,7 @@ import type { PreviewAutomationResponse, PreviewAutomationStreamEvent, } from "@t3tools/contracts"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { PreviewAutomationOperationError, diff --git a/apps/web/src/components/preview/usePreviewSession.ts b/apps/web/src/components/preview/usePreviewSession.ts index 71597101dec8..dc1b310daf50 100644 --- a/apps/web/src/components/preview/usePreviewSession.ts +++ b/apps/web/src/components/preview/usePreviewSession.ts @@ -4,7 +4,7 @@ import { useAtomValue } from "@effect/atom-react"; import { parseScopedThreadKey, scopedThreadKey } from "@t3tools/client-runtime/environment"; import type { ScopedThreadRef } from "@t3tools/contracts"; import * as Schema from "effect/Schema"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { applyPreviewServerEvent, diff --git a/apps/web/src/components/projectScriptEditor.test.tsx b/apps/web/src/components/projectScriptEditor.test.tsx index becb3a369f62..27c98a024561 100644 --- a/apps/web/src/components/projectScriptEditor.test.tsx +++ b/apps/web/src/components/projectScriptEditor.test.tsx @@ -1,5 +1,5 @@ import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { act, StrictMode, type ReactNode } from "react"; import { create, type ReactTestRenderer } from "react-test-renderer"; import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test"; diff --git a/apps/web/src/components/pullRequest/LinkPullRequestDialog.tsx b/apps/web/src/components/pullRequest/LinkPullRequestDialog.tsx index 0b4a3a6e7639..bdcfebcf549a 100644 --- a/apps/web/src/components/pullRequest/LinkPullRequestDialog.tsx +++ b/apps/web/src/components/pullRequest/LinkPullRequestDialog.tsx @@ -13,7 +13,7 @@ import { parsePullRequestReference } from "~/pullRequestReference"; import { useProjects, useThreadShell } from "~/state/entities"; import { usePullRequestLinking } from "~/hooks/usePullRequestLinking"; import { appAtomRegistry } from "~/rpc/atomRegistry"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { Button } from "../ui/button"; import { Dialog, diff --git a/apps/web/src/components/pullRequest/usePullRequestFilesViewed.test.tsx b/apps/web/src/components/pullRequest/usePullRequestFilesViewed.test.tsx index 78314b7ca7d0..6f221bf7d363 100644 --- a/apps/web/src/components/pullRequest/usePullRequestFilesViewed.test.tsx +++ b/apps/web/src/components/pullRequest/usePullRequestFilesViewed.test.tsx @@ -4,7 +4,7 @@ import { type PullRequestFilesViewedResult, type PullRequestRef, } from "@t3tools/contracts"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { act, StrictMode } from "react"; import { create, type ReactTestRenderer } from "react-test-renderer"; import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test"; diff --git a/apps/web/src/components/settings/ConnectionsSettings.tsx b/apps/web/src/components/settings/ConnectionsSettings.tsx index 7cf6a162caf9..1959857d12f6 100644 --- a/apps/web/src/components/settings/ConnectionsSettings.tsx +++ b/apps/web/src/components/settings/ConnectionsSettings.tsx @@ -8,7 +8,7 @@ import { TerminalIcon, } from "lucide-react"; import { useAtomValue } from "@effect/atom-react"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { type KeyboardEvent, type ReactNode, diff --git a/apps/web/src/components/settings/ProjectSettingsPanel.tsx b/apps/web/src/components/settings/ProjectSettingsPanel.tsx index 8e5edec0f485..0d368abef6aa 100644 --- a/apps/web/src/components/settings/ProjectSettingsPanel.tsx +++ b/apps/web/src/components/settings/ProjectSettingsPanel.tsx @@ -6,7 +6,7 @@ import { type AtomCommandResult, } from "@t3tools/client-runtime/state/runtime"; import { scopeProjectRef, scopeThreadRef } from "@t3tools/client-runtime/environment"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { type EnvironmentId, type ProjectIconOverride } from "@t3tools/contracts"; import { useLocation, useNavigate } from "@tanstack/react-router"; import * as Cause from "effect/Cause"; diff --git a/apps/web/src/components/settings/SettingsScopeContext.tsx b/apps/web/src/components/settings/SettingsScopeContext.tsx index add38f3e1880..1b2f212edd44 100644 --- a/apps/web/src/components/settings/SettingsScopeContext.tsx +++ b/apps/web/src/components/settings/SettingsScopeContext.tsx @@ -2,7 +2,7 @@ import { T3_PROJECT_FILE_NAME, type T3ProjectFile } from "@t3tools/contracts"; import { parseT3ProjectFile } from "@t3tools/shared/t3ProjectFile"; import { useAtomValue } from "@effect/atom-react"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { createContext, type ReactNode, useContext, useMemo } from "react"; import { useEnvironments, usePrimaryEnvironmentId } from "../../state/environments"; diff --git a/apps/web/src/components/settings/useProjectScriptSettings.ts b/apps/web/src/components/settings/useProjectScriptSettings.ts index ed7ded33c308..626496aa9a8d 100644 --- a/apps/web/src/components/settings/useProjectScriptSettings.ts +++ b/apps/web/src/components/settings/useProjectScriptSettings.ts @@ -14,7 +14,7 @@ import { import { resolveProjectScripts } from "@t3tools/shared/projectScripts"; import { clearProjectSettingsOverrides } from "@t3tools/shared/projectSettings"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useRef, useState } from "react"; import { isElectron } from "../../env"; diff --git a/apps/web/src/components/usage/UsagePriceOverrides.tsx b/apps/web/src/components/usage/UsagePriceOverrides.tsx index 0b52687c81b0..125c7eaf0f4d 100644 --- a/apps/web/src/components/usage/UsagePriceOverrides.tsx +++ b/apps/web/src/components/usage/UsagePriceOverrides.tsx @@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react"; import type { EnvironmentId } from "@t3tools/contracts"; import { ChevronDownIcon, PlusIcon, RotateCcwIcon, XIcon } from "lucide-react"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { useRef, useState } from "react"; import { isElectron } from "../../env"; diff --git a/apps/web/src/connection/platform.ts b/apps/web/src/connection/platform.ts index 4940b9a95ae7..4b772fedb220 100644 --- a/apps/web/src/connection/platform.ts +++ b/apps/web/src/connection/platform.ts @@ -37,7 +37,7 @@ import * as Option from "effect/Option"; import * as Queue from "effect/Queue"; import * as Ref from "effect/Ref"; import * as Stream from "effect/Stream"; -import { FetchHttpClient } from "effect/unstable/http"; +import { FetchHttpClient } from "effect/http"; import { APP_VERSION } from "../branding"; import { readDesktopPrimaryBearerToken } from "../environments/primary/desktopAuth"; diff --git a/apps/web/src/connection/runtime.ts b/apps/web/src/connection/runtime.ts index 65d86365d26f..3cb9c5939604 100644 --- a/apps/web/src/connection/runtime.ts +++ b/apps/web/src/connection/runtime.ts @@ -6,7 +6,7 @@ import { } from "@t3tools/client-runtime/state/threads"; import { PullRequestDiffLoader } from "@t3tools/client-runtime/state/pull-requests"; import * as Layer from "effect/Layer"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { runtimeContextLayer } from "../lib/runtime"; import { diff --git a/apps/web/src/editorPreferences.ts b/apps/web/src/editorPreferences.ts index 8e7be4070215..5903f122c3fc 100644 --- a/apps/web/src/editorPreferences.ts +++ b/apps/web/src/editorPreferences.ts @@ -6,7 +6,7 @@ import { } from "@t3tools/client-runtime/state/runtime"; import * as Cause from "effect/Cause"; import * as Schema from "effect/Schema"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { getLocalStorageItem, setLocalStorageItem, useLocalStorage } from "./hooks/useLocalStorage"; import { useCallback, useMemo } from "react"; import { shellEnvironment } from "./state/shell"; diff --git a/apps/web/src/environments/primary/auth.ts b/apps/web/src/environments/primary/auth.ts index ce06fbf5da05..5a09dcb12884 100644 --- a/apps/web/src/environments/primary/auth.ts +++ b/apps/web/src/environments/primary/auth.ts @@ -11,7 +11,7 @@ import { EnvironmentHttpCommonError, PRIMARY_LOCAL_ENVIRONMENT_ID } from "@t3too import type { EnvironmentHttpCommonError as EnvironmentHttpCommonErrorType } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; -import { HttpClientError } from "effect/unstable/http"; +import { HttpClientError } from "effect/http"; import { getPairingTokenFromUrl, diff --git a/apps/web/src/environments/primary/httpLayer.test.ts b/apps/web/src/environments/primary/httpLayer.test.ts index 4c70fbf5622e..73b8005864da 100644 --- a/apps/web/src/environments/primary/httpLayer.test.ts +++ b/apps/web/src/environments/primary/httpLayer.test.ts @@ -1,7 +1,7 @@ import type { DesktopBridge } from "@t3tools/contracts"; import { afterEach, describe, expect, it, vi } from "@effect/vitest"; import * as Effect from "effect/Effect"; -import { HttpClient } from "effect/unstable/http"; +import { HttpClient } from "effect/http"; import { __resetDesktopPrimaryAuthForTests } from "./desktopAuth"; import { makePrimaryEnvironmentHttpLayer } from "./httpLayer"; diff --git a/apps/web/src/environments/primary/httpLayer.ts b/apps/web/src/environments/primary/httpLayer.ts index 306b5de63d75..cb149b9687ff 100644 --- a/apps/web/src/environments/primary/httpLayer.ts +++ b/apps/web/src/environments/primary/httpLayer.ts @@ -1,7 +1,7 @@ import { remoteHttpClientLayer } from "@t3tools/client-runtime/rpc"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/http"; +import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/http"; import { readDesktopPrimaryBearerToken } from "./desktopAuth"; import { resolvePrimaryEnvironmentHttpUrl } from "./target"; diff --git a/apps/web/src/environments/primary/sessionState.ts b/apps/web/src/environments/primary/sessionState.ts index 5912a4865f9c..e40a75b4d472 100644 --- a/apps/web/src/environments/primary/sessionState.ts +++ b/apps/web/src/environments/primary/sessionState.ts @@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react"; import * as Cause from "effect/Cause"; import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { useCallback } from "react"; import { isLocalEnvironmentDisabled } from "../../localEnvironment"; diff --git a/apps/web/src/hooks/showThreadUndoNotice.test.ts b/apps/web/src/hooks/showThreadUndoNotice.test.ts index aceb70c21d9c..74b0fed5ea49 100644 --- a/apps/web/src/hooks/showThreadUndoNotice.test.ts +++ b/apps/web/src/hooks/showThreadUndoNotice.test.ts @@ -1,4 +1,4 @@ -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import * as Cause from "effect/Cause"; import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test"; diff --git a/apps/web/src/hooks/useLoadBalancedEnvironment.ts b/apps/web/src/hooks/useLoadBalancedEnvironment.ts index 701ee04706eb..f3c77425e737 100644 --- a/apps/web/src/hooks/useLoadBalancedEnvironment.ts +++ b/apps/web/src/hooks/useLoadBalancedEnvironment.ts @@ -1,7 +1,7 @@ import { RegistryContext, useAtomValue } from "@effect/atom-react"; import { chooseLoadBalancedEnvironment } from "@t3tools/client-runtime/load-balancing"; import type { EnvironmentId } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { useCallback, useContext, useMemo } from "react"; import { serverEnvironment } from "../state/server"; diff --git a/apps/web/src/hooks/useThreadActions.ts b/apps/web/src/hooks/useThreadActions.ts index 4328d61da82f..fdf08e6c8c6e 100644 --- a/apps/web/src/hooks/useThreadActions.ts +++ b/apps/web/src/hooks/useThreadActions.ts @@ -11,7 +11,7 @@ import { EnvironmentId, type ScopedThreadRef, ThreadId } from "@t3tools/contract import { resolveWorktreeCleanup } from "@t3tools/shared/projectSettings"; import * as Cause from "effect/Cause"; import * as Schema from "effect/Schema"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useRouter } from "@tanstack/react-router"; import { useCallback, useMemo, useRef } from "react"; diff --git a/apps/web/src/lib/assistantCitationNavigation.ts b/apps/web/src/lib/assistantCitationNavigation.ts index 1a4606d34d60..70d2c160a1a1 100644 --- a/apps/web/src/lib/assistantCitationNavigation.ts +++ b/apps/web/src/lib/assistantCitationNavigation.ts @@ -3,7 +3,7 @@ import { formatAssistantCitationHref, parseAssistantCitationHref, } from "@t3tools/shared/assistantCitations"; -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import * as Result from "effect/Result"; import { randomUUID } from "./utils"; @@ -18,7 +18,7 @@ const CITATION_HASH_PREFIX = "assistant-citation="; /** Base64url keeps router hash normalization from decoding quote whitespace or source IDs. */ export function assistantCitationHash(citation: AssistantCitation) { - return `${CITATION_HASH_PREFIX}${Encoding.encodeBase64Url(formatAssistantCitationHref(citation))}`; + return `${CITATION_HASH_PREFIX}${Base64Url.encode(formatAssistantCitationHref(citation))}`; } export function assistantCitationFromLocation(href: string) { @@ -28,7 +28,7 @@ export function assistantCitationFromLocation(href: string) { if (!hash.startsWith(CITATION_HASH_PREFIX) || hash.length > 140_000) return null; try { return parseAssistantCitationHref( - Result.getOrThrow(Encoding.decodeBase64UrlString(hash.slice(CITATION_HASH_PREFIX.length))), + Result.getOrThrow(Base64Url.decodeString(hash.slice(CITATION_HASH_PREFIX.length))), ); } catch { return null; diff --git a/apps/web/src/lib/attachmentUploadQueue.test.ts b/apps/web/src/lib/attachmentUploadQueue.test.ts index 10b1e2e30a43..ea217616452a 100644 --- a/apps/web/src/lib/attachmentUploadQueue.test.ts +++ b/apps/web/src/lib/attachmentUploadQueue.test.ts @@ -1,6 +1,6 @@ import { EnvironmentId } from "@t3tools/contracts"; import { afterEach, beforeEach, describe, expect, it, vi } from "vite-plus/test"; -import { Atom, AsyncResult } from "effect/unstable/reactivity"; +import { Atom, AsyncResult } from "effect/reactivity"; import { appAtomRegistry } from "../rpc/atomRegistry"; import { @@ -28,7 +28,7 @@ vi.mock("@t3tools/client-runtime/state/runtime", () => ({ })); vi.mock("../rpc/atomRegistry", async () => { - const { AtomRegistry } = await import("effect/unstable/reactivity"); + const { AtomRegistry } = await import("effect/reactivity"); return { appAtomRegistry: AtomRegistry.make() }; }); diff --git a/apps/web/src/lib/attachmentUploadQueue.ts b/apps/web/src/lib/attachmentUploadQueue.ts index b435c486a34f..6681579088d4 100644 --- a/apps/web/src/lib/attachmentUploadQueue.ts +++ b/apps/web/src/lib/attachmentUploadQueue.ts @@ -13,7 +13,7 @@ import { } from "@t3tools/client-runtime/state/attachments"; import { create } from "zustand"; import * as Option from "effect/Option"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { DraftId, diff --git a/apps/web/src/lib/diffFileContents.test.ts b/apps/web/src/lib/diffFileContents.test.ts index 203ff37c8886..7bee138c1a40 100644 --- a/apps/web/src/lib/diffFileContents.test.ts +++ b/apps/web/src/lib/diffFileContents.test.ts @@ -1,7 +1,7 @@ import type { FileDiffMetadata } from "@pierre/diffs"; import { EnvironmentId, type ReviewDiffFileContentsResult } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { describe, expect, it, vi } from "vite-plus/test"; import { createGitDiffFileContentsLoader } from "./diffFileContents"; diff --git a/apps/web/src/lib/discardComposerDraft.ts b/apps/web/src/lib/discardComposerDraft.ts index 1a6ffbff6133..3d95f4cb70c2 100644 --- a/apps/web/src/lib/discardComposerDraft.ts +++ b/apps/web/src/lib/discardComposerDraft.ts @@ -1,5 +1,5 @@ import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { type ComposerThreadTarget, diff --git a/apps/web/src/lib/runtime.ts b/apps/web/src/lib/runtime.ts index fd4f2b194096..d016919de415 100644 --- a/apps/web/src/lib/runtime.ts +++ b/apps/web/src/lib/runtime.ts @@ -1,7 +1,7 @@ import * as ManagedRuntime from "effect/ManagedRuntime"; import type * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as Socket from "effect/unstable/socket/Socket"; +import * as Socket from "effect/socket/Socket"; import { remoteHttpClientLayer } from "@t3tools/client-runtime/rpc"; import { makeRelayClientTracingLayer } from "@t3tools/shared/relayTracing"; diff --git a/apps/web/src/lib/utils.ts b/apps/web/src/lib/utils.ts index 8c44369dc53e..9824c0546fb2 100644 --- a/apps/web/src/lib/utils.ts +++ b/apps/web/src/lib/utils.ts @@ -1,6 +1,6 @@ import { MessageId, ProjectId, ThreadId } from "@t3tools/contracts"; import { type CxOptions, cx } from "class-variance-authority"; -import * as Encoding from "effect/Encoding"; +import * as Hex from "effect/encoding/Hex"; import { extendTailwindMerge } from "tailwind-merge"; import { DraftId } from "../composerDraftStore"; @@ -38,7 +38,7 @@ export function randomUUID(): string { const bytes = globalThis.crypto.getRandomValues(new Uint8Array(16)); bytes[6] = (bytes[6]! & 0x0f) | 0x40; bytes[8] = (bytes[8]! & 0x3f) | 0x80; - const hex = Encoding.encodeHex(bytes); + const hex = Hex.encode(bytes); return `${hex.slice(0, 8)}-${hex.slice(8, 12)}-${hex.slice(12, 16)}-${hex.slice(16, 20)}-${hex.slice(20)}`; } diff --git a/apps/web/src/observability/clientTracing.ts b/apps/web/src/observability/clientTracing.ts index e8ccd4173d35..8618065dc4f8 100644 --- a/apps/web/src/observability/clientTracing.ts +++ b/apps/web/src/observability/clientTracing.ts @@ -2,8 +2,8 @@ import * as Exit from "effect/Exit"; import * as Layer from "effect/Layer"; import * as ManagedRuntime from "effect/ManagedRuntime"; import * as Scope from "effect/Scope"; -import { HttpClient } from "effect/unstable/http"; -import { OtlpExporter, OtlpSerialization, OtlpTracer } from "effect/unstable/observability"; +import { HttpClient } from "effect/http"; +import { OtlpExporter, OtlpSerialization, OtlpTracer } from "effect/observability"; import { settleAsyncResult, squashAtomCommandFailure } from "@t3tools/client-runtime/state/runtime"; import { safeErrorLogAttributes } from "@t3tools/client-runtime/errors"; diff --git a/apps/web/src/onboarding/useProjectScans.ts b/apps/web/src/onboarding/useProjectScans.ts index fc039293048c..cbb3c4f03d67 100644 --- a/apps/web/src/onboarding/useProjectScans.ts +++ b/apps/web/src/onboarding/useProjectScans.ts @@ -1,7 +1,7 @@ import { RegistryContext, useAtomValue } from "@effect/atom-react"; import type { EnvironmentId } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { useContext, useMemo } from "react"; import { agentSessionScan } from "../state/agentSessions"; diff --git a/apps/web/src/previewStateStore.ts b/apps/web/src/previewStateStore.ts index 1e7ec3706618..26be8c497740 100644 --- a/apps/web/src/previewStateStore.ts +++ b/apps/web/src/previewStateStore.ts @@ -15,7 +15,7 @@ import { type PreviewSessionSnapshot, type ScopedThreadRef, } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { PREVIEW_RECENT_URL_LIMIT } from "./components/preview/previewConstants"; import { appAtomRegistry } from "./rpc/atomRegistry"; diff --git a/apps/web/src/rpc/atomRegistry.ts b/apps/web/src/rpc/atomRegistry.ts index c9ac7ef82bac..f78b6343f954 100644 --- a/apps/web/src/rpc/atomRegistry.ts +++ b/apps/web/src/rpc/atomRegistry.ts @@ -1,5 +1,5 @@ import { RegistryContext } from "@effect/atom-react"; -import { AtomRegistry } from "effect/unstable/reactivity"; +import { AtomRegistry } from "effect/reactivity"; import { createElement } from "react"; export const appAtomRegistry = AtomRegistry.make(); diff --git a/apps/web/src/rpc/requestLatencyState.ts b/apps/web/src/rpc/requestLatencyState.ts index 2731efecfc85..e53c8eb0a5d3 100644 --- a/apps/web/src/rpc/requestLatencyState.ts +++ b/apps/web/src/rpc/requestLatencyState.ts @@ -1,6 +1,6 @@ import { useAtomValue } from "@effect/atom-react"; import { WS_METHODS } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { appAtomRegistry } from "./atomRegistry"; diff --git a/apps/web/src/state/assets.ts b/apps/web/src/state/assets.ts index fe2acba3f9ac..0af7bce4eae6 100644 --- a/apps/web/src/state/assets.ts +++ b/apps/web/src/state/assets.ts @@ -2,7 +2,7 @@ import { createAssetEnvironmentAtoms, createProjectFaviconUrlAtomFamily, } from "@t3tools/client-runtime/state/assets"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { connectionAtomRuntime } from "../connection/runtime"; import { projectFaviconCache } from "../assets/projectFaviconCache"; diff --git a/apps/web/src/state/desktopNetworkAccess.test.ts b/apps/web/src/state/desktopNetworkAccess.test.ts index 0dde5f7d7dc8..25c522522ef5 100644 --- a/apps/web/src/state/desktopNetworkAccess.test.ts +++ b/apps/web/src/state/desktopNetworkAccess.test.ts @@ -1,7 +1,7 @@ import type { AdvertisedEndpoint, DesktopServerExposureState } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; -import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"; -import { AtomRegistry } from "effect/unstable/reactivity"; +import * as AsyncResult from "effect/reactivity/AsyncResult"; +import { AtomRegistry } from "effect/reactivity"; import { describe, expect, it, vi } from "vite-plus/test"; import { createDesktopNetworkAccessStateAtom } from "./desktopNetworkAccess"; diff --git a/apps/web/src/state/desktopNetworkAccess.ts b/apps/web/src/state/desktopNetworkAccess.ts index 3f48cd27fd4f..e94752f8ced6 100644 --- a/apps/web/src/state/desktopNetworkAccess.ts +++ b/apps/web/src/state/desktopNetworkAccess.ts @@ -5,7 +5,7 @@ import type { } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { appAtomRegistry } from "~/rpc/atomRegistry"; diff --git a/apps/web/src/state/desktopSshHosts.test.ts b/apps/web/src/state/desktopSshHosts.test.ts index 39958ac6e475..4b6b60250e47 100644 --- a/apps/web/src/state/desktopSshHosts.test.ts +++ b/apps/web/src/state/desktopSshHosts.test.ts @@ -1,7 +1,7 @@ import type { DesktopDiscoveredSshHost } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; -import { AtomRegistry } from "effect/unstable/reactivity"; -import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"; +import { AtomRegistry } from "effect/reactivity"; +import * as AsyncResult from "effect/reactivity/AsyncResult"; import { describe, expect, it, vi } from "vite-plus/test"; import { createDesktopSshHostsStateAtom, filterDiscoveredSshHosts } from "./desktopSshHosts"; diff --git a/apps/web/src/state/desktopSshHosts.ts b/apps/web/src/state/desktopSshHosts.ts index 8ff142f5d887..bc7d844451a5 100644 --- a/apps/web/src/state/desktopSshHosts.ts +++ b/apps/web/src/state/desktopSshHosts.ts @@ -1,7 +1,7 @@ import type { DesktopBridge, DesktopDiscoveredSshHost } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; type DesktopSshDiscoveryBridge = Pick; diff --git a/apps/web/src/state/desktopUpdate.test.ts b/apps/web/src/state/desktopUpdate.test.ts index f3e7818ed591..04c13c788ca2 100644 --- a/apps/web/src/state/desktopUpdate.test.ts +++ b/apps/web/src/state/desktopUpdate.test.ts @@ -1,6 +1,6 @@ import type { DesktopUpdateState } from "@t3tools/contracts"; -import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"; -import { AtomRegistry } from "effect/unstable/reactivity"; +import * as AsyncResult from "effect/reactivity/AsyncResult"; +import { AtomRegistry } from "effect/reactivity"; import { afterEach, describe, expect, it, vi } from "vite-plus/test"; import { createDesktopUpdateStateAtom, DesktopUpdateStateReadError } from "./desktopUpdate"; diff --git a/apps/web/src/state/desktopUpdate.ts b/apps/web/src/state/desktopUpdate.ts index 9c2cfc5f5fd1..a5fc1d41a1ea 100644 --- a/apps/web/src/state/desktopUpdate.ts +++ b/apps/web/src/state/desktopUpdate.ts @@ -4,8 +4,8 @@ import * as Effect from "effect/Effect"; import * as Queue from "effect/Queue"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"; -import { Atom } from "effect/unstable/reactivity"; +import * as AsyncResult from "effect/reactivity/AsyncResult"; +import { Atom } from "effect/reactivity"; type DesktopUpdateBridge = Pick; diff --git a/apps/web/src/state/desktopWslState.test.ts b/apps/web/src/state/desktopWslState.test.ts index f3a532215afd..0ae9a34a4b95 100644 --- a/apps/web/src/state/desktopWslState.test.ts +++ b/apps/web/src/state/desktopWslState.test.ts @@ -1,7 +1,7 @@ import type { DesktopWslState } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; -import * as AsyncResult from "effect/unstable/reactivity/AsyncResult"; -import { AtomRegistry } from "effect/unstable/reactivity"; +import * as AsyncResult from "effect/reactivity/AsyncResult"; +import { AtomRegistry } from "effect/reactivity"; import { describe, expect, it, vi } from "vite-plus/test"; import { createDesktopWslStateAtom } from "./desktopWslState"; diff --git a/apps/web/src/state/desktopWslState.ts b/apps/web/src/state/desktopWslState.ts index 876690808188..b67796e87073 100644 --- a/apps/web/src/state/desktopWslState.ts +++ b/apps/web/src/state/desktopWslState.ts @@ -1,7 +1,7 @@ import type { DesktopBridge, DesktopWslState } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { appAtomRegistry } from "~/rpc/atomRegistry"; diff --git a/apps/web/src/state/device.ts b/apps/web/src/state/device.ts index 9a42cb0b1305..ae790e8fd022 100644 --- a/apps/web/src/state/device.ts +++ b/apps/web/src/state/device.ts @@ -8,7 +8,7 @@ import { import type { DeviceServiceState, EnvironmentId } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { connectionAtomRuntime } from "../connection/runtime"; import { appAtomRegistry } from "../rpc/atomRegistry"; diff --git a/apps/web/src/state/entities.ts b/apps/web/src/state/entities.ts index a21e5e5c4c4b..00fcbd23cd7b 100644 --- a/apps/web/src/state/entities.ts +++ b/apps/web/src/state/entities.ts @@ -11,7 +11,7 @@ import { } from "@t3tools/client-runtime/state/threads"; import type { ScopedProjectRef, ScopedThreadRef, ServerConfig } from "@t3tools/contracts"; import type { EnvironmentId, OrchestrationV2ProjectedTurnItem } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { appAtomRegistry } from "../rpc/atomRegistry"; import { environmentProjects } from "./projects"; import { environmentServerConfigsAtom } from "./server"; diff --git a/apps/web/src/state/paginatedBranches.test.ts b/apps/web/src/state/paginatedBranches.test.ts index bf229acd32e7..9b4d75d50131 100644 --- a/apps/web/src/state/paginatedBranches.test.ts +++ b/apps/web/src/state/paginatedBranches.test.ts @@ -1,5 +1,5 @@ import type { VcsListRefsResult } from "@t3tools/contracts"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { describe, expect, it } from "vite-plus/test"; import { diff --git a/apps/web/src/state/paginatedBranches.ts b/apps/web/src/state/paginatedBranches.ts index 41809b2de85e..b46d2dac1bcd 100644 --- a/apps/web/src/state/paginatedBranches.ts +++ b/apps/web/src/state/paginatedBranches.ts @@ -1,6 +1,6 @@ import type { VcsListRefsResult } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; const DEFAULT_NEXT_PAGE_DISTANCE_PX = 96; diff --git a/apps/web/src/state/presentation.ts b/apps/web/src/state/presentation.ts index cc1cf39839fe..e970c64f23c7 100644 --- a/apps/web/src/state/presentation.ts +++ b/apps/web/src/state/presentation.ts @@ -5,7 +5,7 @@ import { createEnvironmentSummaryAtoms, } from "@t3tools/client-runtime/state/presentation"; import type { EnvironmentId } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { environmentCatalog } from "../connection/catalog"; import { serverEnvironment } from "./server"; diff --git a/apps/web/src/state/primaryEnvironment.ts b/apps/web/src/state/primaryEnvironment.ts index e37931f74a85..75739b8ddeff 100644 --- a/apps/web/src/state/primaryEnvironment.ts +++ b/apps/web/src/state/primaryEnvironment.ts @@ -1,4 +1,4 @@ -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { environmentCatalog } from "../connection/catalog"; diff --git a/apps/web/src/state/projectClones.ts b/apps/web/src/state/projectClones.ts index 7cc95c8ba00e..62be64263112 100644 --- a/apps/web/src/state/projectClones.ts +++ b/apps/web/src/state/projectClones.ts @@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react"; import { parseScopedProjectKey, scopedProjectKey } from "@t3tools/client-runtime/environment"; import type { EnvironmentId, ProjectCloneSnapshot, ScopedProjectRef } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { environmentServerConfigsAtom } from "./server"; import { sourceControlEnvironment } from "./sourceControl"; diff --git a/apps/web/src/state/pullRequests.ts b/apps/web/src/state/pullRequests.ts index 365c6812d096..fa5a97f9ee05 100644 --- a/apps/web/src/state/pullRequests.ts +++ b/apps/web/src/state/pullRequests.ts @@ -13,7 +13,7 @@ import type { PullRequestSummary, } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { useCallback, useLayoutEffect, useMemo } from "react"; import { connectionAtomRuntime } from "../connection/runtime"; diff --git a/apps/web/src/state/queries.ts b/apps/web/src/state/queries.ts index 839c4b657606..0cb413df91d0 100644 --- a/apps/web/src/state/queries.ts +++ b/apps/web/src/state/queries.ts @@ -20,7 +20,7 @@ import type { } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { useCallback, useEffect, useMemo, useState } from "react"; import { appAtomRegistry } from "../rpc/atomRegistry"; diff --git a/apps/web/src/state/query.ts b/apps/web/src/state/query.ts index 6a44c81049cb..fbe28367ca3c 100644 --- a/apps/web/src/state/query.ts +++ b/apps/web/src/state/query.ts @@ -1,7 +1,7 @@ import { useAtomRefresh, useAtomValue } from "@effect/atom-react"; import * as Cause from "effect/Cause"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; const EMPTY_ASYNC_RESULT_ATOM = Atom.make(AsyncResult.initial(false)).pipe( Atom.withLabel("web-environment-query:empty"), diff --git a/apps/web/src/state/server.ts b/apps/web/src/state/server.ts index df9ca1b56e60..14cc31ae5e3b 100644 --- a/apps/web/src/state/server.ts +++ b/apps/web/src/state/server.ts @@ -14,7 +14,7 @@ import { createOutdatedServerUpdateCommand } from "@t3tools/client-runtime/state import { createEnvironmentServerConfigsAtom } from "@t3tools/client-runtime/state/shell"; import { mergeWithDefaultKeybindings } from "@t3tools/shared/keybindings"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { environmentCatalog } from "../connection/catalog"; import { connectionAtomRuntime } from "../connection/runtime"; diff --git a/apps/web/src/state/session.ts b/apps/web/src/state/session.ts index a7d5a53d10d2..c861245b9997 100644 --- a/apps/web/src/state/session.ts +++ b/apps/web/src/state/session.ts @@ -2,7 +2,7 @@ import { useAtomValue } from "@effect/atom-react"; import { createEnvironmentSessionAtoms } from "@t3tools/client-runtime/state/session"; import type { EnvironmentId } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { connectionAtomRuntime } from "../connection/runtime"; import { appAtomRegistry } from "../rpc/atomRegistry"; diff --git a/apps/web/src/state/shell.test.ts b/apps/web/src/state/shell.test.ts index 0a8727b9e7a0..48791fb76698 100644 --- a/apps/web/src/state/shell.test.ts +++ b/apps/web/src/state/shell.test.ts @@ -6,7 +6,7 @@ import type { EnvironmentCatalogState } from "@t3tools/client-runtime/state/conn import type { EnvironmentShellState } from "@t3tools/client-runtime/state/shell"; import { EnvironmentId } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry } from "effect/reactivity"; import { describe, expect, it } from "vite-plus/test"; import { createAllEnvironmentProjectSnapshotsReadyAtom } from "./shell"; diff --git a/apps/web/src/state/shell.ts b/apps/web/src/state/shell.ts index e8f61209ae64..d600f542782f 100644 --- a/apps/web/src/state/shell.ts +++ b/apps/web/src/state/shell.ts @@ -14,7 +14,7 @@ import { } from "@t3tools/client-runtime/state/connections"; import type { EnvironmentId } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { environmentCatalog } from "../connection/catalog"; import { connectionAtomRuntime } from "../connection/runtime"; diff --git a/apps/web/src/state/sourceControlActions.ts b/apps/web/src/state/sourceControlActions.ts index c2c215e3d32c..107d4294a64b 100644 --- a/apps/web/src/state/sourceControlActions.ts +++ b/apps/web/src/state/sourceControlActions.ts @@ -18,7 +18,7 @@ import type { } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; import * as Option from "effect/Option"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { useCallback } from "react"; import { appAtomRegistry } from "../rpc/atomRegistry"; diff --git a/apps/web/src/state/threads.test.ts b/apps/web/src/state/threads.test.ts index ff57123247fd..dc6585d75a9c 100644 --- a/apps/web/src/state/threads.test.ts +++ b/apps/web/src/state/threads.test.ts @@ -11,7 +11,7 @@ import { } from "@t3tools/contracts"; import { makeThreadProjectionFixture } from "../test-fixtures"; import * as Option from "effect/Option"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { describe, expect, it } from "vite-plus/test"; import { createRunningThreadKeepAliveAtom } from "./threads"; diff --git a/apps/web/src/state/threads.ts b/apps/web/src/state/threads.ts index fc16affdab9a..59401e41e7c0 100644 --- a/apps/web/src/state/threads.ts +++ b/apps/web/src/state/threads.ts @@ -11,7 +11,7 @@ import { } from "@t3tools/client-runtime/state/threads"; import type { EnvironmentId, OrchestrationV2ThreadShell, ThreadId } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { environmentCatalog } from "../connection/catalog"; import { connectionAtomRuntime } from "../connection/runtime"; diff --git a/apps/web/src/state/usage.ts b/apps/web/src/state/usage.ts index 7bd4657e7d56..91999750d407 100644 --- a/apps/web/src/state/usage.ts +++ b/apps/web/src/state/usage.ts @@ -16,7 +16,7 @@ import { } from "@t3tools/contracts"; import { needsCursorKeychainAccess, refreshUsage } from "@t3tools/client-runtime/state/usage"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { useCallback, useMemo } from "react"; import { mergeUsage, type EnvironmentUsage, type MergedUsage } from "@t3tools/shared/usageMerge"; diff --git a/apps/web/src/state/use-atom-query-runner.ts b/apps/web/src/state/use-atom-query-runner.ts index 691b1f43cb87..d90caee210a8 100644 --- a/apps/web/src/state/use-atom-query-runner.ts +++ b/apps/web/src/state/use-atom-query-runner.ts @@ -4,7 +4,7 @@ import { type AtomQueryOptions, type AtomCommandResult, } from "@t3tools/client-runtime/state/runtime"; -import { AsyncResult, type Atom } from "effect/unstable/reactivity"; +import { AsyncResult, type Atom } from "effect/reactivity"; import { useCallback, useContext } from "react"; export function useAtomQueryRunner( diff --git a/apps/web/src/state/v2ItemSupport.ts b/apps/web/src/state/v2ItemSupport.ts index 269baab3319f..e7fec1123cdf 100644 --- a/apps/web/src/state/v2ItemSupport.ts +++ b/apps/web/src/state/v2ItemSupport.ts @@ -7,7 +7,7 @@ import { } from "@t3tools/client-runtime/state/item-support"; import type { EnvironmentId, ThreadId, TurnItemId } from "@t3tools/contracts"; import { scopeThreadRef } from "@t3tools/client-runtime/environment"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { environmentThreadDetails } from "./threads"; diff --git a/apps/web/src/state/waitForAtomValue.test.ts b/apps/web/src/state/waitForAtomValue.test.ts index 8b8f88a0a63b..55fa96b1a5a1 100644 --- a/apps/web/src/state/waitForAtomValue.test.ts +++ b/apps/web/src/state/waitForAtomValue.test.ts @@ -1,4 +1,4 @@ -import { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry } from "effect/reactivity"; import { describe, expect, it, vi } from "vite-plus/test"; import { waitForAtomValue } from "./waitForAtomValue"; diff --git a/apps/web/src/state/waitForAtomValue.ts b/apps/web/src/state/waitForAtomValue.ts index c47283336509..e38045f19689 100644 --- a/apps/web/src/state/waitForAtomValue.ts +++ b/apps/web/src/state/waitForAtomValue.ts @@ -1,4 +1,4 @@ -import type { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import type { Atom, AtomRegistry } from "effect/reactivity"; export async function waitForAtomValue(input: { readonly registry: AtomRegistry.AtomRegistry; diff --git a/apps/web/test/environmentHttpTest.ts b/apps/web/test/environmentHttpTest.ts index ce43faacc40f..46221e3fa496 100644 --- a/apps/web/test/environmentHttpTest.ts +++ b/apps/web/test/environmentHttpTest.ts @@ -18,8 +18,8 @@ import type * as Context from "effect/Context"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as ManagedRuntime from "effect/ManagedRuntime"; -import { HttpApiTest } from "effect/unstable/httpapi"; -import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder"; +import { HttpApiTest } from "effect/http-api"; +import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder"; import { PrimaryEnvironmentHttpClient } from "../src/environments/primary/httpClient"; import { __setPrimaryHttpRunnerForTests } from "../src/lib/runtime"; diff --git a/infra/relay/package.json b/infra/relay/package.json index d0649d73e361..03976ea81df8 100644 --- a/infra/relay/package.json +++ b/infra/relay/package.json @@ -18,7 +18,7 @@ "@t3tools/client-runtime": "workspace:*", "@t3tools/contracts": "workspace:*", "@t3tools/shared": "workspace:*", - "alchemy": "2.0.0-beta.79", + "alchemy": "2.0.0-beta.80", "drizzle-orm": "1.0.0-rc.5-ab785fc", "effect": "catalog:" }, diff --git a/infra/relay/scripts/android-push-smoke.ts b/infra/relay/scripts/android-push-smoke.ts index 0c2078159ae7..d4ee6a7af6b1 100644 --- a/infra/relay/scripts/android-push-smoke.ts +++ b/infra/relay/scripts/android-push-smoke.ts @@ -6,7 +6,7 @@ import * as Clock from "effect/Clock"; import * as Layer from "effect/Layer"; import * as Redacted from "effect/Redacted"; import * as Schema from "effect/Schema"; -import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient"; +import * as FetchHttpClient from "effect/http/FetchHttpClient"; import * as RelayConfiguration from "../src/Config.ts"; import * as WebCrypto from "../src/WebCrypto.ts"; diff --git a/infra/relay/scripts/android-push-watch.ts b/infra/relay/scripts/android-push-watch.ts index 138d51b70b64..3a8024970d8a 100644 --- a/infra/relay/scripts/android-push-watch.ts +++ b/infra/relay/scripts/android-push-watch.ts @@ -19,10 +19,10 @@ import * as Layer from "effect/Layer"; import * as Redacted from "effect/Redacted"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient"; -import * as RpcClient from "effect/unstable/rpc/RpcClient"; -import * as RpcSerialization from "effect/unstable/rpc/RpcSerialization"; -import * as Socket from "effect/unstable/socket/Socket"; +import * as FetchHttpClient from "effect/http/FetchHttpClient"; +import * as RpcClient from "effect/rpc/RpcClient"; +import * as RpcSerialization from "effect/rpc/RpcSerialization"; +import * as Socket from "effect/socket/Socket"; import * as RelayConfiguration from "../src/Config.ts"; import { androidActivityData, fitFcmData } from "../src/agentActivity/fcmPayloads.ts"; diff --git a/infra/relay/src/agentActivity/ApnsClient.test.ts b/infra/relay/src/agentActivity/ApnsClient.test.ts index 9031c7df18a2..d115b6b428d6 100644 --- a/infra/relay/src/agentActivity/ApnsClient.test.ts +++ b/infra/relay/src/agentActivity/ApnsClient.test.ts @@ -11,9 +11,9 @@ import * as Layer from "effect/Layer"; import * as Redacted from "effect/Redacted"; import * as Schema from "effect/Schema"; import * as TestClock from "effect/testing/TestClock"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientError from "effect/unstable/http/HttpClientError"; -import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientError from "effect/http/HttpClientError"; +import * as HttpClientResponse from "effect/http/HttpClientResponse"; import type { ApnsCredentials } from "../Config.ts"; import * as ApnsClient from "./ApnsClient.ts"; diff --git a/infra/relay/src/agentActivity/ApnsClient.ts b/infra/relay/src/agentActivity/ApnsClient.ts index 62ed56b6e733..01b2ad9952a2 100644 --- a/infra/relay/src/agentActivity/ApnsClient.ts +++ b/infra/relay/src/agentActivity/ApnsClient.ts @@ -4,9 +4,9 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import * as Headers from "effect/unstable/http/Headers"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest"; +import * as Headers from "effect/http/Headers"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientRequest from "effect/http/HttpClientRequest"; import { ApnsEnvironment, type ApnsCredentials } from "../Config.ts"; import type { ApnsLiveActivityAlert, ApnsNotificationPayload } from "./apnsDeliveryJobs.ts"; import type { ApnsJwtEncodingError, ApnsJwtSigningError } from "./apnsJwt.ts"; diff --git a/infra/relay/src/agentActivity/ApnsDeliveries.test.ts b/infra/relay/src/agentActivity/ApnsDeliveries.test.ts index 934ebfdb4423..08483b8217cc 100644 --- a/infra/relay/src/agentActivity/ApnsDeliveries.test.ts +++ b/infra/relay/src/agentActivity/ApnsDeliveries.test.ts @@ -14,12 +14,7 @@ import * as Redacted from "effect/Redacted"; import * as References from "effect/References"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import { - FetchHttpClient, - HttpClient, - HttpClientRequest, - HttpClientResponse, -} from "effect/unstable/http"; +import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; import { makeApnsDeliveryJobPayload, diff --git a/infra/relay/src/agentActivity/FcmClient.test.ts b/infra/relay/src/agentActivity/FcmClient.test.ts index 8f990de89560..f438aaea9125 100644 --- a/infra/relay/src/agentActivity/FcmClient.test.ts +++ b/infra/relay/src/agentActivity/FcmClient.test.ts @@ -7,9 +7,9 @@ import * as Layer from "effect/Layer"; import * as Redacted from "effect/Redacted"; import * as Schema from "effect/Schema"; import * as TestClock from "effect/testing/TestClock"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"; -import type * as HttpClientRequest from "effect/unstable/http/HttpClientRequest"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientResponse from "effect/http/HttpClientResponse"; +import type * as HttpClientRequest from "effect/http/HttpClientRequest"; import * as RelayConfiguration from "../Config.ts"; import * as FcmClient from "./FcmClient.ts"; diff --git a/infra/relay/src/agentActivity/FcmClient.ts b/infra/relay/src/agentActivity/FcmClient.ts index eb8d327f7a5e..0bec2a8a60a5 100644 --- a/infra/relay/src/agentActivity/FcmClient.ts +++ b/infra/relay/src/agentActivity/FcmClient.ts @@ -5,8 +5,8 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Redacted from "effect/Redacted"; import * as Schema from "effect/Schema"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientRequest from "effect/unstable/http/HttpClientRequest"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientRequest from "effect/http/HttpClientRequest"; import * as RelayConfiguration from "../Config.ts"; import * as FcmAssertionSigner from "./FcmAssertionSigner.ts"; diff --git a/infra/relay/src/agentActivity/MobileRegistrations.test.ts b/infra/relay/src/agentActivity/MobileRegistrations.test.ts index 2f23660e1b63..41b32ef99db7 100644 --- a/infra/relay/src/agentActivity/MobileRegistrations.test.ts +++ b/infra/relay/src/agentActivity/MobileRegistrations.test.ts @@ -9,7 +9,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Logger from "effect/Logger"; import * as Redacted from "effect/Redacted"; -import { FetchHttpClient } from "effect/unstable/http"; +import { FetchHttpClient } from "effect/http"; import * as Devices from "./Devices.ts"; import * as AgentActivityRows from "./AgentActivityRows.ts"; diff --git a/infra/relay/src/agentActivity/apnsJwt.ts b/infra/relay/src/agentActivity/apnsJwt.ts index 9019e9c2c7f4..8ca65b73fb3b 100644 --- a/infra/relay/src/agentActivity/apnsJwt.ts +++ b/infra/relay/src/agentActivity/apnsJwt.ts @@ -3,7 +3,7 @@ import * as NodeCrypto from "node:crypto"; import { p256 } from "@noble/curves/nist"; import { sha256 } from "@noble/hashes/sha2"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import * as Redacted from "effect/Redacted"; import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; @@ -95,8 +95,8 @@ export const makeApnsJwt = Effect.fn("relay.apns.make_jwt")(function* (input: Ap ); const privateKey = Redacted.value(input.privateKey); - const header = Encoding.encodeBase64Url(headerJson); - const payload = Encoding.encodeBase64Url(payloadJson); + const header = Base64Url.encode(headerJson); + const payload = Base64Url.encode(payloadJson); const signingInput = `${header}.${payload}`; return yield* Effect.try({ @@ -110,7 +110,7 @@ export const makeApnsJwt = Effect.fn("relay.apns.make_jwt")(function* (input: Ap const signature = p256 .sign(sha256(new TextEncoder().encode(signingInput)), scalar, { prehash: false }) .toCompactRawBytes(); - return `${signingInput}.${Encoding.encodeBase64Url(signature)}`; + return `${signingInput}.${Base64Url.encode(signature)}`; }, catch: (cause) => new ApnsJwtSigningError({ @@ -138,7 +138,7 @@ function apnsSigningScalar(privateKeyPem: string): Uint8Array { throw new Error("APNs signing key is not a P-256 private key."); } const scalar = Result.getOrThrowWith( - Encoding.decodeBase64Url(jwk.d), + Base64Url.decode(jwk.d), () => new Error("APNs signing key scalar is not valid base64url."), ); signingScalarCache.set(privateKeyPem, scalar); diff --git a/infra/relay/src/environments/EnvironmentConnector.test.ts b/infra/relay/src/environments/EnvironmentConnector.test.ts index 379aff123d43..df1873529c2a 100644 --- a/infra/relay/src/environments/EnvironmentConnector.test.ts +++ b/infra/relay/src/environments/EnvironmentConnector.test.ts @@ -25,7 +25,7 @@ import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; import * as TestClock from "effect/testing/TestClock"; import * as Tracer from "effect/Tracer"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; import * as EnvironmentLinks from "./EnvironmentLinks.ts"; import * as RelayConfiguration from "../Config.ts"; diff --git a/infra/relay/src/environments/EnvironmentConnector.ts b/infra/relay/src/environments/EnvironmentConnector.ts index 9201f814661e..d4b975d5438a 100644 --- a/infra/relay/src/environments/EnvironmentConnector.ts +++ b/infra/relay/src/environments/EnvironmentConnector.ts @@ -36,9 +36,9 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Redacted from "effect/Redacted"; import * as Schema from "effect/Schema"; -import * as FetchHttpClient from "effect/unstable/http/FetchHttpClient"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientError from "effect/unstable/http/HttpClientError"; +import * as FetchHttpClient from "effect/http/FetchHttpClient"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientError from "effect/http/HttpClientError"; import * as EnvironmentLinks from "./EnvironmentLinks.ts"; import * as ManagedEndpointAllocations from "./ManagedEndpointAllocations.ts"; diff --git a/infra/relay/src/environments/EnvironmentCredentials.ts b/infra/relay/src/environments/EnvironmentCredentials.ts index ca254ec01d26..aa8a8a179083 100644 --- a/infra/relay/src/environments/EnvironmentCredentials.ts +++ b/infra/relay/src/environments/EnvironmentCredentials.ts @@ -2,7 +2,7 @@ import * as Context from "effect/Context"; import * as Crypto from "effect/Crypto"; import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; @@ -85,9 +85,7 @@ const make = Effect.gen(function* () { const db = yield* RelayDb.RelayDb; const crypto = yield* Crypto.Crypto; const hashToken = (token: string) => - crypto - .digest("SHA-256", new TextEncoder().encode(token)) - .pipe(Effect.map(Encoding.encodeBase64Url)); + crypto.digest("SHA-256", new TextEncoder().encode(token)).pipe(Effect.map(Base64Url.encode)); const randomTokenPart = (segments: number) => Effect.map(Effect.all(Array.from({ length: segments }, () => crypto.randomUUIDv4)), (values) => values.join("").replaceAll("-", ""), diff --git a/infra/relay/src/environments/EnvironmentPublishSignatures.ts b/infra/relay/src/environments/EnvironmentPublishSignatures.ts index 962d55b050bc..257cf83ab209 100644 --- a/infra/relay/src/environments/EnvironmentPublishSignatures.ts +++ b/infra/relay/src/environments/EnvironmentPublishSignatures.ts @@ -14,7 +14,7 @@ import * as Context from "effect/Context"; import * as Crypto from "effect/Crypto"; import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import * as Layer from "effect/Layer"; import * as Schema from "effect/Schema"; @@ -100,7 +100,7 @@ function environmentPublishReplayThumbprintData(input: { } const formatEnvironmentPublishReplayThumbprint = (digest: Uint8Array) => - `env-publish:${Encoding.encodeBase64Url(digest)}`; + `env-publish:${Base64Url.encode(digest)}`; const make = Effect.gen(function* () { const proofReplay = yield* DpopProofs.DpopProofReplay; diff --git a/infra/relay/src/environments/ManagedEndpointAllocations.ts b/infra/relay/src/environments/ManagedEndpointAllocations.ts index 588333d3e15a..1b4d3744963b 100644 --- a/infra/relay/src/environments/ManagedEndpointAllocations.ts +++ b/infra/relay/src/environments/ManagedEndpointAllocations.ts @@ -7,7 +7,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import * as SqlError from "effect/unstable/sql/SqlError"; +import * as SqlError from "effect/sql/SqlError"; import * as RelayDb from "../db.ts"; import { isManagedEndpointHostname, managedEndpointForHostname } from "../deploymentConfig.ts"; diff --git a/infra/relay/src/environments/ManagedEndpointProvider.ts b/infra/relay/src/environments/ManagedEndpointProvider.ts index 13494dd49678..10b6ae2d88a4 100644 --- a/infra/relay/src/environments/ManagedEndpointProvider.ts +++ b/infra/relay/src/environments/ManagedEndpointProvider.ts @@ -5,7 +5,7 @@ import * as Context from "effect/Context"; import * as Crypto from "effect/Crypto"; import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Hex from "effect/encoding/Hex"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; @@ -922,7 +922,7 @@ export const make = Effect.gen(function* () { ), ) .pipe( - Effect.map(Encoding.encodeHex), + Effect.map(Hex.encode), Effect.mapError( (cause) => new ManagedEndpointProvisioningFailed({ diff --git a/infra/relay/src/http/Api.test.ts b/infra/relay/src/http/Api.test.ts index 7e8458949a80..6e0db9cd144c 100644 --- a/infra/relay/src/http/Api.test.ts +++ b/infra/relay/src/http/Api.test.ts @@ -1,4 +1,4 @@ -import * as HttpServer from "effect/unstable/http/HttpServer"; +import * as HttpServer from "effect/http/HttpServer"; import { RelayClientAuth, RelayClientPrincipal, @@ -25,12 +25,12 @@ import * as Predicate from "effect/Predicate"; import * as Redacted from "effect/Redacted"; import * as TestClock from "effect/testing/TestClock"; import * as Tracer from "effect/Tracer"; -import * as Etag from "effect/unstable/http/Etag"; -import * as HttpRouter from "effect/unstable/http/HttpRouter"; -import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest"; -import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse"; -import * as HttpApi from "effect/unstable/httpapi/HttpApi"; -import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder"; +import * as Etag from "effect/http/Etag"; +import * as HttpRouter from "effect/http/HttpRouter"; +import * as HttpServerRequest from "effect/http/HttpServerRequest"; +import * as HttpServerResponse from "effect/http/HttpServerResponse"; +import * as HttpApi from "effect/http-api/HttpApi"; +import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder"; import { EnvironmentId } from "@t3tools/contracts"; import { RelayEnvironmentAuth, diff --git a/infra/relay/src/http/Api.ts b/infra/relay/src/http/Api.ts index 42fd2cebf25b..ef2f31ea6599 100644 --- a/infra/relay/src/http/Api.ts +++ b/infra/relay/src/http/Api.ts @@ -11,14 +11,14 @@ import * as Record from "effect/Record"; import * as Redacted from "effect/Redacted"; import * as Schema from "effect/Schema"; import * as Tracer from "effect/Tracer"; -import * as HttpEffect from "effect/unstable/http/HttpEffect"; -import * as HttpMiddleware from "effect/unstable/http/HttpMiddleware"; -import * as HttpRouter from "effect/unstable/http/HttpRouter"; -import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest"; -import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse"; -import * as HttpTraceContext from "effect/unstable/http/HttpTraceContext"; -import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder"; -import * as HttpApiError from "effect/unstable/httpapi/HttpApiError"; +import * as HttpEffect from "effect/http/HttpEffect"; +import * as HttpMiddleware from "effect/http/HttpMiddleware"; +import * as HttpRouter from "effect/http/HttpRouter"; +import * as HttpServerRequest from "effect/http/HttpServerRequest"; +import * as HttpServerResponse from "effect/http/HttpServerResponse"; +import * as HttpTraceContext from "effect/http/HttpTraceContext"; +import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder"; +import * as HttpApiError from "effect/http-api/HttpApiError"; import { encodeOAuthScope } from "@t3tools/shared/oauthScope"; import { httpHeaderRedactionLayer } from "@t3tools/shared/httpObservability"; diff --git a/infra/relay/src/observability.test.ts b/infra/relay/src/observability.test.ts index d77c01277f1c..122b8deb628c 100644 --- a/infra/relay/src/observability.test.ts +++ b/infra/relay/src/observability.test.ts @@ -4,10 +4,10 @@ import * as Deferred from "effect/Deferred"; import * as Effect from "effect/Effect"; import * as Redacted from "effect/Redacted"; import * as Schema from "effect/Schema"; -import * as HttpServer from "effect/unstable/http/HttpServer"; -import * as HttpServerRequest from "effect/unstable/http/HttpServerRequest"; -import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse"; -import type { OtlpTracer } from "effect/unstable/observability"; +import * as HttpServer from "effect/http/HttpServer"; +import * as HttpServerRequest from "effect/http/HttpServerRequest"; +import * as HttpServerResponse from "effect/http/HttpServerResponse"; +import type { OtlpTracer } from "effect/observability"; import * as EnvironmentConnector from "./environments/EnvironmentConnector.ts"; import { makeRelayTraceLayer } from "./observability.ts"; diff --git a/infra/relay/src/observability.ts b/infra/relay/src/observability.ts index 2325d7e0432a..41f867b64e5c 100644 --- a/infra/relay/src/observability.ts +++ b/infra/relay/src/observability.ts @@ -9,7 +9,7 @@ import * as Option from "effect/Option"; import * as Redacted from "effect/Redacted"; import * as Schema from "effect/Schema"; import * as Tracer from "effect/Tracer"; -import { OtlpExporter, OtlpSerialization, OtlpTracer } from "effect/unstable/observability"; +import { OtlpExporter, OtlpSerialization, OtlpTracer } from "effect/observability"; import { relayResourceNameForStage } from "./deploymentConfig.ts"; diff --git a/infra/relay/src/worker.ts b/infra/relay/src/worker.ts index c5df3150c40f..4571a707db2f 100644 --- a/infra/relay/src/worker.ts +++ b/infra/relay/src/worker.ts @@ -10,11 +10,11 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Redacted from "effect/Redacted"; import * as Stream from "effect/Stream"; -import * as Etag from "effect/unstable/http/Etag"; -import * as HttpPlatform from "effect/unstable/http/HttpPlatform"; -import * as HttpRouter from "effect/unstable/http/HttpRouter"; -import * as HttpApiBuilder from "effect/unstable/httpapi/HttpApiBuilder"; -import * as HttpApiScalar from "effect/unstable/httpapi/HttpApiScalar"; +import * as Etag from "effect/http/Etag"; +import * as HttpPlatform from "effect/http/HttpPlatform"; +import * as HttpRouter from "effect/http/HttpRouter"; +import * as HttpApiBuilder from "effect/http-api/HttpApiBuilder"; +import * as HttpApiScalar from "effect/http-api/HttpApiScalar"; import { RelayApi } from "@t3tools/contracts/relay"; diff --git a/oxlint-plugin-t3code/test/utils.ts b/oxlint-plugin-t3code/test/utils.ts index dc80ea3451f4..594b3b80a6db 100644 --- a/oxlint-plugin-t3code/test/utils.ts +++ b/oxlint-plugin-t3code/test/utils.ts @@ -8,7 +8,7 @@ import * as PlatformError from "effect/PlatformError"; import * as Predicate from "effect/Predicate"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as NodeModule from "node:module"; // oxlint is only a transitive dependency (via vite-plus), so its bin placement diff --git a/packages/client-runtime/src/authorization/service.ts b/packages/client-runtime/src/authorization/service.ts index 56b0ced30729..68f0e13cacdd 100644 --- a/packages/client-runtime/src/authorization/service.ts +++ b/packages/client-runtime/src/authorization/service.ts @@ -37,7 +37,7 @@ import * as Ref from "effect/Ref"; import * as Result from "effect/Result"; import * as Scope from "effect/Scope"; import * as Semaphore from "effect/Semaphore"; -import * as HttpClient from "effect/unstable/http/HttpClient"; +import * as HttpClient from "effect/http/HttpClient"; import { DPOP_ACCESS_TOKEN_REFRESH_SKEW_MS, diff --git a/packages/client-runtime/src/connection/driver.ts b/packages/client-runtime/src/connection/driver.ts index 701f1c3d185d..d34bc1a9ba49 100644 --- a/packages/client-runtime/src/connection/driver.ts +++ b/packages/client-runtime/src/connection/driver.ts @@ -4,7 +4,7 @@ import * as Exit from "effect/Exit"; import * as Fiber from "effect/Fiber"; import * as Layer from "effect/Layer"; import * as Scope from "effect/Scope"; -import * as HttpClient from "effect/unstable/http/HttpClient"; +import * as HttpClient from "effect/http/HttpClient"; import type { ConnectionCatalogEntry, ConnectionRoute } from "./catalog.ts"; import type { diff --git a/packages/client-runtime/src/connection/onboarding.ts b/packages/client-runtime/src/connection/onboarding.ts index 65ec090848d4..461d54dc36ef 100644 --- a/packages/client-runtime/src/connection/onboarding.ts +++ b/packages/client-runtime/src/connection/onboarding.ts @@ -6,7 +6,7 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import * as HttpClient from "effect/unstable/http/HttpClient"; +import * as HttpClient from "effect/http/HttpClient"; import { bootstrapRemoteBearerSession } from "../authorization/remote.ts"; import { deriveWsBaseUrl, normalizeHttpBaseUrl } from "../environment/endpoint.ts"; diff --git a/packages/client-runtime/src/connection/outdatedHostUpdate.test.ts b/packages/client-runtime/src/connection/outdatedHostUpdate.test.ts index e63d095facb5..459afd3dfe9f 100644 --- a/packages/client-runtime/src/connection/outdatedHostUpdate.test.ts +++ b/packages/client-runtime/src/connection/outdatedHostUpdate.test.ts @@ -10,9 +10,9 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as HttpClientResponse from "effect/unstable/http/HttpClientResponse"; -import * as Socket from "effect/unstable/socket/Socket"; +import * as HttpClient from "effect/http/HttpClient"; +import * as HttpClientResponse from "effect/http/HttpClientResponse"; +import * as Socket from "effect/socket/Socket"; import type { ConnectionCatalogEntry } from "./catalog.ts"; import { orchestrationProtocolCompatibilityError } from "./compatibility.ts"; diff --git a/packages/client-runtime/src/connection/outdatedHostUpdate.ts b/packages/client-runtime/src/connection/outdatedHostUpdate.ts index 08b5ae28651f..ebb3749c7419 100644 --- a/packages/client-runtime/src/connection/outdatedHostUpdate.ts +++ b/packages/client-runtime/src/connection/outdatedHostUpdate.ts @@ -15,10 +15,10 @@ import * as Schedule from "effect/Schedule"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import * as HttpClient from "effect/unstable/http/HttpClient"; -import * as RpcClient from "effect/unstable/rpc/RpcClient"; -import * as RpcSerialization from "effect/unstable/rpc/RpcSerialization"; -import * as Socket from "effect/unstable/socket/Socket"; +import * as HttpClient from "effect/http/HttpClient"; +import * as RpcClient from "effect/rpc/RpcClient"; +import * as RpcSerialization from "effect/rpc/RpcSerialization"; +import * as Socket from "effect/socket/Socket"; import { fetchRemoteEnvironmentDescriptor } from "../environment/descriptor.ts"; import { makeWsRpcProtocolClient } from "../rpc/protocol.ts"; diff --git a/packages/client-runtime/src/connection/resolver.ts b/packages/client-runtime/src/connection/resolver.ts index c1f6ac9ea416..a70a7531a799 100644 --- a/packages/client-runtime/src/connection/resolver.ts +++ b/packages/client-runtime/src/connection/resolver.ts @@ -8,7 +8,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import * as HttpClient from "effect/unstable/http/HttpClient"; +import * as HttpClient from "effect/http/HttpClient"; import { appendClientConnectionParams } from "../authorization/remote.ts"; import * as RemoteEnvironmentAuthorization from "../authorization/service.ts"; diff --git a/packages/client-runtime/src/operations/commands.performance.test.ts b/packages/client-runtime/src/operations/commands.performance.test.ts index 9f536e3db779..1aecd593718d 100644 --- a/packages/client-runtime/src/operations/commands.performance.test.ts +++ b/packages/client-runtime/src/operations/commands.performance.test.ts @@ -17,7 +17,7 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import type * as RpcMessage from "effect/unstable/rpc/RpcMessage"; +import type * as RpcMessage from "effect/rpc/RpcMessage"; import { AVAILABLE_CONNECTION_STATE, diff --git a/packages/client-runtime/src/projectFaviconCache.ts b/packages/client-runtime/src/projectFaviconCache.ts index 53fd58372190..32a502677df0 100644 --- a/packages/client-runtime/src/projectFaviconCache.ts +++ b/packages/client-runtime/src/projectFaviconCache.ts @@ -5,7 +5,7 @@ import { getProjectFaviconResourceKey, isProjectFaviconFallbackUrl, } from "@t3tools/shared/projectFavicon"; -import * as Encoding from "effect/Encoding"; +import * as Base64 from "effect/encoding/Base64"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; @@ -111,7 +111,7 @@ export function createProjectFaviconImageLoader(input: { if (!mimeType) throw new Error("Project icon has no image type."); const bytes = await readBounded(response, PROJECT_FAVICON_MAX_SOURCE_BYTES); signal.throwIfAborted(); - const dataUrl = `data:${mimeType};base64,${Encoding.encodeBase64(bytes)}`; + const dataUrl = `data:${mimeType};base64,${Base64.encode(bytes)}`; if (isImageDataUrl(dataUrl)) return dataUrl; if (mimeType === "image/svg+xml") throw new Error("Project icon exceeds the cache limit."); return input.downscale({ url, mimeType, bytes }, signal); diff --git a/packages/client-runtime/src/relay/managedRelay.ts b/packages/client-runtime/src/relay/managedRelay.ts index 9c414ad9e605..f73162402356 100644 --- a/packages/client-runtime/src/relay/managedRelay.ts +++ b/packages/client-runtime/src/relay/managedRelay.ts @@ -41,9 +41,9 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; import * as SynchronizedRef from "effect/SynchronizedRef"; -import * as HttpClientError from "effect/unstable/http/HttpClientError"; -import type * as HttpMethod from "effect/unstable/http/HttpMethod"; -import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient"; +import * as HttpClientError from "effect/http/HttpClientError"; +import type * as HttpMethod from "effect/http/HttpMethod"; +import * as HttpApiClient from "effect/http-api/HttpApiClient"; import { NETWORK_BLOCKING_HINT } from "../errors/network.ts"; export interface ManagedRelayDpopProofInput { diff --git a/packages/client-runtime/src/relay/managedRelayState.test.ts b/packages/client-runtime/src/relay/managedRelayState.test.ts index 5c8b1a957c32..f893b58fa227 100644 --- a/packages/client-runtime/src/relay/managedRelayState.test.ts +++ b/packages/client-runtime/src/relay/managedRelayState.test.ts @@ -10,7 +10,7 @@ import * as Effect from "effect/Effect"; import * as Fiber from "effect/Fiber"; import * as Layer from "effect/Layer"; import * as Stream from "effect/Stream"; -import { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry } from "effect/reactivity"; import { afterEach, vi } from "vite-plus/test"; import { DPOP_UNKNOWN_HINT } from "./errorPresentation.ts"; diff --git a/packages/client-runtime/src/relay/managedRelayState.ts b/packages/client-runtime/src/relay/managedRelayState.ts index cd092689cdd4..217d2e9a6d07 100644 --- a/packages/client-runtime/src/relay/managedRelayState.ts +++ b/packages/client-runtime/src/relay/managedRelayState.ts @@ -15,7 +15,7 @@ import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { findErrorTraceId } from "../errors/errorTrace.ts"; import * as ManagedRelay from "./managedRelay.ts"; diff --git a/packages/client-runtime/src/remotePerformance.bench.ts b/packages/client-runtime/src/remotePerformance.bench.ts index 5660339d035e..e4452ffa04d1 100644 --- a/packages/client-runtime/src/remotePerformance.bench.ts +++ b/packages/client-runtime/src/remotePerformance.bench.ts @@ -7,7 +7,7 @@ import { } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import { describe, test } from "vite-plus/test"; import { issueRemoteWebSocketTicket } from "./authorization/remote.ts"; diff --git a/packages/client-runtime/src/rpc/client.test.ts b/packages/client-runtime/src/rpc/client.test.ts index 8dda4440e673..8af2609bf87c 100644 --- a/packages/client-runtime/src/rpc/client.test.ts +++ b/packages/client-runtime/src/rpc/client.test.ts @@ -22,7 +22,7 @@ import * as Ref from "effect/Ref"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; import * as TestClock from "effect/testing/TestClock"; -import { RpcClientError } from "effect/unstable/rpc"; +import { RpcClientError } from "effect/rpc"; import { AVAILABLE_CONNECTION_STATE, diff --git a/packages/client-runtime/src/rpc/client.ts b/packages/client-runtime/src/rpc/client.ts index 4ce45cf3ff1b..0761678c140a 100644 --- a/packages/client-runtime/src/rpc/client.ts +++ b/packages/client-runtime/src/rpc/client.ts @@ -12,7 +12,7 @@ import * as Schema from "effect/Schema"; import * as Schedule from "effect/Schedule"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { RpcClientError } from "effect/unstable/rpc"; +import { RpcClientError } from "effect/rpc"; import * as EnvironmentSupervisor from "../connection/supervisor.ts"; import type { WsRpcProtocolClient } from "../rpc/protocol.ts"; diff --git a/packages/client-runtime/src/rpc/http.ts b/packages/client-runtime/src/rpc/http.ts index d1c470d171ff..1db4a5118d4b 100644 --- a/packages/client-runtime/src/rpc/http.ts +++ b/packages/client-runtime/src/rpc/http.ts @@ -15,8 +15,8 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import { FetchHttpClient, HttpClient, HttpClientError } from "effect/unstable/http"; -import * as HttpApiClient from "effect/unstable/httpapi/HttpApiClient"; +import { FetchHttpClient, HttpClient, HttpClientError } from "effect/http"; +import * as HttpApiClient from "effect/http-api/HttpApiClient"; const isEnvironmentHttpCommonError = Schema.is(EnvironmentHttpCommonError); diff --git a/packages/client-runtime/src/rpc/protocol.ts b/packages/client-runtime/src/rpc/protocol.ts index b8447f0d7af3..bc4666808ef9 100644 --- a/packages/client-runtime/src/rpc/protocol.ts +++ b/packages/client-runtime/src/rpc/protocol.ts @@ -1,6 +1,6 @@ import { WsRpcGroup } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; -import { RpcClient } from "effect/unstable/rpc"; +import { RpcClient } from "effect/rpc"; export const makeWsRpcProtocolClient = RpcClient.make(WsRpcGroup); type RpcClientFactory = typeof makeWsRpcProtocolClient; diff --git a/packages/client-runtime/src/rpc/session.test.ts b/packages/client-runtime/src/rpc/session.test.ts index edbe429986f2..269e2305f8a7 100644 --- a/packages/client-runtime/src/rpc/session.test.ts +++ b/packages/client-runtime/src/rpc/session.test.ts @@ -23,7 +23,7 @@ import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; import * as TestClock from "effect/testing/TestClock"; -import * as Socket from "effect/unstable/socket/Socket"; +import * as Socket from "effect/socket/Socket"; import { AVAILABLE_CONNECTION_STATE, diff --git a/packages/client-runtime/src/rpc/session.ts b/packages/client-runtime/src/rpc/session.ts index ce0296819e7c..1186d5f23166 100644 --- a/packages/client-runtime/src/rpc/session.ts +++ b/packages/client-runtime/src/rpc/session.ts @@ -18,11 +18,11 @@ import * as Schedule from "effect/Schedule"; import * as Schema from "effect/Schema"; import type * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import type * as Rpc from "effect/unstable/rpc/Rpc"; -import * as RpcClient from "effect/unstable/rpc/RpcClient"; -import * as RpcClientError from "effect/unstable/rpc/RpcClientError"; -import * as RpcSerialization from "effect/unstable/rpc/RpcSerialization"; -import * as Socket from "effect/unstable/socket/Socket"; +import type * as Rpc from "effect/rpc/Rpc"; +import * as RpcClient from "effect/rpc/RpcClient"; +import * as RpcClientError from "effect/rpc/RpcClientError"; +import * as RpcSerialization from "effect/rpc/RpcSerialization"; +import * as Socket from "effect/socket/Socket"; import { makeWsRpcProtocolClient, type WsRpcProtocolClient } from "./protocol.ts"; import { NETWORK_BLOCKING_HINT } from "../errors/network.ts"; diff --git a/packages/client-runtime/src/state/archivedThreads.test.ts b/packages/client-runtime/src/state/archivedThreads.test.ts index 4928b1f81104..7680a73f26e0 100644 --- a/packages/client-runtime/src/state/archivedThreads.test.ts +++ b/packages/client-runtime/src/state/archivedThreads.test.ts @@ -1,6 +1,6 @@ import { EnvironmentId, type OrchestrationV2ArchivedShellSnapshot } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { expect, it } from "vite-plus/test"; import { diff --git a/packages/client-runtime/src/state/archivedThreads.ts b/packages/client-runtime/src/state/archivedThreads.ts index 8b71479b45ec..7160d2f83f1b 100644 --- a/packages/client-runtime/src/state/archivedThreads.ts +++ b/packages/client-runtime/src/state/archivedThreads.ts @@ -3,7 +3,7 @@ import * as Arr from "effect/Array"; import { pipe } from "effect/Function"; import * as Option from "effect/Option"; import * as Order from "effect/Order"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; export interface ArchivedSnapshotEntry { readonly environmentId: EnvironmentId; diff --git a/packages/client-runtime/src/state/assets.test.ts b/packages/client-runtime/src/state/assets.test.ts index d1407fe79598..c572f51370e8 100644 --- a/packages/client-runtime/src/state/assets.test.ts +++ b/packages/client-runtime/src/state/assets.test.ts @@ -17,7 +17,7 @@ import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; import * as Option from "effect/Option"; import * as Layer from "effect/Layer"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import * as EnvironmentRegistry from "../connection/registry.ts"; import { diff --git a/packages/client-runtime/src/state/assets.ts b/packages/client-runtime/src/state/assets.ts index 670246610248..865993bd5fc6 100644 --- a/packages/client-runtime/src/state/assets.ts +++ b/packages/client-runtime/src/state/assets.ts @@ -17,7 +17,7 @@ import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import * as EnvironmentRegistry from "../connection/registry.ts"; import * as EnvironmentSupervisor from "../connection/supervisor.ts"; diff --git a/packages/client-runtime/src/state/attachments.test.ts b/packages/client-runtime/src/state/attachments.test.ts index f09c47362241..4192d471f22f 100644 --- a/packages/client-runtime/src/state/attachments.test.ts +++ b/packages/client-runtime/src/state/attachments.test.ts @@ -7,7 +7,7 @@ import { type AttachmentDeleteInput, } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import type { AtomCommand } from "./runtime.ts"; import { diff --git a/packages/client-runtime/src/state/attachments.ts b/packages/client-runtime/src/state/attachments.ts index 0dc457e2cade..b58a8e34e5a9 100644 --- a/packages/client-runtime/src/state/attachments.ts +++ b/packages/client-runtime/src/state/attachments.ts @@ -6,7 +6,7 @@ import { type AttachmentDeleteInput, type EnvironmentId, } from "@t3tools/contracts"; -import type { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import type { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import type { EnvironmentRegistry } from "../connection/registry.ts"; import { diff --git a/packages/client-runtime/src/state/auth.ts b/packages/client-runtime/src/state/auth.ts index 504dabb91b34..3f249e3b417f 100644 --- a/packages/client-runtime/src/state/auth.ts +++ b/packages/client-runtime/src/state/auth.ts @@ -5,7 +5,7 @@ import type { } from "@t3tools/contracts"; import { WS_METHODS } from "@t3tools/contracts"; import * as Stream from "effect/Stream"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import type { EnvironmentRegistry } from "../connection/registry.ts"; import { subscribe } from "../rpc/client.ts"; diff --git a/packages/client-runtime/src/state/boundedThreadSnapshotHttp.ts b/packages/client-runtime/src/state/boundedThreadSnapshotHttp.ts index 1da5841db975..fbcb6fb361ce 100644 --- a/packages/client-runtime/src/state/boundedThreadSnapshotHttp.ts +++ b/packages/client-runtime/src/state/boundedThreadSnapshotHttp.ts @@ -3,7 +3,7 @@ import * as Cause from "effect/Cause"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; -import { HttpClient } from "effect/unstable/http"; +import { HttpClient } from "effect/http"; import * as RemoteEnvironmentAuthorization from "../authorization/service.ts"; import type { PreparedConnection } from "../connection/model.ts"; diff --git a/packages/client-runtime/src/state/connections.ts b/packages/client-runtime/src/state/connections.ts index 9a9194a20adb..d47761a2ce66 100644 --- a/packages/client-runtime/src/state/connections.ts +++ b/packages/client-runtime/src/state/connections.ts @@ -3,7 +3,7 @@ import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import * as EnvironmentRegistry from "../connection/registry.ts"; import type { ConnectionCatalogEntry } from "../connection/catalog.ts"; diff --git a/packages/client-runtime/src/state/device.ts b/packages/client-runtime/src/state/device.ts index a9f5d5bb2ebd..b84d1d92b64f 100644 --- a/packages/client-runtime/src/state/device.ts +++ b/packages/client-runtime/src/state/device.ts @@ -1,5 +1,5 @@ import { type DeviceToolVersions, WS_METHODS } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import type { EnvironmentRegistry } from "../connection/registry.ts"; import { diff --git a/packages/client-runtime/src/state/deviceHubAccess.ts b/packages/client-runtime/src/state/deviceHubAccess.ts index 92711db53dd8..9681f27f6ab5 100644 --- a/packages/client-runtime/src/state/deviceHubAccess.ts +++ b/packages/client-runtime/src/state/deviceHubAccess.ts @@ -12,7 +12,7 @@ * Callers fetch a fresh one each time they (re)connect a stream. */ import * as Effect from "effect/Effect"; -import type { HttpClient } from "effect/unstable/http"; +import type { HttpClient } from "effect/http"; import * as RemoteEnvironmentAuthorization from "../authorization/service.ts"; import type { PreparedConnection } from "../connection/model.ts"; diff --git a/packages/client-runtime/src/state/environmentHttpAuth.test.ts b/packages/client-runtime/src/state/environmentHttpAuth.test.ts index 6be3c9af0282..2de60a118345 100644 --- a/packages/client-runtime/src/state/environmentHttpAuth.test.ts +++ b/packages/client-runtime/src/state/environmentHttpAuth.test.ts @@ -17,7 +17,7 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; import { TestClock } from "effect/testing"; -import type { HttpClient } from "effect/unstable/http"; +import type { HttpClient } from "effect/http"; import * as RemoteEnvironmentAuthorization from "../authorization/service.ts"; import { diff --git a/packages/client-runtime/src/state/environmentHttpAuth.ts b/packages/client-runtime/src/state/environmentHttpAuth.ts index 1d6d9b2f144f..acb34539c8ec 100644 --- a/packages/client-runtime/src/state/environmentHttpAuth.ts +++ b/packages/client-runtime/src/state/environmentHttpAuth.ts @@ -5,7 +5,7 @@ import { ORCHESTRATION_PROTOCOL_VERSION_TEXT, } from "@t3tools/contracts"; import * as Result from "effect/Result"; -import { FetchHttpClient, type HttpMethod } from "effect/unstable/http"; +import { FetchHttpClient, type HttpMethod } from "effect/http"; import type { RemoteEnvironmentAuthorization } from "../authorization/service.ts"; import type { PreparedConnection, PreparedHttpAuthorization } from "../connection/model.ts"; diff --git a/packages/client-runtime/src/state/filesystem.ts b/packages/client-runtime/src/state/filesystem.ts index 794dc404147d..9fb201af2665 100644 --- a/packages/client-runtime/src/state/filesystem.ts +++ b/packages/client-runtime/src/state/filesystem.ts @@ -1,5 +1,5 @@ import { type FilesystemBrowseEntry, WS_METHODS } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import type { EnvironmentConnectionPhase } from "../connection/presentation.ts"; import type { EnvironmentRegistry } from "../connection/registry.ts"; diff --git a/packages/client-runtime/src/state/git.ts b/packages/client-runtime/src/state/git.ts index 8a743485b4f6..ddce3ca4da8c 100644 --- a/packages/client-runtime/src/state/git.ts +++ b/packages/client-runtime/src/state/git.ts @@ -1,5 +1,5 @@ import { WS_METHODS } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { createEnvironmentRpcCommand, createEnvironmentRpcQueryAtomFamily } from "./runtime.ts"; import type { EnvironmentRegistry } from "../connection/registry.ts"; diff --git a/packages/client-runtime/src/state/orchestration.ts b/packages/client-runtime/src/state/orchestration.ts index 94877ebc091d..9392ee2baab4 100644 --- a/packages/client-runtime/src/state/orchestration.ts +++ b/packages/client-runtime/src/state/orchestration.ts @@ -1,5 +1,5 @@ import { ORCHESTRATION_V2_WS_METHODS } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { createEnvironmentRpcCommand, diff --git a/packages/client-runtime/src/state/outdatedServerUpdate.ts b/packages/client-runtime/src/state/outdatedServerUpdate.ts index 36d7ba1f6713..9ae5bd201e44 100644 --- a/packages/client-runtime/src/state/outdatedServerUpdate.ts +++ b/packages/client-runtime/src/state/outdatedServerUpdate.ts @@ -2,9 +2,9 @@ import type { EnvironmentId, ServerSelfUpdateInput } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; import * as Effect from "effect/Effect"; import * as Exit from "effect/Exit"; -import type * as HttpClient from "effect/unstable/http/HttpClient"; -import type { Atom } from "effect/unstable/reactivity"; -import type * as Socket from "effect/unstable/socket/Socket"; +import type * as HttpClient from "effect/http/HttpClient"; +import type { Atom } from "effect/reactivity"; +import type * as Socket from "effect/socket/Socket"; import { updateOutdatedHost } from "../connection/outdatedHostUpdate.ts"; import type * as ConnectionResolver from "../connection/resolver.ts"; diff --git a/packages/client-runtime/src/state/presentation.test.ts b/packages/client-runtime/src/state/presentation.test.ts index 1ed8cafbc137..cd610608e309 100644 --- a/packages/client-runtime/src/state/presentation.test.ts +++ b/packages/client-runtime/src/state/presentation.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from "@effect/vitest"; import { EnvironmentId, type ServerConfig } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { AVAILABLE_CONNECTION_STATE, PrimaryConnectionTarget } from "../connection/model.ts"; import { diff --git a/packages/client-runtime/src/state/presentation.ts b/packages/client-runtime/src/state/presentation.ts index e5112bce2b01..deca7ff162b3 100644 --- a/packages/client-runtime/src/state/presentation.ts +++ b/packages/client-runtime/src/state/presentation.ts @@ -5,7 +5,7 @@ import { type ServerConfig, } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { AVAILABLE_CONNECTION_STATE, type SupervisorConnectionState } from "../connection/model.ts"; import { diff --git a/packages/client-runtime/src/state/preview.ts b/packages/client-runtime/src/state/preview.ts index 86ca157047ba..de3730f57a1e 100644 --- a/packages/client-runtime/src/state/preview.ts +++ b/packages/client-runtime/src/state/preview.ts @@ -1,5 +1,5 @@ import { WS_METHODS } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import type { EnvironmentRegistry } from "../connection/registry.ts"; import { diff --git a/packages/client-runtime/src/state/projectCommands.test.ts b/packages/client-runtime/src/state/projectCommands.test.ts index 4e1bc85ca6df..523a0ca8d8ea 100644 --- a/packages/client-runtime/src/state/projectCommands.test.ts +++ b/packages/client-runtime/src/state/projectCommands.test.ts @@ -6,7 +6,7 @@ import * as Fiber from "effect/Fiber"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry } from "effect/reactivity"; import * as EnvironmentRegistry from "../connection/registry.ts"; import * as EnvironmentSupervisor from "../connection/supervisor.ts"; diff --git a/packages/client-runtime/src/state/projectCommands.ts b/packages/client-runtime/src/state/projectCommands.ts index 261fee9db09e..ae77cf4e79e3 100644 --- a/packages/client-runtime/src/state/projectCommands.ts +++ b/packages/client-runtime/src/state/projectCommands.ts @@ -11,7 +11,7 @@ import * as Option from "effect/Option"; import * as Predicate from "effect/Predicate"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry } from "effect/reactivity"; import { type EnvironmentRpcInput, request } from "../rpc/client.ts"; import type { EnvironmentProject } from "./models.ts"; diff --git a/packages/client-runtime/src/state/projectEntities.ts b/packages/client-runtime/src/state/projectEntities.ts index 86eef031282a..cc6faefa3819 100644 --- a/packages/client-runtime/src/state/projectEntities.ts +++ b/packages/client-runtime/src/state/projectEntities.ts @@ -5,7 +5,7 @@ import type { ProjectId, ScopedProjectRef, } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import type { EnvironmentProject } from "./models.ts"; import { scopeProject } from "./models.ts"; diff --git a/packages/client-runtime/src/state/pullRequestDiffHttp.ts b/packages/client-runtime/src/state/pullRequestDiffHttp.ts index 519582a35b30..1ca490cb21f7 100644 --- a/packages/client-runtime/src/state/pullRequestDiffHttp.ts +++ b/packages/client-runtime/src/state/pullRequestDiffHttp.ts @@ -8,7 +8,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import { HttpClient } from "effect/unstable/http"; +import { HttpClient } from "effect/http"; import * as RemoteEnvironmentAuthorization from "../authorization/service.ts"; import type { PreparedConnection } from "../connection/model.ts"; diff --git a/packages/client-runtime/src/state/pullRequests.test.ts b/packages/client-runtime/src/state/pullRequests.test.ts index 8f3ee5b2bc59..dda824e40c42 100644 --- a/packages/client-runtime/src/state/pullRequests.test.ts +++ b/packages/client-runtime/src/state/pullRequests.test.ts @@ -17,7 +17,7 @@ import * as Option from "effect/Option"; import * as PubSub from "effect/PubSub"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { AVAILABLE_CONNECTION_STATE, diff --git a/packages/client-runtime/src/state/pullRequests.ts b/packages/client-runtime/src/state/pullRequests.ts index 6031b05b6f9d..b8545146e207 100644 --- a/packages/client-runtime/src/state/pullRequests.ts +++ b/packages/client-runtime/src/state/pullRequests.ts @@ -15,7 +15,7 @@ import * as Data from "effect/Data"; import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { createAtomCommandScheduler, diff --git a/packages/client-runtime/src/state/relayDiscovery.ts b/packages/client-runtime/src/state/relayDiscovery.ts index bdf217d08800..34b8c662c882 100644 --- a/packages/client-runtime/src/state/relayDiscovery.ts +++ b/packages/client-runtime/src/state/relayDiscovery.ts @@ -2,7 +2,7 @@ import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import * as RelayEnvironmentDiscovery from "../relay/discovery.ts"; import { createRuntimeCommand } from "./runtime.ts"; diff --git a/packages/client-runtime/src/state/review.ts b/packages/client-runtime/src/state/review.ts index 24fe3fb6fa76..d96181dd70f5 100644 --- a/packages/client-runtime/src/state/review.ts +++ b/packages/client-runtime/src/state/review.ts @@ -6,7 +6,7 @@ import { import * as Effect from "effect/Effect"; import * as Semaphore from "effect/Semaphore"; import { request } from "../rpc/client.ts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { createAtomCommandScheduler, diff --git a/packages/client-runtime/src/state/runtime.test.ts b/packages/client-runtime/src/state/runtime.test.ts index d04f313d26e5..8dc3cac3c3f7 100644 --- a/packages/client-runtime/src/state/runtime.test.ts +++ b/packages/client-runtime/src/state/runtime.test.ts @@ -12,7 +12,7 @@ import * as Queue from "effect/Queue"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { AVAILABLE_CONNECTION_STATE, diff --git a/packages/client-runtime/src/state/runtime.ts b/packages/client-runtime/src/state/runtime.ts index ef72946f5be2..90b761a53e30 100644 --- a/packages/client-runtime/src/state/runtime.ts +++ b/packages/client-runtime/src/state/runtime.ts @@ -5,7 +5,7 @@ import * as Exit from "effect/Exit"; import * as Option from "effect/Option"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import type { ConnectionAttemptError } from "../connection/model.ts"; import * as EnvironmentRegistry from "../connection/registry.ts"; diff --git a/packages/client-runtime/src/state/server.test.ts b/packages/client-runtime/src/state/server.test.ts index c569c682c823..330df548ba0f 100644 --- a/packages/client-runtime/src/state/server.test.ts +++ b/packages/client-runtime/src/state/server.test.ts @@ -19,8 +19,8 @@ import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; import * as TestClock from "effect/testing/TestClock"; -import { RpcClientError } from "effect/unstable/rpc"; -import * as Socket from "effect/unstable/socket/Socket"; +import { RpcClientError } from "effect/rpc"; +import * as Socket from "effect/socket/Socket"; import { AVAILABLE_CONNECTION_STATE, diff --git a/packages/client-runtime/src/state/server.ts b/packages/client-runtime/src/state/server.ts index 5f1818399640..a41b64af3be0 100644 --- a/packages/client-runtime/src/state/server.ts +++ b/packages/client-runtime/src/state/server.ts @@ -21,7 +21,7 @@ import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { createAtomCommandScheduler, diff --git a/packages/client-runtime/src/state/serverUsage.test.ts b/packages/client-runtime/src/state/serverUsage.test.ts index 53111e8e21e1..d6600e57e85c 100644 --- a/packages/client-runtime/src/state/serverUsage.test.ts +++ b/packages/client-runtime/src/state/serverUsage.test.ts @@ -18,7 +18,7 @@ import * as Option from "effect/Option"; import * as Queue from "effect/Queue"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { AVAILABLE_CONNECTION_STATE, diff --git a/packages/client-runtime/src/state/session.ts b/packages/client-runtime/src/state/session.ts index ab8036afacbe..822efa9a1d25 100644 --- a/packages/client-runtime/src/state/session.ts +++ b/packages/client-runtime/src/state/session.ts @@ -3,8 +3,8 @@ import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import type { HttpClient } from "effect/unstable/http"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import type { HttpClient } from "effect/http"; +import { AsyncResult, Atom } from "effect/reactivity"; import * as RemoteEnvironmentAuthorization from "../authorization/service.ts"; import * as EnvironmentRegistry from "../connection/registry.ts"; diff --git a/packages/client-runtime/src/state/shell.test.ts b/packages/client-runtime/src/state/shell.test.ts index 4310aedb7cba..7b39512fd971 100644 --- a/packages/client-runtime/src/state/shell.test.ts +++ b/packages/client-runtime/src/state/shell.test.ts @@ -3,7 +3,7 @@ import { EnvironmentId } from "@t3tools/contracts"; import { describe, expect, it } from "@effect/vitest"; import * as Option from "effect/Option"; import * as DateTime from "effect/DateTime"; -import { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry } from "effect/reactivity"; import { PrimaryConnectionTarget } from "../connection/model.ts"; import type { EnvironmentShellState } from "./shell.ts"; diff --git a/packages/client-runtime/src/state/shell.ts b/packages/client-runtime/src/state/shell.ts index 698d4c2f4d49..2c479489e318 100644 --- a/packages/client-runtime/src/state/shell.ts +++ b/packages/client-runtime/src/state/shell.ts @@ -13,7 +13,7 @@ import * as Ref from "effect/Ref"; import * as Semaphore from "effect/Semaphore"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import * as EnvironmentRegistry from "../connection/registry.ts"; import { connectionProjectionPhase } from "../connection/model.ts"; diff --git a/packages/client-runtime/src/state/shellCommands.ts b/packages/client-runtime/src/state/shellCommands.ts index 785bb83ed47a..f1f456ef1b6a 100644 --- a/packages/client-runtime/src/state/shellCommands.ts +++ b/packages/client-runtime/src/state/shellCommands.ts @@ -1,5 +1,5 @@ import { WS_METHODS } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { createEnvironmentRpcCommand } from "./runtime.ts"; import type { EnvironmentRegistry } from "../connection/registry.ts"; diff --git a/packages/client-runtime/src/state/shellSnapshotHttp.ts b/packages/client-runtime/src/state/shellSnapshotHttp.ts index fb98c871ecb2..c4154e009c78 100644 --- a/packages/client-runtime/src/state/shellSnapshotHttp.ts +++ b/packages/client-runtime/src/state/shellSnapshotHttp.ts @@ -4,7 +4,7 @@ import * as Context from "effect/Context"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; -import { HttpClient } from "effect/unstable/http"; +import { HttpClient } from "effect/http"; import * as RemoteEnvironmentAuthorization from "../authorization/service.ts"; import type { PreparedConnection } from "../connection/model.ts"; diff --git a/packages/client-runtime/src/state/snapshots.ts b/packages/client-runtime/src/state/snapshots.ts index f265fb3c47e7..bf9677eeb0a3 100644 --- a/packages/client-runtime/src/state/snapshots.ts +++ b/packages/client-runtime/src/state/snapshots.ts @@ -1,6 +1,6 @@ import type { EnvironmentId, OrchestrationV2ShellSnapshot } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import type { EnvironmentShellState } from "./shell.ts"; diff --git a/packages/client-runtime/src/state/sourceControl.test.ts b/packages/client-runtime/src/state/sourceControl.test.ts index ff9824106a78..ed2de3b3cf14 100644 --- a/packages/client-runtime/src/state/sourceControl.test.ts +++ b/packages/client-runtime/src/state/sourceControl.test.ts @@ -8,7 +8,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { AVAILABLE_CONNECTION_STATE, diff --git a/packages/client-runtime/src/state/sourceControl.ts b/packages/client-runtime/src/state/sourceControl.ts index 1e6b75b53440..69c7103d092d 100644 --- a/packages/client-runtime/src/state/sourceControl.ts +++ b/packages/client-runtime/src/state/sourceControl.ts @@ -1,5 +1,5 @@ import { WS_METHODS } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { createAtomCommandScheduler, diff --git a/packages/client-runtime/src/state/terminal.ts b/packages/client-runtime/src/state/terminal.ts index 3bc2bca78f0f..d336b9e25cac 100644 --- a/packages/client-runtime/src/state/terminal.ts +++ b/packages/client-runtime/src/state/terminal.ts @@ -1,6 +1,6 @@ import { type TerminalSummary, WS_METHODS } from "@t3tools/contracts"; import * as Stream from "effect/Stream"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { createAtomCommandScheduler, @@ -42,7 +42,7 @@ export function createTerminalEnvironmentAtoms( subscribe: (input: EnvironmentRpcInput) => Stream.suspend(() => subscribe(WS_METHODS.terminalAttach, input).pipe( - Stream.scan(nextTerminalAttachSeedState(), applyTerminalAttachStreamEvent), + Stream.scan(nextTerminalAttachSeedState, applyTerminalAttachStreamEvent), ), ), }), @@ -54,7 +54,7 @@ export function createTerminalEnvironmentAtoms( label: "environment-data:terminal:metadata", subscribe: (_input: null) => subscribe(WS_METHODS.subscribeTerminalMetadata, {}).pipe( - Stream.scan([] as ReadonlyArray, applyTerminalMetadataStreamEvent), + Stream.scan((): ReadonlyArray => [], applyTerminalMetadataStreamEvent), ), }), open: createEnvironmentRpcCommand(runtime, { diff --git a/packages/client-runtime/src/state/threadCommands.test.ts b/packages/client-runtime/src/state/threadCommands.test.ts index c0c45a1e2e3c..cf36760baecb 100644 --- a/packages/client-runtime/src/state/threadCommands.test.ts +++ b/packages/client-runtime/src/state/threadCommands.test.ts @@ -18,7 +18,7 @@ import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Queue from "effect/Queue"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry } from "effect/reactivity"; import * as EnvironmentRegistry from "../connection/registry.ts"; import * as EnvironmentSupervisor from "../connection/supervisor.ts"; diff --git a/packages/client-runtime/src/state/threadCommands.ts b/packages/client-runtime/src/state/threadCommands.ts index ed8cc1ec97cc..f237f1ce943d 100644 --- a/packages/client-runtime/src/state/threadCommands.ts +++ b/packages/client-runtime/src/state/threadCommands.ts @@ -2,7 +2,7 @@ import type { ThreadId } from "@t3tools/contracts"; import * as Crypto from "effect/Crypto"; import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import { WS_METHODS, type EnvironmentId, diff --git a/packages/client-runtime/src/state/threadDetail.test.ts b/packages/client-runtime/src/state/threadDetail.test.ts index 51dcdd1c4311..10ea41f4f3ad 100644 --- a/packages/client-runtime/src/state/threadDetail.test.ts +++ b/packages/client-runtime/src/state/threadDetail.test.ts @@ -11,7 +11,7 @@ import { type ScopedThreadRef, } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { describe, expect, it } from "vite-plus/test"; import { v2Projection, v2Now } from "./orchestrationV2TestFixtures.ts"; diff --git a/packages/client-runtime/src/state/threadDetail.ts b/packages/client-runtime/src/state/threadDetail.ts index 752867ab6b40..c845d622fd86 100644 --- a/packages/client-runtime/src/state/threadDetail.ts +++ b/packages/client-runtime/src/state/threadDetail.ts @@ -1,6 +1,6 @@ import type { OrchestrationV2ThreadProjection, ScopedThreadRef } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; import { deriveThreadQueueWorkflowState, diff --git a/packages/client-runtime/src/state/threadFeedback.test.ts b/packages/client-runtime/src/state/threadFeedback.test.ts index bce38b7773f6..3b8c185d952c 100644 --- a/packages/client-runtime/src/state/threadFeedback.test.ts +++ b/packages/client-runtime/src/state/threadFeedback.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from "vite-plus/test"; import { MessageId } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; -import { AsyncResult } from "effect/unstable/reactivity"; +import { AsyncResult } from "effect/reactivity"; import { beginCodexFeedbackSubmission, diff --git a/packages/client-runtime/src/state/threadLifecycle.ts b/packages/client-runtime/src/state/threadLifecycle.ts index 936b052daa39..f384ddc3d006 100644 --- a/packages/client-runtime/src/state/threadLifecycle.ts +++ b/packages/client-runtime/src/state/threadLifecycle.ts @@ -5,7 +5,7 @@ import type { ThreadId, } from "@t3tools/contracts"; import * as DateTime from "effect/DateTime"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import type { AtomCommand } from "./runtime.ts"; diff --git a/packages/client-runtime/src/state/threadSearch.test.ts b/packages/client-runtime/src/state/threadSearch.test.ts index ef4b401d474e..e907ea94f051 100644 --- a/packages/client-runtime/src/state/threadSearch.test.ts +++ b/packages/client-runtime/src/state/threadSearch.test.ts @@ -5,7 +5,7 @@ import { type OrchestrationSearchThreadsResult, } from "@t3tools/contracts"; import * as Cause from "effect/Cause"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { expect, it } from "vite-plus/test"; import { diff --git a/packages/client-runtime/src/state/threadSearch.ts b/packages/client-runtime/src/state/threadSearch.ts index 6dae630aab7e..ff7874d77bb6 100644 --- a/packages/client-runtime/src/state/threadSearch.ts +++ b/packages/client-runtime/src/state/threadSearch.ts @@ -6,7 +6,7 @@ import { } from "@t3tools/contracts"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; -import { AsyncResult, Atom } from "effect/unstable/reactivity"; +import { AsyncResult, Atom } from "effect/reactivity"; export interface EnvironmentThreadSearchMatch extends OrchestrationThreadSearchMatch { readonly environmentId: EnvironmentId; diff --git a/packages/client-runtime/src/state/threadShell.test.ts b/packages/client-runtime/src/state/threadShell.test.ts index 0009f1a7aa33..74c93edc3a9a 100644 --- a/packages/client-runtime/src/state/threadShell.test.ts +++ b/packages/client-runtime/src/state/threadShell.test.ts @@ -5,7 +5,7 @@ import { type OrchestrationV2ShellSnapshot, } from "@t3tools/contracts"; import * as Option from "effect/Option"; -import { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry } from "effect/reactivity"; import { describe, expect, it } from "vite-plus/test"; import { PrimaryConnectionTarget } from "../connection/model.ts"; diff --git a/packages/client-runtime/src/state/threadShell.ts b/packages/client-runtime/src/state/threadShell.ts index ae5f6dff692f..a59fbb2375d3 100644 --- a/packages/client-runtime/src/state/threadShell.ts +++ b/packages/client-runtime/src/state/threadShell.ts @@ -7,7 +7,7 @@ import type { ScopedThreadRef, ThreadId, } from "@t3tools/contracts"; -import { Atom } from "effect/unstable/reactivity"; +import { Atom } from "effect/reactivity"; import type { EnvironmentThreadShell } from "./models.ts"; import { presentThreadShell } from "./models.ts"; diff --git a/packages/client-runtime/src/state/threads-atoms.test.ts b/packages/client-runtime/src/state/threads-atoms.test.ts index 5e0f20c33053..1eebcd23c489 100644 --- a/packages/client-runtime/src/state/threads-atoms.test.ts +++ b/packages/client-runtime/src/state/threads-atoms.test.ts @@ -13,13 +13,13 @@ import { afterEach, describe, expect, it, vi } from "@effect/vitest"; import * as Deferred from "effect/Deferred"; import * as Effect from "effect/Effect"; import * as Fiber from "effect/Fiber"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Queue from "effect/Queue"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry } from "effect/reactivity"; import type { ConnectionCatalogEntry } from "../connection/catalog.ts"; import * as EnvironmentRegistry from "../connection/registry.ts"; diff --git a/packages/client-runtime/src/state/threads-sync.test.ts b/packages/client-runtime/src/state/threads-sync.test.ts index 61bd092a4b2e..7bc377c0b4e4 100644 --- a/packages/client-runtime/src/state/threads-sync.test.ts +++ b/packages/client-runtime/src/state/threads-sync.test.ts @@ -23,7 +23,7 @@ import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; import * as TestClock from "effect/testing/TestClock"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; +import { HttpClient, HttpClientResponse } from "effect/http"; import type { WsRpcProtocolClient } from "../rpc/protocol.ts"; import { diff --git a/packages/client-runtime/src/state/threads.ts b/packages/client-runtime/src/state/threads.ts index 5ae532cbbed1..a6fdb7620b85 100644 --- a/packages/client-runtime/src/state/threads.ts +++ b/packages/client-runtime/src/state/threads.ts @@ -17,8 +17,8 @@ import * as Result from "effect/Result"; import * as Semaphore from "effect/Semaphore"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { HttpClient } from "effect/unstable/http"; -import { Atom } from "effect/unstable/reactivity"; +import { HttpClient } from "effect/http"; +import { Atom } from "effect/reactivity"; import * as RemoteEnvironmentAuthorization from "../authorization/service.ts"; import * as EnvironmentRegistry from "../connection/registry.ts"; diff --git a/packages/client-runtime/src/state/usage.test.ts b/packages/client-runtime/src/state/usage.test.ts index 86914c768e3b..9907c99cfc21 100644 --- a/packages/client-runtime/src/state/usage.test.ts +++ b/packages/client-runtime/src/state/usage.test.ts @@ -8,7 +8,7 @@ import { type UsageSummary, } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { afterEach, describe, expect, it, vi } from "vite-plus/test"; import type { EnvironmentPresentation } from "../connection/presentation.ts"; diff --git a/packages/client-runtime/src/state/usage.ts b/packages/client-runtime/src/state/usage.ts index 1f2377a89f42..dec6b909d266 100644 --- a/packages/client-runtime/src/state/usage.ts +++ b/packages/client-runtime/src/state/usage.ts @@ -5,7 +5,7 @@ import type { UsageSummaryInput, } from "@t3tools/contracts"; import * as Schema from "effect/Schema"; -import type { AtomRegistry } from "effect/unstable/reactivity"; +import type { AtomRegistry } from "effect/reactivity"; import { EnvironmentRpcUnavailableError } from "../rpc/client.ts"; import type { createEnvironmentPresentationAtoms } from "./presentation.ts"; diff --git a/packages/client-runtime/src/state/vcs.test.ts b/packages/client-runtime/src/state/vcs.test.ts index 7b11c48f3ca5..94ead9bf63a4 100644 --- a/packages/client-runtime/src/state/vcs.test.ts +++ b/packages/client-runtime/src/state/vcs.test.ts @@ -13,7 +13,7 @@ import * as Ref from "effect/Ref"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; import * as TestClock from "effect/testing/TestClock"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { AVAILABLE_CONNECTION_STATE, diff --git a/packages/client-runtime/src/state/vcs.ts b/packages/client-runtime/src/state/vcs.ts index c5dee0f75280..c319e3e3ad1f 100644 --- a/packages/client-runtime/src/state/vcs.ts +++ b/packages/client-runtime/src/state/vcs.ts @@ -13,7 +13,7 @@ import * as Result from "effect/Result"; import * as Schedule from "effect/Schedule"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, AtomRegistry } from "effect/reactivity"; import { createEnvironmentRpcCommand, diff --git a/packages/client-runtime/src/state/vcsAction.test.ts b/packages/client-runtime/src/state/vcsAction.test.ts index 47e56de0fd69..1564f521e5b0 100644 --- a/packages/client-runtime/src/state/vcsAction.test.ts +++ b/packages/client-runtime/src/state/vcsAction.test.ts @@ -15,7 +15,7 @@ import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; import * as SubscriptionRef from "effect/SubscriptionRef"; -import { AsyncResult, Atom, AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, AtomRegistry } from "effect/reactivity"; import { AVAILABLE_CONNECTION_STATE, diff --git a/packages/client-runtime/src/state/vcsAction.ts b/packages/client-runtime/src/state/vcsAction.ts index 1e40e8cc3ef4..d03a7cd04dfe 100644 --- a/packages/client-runtime/src/state/vcsAction.ts +++ b/packages/client-runtime/src/state/vcsAction.ts @@ -15,7 +15,7 @@ import * as DateTime from "effect/DateTime"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { AsyncResult, Atom, type AtomRegistry } from "effect/unstable/reactivity"; +import { AsyncResult, Atom, type AtomRegistry } from "effect/reactivity"; import type { EnvironmentRegistry } from "../connection/registry.ts"; import * as Persistence from "../platform/persistence.ts"; diff --git a/packages/client-runtime/src/state/vcsRefInvalidation.ts b/packages/client-runtime/src/state/vcsRefInvalidation.ts index 3d5c20f5662f..f6d52df2a17f 100644 --- a/packages/client-runtime/src/state/vcsRefInvalidation.ts +++ b/packages/client-runtime/src/state/vcsRefInvalidation.ts @@ -1,7 +1,7 @@ import type { EnvironmentId } from "@t3tools/contracts"; import * as Effect from "effect/Effect"; import * as PartitionedSemaphore from "effect/PartitionedSemaphore"; -import { Atom, type AtomRegistry } from "effect/unstable/reactivity"; +import { Atom, type AtomRegistry } from "effect/reactivity"; import { safeErrorLogAttributes } from "../errors/safeLog.ts"; import * as Persistence from "../platform/persistence.ts"; diff --git a/packages/contracts/src/auth.ts b/packages/contracts/src/auth.ts index de9b83c1b4af..06a70184b3e8 100644 --- a/packages/contracts/src/auth.ts +++ b/packages/contracts/src/auth.ts @@ -1,5 +1,5 @@ import * as Schema from "effect/Schema"; -import * as HttpApiSchema from "effect/unstable/httpapi/HttpApiSchema"; +import * as HttpApiSchema from "effect/http-api/HttpApiSchema"; import { AuthSessionId, diff --git a/packages/contracts/src/baseSchemas.ts b/packages/contracts/src/baseSchemas.ts index 19d7bf67cdfe..00cb38a572a8 100644 --- a/packages/contracts/src/baseSchemas.ts +++ b/packages/contracts/src/baseSchemas.ts @@ -271,8 +271,8 @@ const knownTags = ( /** * Construct a branded identifier. Enforces non-empty trimmed strings */ -const makeEntityId = (brand: Brand) => { - return TrimmedNonEmptyString.pipe(Schema.brand(brand)); +const makeEntityId = (brand: Parameters>[0]) => { + return TrimmedNonEmptyString.pipe(Schema.brand(brand)); }; export const ThreadId = makeEntityId("ThreadId"); diff --git a/packages/contracts/src/environmentHttp.ts b/packages/contracts/src/environmentHttp.ts index ac7047c32587..3e62fb2685a9 100644 --- a/packages/contracts/src/environmentHttp.ts +++ b/packages/contracts/src/environmentHttp.ts @@ -1,12 +1,12 @@ import * as Context from "effect/Context"; import type * as DateTime from "effect/DateTime"; import * as Schema from "effect/Schema"; -import * as HttpApi from "effect/unstable/httpapi/HttpApi"; -import * as HttpApiEndpoint from "effect/unstable/httpapi/HttpApiEndpoint"; -import * as HttpApiGroup from "effect/unstable/httpapi/HttpApiGroup"; -import * as HttpApiMiddleware from "effect/unstable/httpapi/HttpApiMiddleware"; -import * as HttpServerRespondable from "effect/unstable/http/HttpServerRespondable"; -import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse"; +import * as HttpApi from "effect/http-api/HttpApi"; +import * as HttpApiEndpoint from "effect/http-api/HttpApiEndpoint"; +import * as HttpApiGroup from "effect/http-api/HttpApiGroup"; +import * as HttpApiMiddleware from "effect/http-api/HttpApiMiddleware"; +import * as HttpServerRespondable from "effect/http/HttpServerRespondable"; +import * as HttpServerResponse from "effect/http/HttpServerResponse"; import { AuthAccessTokenResult, diff --git a/packages/contracts/src/pullRequest.ts b/packages/contracts/src/pullRequest.ts index e6f9f6177a88..690f5b5cff0c 100644 --- a/packages/contracts/src/pullRequest.ts +++ b/packages/contracts/src/pullRequest.ts @@ -1,6 +1,6 @@ import * as Schema from "effect/Schema"; -import * as HttpServerRespondable from "effect/unstable/http/HttpServerRespondable"; -import * as HttpServerResponse from "effect/unstable/http/HttpServerResponse"; +import * as HttpServerRespondable from "effect/http/HttpServerRespondable"; +import * as HttpServerResponse from "effect/http/HttpServerResponse"; import { IsoDateTime, diff --git a/packages/contracts/src/relay.test.ts b/packages/contracts/src/relay.test.ts index 441fecd33268..954c46e0d8ba 100644 --- a/packages/contracts/src/relay.test.ts +++ b/packages/contracts/src/relay.test.ts @@ -1,5 +1,5 @@ import { describe, expect, it } from "vite-plus/test"; -import * as OpenApi from "effect/unstable/httpapi/OpenApi"; +import * as OpenApi from "effect/http-api/OpenApi"; import * as Schema from "effect/Schema"; import { RelayApi, RelayDeviceRegistrationRequest } from "./relay.ts"; diff --git a/packages/contracts/src/relay.ts b/packages/contracts/src/relay.ts index 8b1e310b8b8d..832c5405ba64 100644 --- a/packages/contracts/src/relay.ts +++ b/packages/contracts/src/relay.ts @@ -1,12 +1,12 @@ import * as Context from "effect/Context"; import * as Schema from "effect/Schema"; -import * as HttpApi from "effect/unstable/httpapi/HttpApi"; -import * as HttpApiEndpoint from "effect/unstable/httpapi/HttpApiEndpoint"; -import * as HttpApiGroup from "effect/unstable/httpapi/HttpApiGroup"; -import * as HttpApiMiddleware from "effect/unstable/httpapi/HttpApiMiddleware"; -import * as HttpApiSchema from "effect/unstable/httpapi/HttpApiSchema"; -import * as HttpApiSecurity from "effect/unstable/httpapi/HttpApiSecurity"; -import * as OpenApi from "effect/unstable/httpapi/OpenApi"; +import * as HttpApi from "effect/http-api/HttpApi"; +import * as HttpApiEndpoint from "effect/http-api/HttpApiEndpoint"; +import * as HttpApiGroup from "effect/http-api/HttpApiGroup"; +import * as HttpApiMiddleware from "effect/http-api/HttpApiMiddleware"; +import * as HttpApiSchema from "effect/http-api/HttpApiSchema"; +import * as HttpApiSecurity from "effect/http-api/HttpApiSecurity"; +import * as OpenApi from "effect/http-api/OpenApi"; import { DpopFailureReason, diff --git a/packages/contracts/src/rpc.ts b/packages/contracts/src/rpc.ts index 9fb0f186751a..c9e2e6f03ee1 100644 --- a/packages/contracts/src/rpc.ts +++ b/packages/contracts/src/rpc.ts @@ -7,9 +7,9 @@ import { ChatGptHandoffState, } from "./providerSetup.ts"; import * as Schema from "effect/Schema"; -import * as Rpc from "effect/unstable/rpc/Rpc"; -import * as RpcGroup from "effect/unstable/rpc/RpcGroup"; -import * as RpcMiddleware from "effect/unstable/rpc/RpcMiddleware"; +import * as Rpc from "effect/rpc/Rpc"; +import * as RpcGroup from "effect/rpc/RpcGroup"; +import * as RpcMiddleware from "effect/rpc/RpcMiddleware"; import { NonNegativeInt, TrimmedNonEmptyString } from "./baseSchemas.ts"; import { CodexAuthCallbackInput, diff --git a/packages/effect-acp/scripts/generate.ts b/packages/effect-acp/scripts/generate.ts index 3a11939c9f36..1cc31b442c00 100644 --- a/packages/effect-acp/scripts/generate.ts +++ b/packages/effect-acp/scripts/generate.ts @@ -9,9 +9,9 @@ import * as Layer from "effect/Layer"; import * as Logger from "effect/Logger"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { Command, Flag } from "effect/unstable/cli"; -import { FetchHttpClient, HttpClient, HttpClientResponse } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { Command, Flag } from "effect/cli"; +import { FetchHttpClient, HttpClient, HttpClientResponse } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; const V2_SCHEMA_RELEASE = "schema-v2.0.0-alpha.3"; const V1_SCHEMA_RELEASE = "schema-v1.21.0"; diff --git a/packages/effect-acp/src/_internal/shared.ts b/packages/effect-acp/src/_internal/shared.ts index 96dd8f7a9a48..e4a98d51d8bf 100644 --- a/packages/effect-acp/src/_internal/shared.ts +++ b/packages/effect-acp/src/_internal/shared.ts @@ -1,6 +1,6 @@ import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; -import { RpcClientError } from "effect/unstable/rpc"; +import { RpcClientError } from "effect/rpc"; import * as AcpSchema from "../_generated/schema.gen.ts"; import * as AcpError from "../errors.ts"; diff --git a/packages/effect-acp/src/_internal/stdio.test.ts b/packages/effect-acp/src/_internal/stdio.test.ts index 8a4171f7a8dd..e696ecbe20d1 100644 --- a/packages/effect-acp/src/_internal/stdio.test.ts +++ b/packages/effect-acp/src/_internal/stdio.test.ts @@ -1,7 +1,7 @@ import { assert, describe, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as PlatformError from "effect/PlatformError"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as AcpError from "../errors.ts"; import { makeTerminationError } from "./stdio.ts"; diff --git a/packages/effect-acp/src/_internal/stdio.ts b/packages/effect-acp/src/_internal/stdio.ts index 87af633637ae..c04f27b97c4e 100644 --- a/packages/effect-acp/src/_internal/stdio.ts +++ b/packages/effect-acp/src/_internal/stdio.ts @@ -4,7 +4,7 @@ import * as Cause from "effect/Cause"; import * as Effect from "effect/Effect"; import * as Sink from "effect/Sink"; import * as Stdio from "effect/Stdio"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as AcpError from "../errors.ts"; diff --git a/packages/effect-acp/src/agent.ts b/packages/effect-acp/src/agent.ts index 2cd9a3ef8b4c..3315472b9d0d 100644 --- a/packages/effect-acp/src/agent.ts +++ b/packages/effect-acp/src/agent.ts @@ -5,9 +5,9 @@ import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; import * as Stdio from "effect/Stdio"; -import * as RpcClient from "effect/unstable/rpc/RpcClient"; -import * as RpcMessage from "effect/unstable/rpc/RpcMessage"; -import * as RpcServer from "effect/unstable/rpc/RpcServer"; +import * as RpcClient from "effect/rpc/RpcClient"; +import * as RpcMessage from "effect/rpc/RpcMessage"; +import * as RpcServer from "effect/rpc/RpcServer"; import * as AcpSchema from "./schema.ts"; import { AGENT_METHODS, CLIENT_METHODS } from "./_generated/meta.gen.ts"; diff --git a/packages/effect-acp/src/client.test.ts b/packages/effect-acp/src/client.test.ts index 94a1cccdd879..bc615e70e936 100644 --- a/packages/effect-acp/src/client.test.ts +++ b/packages/effect-acp/src/client.test.ts @@ -10,7 +10,7 @@ import * as Ref from "effect/Ref"; import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as NodeServices from "@effect/platform-node/NodeServices"; import { it, assert } from "@effect/vitest"; diff --git a/packages/effect-acp/src/client.ts b/packages/effect-acp/src/client.ts index 593fdd443095..7b94845955be 100644 --- a/packages/effect-acp/src/client.ts +++ b/packages/effect-acp/src/client.ts @@ -6,10 +6,10 @@ import * as Schema from "effect/Schema"; import * as Predicate from "effect/Predicate"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import * as RpcClient from "effect/unstable/rpc/RpcClient"; -import * as RpcMessage from "effect/unstable/rpc/RpcMessage"; -import * as RpcServer from "effect/unstable/rpc/RpcServer"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as RpcClient from "effect/rpc/RpcClient"; +import * as RpcMessage from "effect/rpc/RpcMessage"; +import * as RpcServer from "effect/rpc/RpcServer"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as AcpError from "./errors.ts"; import * as AcpProtocol from "./protocol.ts"; diff --git a/packages/effect-acp/src/errors.test.ts b/packages/effect-acp/src/errors.test.ts index 47f7ee871344..9f0945148279 100644 --- a/packages/effect-acp/src/errors.test.ts +++ b/packages/effect-acp/src/errors.test.ts @@ -1,7 +1,7 @@ import { describe, expect, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; -import * as RpcClientError from "effect/unstable/rpc/RpcClientError"; +import * as RpcClientError from "effect/rpc/RpcClientError"; import * as AcpSchema from "./_generated/schema.gen.ts"; import { callRpc, runHandler } from "./_internal/shared.ts"; diff --git a/packages/effect-acp/src/protocol.test.ts b/packages/effect-acp/src/protocol.test.ts index 051f03627f03..91677618e070 100644 --- a/packages/effect-acp/src/protocol.test.ts +++ b/packages/effect-acp/src/protocol.test.ts @@ -11,7 +11,7 @@ import * as Sink from "effect/Sink"; import * as Stdio from "effect/Stdio"; import * as Stream from "effect/Stream"; import * as Ref from "effect/Ref"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { it, assert } from "@effect/vitest"; import * as NodeServices from "@effect/platform-node/NodeServices"; diff --git a/packages/effect-acp/src/protocol.ts b/packages/effect-acp/src/protocol.ts index 354de5d656a6..fb926cfca053 100644 --- a/packages/effect-acp/src/protocol.ts +++ b/packages/effect-acp/src/protocol.ts @@ -10,11 +10,11 @@ import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; import * as Stdio from "effect/Stdio"; -import * as RpcClient from "effect/unstable/rpc/RpcClient"; -import * as RpcClientError from "effect/unstable/rpc/RpcClientError"; -import * as RpcMessage from "effect/unstable/rpc/RpcMessage"; -import * as RpcSerialization from "effect/unstable/rpc/RpcSerialization"; -import * as RpcServer from "effect/unstable/rpc/RpcServer"; +import * as RpcClient from "effect/rpc/RpcClient"; +import * as RpcClientError from "effect/rpc/RpcClientError"; +import * as RpcMessage from "effect/rpc/RpcMessage"; +import * as RpcSerialization from "effect/rpc/RpcSerialization"; +import * as RpcServer from "effect/rpc/RpcServer"; import * as AcpSchema from "./schema.ts"; import * as AcpSchemaV1 from "./_generated/schema-v1.gen.ts"; @@ -144,6 +144,25 @@ const decodeElicitationComplete = Schema.decodeUnknownEffect( AcpSchema.CompleteElicitationNotification, ); const parserFactory = RpcSerialization.ndJsonRpc(); +// ndJsonRpc skips lines that are not JSON. A malformed agent line has to end the +// session, so frames are split here and each one goes through the strict codec. +const makeStrictNdJsonRpcParser = () => { + const codec = RpcSerialization.jsonRpc().makeUnsafe(); + const decoder = new TextDecoder(); + let buffer = ""; + return { + decode: (bytes: Uint8Array | string): ReadonlyArray => { + buffer += typeof bytes === "string" ? bytes : decoder.decode(bytes, { stream: true }); + const lines = buffer.split("\n"); + buffer = lines.pop() ?? ""; + return lines.flatMap((line) => codec.decode(line)); + }, + encode: (response: Parameters[0]) => { + const encoded = codec.encode(response); + return encoded === undefined ? undefined : `${encoded}\n`; + }, + }; +}; const MAX_BUFFERED_RAW_NOTIFICATIONS = 32; // Outbound JSON-RPC notification: no `id`, so peers never treat it as a request. const encodeJsonRpcNotification = Schema.encodeUnknownExit( @@ -189,7 +208,7 @@ function normalizeAcpJsonRpcError( export const makeAcpPatchedProtocol = Effect.fn("makeAcpPatchedProtocol")(function* ( options: AcpPatchedProtocolOptions, ): Effect.fn.Return { - const parser = parserFactory.makeUnsafe(); + const parser = makeStrictNdJsonRpcParser(); const serverQueue = yield* Queue.unbounded(); const clientQueue = yield* Queue.unbounded(); const notificationQueue = yield* Queue.sliding( diff --git a/packages/effect-acp/src/rpc.ts b/packages/effect-acp/src/rpc.ts index b377afdce0d2..e7efb97b5613 100644 --- a/packages/effect-acp/src/rpc.ts +++ b/packages/effect-acp/src/rpc.ts @@ -1,6 +1,6 @@ import * as AcpCompat from "./compat.ts"; -import * as Rpc from "effect/unstable/rpc/Rpc"; -import * as RpcGroup from "effect/unstable/rpc/RpcGroup"; +import * as Rpc from "effect/rpc/Rpc"; +import * as RpcGroup from "effect/rpc/RpcGroup"; import * as Schema from "effect/Schema"; import * as AcpSchema from "./_generated/schema.gen.ts"; diff --git a/packages/effect-codex-app-server/scripts/generate.ts b/packages/effect-codex-app-server/scripts/generate.ts index f7cab8e59b93..2db05fcbb3eb 100644 --- a/packages/effect-codex-app-server/scripts/generate.ts +++ b/packages/effect-codex-app-server/scripts/generate.ts @@ -9,13 +9,8 @@ import * as Layer from "effect/Layer"; import * as Logger from "effect/Logger"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { - FetchHttpClient, - HttpClient, - HttpClientRequest, - HttpClientResponse, -} from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { FetchHttpClient, HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; const UPSTREAM_REF = "687a119f0fcaace47e1f1abcc77cec6c813fd6da"; const USER_AGENT = "effect-codex-app-server-generator"; diff --git a/packages/effect-codex-app-server/src/_internal/stdio.test.ts b/packages/effect-codex-app-server/src/_internal/stdio.test.ts index 6dbf4c857eb8..e863093c659f 100644 --- a/packages/effect-codex-app-server/src/_internal/stdio.test.ts +++ b/packages/effect-codex-app-server/src/_internal/stdio.test.ts @@ -1,7 +1,7 @@ import { assert, describe, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as PlatformError from "effect/PlatformError"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as CodexError from "../errors.ts"; import { makeTerminationError } from "./stdio.ts"; diff --git a/packages/effect-codex-app-server/src/_internal/stdio.ts b/packages/effect-codex-app-server/src/_internal/stdio.ts index 312022824cb3..e77f53e4b5cc 100644 --- a/packages/effect-codex-app-server/src/_internal/stdio.ts +++ b/packages/effect-codex-app-server/src/_internal/stdio.ts @@ -4,7 +4,7 @@ import * as Queue from "effect/Queue"; import * as Sink from "effect/Sink"; import * as Stdio from "effect/Stdio"; import * as Stream from "effect/Stream"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import * as CodexError from "../errors.ts"; diff --git a/packages/effect-codex-app-server/src/client.test.ts b/packages/effect-codex-app-server/src/client.test.ts index f7eca6207ca7..09c5ea2c68be 100644 --- a/packages/effect-codex-app-server/src/client.test.ts +++ b/packages/effect-codex-app-server/src/client.test.ts @@ -4,7 +4,7 @@ import * as Path from "effect/Path"; import * as Effect from "effect/Effect"; import * as Ref from "effect/Ref"; import * as Scope from "effect/Scope"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as NodeServices from "@effect/platform-node/NodeServices"; import { assert, it } from "@effect/vitest"; diff --git a/packages/effect-codex-app-server/src/client.ts b/packages/effect-codex-app-server/src/client.ts index 2f5588dd2ecd..e7c5f50b5704 100644 --- a/packages/effect-codex-app-server/src/client.ts +++ b/packages/effect-codex-app-server/src/client.ts @@ -5,7 +5,7 @@ import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Stdio from "effect/Stdio"; import * as Stream from "effect/Stream"; -import * as ChildProcessSpawner from "effect/unstable/process/ChildProcessSpawner"; +import * as ChildProcessSpawner from "effect/process/ChildProcessSpawner"; import * as CodexRpc from "./_generated/meta.gen.ts"; import * as CodexSchema from "./_generated/schema.gen.ts"; diff --git a/packages/effect-codex-app-server/test/examples/codex-app-server-probe.ts b/packages/effect-codex-app-server/test/examples/codex-app-server-probe.ts index fff994dc2ca0..36a0ca82f186 100644 --- a/packages/effect-codex-app-server/test/examples/codex-app-server-probe.ts +++ b/packages/effect-codex-app-server/test/examples/codex-app-server-probe.ts @@ -1,6 +1,6 @@ import * as Console from "effect/Console"; import * as Effect from "effect/Effect"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as NodeRuntime from "@effect/platform-node/NodeRuntime"; import * as NodeServices from "@effect/platform-node/NodeServices"; diff --git a/packages/shared/src/dpop.ts b/packages/shared/src/dpop.ts index 46f2e8f8fa1d..d8f8416213aa 100644 --- a/packages/shared/src/dpop.ts +++ b/packages/shared/src/dpop.ts @@ -1,6 +1,6 @@ import { p256 } from "@noble/curves/nist"; import { sha256 } from "@noble/hashes/sha2"; -import * as Encoding from "effect/Encoding"; +import * as Base64Url from "effect/encoding/Base64Url"; import * as Option from "effect/Option"; import * as Result from "effect/Result"; import * as Schema from "effect/Schema"; @@ -69,15 +69,15 @@ export type DpopVerificationResult = }; function base64UrlToBytes(value: string): Uint8Array { - return Result.getOrThrow(Encoding.decodeBase64Url(value)); + return Result.getOrThrow(Base64Url.decode(value)); } function decodeBase64UrlDpopJwtHeader(value: string) { - return decodeDpopJwtHeaderJson(Result.getOrThrow(Encoding.decodeBase64UrlString(value))); + return decodeDpopJwtHeaderJson(Result.getOrThrow(Base64Url.decodeString(value))); } function decodeBase64UrlDpopJwtPayload(value: string) { - return decodeDpopJwtPayloadJson(Result.getOrThrow(Encoding.decodeBase64UrlString(value))); + return decodeDpopJwtPayloadJson(Result.getOrThrow(Base64Url.decodeString(value))); } function dpopThumbprintInput(jwk: DpopPublicJwkType): string { @@ -90,11 +90,11 @@ function dpopThumbprintInput(jwk: DpopPublicJwkType): string { } export function computeDpopJwkThumbprint(jwk: DpopPublicJwkType): string { - return Encoding.encodeBase64Url(sha256(new TextEncoder().encode(dpopThumbprintInput(jwk)))); + return Base64Url.encode(sha256(new TextEncoder().encode(dpopThumbprintInput(jwk)))); } export function computeDpopAccessTokenHash(accessToken: string): string { - return Encoding.encodeBase64Url(sha256(new TextEncoder().encode(accessToken))); + return Base64Url.encode(sha256(new TextEncoder().encode(accessToken))); } function publicKeyBytesFromJwk(jwk: DpopPublicJwkType): Uint8Array { diff --git a/packages/shared/src/httpObservability.ts b/packages/shared/src/httpObservability.ts index 82ce0500396f..5b1712b76ff7 100644 --- a/packages/shared/src/httpObservability.ts +++ b/packages/shared/src/httpObservability.ts @@ -1,6 +1,6 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as Headers from "effect/unstable/http/Headers"; +import * as Headers from "effect/http/Headers"; export const httpHeaderRedactionLayer = Layer.effect( Headers.CurrentRedactedNames, diff --git a/packages/shared/src/httpReadiness.ts b/packages/shared/src/httpReadiness.ts index 4aeda1c4757a..17a4a1f8a904 100644 --- a/packages/shared/src/httpReadiness.ts +++ b/packages/shared/src/httpReadiness.ts @@ -3,7 +3,7 @@ import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Ref from "effect/Ref"; import * as Schedule from "effect/Schedule"; -import { HttpClient, HttpClientRequest } from "effect/unstable/http"; +import { HttpClient, HttpClientRequest } from "effect/http"; const DEFAULT_HTTP_READY_PROBE_TIMEOUT_MS = 1_000; diff --git a/packages/shared/src/nodeSqliteClient.test.ts b/packages/shared/src/nodeSqliteClient.test.ts index 4d08effdab56..83fe851ac8ad 100644 --- a/packages/shared/src/nodeSqliteClient.test.ts +++ b/packages/shared/src/nodeSqliteClient.test.ts @@ -5,7 +5,7 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; -import * as SqlClient from "effect/unstable/sql/SqlClient"; +import * as SqlClient from "effect/sql/SqlClient"; import * as SqliteClient from "./nodeSqliteClient.ts"; diff --git a/packages/shared/src/nodeSqliteClient.ts b/packages/shared/src/nodeSqliteClient.ts index 6f2c415e7f3b..6b05d8ac6ca1 100644 --- a/packages/shared/src/nodeSqliteClient.ts +++ b/packages/shared/src/nodeSqliteClient.ts @@ -19,11 +19,11 @@ import * as Scope from "effect/Scope"; import * as Semaphore from "effect/Semaphore"; import * as Context from "effect/Context"; import * as Stream from "effect/Stream"; -import * as Reactivity from "effect/unstable/reactivity/Reactivity"; -import * as Client from "effect/unstable/sql/SqlClient"; -import type { Connection } from "effect/unstable/sql/SqlConnection"; -import { SqlError, classifySqliteError } from "effect/unstable/sql/SqlError"; -import * as Statement from "effect/unstable/sql/Statement"; +import * as Reactivity from "effect/reactivity/Reactivity"; +import * as Client from "effect/sql/SqlClient"; +import type { Connection } from "effect/sql/SqlConnection"; +import { SqlError, classifySqliteError } from "effect/sql/SqlError"; +import * as Statement from "effect/sql/Statement"; const ATTR_DB_SYSTEM_NAME = "db.system.name"; diff --git a/packages/shared/src/observability.ts b/packages/shared/src/observability.ts index db3f4a89c022..a71559457400 100644 --- a/packages/shared/src/observability.ts +++ b/packages/shared/src/observability.ts @@ -7,7 +7,7 @@ import * as Schema from "effect/Schema"; import * as SchemaIssue from "effect/SchemaIssue"; import * as SchemaTransformation from "effect/SchemaTransformation"; import * as Tracer from "effect/Tracer"; -import { OtlpResource, OtlpTracer, OtlpSerialization } from "effect/unstable/observability"; +import { OtlpResource, OtlpTracer, OtlpSerialization } from "effect/observability"; import { RotatingFileSink } from "./logging.ts"; diff --git a/packages/shared/src/otelEnvironment.test.ts b/packages/shared/src/otelEnvironment.test.ts index e436c64c6360..341a26dba08f 100644 --- a/packages/shared/src/otelEnvironment.test.ts +++ b/packages/shared/src/otelEnvironment.test.ts @@ -2,7 +2,7 @@ import { assert, describe, it } from "@effect/vitest"; import * as ConfigProvider from "effect/ConfigProvider"; import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; -import * as OtlpResource from "effect/unstable/observability/OtlpResource"; +import * as OtlpResource from "effect/observability/OtlpResource"; import * as OtelEnvironment from "./otelEnvironment.ts"; diff --git a/packages/shared/src/otelEnvironment.ts b/packages/shared/src/otelEnvironment.ts index c2496bd28a52..9e0f1ef2f376 100644 --- a/packages/shared/src/otelEnvironment.ts +++ b/packages/shared/src/otelEnvironment.ts @@ -65,7 +65,9 @@ interface Flag { const TrimmedLowercase = Schema.String.pipe( Schema.decodeTo( Schema.String, - SchemaTransformation.trim().compose(SchemaTransformation.toLowerCase()), + SchemaTransformation.trim().pipe( + SchemaTransformation.composeTransformation(SchemaTransformation.toLowerCase()), + ), ), ); diff --git a/packages/shared/src/relayClient.test.ts b/packages/shared/src/relayClient.test.ts index 97dd90f277a7..9306df5bdf12 100644 --- a/packages/shared/src/relayClient.test.ts +++ b/packages/shared/src/relayClient.test.ts @@ -3,13 +3,13 @@ import * as NodeServices from "@effect/platform-node/NodeServices"; import { describe, expect, it } from "@effect/vitest"; import * as ConfigProvider from "effect/ConfigProvider"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Hex from "effect/encoding/Hex"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient, HttpClientResponse } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { HostProcessArchitecture, HostProcessPlatform } from "./hostProcess.ts"; import * as RelayClient from "./relayClient.ts"; @@ -122,7 +122,7 @@ describe("RelayClient", () => { baseDir, releaseAsset: { url: "https://example.test/cloudflared", - sha256: Encoding.encodeHex(sha256(bytes)), + sha256: Hex.encode(sha256(bytes)), archive: "binary", }, }); @@ -178,7 +178,7 @@ describe("RelayClient", () => { baseDir, releaseAsset: { url: "https://example.test/cloudflared", - sha256: Encoding.encodeHex(sha256(new TextEncoder().encode("expected"))), + sha256: Hex.encode(sha256(new TextEncoder().encode("expected"))), archive: "binary", }, }); @@ -211,7 +211,7 @@ describe("RelayClient", () => { baseDir, releaseAsset: { url: "https://example.test/cloudflared", - sha256: Encoding.encodeHex(sha256(bytes)), + sha256: Hex.encode(sha256(bytes)), archive: "binary", }, }); diff --git a/packages/shared/src/relayClient.ts b/packages/shared/src/relayClient.ts index 4d1ce988086d..11c3680b5245 100644 --- a/packages/shared/src/relayClient.ts +++ b/packages/shared/src/relayClient.ts @@ -8,15 +8,15 @@ import * as Context from "effect/Context"; import * as Crypto from "effect/Crypto"; import * as Data from "effect/Data"; import * as Effect from "effect/Effect"; -import * as Encoding from "effect/Encoding"; +import * as Hex from "effect/encoding/Hex"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as PlatformError from "effect/PlatformError"; import * as Semaphore from "effect/Semaphore"; -import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient, HttpClientRequest, HttpClientResponse } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { HostProcessArchitecture, HostProcessPlatform } from "./hostProcess.ts"; export const CLOUDFLARED_VERSION = "2026.5.2"; @@ -316,7 +316,7 @@ export const makeCloudflaredRelayClient = Effect.fn("cloudflared.make")(function }), ), ); - if (Encoding.encodeHex(checksum) !== asset.sha256) { + if (Hex.encode(checksum) !== asset.sha256) { return yield* new RelayClientInstallError({ reason: "invalid_checksum", message: "Downloaded relay client checksum did not match the pinned release.", diff --git a/packages/shared/src/relayTracing.test.ts b/packages/shared/src/relayTracing.test.ts index f96dfea8bb3b..faa22cafe79d 100644 --- a/packages/shared/src/relayTracing.test.ts +++ b/packages/shared/src/relayTracing.test.ts @@ -3,7 +3,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Tracer from "effect/Tracer"; -import { FetchHttpClient } from "effect/unstable/http"; +import { FetchHttpClient } from "effect/http"; import { vi } from "vite-plus/test"; import { diff --git a/packages/shared/src/relayTracing.ts b/packages/shared/src/relayTracing.ts index 76954558eb07..2c88cc6214d8 100644 --- a/packages/shared/src/relayTracing.ts +++ b/packages/shared/src/relayTracing.ts @@ -5,8 +5,8 @@ import * as Exit from "effect/Exit"; import * as Layer from "effect/Layer"; import * as Option from "effect/Option"; import * as Tracer from "effect/Tracer"; -import type { HttpClient } from "effect/unstable/http"; -import { OtlpSerialization, OtlpTracer } from "effect/unstable/observability"; +import type { HttpClient } from "effect/http"; +import { OtlpSerialization, OtlpTracer } from "effect/observability"; export interface RelayClientTracingConfig { readonly tracesUrl: string; diff --git a/packages/shared/src/schemaJson.ts b/packages/shared/src/schemaJson.ts index c811c1da1081..64dd48575028 100644 --- a/packages/shared/src/schemaJson.ts +++ b/packages/shared/src/schemaJson.ts @@ -163,7 +163,7 @@ export const formatSchemaError = (cause: Cause.Cause) => { */ const decodeJsonString = Schema.decodeEffect(Schema.fromJsonString(Schema.Unknown)); -const parseLenientJsonGetter = SchemaGetter.onSome((input: string) => { +const parseLenientJsonGetter = SchemaGetter.transformEffect((input: string) => { // Strip single-line comments - alternation preserves quoted strings. let stripped = input.replace( /("(?:[^"\\]|\\.)*")|\/\/[^\n]*/g, @@ -185,10 +185,7 @@ const parseLenientJsonGetter = SchemaGetter.onSome((input: string) => { stringLiteral ? match : (bracket ?? ""), ); - return decodeJsonString(stripped).pipe( - Effect.asSome, - Effect.mapError((error) => error.issue), - ); + return decodeJsonString(stripped).pipe(Effect.mapError((error) => error.issue)); }); /** @@ -203,8 +200,8 @@ const fromLenientJsonString = new SchemaTransformation.Transformation( SchemaGetter.stringifyJson(), ); -const prettyJsonString = SchemaGetter.parseJson().compose( - SchemaGetter.stringifyJson({ space: 2 }), +const prettyJsonString = SchemaGetter.parseJson().pipe( + SchemaGetter.compose(SchemaGetter.stringifyJson({ space: 2 })), ); /** diff --git a/packages/ssh/src/command.test.ts b/packages/ssh/src/command.test.ts index 02e86b699a35..143d0c1cfb67 100644 --- a/packages/ssh/src/command.test.ts +++ b/packages/ssh/src/command.test.ts @@ -8,7 +8,7 @@ import * as Result from "effect/Result"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { baseSshArgs, diff --git a/packages/ssh/src/command.ts b/packages/ssh/src/command.ts index fc388114351d..65e898a59437 100644 --- a/packages/ssh/src/command.ts +++ b/packages/ssh/src/command.ts @@ -9,7 +9,7 @@ import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { buildSshChildEnvironment, type SshAuthOptions } from "./auth.ts"; import { SshCommandError, SshInvalidTargetError } from "./errors.ts"; diff --git a/packages/ssh/src/runnerProcess.test.ts b/packages/ssh/src/runnerProcess.test.ts index f26bbc39415e..4add0cb5784c 100644 --- a/packages/ssh/src/runnerProcess.test.ts +++ b/packages/ssh/src/runnerProcess.test.ts @@ -8,7 +8,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as NodeNet from "node:net"; import { buildRemoteStopScript, buildRemoteT3RunnerScript } from "./tunnel.ts"; diff --git a/packages/ssh/src/tunnel.test.ts b/packages/ssh/src/tunnel.test.ts index 1f093eee6d82..3f5025df92e8 100644 --- a/packages/ssh/src/tunnel.test.ts +++ b/packages/ssh/src/tunnel.test.ts @@ -12,8 +12,8 @@ import * as Result from "effect/Result"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; import { TestClock } from "effect/testing"; -import { HttpClient, HttpClientResponse } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient, HttpClientResponse } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as SshAuth from "./auth.ts"; import { SshCommandError } from "./errors.ts"; diff --git a/packages/ssh/src/tunnel.ts b/packages/ssh/src/tunnel.ts index 37d539c806b4..c77fe13cb818 100644 --- a/packages/ssh/src/tunnel.ts +++ b/packages/ssh/src/tunnel.ts @@ -20,8 +20,8 @@ import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Scope from "effect/Scope"; import * as Stream from "effect/Stream"; -import { HttpClient } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as SshAuth from "./auth.ts"; import { @@ -93,7 +93,7 @@ interface SshTunnelEntry { readonly httpBaseUrl: string; readonly wsBaseUrl: string; readonly process: ChildProcessSpawner.ChildProcessHandle; - readonly scope: Scope.Scope; + readonly scope: Scope.Closeable; } type SshEnvironmentEffectContext = @@ -1104,6 +1104,7 @@ const startSshTunnel = Effect.fn("ssh/tunnel.startSshTunnel")(function* (input: readonly wsBaseUrl: string; readonly authOptions: SshAuth.SshAuthOptions; readonly remoteServerKind: "external" | "managed" | null; + readonly scope: Scope.Closeable; }): Effect.fn.Return< SshTunnelEntry, SshCommandError | SshInvalidTargetError | SshReadinessError, @@ -1112,7 +1113,6 @@ const startSshTunnel = Effect.fn("ssh/tunnel.startSshTunnel")(function* (input: | Path.Path | HttpClient.HttpClient | NetService.NetService - | Scope.Scope > { const hostSpec = yield* buildSshHostSpecEffect(input.resolvedTarget); const childEnvironment = yield* SshAuth.buildSshChildEnvironment({ @@ -1159,7 +1159,7 @@ const startSshTunnel = Effect.fn("ssh/tunnel.startSshTunnel")(function* (input: const sshCommand = yield* resolveSshCommand; const tunnelCommand = [sshCommand, ...args]; const spawner = yield* ChildProcessSpawner.ChildProcessSpawner; - const scope = yield* Scope.Scope; + const { scope } = input; yield* Effect.logDebug("ssh.tunnel.spawn.start", { ...sshTargetLogFields(input.resolvedTarget), command: tunnelCommand, @@ -1180,6 +1180,7 @@ const startSshTunnel = Effect.fn("ssh/tunnel.startSshTunnel")(function* (input: }), ) .pipe( + Effect.provideService(Scope.Scope, scope), Effect.mapError( (cause) => new SshCommandError({ @@ -1528,7 +1529,8 @@ const makeSshEnvironmentManager = Effect.fn("ssh/tunnel.SshEnvironmentManager.ma wsBaseUrl, authOptions, remoteServerKind: remoteLaunch.remoteServerKind, - }).pipe(Effect.provideService(Scope.Scope, entryScope)), + scope: entryScope, + }), }).pipe( Effect.onExit((exit) => Exit.isSuccess(exit) ? Effect.void : Scope.close(entryScope, Exit.void).pipe(Effect.ignore), diff --git a/packages/tailscale/src/tailscale.test.ts b/packages/tailscale/src/tailscale.test.ts index 102153f6e204..e69df58eec93 100644 --- a/packages/tailscale/src/tailscale.test.ts +++ b/packages/tailscale/src/tailscale.test.ts @@ -7,7 +7,7 @@ import * as PlatformError from "effect/PlatformError"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; import * as TestClock from "effect/testing/TestClock"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; import { diff --git a/packages/tailscale/src/tailscale.ts b/packages/tailscale/src/tailscale.ts index 096176aa42f8..c1da6fe2b2d4 100644 --- a/packages/tailscale/src/tailscale.ts +++ b/packages/tailscale/src/tailscale.ts @@ -4,8 +4,8 @@ import * as Effect from "effect/Effect"; import * as Option from "effect/Option"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { HttpClient, HttpClientRequest } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { HttpClient, HttpClientRequest } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; export const DEFAULT_TAILSCALE_SERVE_PORT = 443; export const TAILSCALE_STATUS_TIMEOUT = Duration.millis(1_500); diff --git a/patches/@effect__vitest@4.0.0-rc.115.patch b/patches/@effect__vitest@4.0.1.patch similarity index 70% rename from patches/@effect__vitest@4.0.0-rc.115.patch rename to patches/@effect__vitest@4.0.1.patch index 7b005596c360..be5bbf6c9872 100644 --- a/patches/@effect__vitest@4.0.0-rc.115.patch +++ b/patches/@effect__vitest@4.0.1.patch @@ -1,30 +1,30 @@ diff --git a/dist/index.d.ts b/dist/index.d.ts -index f0b2bcc..1b9bc38 100644 +index 530795c..237d090 100644 --- a/dist/index.d.ts +++ b/dist/index.d.ts -@@ -7,11 +7,11 @@ import type * as Layer from "effect/Layer"; +@@ -7,14 +7,14 @@ import type * as Effect from "effect/Effect"; + import type * as Layer from "effect/Layer"; import type * as Schema from "effect/Schema"; import type * as Scope from "effect/Scope"; - import type * as Arbitrary from "effect/unstable/arbitrary/Arbitrary"; --import * as V from "vitest"; -+import * as V from "vite-plus/test"; +-import type * as V from "vitest"; ++import type * as V from "vite-plus/test"; /** + * Re-exports the `vitest` API unchanged. + * + * @stability unstable * @since 4.0.0 */ -export * from "vitest"; +export * from "vite-plus/test"; /** + * @stability unstable * @since 4.0.0 - */ diff --git a/dist/index.js b/dist/index.js -index d941a25..90e4618 100644 +index 740429f..b5c69b8 100644 --- a/dist/index.js +++ b/dist/index.js -@@ -1,9 +1,9 @@ --import * as V from "vitest"; -+import * as V from "vite-plus/test"; - import * as internal from "./internal/internal.js"; - /** +@@ -5,7 +5,7 @@ import * as internal from "./internal/internal.js"; + * @stability unstable * @since 4.0.0 */ -export * from "vitest"; @@ -33,20 +33,20 @@ index d941a25..90e4618 100644 * @since 4.0.0 */ diff --git a/dist/internal/internal.js b/dist/internal/internal.js -index 25ab056..d5cce3a 100644 +index 7138319..4092c67 100644 --- a/dist/internal/internal.js +++ b/dist/internal/internal.js -@@ -12,7 +12,7 @@ import * as Scope from "effect/Scope"; +@@ -12,7 +12,7 @@ import * as Schedule from "effect/Schedule"; + import * as Scope from "effect/Scope"; import * as TestClock from "effect/testing/TestClock"; import * as TestConsole from "effect/testing/TestConsole"; - import * as Arbitrary from "effect/unstable/arbitrary/Arbitrary"; -import * as V from "vitest"; +import * as V from "vite-plus/test"; const getCurrentSuite = V.TestRunner.getCurrentSuite; const runPromise = /*#__PURE__*/Effect.fnUntraced(function* (effect, _ctx) { const exit = yield* Effect.exit(effect); diff --git a/dist/utils.js b/dist/utils.js -index 4871215..2c46e2b 100644 +index 75a243d..08a4c89 100644 --- a/dist/utils.js +++ b/dist/utils.js @@ -4,7 +4,7 @@ import * as Option from "effect/Option"; @@ -59,40 +59,42 @@ index 4871215..2c46e2b 100644 // Primitives // ---------------------------- diff --git a/src/index.ts b/src/index.ts -index 7726aac..7375f10 100644 +index 20c0497..2b16d32 100644 --- a/src/index.ts +++ b/src/index.ts -@@ -7,13 +7,13 @@ import type * as Layer from "effect/Layer" +@@ -7,7 +7,7 @@ import type * as Effect from "effect/Effect" + import type * as Layer from "effect/Layer" import type * as Schema from "effect/Schema" import type * as Scope from "effect/Scope" - import type * as Arbitrary from "effect/unstable/arbitrary/Arbitrary" --import * as V from "vitest" -+import * as V from "vite-plus/test" +-import type * as V from "vitest" ++import type * as V from "vite-plus/test" import * as internal from "./internal/internal.ts" /** +@@ -16,7 +16,7 @@ import * as internal from "./internal/internal.ts" + * @stability unstable * @since 4.0.0 */ -export * from "vitest" +export * from "vite-plus/test" /** - * @since 4.0.0 + * @stability unstable diff --git a/src/internal/internal.ts b/src/internal/internal.ts -index 3e001b1..5b7aa2a 100644 +index b43385b..4da79fd 100644 --- a/src/internal/internal.ts +++ b/src/internal/internal.ts -@@ -14,7 +14,7 @@ import * as Scope from "effect/Scope" +@@ -14,7 +14,7 @@ import type * as Schema from "effect/Schema" + import * as Scope from "effect/Scope" import * as TestClock from "effect/testing/TestClock" import * as TestConsole from "effect/testing/TestConsole" - import * as Arbitrary from "effect/unstable/arbitrary/Arbitrary" -import * as V from "vitest" +import * as V from "vite-plus/test" import type * as Vitest from "../index.ts" const getCurrentSuite = V.TestRunner.getCurrentSuite diff --git a/src/utils.ts b/src/utils.ts -index 4a4612c..846bcc9 100644 +index 8ce3409..259be29 100644 --- a/src/utils.ts +++ b/src/utils.ts @@ -16,7 +16,7 @@ import * as Option from "effect/Option" diff --git a/patches/@opencode__client@2.0.23.patch b/patches/@opencode__client@2.0.23.patch new file mode 100644 index 000000000000..c63b6ca08a9c --- /dev/null +++ b/patches/@opencode__client@2.0.23.patch @@ -0,0 +1,439 @@ +diff --git a/dist/chunks/service-version-21favj1f.js b/dist/chunks/service-version-21favj1f.js +index 3e26e34..56068ac 100644 +--- a/dist/chunks/service-version-21favj1f.js ++++ b/dist/chunks/service-version-21favj1f.js +@@ -22,7 +22,7 @@ __export(exports_client, { + make: () => make2 + }); + import { Cause, Context, Effect, Stream } from "effect"; +-import { HttpClient, HttpClientRequest } from "effect/unstable/http"; ++import { HttpClient, HttpClientRequest } from "effect/http"; + var CurrentHeaders = Context.Reference("@opencode/client/effect/rpc/headers", { + defaultValue: () => { + return; +diff --git a/dist/chunks/service-version-7yt87z36.js b/dist/chunks/service-version-7yt87z36.js +index 3559e55..aa2ace8 100644 +--- a/dist/chunks/service-version-7yt87z36.js ++++ b/dist/chunks/service-version-7yt87z36.js +@@ -14,9 +14,9 @@ __export(exports_client2, { + make: () => make3 + }); + import { Effect, Stream, Schema } from "effect"; +-import { Sse } from "effect/unstable/encoding"; +-import { HttpClientError } from "effect/unstable/http"; +-import { HttpApiClient } from "effect/unstable/httpapi"; ++import { Sse } from "effect/encoding"; ++import { HttpClientError } from "effect/http"; ++import { HttpApiClient } from "effect/http-api"; + var mapClientError = (error) => HttpClientError.isHttpClientError(error) || Schema.isSchemaError(error) || Sse.Retry.is(error) ? new ClientError2({ cause: error }) : error; + var preserveEffect = () => (effect) => effect; + var preserveStream = () => (stream) => stream; +diff --git a/dist/effect/client.d.ts b/dist/effect/client.d.ts +index b6ccbb5..98ab36b 100644 +--- a/dist/effect/client.d.ts ++++ b/dist/effect/client.d.ts +@@ -1,6 +1,6 @@ + export * as OpenCode from "./client.js"; + import { Effect, Stream } from "effect"; +-import { HttpClient } from "effect/unstable/http"; ++import { HttpClient } from "effect/http"; + import { ClientError } from "./generated/index.js"; + import { RpcClientRuntime } from "./rpc.js"; + import type { RpcCallOptions } from "../promise/rpc.js"; +@@ -2290,239 +2290,239 @@ export declare const make: (options?: { + readonly metadata?: { + readonly [x: string]: unknown; + } | undefined; +- }, 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>; ++ }, 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>; + }; +- rpc: RpcClientRuntime.RpcApi & { +- call: (input: import("./api.js").RpcCallInput) => Effect.Effect; ++ rpc: RpcClientRuntime.RpcApi & { ++ call: (input: import("./api.js").RpcCallInput) => Effect.Effect; + }; + server: { +- info: () => Effect.Effect; +- pair: () => Effect.Effect; +- connect: (input: import("./api.js").ServerConnectInput) => Effect.Effect; ++ info: () => Effect.Effect; ++ pair: () => Effect.Effect; ++ connect: (input: import("./api.js").ServerConnectInput) => Effect.Effect; + }; + location: { +- get: (input?: import("./api.js").LocationGetInput) => Effect.Effect; +- reload: () => Effect.Effect; ++ get: (input?: import("./api.js").LocationGetInput) => Effect.Effect; ++ reload: () => Effect.Effect; + }; + agent: { +- list: (input?: import("./api.js").AgentListInput) => Effect.Effect; +- get: (input: import("./api.js").AgentGetInput) => Effect.Effect; ++ list: (input?: import("./api.js").AgentListInput) => Effect.Effect; ++ get: (input: import("./api.js").AgentGetInput) => Effect.Effect; + }; + plugin: { +- list: (input?: import("./api.js").PluginListInput) => Effect.Effect; +- check: (input?: import("./api.js").PluginCheckInput) => Effect.Effect; +- update: (input: import("./api.js").PluginUpdateInput) => Effect.Effect; ++ list: (input?: import("./api.js").PluginListInput) => Effect.Effect; ++ check: (input?: import("./api.js").PluginCheckInput) => Effect.Effect; ++ update: (input: import("./api.js").PluginUpdateInput) => Effect.Effect; + }; + session: { +- list: (input?: import("./api.js").SessionListInput) => Effect.Effect; +- stats: (input?: import("./api.js").SessionStatsInput) => Effect.Effect; +- create: (input?: import("./api.js").SessionCreateInput) => Effect.Effect; +- import: (input: import("./api.js").SessionImportInput) => Effect.Effect; +- export: (input: import("./api.js").SessionExportInput) => Effect.Effect; +- active: () => Effect.Effect; +- get: (input: import("./api.js").SessionGetInput) => Effect.Effect; +- remove: (input: import("./api.js").SessionRemoveInput) => Effect.Effect; +- fork: (input: import("./api.js").SessionForkInput) => Effect.Effect; +- switchAgent: (input: import("./api.js").SessionSwitchAgentInput) => Effect.Effect; +- switchModel: (input: import("./api.js").SessionSwitchModelInput) => Effect.Effect; +- update: (input: import("./api.js").SessionUpdateInput) => Effect.Effect; +- move: (input: import("./api.js").SessionMoveInput) => Effect.Effect; +- prompt: (input: import("./api.js").SessionPromptInput) => Effect.Effect; +- command: (input: import("./api.js").SessionCommandInput) => Effect.Effect; +- skill: (input: import("./api.js").SessionSkillInput) => Effect.Effect; +- synthetic: (input: import("./api.js").SessionSyntheticInput) => Effect.Effect; +- shell: (input: import("./api.js").SessionShellInput) => Effect.Effect; +- compact: (input: import("./api.js").SessionCompactInput) => Effect.Effect; +- wait: (input: import("./api.js").SessionWaitInput) => Effect.Effect; ++ list: (input?: import("./api.js").SessionListInput) => Effect.Effect; ++ stats: (input?: import("./api.js").SessionStatsInput) => Effect.Effect; ++ create: (input?: import("./api.js").SessionCreateInput) => Effect.Effect; ++ import: (input: import("./api.js").SessionImportInput) => Effect.Effect; ++ export: (input: import("./api.js").SessionExportInput) => Effect.Effect; ++ active: () => Effect.Effect; ++ get: (input: import("./api.js").SessionGetInput) => Effect.Effect; ++ remove: (input: import("./api.js").SessionRemoveInput) => Effect.Effect; ++ fork: (input: import("./api.js").SessionForkInput) => Effect.Effect; ++ switchAgent: (input: import("./api.js").SessionSwitchAgentInput) => Effect.Effect; ++ switchModel: (input: import("./api.js").SessionSwitchModelInput) => Effect.Effect; ++ update: (input: import("./api.js").SessionUpdateInput) => Effect.Effect; ++ move: (input: import("./api.js").SessionMoveInput) => Effect.Effect; ++ prompt: (input: import("./api.js").SessionPromptInput) => Effect.Effect; ++ command: (input: import("./api.js").SessionCommandInput) => Effect.Effect; ++ skill: (input: import("./api.js").SessionSkillInput) => Effect.Effect; ++ synthetic: (input: import("./api.js").SessionSyntheticInput) => Effect.Effect; ++ shell: (input: import("./api.js").SessionShellInput) => Effect.Effect; ++ compact: (input: import("./api.js").SessionCompactInput) => Effect.Effect; ++ wait: (input: import("./api.js").SessionWaitInput) => Effect.Effect; + revert: { +- stage: (input: import("./api.js").SessionRevertStageInput) => Effect.Effect; +- clear: (input: import("./api.js").SessionRevertClearInput) => Effect.Effect; +- commit: (input: import("./api.js").SessionRevertCommitInput) => Effect.Effect; ++ stage: (input: import("./api.js").SessionRevertStageInput) => Effect.Effect; ++ clear: (input: import("./api.js").SessionRevertClearInput) => Effect.Effect; ++ commit: (input: import("./api.js").SessionRevertCommitInput) => Effect.Effect; + }; +- context: (input: import("./api.js").SessionContextInput) => Effect.Effect; +- diff: (input: import("./api.js").SessionDiffInput) => Effect.Effect; ++ context: (input: import("./api.js").SessionContextInput) => Effect.Effect; ++ diff: (input: import("./api.js").SessionDiffInput) => Effect.Effect; + inbox: { +- list: (input: import("./api.js").SessionInboxListInput) => Effect.Effect; +- cancel: (input: import("./api.js").SessionInboxCancelInput) => Effect.Effect; +- update: (input: import("./api.js").SessionInboxUpdateInput) => Effect.Effect; ++ list: (input: import("./api.js").SessionInboxListInput) => Effect.Effect; ++ cancel: (input: import("./api.js").SessionInboxCancelInput) => Effect.Effect; ++ update: (input: import("./api.js").SessionInboxUpdateInput) => Effect.Effect; + }; + instructions: { + entry: { +- list: (input: import("./api.js").SessionInstructionsEntryListInput) => Effect.Effect; +- put: (input: import("./api.js").SessionInstructionsEntryPutInput) => Effect.Effect; +- remove: (input: import("./api.js").SessionInstructionsEntryRemoveInput) => Effect.Effect; ++ list: (input: import("./api.js").SessionInstructionsEntryListInput) => Effect.Effect; ++ put: (input: import("./api.js").SessionInstructionsEntryPutInput) => Effect.Effect; ++ remove: (input: import("./api.js").SessionInstructionsEntryRemoveInput) => Effect.Effect; + }; + }; +- generate: (input: import("./api.js").SessionGenerateInput) => Effect.Effect; +- log: (input: import("./api.js").SessionLogInput) => Stream.Stream; +- interrupt: (input: import("./api.js").SessionInterruptInput) => Effect.Effect; +- background: (input: import("./api.js").SessionBackgroundInput) => Effect.Effect; ++ generate: (input: import("./api.js").SessionGenerateInput) => Effect.Effect; ++ log: (input: import("./api.js").SessionLogInput) => Stream.Stream; ++ interrupt: (input: import("./api.js").SessionInterruptInput) => Effect.Effect; ++ background: (input: import("./api.js").SessionBackgroundInput) => Effect.Effect; + message: { +- get: (input: import("./api.js").SessionMessageGetInput) => Effect.Effect; ++ get: (input: import("./api.js").SessionMessageGetInput) => Effect.Effect; + }; + form: { +- list: (input: import("./api.js").SessionFormListInput) => Effect.Effect; +- create: (input: import("./api.js").SessionFormCreateInput) => Effect.Effect; +- get: (input: import("./api.js").SessionFormGetInput) => Effect.Effect; +- reply: (input: import("./api.js").SessionFormReplyInput) => Effect.Effect; +- cancel: (input: import("./api.js").SessionFormCancelInput) => Effect.Effect; ++ list: (input: import("./api.js").SessionFormListInput) => Effect.Effect; ++ create: (input: import("./api.js").SessionFormCreateInput) => Effect.Effect; ++ get: (input: import("./api.js").SessionFormGetInput) => Effect.Effect; ++ reply: (input: import("./api.js").SessionFormReplyInput) => Effect.Effect; ++ cancel: (input: import("./api.js").SessionFormCancelInput) => Effect.Effect; + }; +- environment: (input: import("./api.js").SessionEnvironmentInput) => Effect.Effect; +- view: (input: import("./api.js").SessionViewInput) => Effect.Effect; ++ environment: (input: import("./api.js").SessionEnvironmentInput) => Effect.Effect; ++ view: (input: import("./api.js").SessionViewInput) => Effect.Effect; + }; + message: { +- list: (input: import("./api.js").MessageListInput) => Effect.Effect; ++ list: (input: import("./api.js").MessageListInput) => Effect.Effect; + }; + model: { +- list: (input?: import("./api.js").ModelListInput) => Effect.Effect; +- default: (input?: import("./api.js").ModelDefaultInput) => Effect.Effect; ++ list: (input?: import("./api.js").ModelListInput) => Effect.Effect; ++ default: (input?: import("./api.js").ModelDefaultInput) => Effect.Effect; + }; + generate: { +- text: (input: import("./api.js").GenerateTextInput) => Effect.Effect; ++ text: (input: import("./api.js").GenerateTextInput) => Effect.Effect; + }; + provider: { +- list: (input?: import("./api.js").ProviderListInput) => Effect.Effect; +- get: (input: import("./api.js").ProviderGetInput) => Effect.Effect; ++ list: (input?: import("./api.js").ProviderListInput) => Effect.Effect; ++ get: (input: import("./api.js").ProviderGetInput) => Effect.Effect; + }; + integration: { +- list: (input?: import("./api.js").IntegrationListInput) => Effect.Effect; +- get: (input: import("./api.js").IntegrationGetInput) => Effect.Effect; ++ list: (input?: import("./api.js").IntegrationListInput) => Effect.Effect; ++ get: (input: import("./api.js").IntegrationGetInput) => Effect.Effect; + wellknown: { +- add: (input: import("./api.js").IntegrationWellknownAddInput) => Effect.Effect; ++ add: (input: import("./api.js").IntegrationWellknownAddInput) => Effect.Effect; + }; + connect: { +- key: (input: import("./api.js").IntegrationConnectKeyInput) => Effect.Effect; ++ key: (input: import("./api.js").IntegrationConnectKeyInput) => Effect.Effect; + }; + oauth: { +- connect: (input: import("./api.js").IntegrationOauthConnectInput) => Effect.Effect; +- status: (input: import("./api.js").IntegrationOauthStatusInput) => Effect.Effect; +- complete: (input: import("./api.js").IntegrationOauthCompleteInput) => Effect.Effect; +- cancel: (input: import("./api.js").IntegrationOauthCancelInput) => Effect.Effect; ++ connect: (input: import("./api.js").IntegrationOauthConnectInput) => Effect.Effect; ++ status: (input: import("./api.js").IntegrationOauthStatusInput) => Effect.Effect; ++ complete: (input: import("./api.js").IntegrationOauthCompleteInput) => Effect.Effect; ++ cancel: (input: import("./api.js").IntegrationOauthCancelInput) => Effect.Effect; + }; + command: { +- connect: (input: import("./api.js").IntegrationCommandConnectInput) => Effect.Effect; +- status: (input: import("./api.js").IntegrationCommandStatusInput) => Effect.Effect; +- cancel: (input: import("./api.js").IntegrationCommandCancelInput) => Effect.Effect; ++ connect: (input: import("./api.js").IntegrationCommandConnectInput) => Effect.Effect; ++ status: (input: import("./api.js").IntegrationCommandStatusInput) => Effect.Effect; ++ cancel: (input: import("./api.js").IntegrationCommandCancelInput) => Effect.Effect; + }; + }; + mcp: { +- list: (input?: import("./api.js").McpListInput) => Effect.Effect; +- add: (input: import("./api.js").McpAddInput) => Effect.Effect; +- remove: (input: import("./api.js").McpRemoveInput) => Effect.Effect; +- connect: (input: import("./api.js").McpConnectInput) => Effect.Effect; +- disconnect: (input: import("./api.js").McpDisconnectInput) => Effect.Effect; ++ list: (input?: import("./api.js").McpListInput) => Effect.Effect; ++ add: (input: import("./api.js").McpAddInput) => Effect.Effect; ++ remove: (input: import("./api.js").McpRemoveInput) => Effect.Effect; ++ connect: (input: import("./api.js").McpConnectInput) => Effect.Effect; ++ disconnect: (input: import("./api.js").McpDisconnectInput) => Effect.Effect; + resource: { +- catalog: (input?: import("./api.js").McpResourceCatalogInput) => Effect.Effect; ++ catalog: (input?: import("./api.js").McpResourceCatalogInput) => Effect.Effect; + }; + }; + credential: { +- list: () => Effect.Effect; +- create: (input: import("./api.js").CredentialCreateInput) => Effect.Effect; +- update: (input: import("./api.js").CredentialUpdateInput) => Effect.Effect; +- activate: (input: import("./api.js").CredentialActivateInput) => Effect.Effect; +- remove: (input: import("./api.js").CredentialRemoveInput) => Effect.Effect; ++ list: () => Effect.Effect; ++ create: (input: import("./api.js").CredentialCreateInput) => Effect.Effect; ++ update: (input: import("./api.js").CredentialUpdateInput) => Effect.Effect; ++ activate: (input: import("./api.js").CredentialActivateInput) => Effect.Effect; ++ remove: (input: import("./api.js").CredentialRemoveInput) => Effect.Effect; + }; + project: { +- list: () => Effect.Effect; +- update: (input: import("./api.js").ProjectUpdateInput) => Effect.Effect; ++ list: () => Effect.Effect; ++ update: (input: import("./api.js").ProjectUpdateInput) => Effect.Effect; + }; + form: { +- list: (input?: import("./api.js").FormListInput) => Effect.Effect; ++ list: (input?: import("./api.js").FormListInput) => Effect.Effect; + }; + permission: { + request: { +- list: (input?: import("./api.js").PermissionRequestListInput) => Effect.Effect; ++ list: (input?: import("./api.js").PermissionRequestListInput) => Effect.Effect; + }; + saved: { +- list: (input?: import("./api.js").PermissionSavedListInput) => Effect.Effect; +- remove: (input: import("./api.js").PermissionSavedRemoveInput) => Effect.Effect; ++ list: (input?: import("./api.js").PermissionSavedListInput) => Effect.Effect; ++ remove: (input: import("./api.js").PermissionSavedRemoveInput) => Effect.Effect; + }; +- create: (input: import("./api.js").PermissionCreateInput) => Effect.Effect; +- list: (input: import("./api.js").PermissionListInput) => Effect.Effect; +- get: (input: import("./api.js").PermissionGetInput) => Effect.Effect; +- reply: (input: import("./api.js").PermissionReplyInput) => Effect.Effect; ++ create: (input: import("./api.js").PermissionCreateInput) => Effect.Effect; ++ list: (input: import("./api.js").PermissionListInput) => Effect.Effect; ++ get: (input: import("./api.js").PermissionGetInput) => Effect.Effect; ++ reply: (input: import("./api.js").PermissionReplyInput) => Effect.Effect; + }; + file: { +- list: (input?: import("./api.js").FileListInput) => Effect.Effect; +- find: (input: import("./api.js").FileFindInput) => Effect.Effect; ++ list: (input?: import("./api.js").FileListInput) => Effect.Effect; ++ find: (input: import("./api.js").FileFindInput) => Effect.Effect; + }; + command: { +- list: (input?: import("./api.js").CommandListInput) => Effect.Effect; ++ list: (input?: import("./api.js").CommandListInput) => Effect.Effect; + }; + skill: { +- list: (input?: import("./api.js").SkillListInput) => Effect.Effect; ++ list: (input?: import("./api.js").SkillListInput) => Effect.Effect; + }; + pty: { +- list: (input?: import("./api.js").PtyListInput) => Effect.Effect; +- create: (input?: import("./api.js").PtyCreateInput) => Effect.Effect; +- get: (input: import("./api.js").PtyGetInput) => Effect.Effect; +- update: (input: import("./api.js").PtyUpdateInput) => Effect.Effect; +- remove: (input: import("./api.js").PtyRemoveInput) => Effect.Effect; ++ list: (input?: import("./api.js").PtyListInput) => Effect.Effect; ++ create: (input?: import("./api.js").PtyCreateInput) => Effect.Effect; ++ get: (input: import("./api.js").PtyGetInput) => Effect.Effect; ++ update: (input: import("./api.js").PtyUpdateInput) => Effect.Effect; ++ remove: (input: import("./api.js").PtyRemoveInput) => Effect.Effect; + connect: { +- token: (input: import("./api.js").PtyConnectTokenInput) => Effect.Effect; ++ token: (input: import("./api.js").PtyConnectTokenInput) => Effect.Effect; + }; + }; + experimental: { + persistentPty: { +- read: (input: import("./api.js").ExperimentalPersistentPtyReadInput) => Effect.Effect; +- list: (input: import("./api.js").ExperimentalPersistentPtyListInput) => Effect.Effect; +- create: (input: import("./api.js").ExperimentalPersistentPtyCreateInput) => Effect.Effect; +- shutdown: () => Effect.Effect; +- handoff: () => Effect.Effect; +- get: (input: import("./api.js").ExperimentalPersistentPtyGetInput) => Effect.Effect; +- update: (input: import("./api.js").ExperimentalPersistentPtyUpdateInput) => Effect.Effect; +- snapshot: (input: import("./api.js").ExperimentalPersistentPtySnapshotInput) => Effect.Effect; +- remove: (input: import("./api.js").ExperimentalPersistentPtyRemoveInput) => Effect.Effect; +- connectToken: (input: import("./api.js").ExperimentalPersistentPtyConnectTokenInput) => Effect.Effect; ++ read: (input: import("./api.js").ExperimentalPersistentPtyReadInput) => Effect.Effect; ++ list: (input: import("./api.js").ExperimentalPersistentPtyListInput) => Effect.Effect; ++ create: (input: import("./api.js").ExperimentalPersistentPtyCreateInput) => Effect.Effect; ++ shutdown: () => Effect.Effect; ++ handoff: () => Effect.Effect; ++ get: (input: import("./api.js").ExperimentalPersistentPtyGetInput) => Effect.Effect; ++ update: (input: import("./api.js").ExperimentalPersistentPtyUpdateInput) => Effect.Effect; ++ snapshot: (input: import("./api.js").ExperimentalPersistentPtySnapshotInput) => Effect.Effect; ++ remove: (input: import("./api.js").ExperimentalPersistentPtyRemoveInput) => Effect.Effect; ++ connectToken: (input: import("./api.js").ExperimentalPersistentPtyConnectTokenInput) => Effect.Effect; + }; + }; + shell: { +- list: (input?: import("./api.js").ShellListInput) => Effect.Effect; +- create: (input: import("./api.js").ShellCreateInput) => Effect.Effect; +- get: (input: import("./api.js").ShellGetInput) => Effect.Effect; +- output: (input: import("./api.js").ShellOutputInput) => Effect.Effect; +- remove: (input: import("./api.js").ShellRemoveInput) => Effect.Effect; ++ list: (input?: import("./api.js").ShellListInput) => Effect.Effect; ++ create: (input: import("./api.js").ShellCreateInput) => Effect.Effect; ++ get: (input: import("./api.js").ShellGetInput) => Effect.Effect; ++ output: (input: import("./api.js").ShellOutputInput) => Effect.Effect; ++ remove: (input: import("./api.js").ShellRemoveInput) => Effect.Effect; + }; + reference: { +- list: (input?: import("./api.js").ReferenceListInput) => Effect.Effect; ++ list: (input?: import("./api.js").ReferenceListInput) => Effect.Effect; + }; + worktree: { + list: (input: import("./api.js").WorktreeListInput) => Effect.Effect; + readonly strategy?: string | undefined; +- }[], 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>; +- create: (input: import("./api.js").WorktreeCreateInput) => Effect.Effect; +- remove: (input: import("./api.js").WorktreeRemoveInput) => Effect.Effect; +- refresh: (input: import("./api.js").WorktreeRefreshInput) => Effect.Effect; ++ }[], 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>; ++ create: (input: import("./api.js").WorktreeCreateInput) => Effect.Effect; ++ remove: (input: import("./api.js").WorktreeRemoveInput) => Effect.Effect; ++ refresh: (input: import("./api.js").WorktreeRefreshInput) => Effect.Effect; + }; + vcs: { +- init: (input?: import("./api.js").VcsInitInput) => Effect.Effect; +- get: (input?: import("./api.js").VcsGetInput) => Effect.Effect; +- base: (input?: import("./api.js").VcsBaseInput) => Effect.Effect; +- status: (input?: import("./api.js").VcsStatusInput) => Effect.Effect; ++ init: (input?: import("./api.js").VcsInitInput) => Effect.Effect; ++ get: (input?: import("./api.js").VcsGetInput) => Effect.Effect; ++ base: (input?: import("./api.js").VcsBaseInput) => Effect.Effect; ++ status: (input?: import("./api.js").VcsStatusInput) => Effect.Effect; + branch: { +- list: (input?: import("./api.js").VcsBranchListInput) => Effect.Effect; ++ list: (input?: import("./api.js").VcsBranchListInput) => Effect.Effect; + }; +- diff: (input: import("./api.js").VcsDiffInput) => Effect.Effect; ++ diff: (input: import("./api.js").VcsDiffInput) => Effect.Effect; + }; + debug: { + location: { +- list: () => Effect.Effect; +- evict: (input?: import("./api.js").DebugLocationEvictInput) => Effect.Effect; ++ list: () => Effect.Effect; ++ evict: (input?: import("./api.js").DebugLocationEvictInput) => Effect.Effect; + }; + }; + migration: { + v1: { +- status: () => Effect.Effect; ++ status: () => Effect.Effect; + }; + }; + websearch: { +- providers: (input?: import("./api.js").WebsearchProvidersInput) => Effect.Effect; +- query: (input: import("./api.js").WebsearchQueryInput) => Effect.Effect; ++ providers: (input?: import("./api.js").WebsearchProvidersInput) => Effect.Effect; ++ query: (input: import("./api.js").WebsearchQueryInput) => Effect.Effect; + }; + config: { +- get: (input?: import("./api.js").ConfigGetInput) => Effect.Effect; +- shells: () => Effect.Effect; +- update: (input: import("./api.js").ConfigUpdateInput) => Effect.Effect; ++ get: (input?: import("./api.js").ConfigGetInput) => Effect.Effect; ++ shells: () => Effect.Effect; ++ update: (input: import("./api.js").ConfigUpdateInput) => Effect.Effect; + }; + }, never, HttpClient.HttpClient>; +diff --git a/dist/effect/generated/client.d.ts b/dist/effect/generated/client.d.ts +index 0261a21..278f3fb 100644 +--- a/dist/effect/generated/client.d.ts ++++ b/dist/effect/generated/client.d.ts +@@ -1,6 +1,6 @@ + import { Effect, Stream, Schema } from "effect"; +-import { Sse } from "effect/unstable/encoding"; +-import { HttpClientError } from "effect/unstable/http"; ++import { Sse } from "effect/encoding"; ++import { HttpClientError } from "effect/http"; + 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"; + import { ClientError } from "./client-error.js"; + export declare const make: (options?: { +@@ -2524,4 +2524,4 @@ export declare const make: (options?: { + shells: () => Effect.Effect; + update: (input: ConfigUpdateInput) => Effect.Effect; + }; +-}, never, import("effect/unstable/http/HttpClient").HttpClient>; ++}, never, import("effect/http/HttpClient").HttpClient>; diff --git a/patches/@opencode__protocol@2.0.23.patch b/patches/@opencode__protocol@2.0.23.patch new file mode 100644 index 000000000000..a96921ed6a58 --- /dev/null +++ b/patches/@opencode__protocol@2.0.23.patch @@ -0,0 +1,844 @@ +diff --git a/dist/api.d.ts b/dist/api.d.ts +index 68fe350..7c8f3f5 100644 +--- a/dist/api.d.ts ++++ b/dist/api.d.ts +@@ -1,5 +1,5 @@ + import { Context } from "effect"; +-import { HttpApi, HttpApiGroup, HttpApiMiddleware } from "effect/unstable/httpapi"; ++import { HttpApi, HttpApiGroup, HttpApiMiddleware } from "effect/http-api"; + import { SchemaErrorMiddleware } from "./middleware/schema-error.js"; + import { GenerateGroup } from "./groups/generate.js"; + import { MessageGroup } from "./groups/message.js"; +diff --git a/dist/api.js b/dist/api.js +index c68e3ea..0ed6447 100644 +--- a/dist/api.js ++++ b/dist/api.js +@@ -1,5 +1,5 @@ + import { Context } from "effect"; +-import { HttpApi, HttpApiGroup, HttpApiMiddleware, OpenApi } from "effect/unstable/httpapi"; ++import { HttpApi, HttpApiGroup, HttpApiMiddleware, OpenApi } from "effect/http-api"; + import { SchemaErrorMiddleware } from "./middleware/schema-error.js"; + import { GenerateGroup } from "./groups/generate.js"; + import { MessageGroup } from "./groups/message.js"; +diff --git a/dist/client.d.ts b/dist/client.d.ts +index 8a7bdec..d1fc694 100644 +--- a/dist/client.d.ts ++++ b/dist/client.d.ts +@@ -1,7 +1,7 @@ + import { LocationNotFoundError, InvalidRequestError, SessionNotFoundError } from "./errors.js"; + import type { Api } from "./api.js"; + import type { Context } from "effect"; +-import { HttpApiMiddleware } from "effect/unstable/httpapi"; ++import { HttpApiMiddleware } from "effect/http-api"; + import type { EventGroup } from "./groups/event.js"; + declare const LocationMiddleware_base: HttpApiMiddleware.ServiceClass; +diff --git a/dist/groups/command.js b/dist/groups/command.js +index cd89b47..341eb23 100644 +--- a/dist/groups/command.js ++++ b/dist/groups/command.js +@@ -1,7 +1,7 @@ + import { Command } from "@opencode/schema/command"; + import { Location } from "@opencode/schema/location"; + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api"; + import { LocationQuery, locationQueryOpenApi } from "./location.js"; + export const CommandGroup = HttpApiGroup.make("server.command") + .add(HttpApiEndpoint.get("command.list", "/api/command", { +diff --git a/dist/groups/config.d.ts b/dist/groups/config.d.ts +index 31f1042..0432fc2 100644 +--- a/dist/groups/config.d.ts ++++ b/dist/groups/config.d.ts +@@ -1,6 +1,6 @@ + import { Config } from "@opencode/schema/config"; + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api"; + export declare const ConfigGroup: HttpApiGroup.HttpApiGroup<"server.config", HttpApiEndpoint.HttpApiEndpoint<"config.get", "GET", "/api/config", never, Schema.toCodecStringTree; +diff --git a/dist/groups/config.js b/dist/groups/config.js +index 228002a..14748f6 100644 +--- a/dist/groups/config.js ++++ b/dist/groups/config.js +@@ -1,7 +1,7 @@ + import { Config } from "@opencode/schema/config"; + import { ConfigShell } from "@opencode/schema/config/shell"; + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api"; + import { LocationQuery, locationQueryOpenApi } from "./location.js"; + export const ConfigGroup = HttpApiGroup.make("server.config") + .add(HttpApiEndpoint.get("config.get", "/api/config", { +diff --git a/dist/groups/credential.d.ts b/dist/groups/credential.d.ts +index 12de0a3..a4c616e 100644 +--- a/dist/groups/credential.d.ts ++++ b/dist/groups/credential.d.ts +@@ -1,5 +1,5 @@ + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api"; + import { ConflictError } from "../errors.js"; + export declare const CredentialGroup: HttpApiGroup.HttpApiGroup<"server.credential", HttpApiEndpoint.HttpApiEndpoint<"credential.list", "GET", "/api/credential", never, never, never, never, Schema.toCodecJson; + }>>>, never, never, never> | HttpApiEndpoint.HttpApiEndpoint<"debug.location.evict", "DELETE", "/api/debug/location", never, Schema.toCodecStringTree>(definitions: Definitions) => HttpApiGroup.HttpApiGroup<"server.event", HttpApiEndpoint.HttpApiEndpoint<"event.subscribe", "GET", "/api/event", never, never, never, never, HttpApiSchema.StreamSse & { + create: () => string & import("effect/Brand").Brand<"Event.ID">; +diff --git a/dist/groups/event.js b/dist/groups/event.js +index 7d086fe..667e078 100644 +--- a/dist/groups/event.js ++++ b/dist/groups/event.js +@@ -2,7 +2,7 @@ import { Event } from "@opencode/schema/event"; + import { EventManifest } from "@opencode/schema/event-manifest"; + import { Location } from "@opencode/schema/location"; + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api"; + const fields = { + id: Event.ID, + metadata: Schema.optional(Schema.Record(Schema.String, Schema.Unknown)), +diff --git a/dist/groups/form.d.ts b/dist/groups/form.d.ts +index ef9289e..efff3f0 100644 +--- a/dist/groups/form.d.ts ++++ b/dist/groups/form.d.ts +@@ -1,5 +1,5 @@ + import { Context, Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware } from "effect/http-api"; + export declare const makeFormGroup: (locationMiddleware: Context.Key) => HttpApiGroup.HttpApiGroup<"server.form", HttpApiEndpoint.HttpApiEndpoint<"form.list", "GET", "/api/form", never, Schema.toCodecStringTree; +diff --git a/dist/groups/form.js b/dist/groups/form.js +index 7b97820..d68d534 100644 +--- a/dist/groups/form.js ++++ b/dist/groups/form.js +@@ -1,7 +1,7 @@ + import { Form } from "@opencode/schema/form"; + import { Location } from "@opencode/schema/location"; + import { Context, Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, OpenApi } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, OpenApi } from "effect/http-api"; + import { LocationQuery, locationQueryOpenApi } from "./location.js"; + export const makeFormGroup = (locationMiddleware) => HttpApiGroup.make("server.form") + .add(HttpApiEndpoint.get("form.list", "/api/form", { +diff --git a/dist/groups/fs.d.ts b/dist/groups/fs.d.ts +index c8294ac..af3ac60 100644 +--- a/dist/groups/fs.d.ts ++++ b/dist/groups/fs.d.ts +@@ -1,5 +1,5 @@ + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api"; + import { FileNotFoundError } from "../errors.js"; + export declare const FileSystemGroup: HttpApiGroup.HttpApiGroup<"server.fs", HttpApiEndpoint.HttpApiEndpoint<"fs.read", "GET", "/api/fs/read/*", never, Schema.toCodecStringTree; +diff --git a/dist/groups/message.js b/dist/groups/message.js +index 135878a..9c546b0 100644 +--- a/dist/groups/message.js ++++ b/dist/groups/message.js +@@ -2,7 +2,7 @@ import { Session } from "@opencode/schema/session"; + import { SessionMessage } from "@opencode/schema/session-message"; + import { Location } from "@opencode/schema/location"; + import { Schema, Struct } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api"; + import { InvalidCursorError, SessionNotFoundError, UnknownError } from "../errors.js"; + export const SessionMessagesQuery = Schema.Struct({ + limit: Schema.optional(Schema.NumberFromString.check(Schema.isInt(), Schema.isGreaterThanOrEqualTo(1), Schema.isLessThanOrEqualTo(200))).annotate({ +diff --git a/dist/groups/migration.d.ts b/dist/groups/migration.d.ts +index 627b223..4a9323d 100644 +--- a/dist/groups/migration.d.ts ++++ b/dist/groups/migration.d.ts +@@ -1,5 +1,5 @@ + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api"; + export declare const V1MigrationStatus: Schema.Union; + }>, Schema.Struct<{ +diff --git a/dist/groups/migration.js b/dist/groups/migration.js +index 20cf324..ef048e9 100644 +--- a/dist/groups/migration.js ++++ b/dist/groups/migration.js +@@ -1,5 +1,5 @@ + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api"; + const V1MigrationProgress = Schema.Struct({ + label: Schema.String, + numerator: Schema.optional(Schema.Int.check(Schema.isGreaterThanOrEqualTo(0))), +diff --git a/dist/groups/model.d.ts b/dist/groups/model.d.ts +index 8bb1daa..787fe05 100644 +--- a/dist/groups/model.d.ts ++++ b/dist/groups/model.d.ts +@@ -1,6 +1,6 @@ + import { Model } from "@opencode/schema/model"; + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api"; + import { ServiceUnavailableError } from "../errors.js"; + export declare const ModelGroup: HttpApiGroup.HttpApiGroup<"server.model", HttpApiEndpoint.HttpApiEndpoint<"model.list", "GET", "/api/model", never, Schema.toCodecStringTree(locationMiddleware: Context.Key, sessionLocationMiddleware: Context.Key) => HttpApiGroup.HttpApiGroup<"server.permission", HttpApiEndpoint.HttpApiEndpoint<"permission.request.list", "GET", "/api/permission/request", never, Schema.toCodecStringTree HttpApiGroup.make("server.permission") +diff --git a/dist/groups/persistent-pty.d.ts b/dist/groups/persistent-pty.d.ts +index efb7472..b6b786b 100644 +--- a/dist/groups/persistent-pty.d.ts ++++ b/dist/groups/persistent-pty.d.ts +@@ -1,5 +1,5 @@ + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api"; + import { ForbiddenError, InvalidRequestError, PtyNotFoundError, ServiceUnavailableError } from "../errors.js"; + import { PTY_CONNECT_TICKET_QUERY, PTY_CONNECT_TOKEN_HEADER, PTY_CONNECT_TOKEN_HEADER_VALUE } from "./pty.js"; + export { PTY_CONNECT_TICKET_QUERY, PTY_CONNECT_TOKEN_HEADER, PTY_CONNECT_TOKEN_HEADER_VALUE }; +diff --git a/dist/groups/persistent-pty.js b/dist/groups/persistent-pty.js +index 85ad02f..b64c896 100644 +--- a/dist/groups/persistent-pty.js ++++ b/dist/groups/persistent-pty.js +@@ -3,7 +3,7 @@ import { Pty } from "@opencode/schema/pty"; + import { PtyTicket } from "@opencode/schema/pty-ticket"; + import { Session } from "@opencode/schema/session"; + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api"; + import { ForbiddenError, InvalidRequestError, PtyNotFoundError, ServiceUnavailableError } from "../errors.js"; + import { PTY_CONNECT_TICKET_QUERY, PTY_CONNECT_TOKEN_HEADER, PTY_CONNECT_TOKEN_HEADER_VALUE } from "./pty.js"; + export { PTY_CONNECT_TICKET_QUERY, PTY_CONNECT_TOKEN_HEADER, PTY_CONNECT_TOKEN_HEADER_VALUE }; +diff --git a/dist/groups/plugin.d.ts b/dist/groups/plugin.d.ts +index 30d0f78..8bd4ecd 100644 +--- a/dist/groups/plugin.d.ts ++++ b/dist/groups/plugin.d.ts +@@ -1,5 +1,5 @@ + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api"; + import { InvalidRequestError, ServiceUnavailableError } from "../errors.js"; + export declare const PluginGroup: HttpApiGroup.HttpApiGroup<"server.plugin", HttpApiEndpoint.HttpApiEndpoint<"plugin.list", "GET", "/api/plugin", never, Schema.toCodecStringTree & { +diff --git a/dist/groups/project.js b/dist/groups/project.js +index 7424c4e..b67f839 100644 +--- a/dist/groups/project.js ++++ b/dist/groups/project.js +@@ -1,6 +1,6 @@ + import { Project } from "@opencode/schema/project"; + import { Schema, Struct } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api"; + import { ProjectNotFoundError } from "../errors.js"; + const root = "/api/project"; + const UpdatePayload = Schema.Struct(Struct.omit(Project.UpdateInput.fields, ["projectID"])); +diff --git a/dist/groups/provider.d.ts b/dist/groups/provider.d.ts +index 2671555..89118fe 100644 +--- a/dist/groups/provider.d.ts ++++ b/dist/groups/provider.d.ts +@@ -1,6 +1,6 @@ + import { Provider } from "@opencode/schema/provider"; + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api"; + import { ProviderNotFoundError, ServiceUnavailableError } from "../errors.js"; + export declare const ProviderGroup: HttpApiGroup.HttpApiGroup<"server.provider", HttpApiEndpoint.HttpApiEndpoint<"provider.list", "GET", "/api/provider", never, Schema.toCodecStringTree; +diff --git a/dist/groups/reference.js b/dist/groups/reference.js +index e96827b..e615fd1 100644 +--- a/dist/groups/reference.js ++++ b/dist/groups/reference.js +@@ -1,7 +1,7 @@ + import { Location } from "@opencode/schema/location"; + import { Reference } from "@opencode/schema/reference"; + import { Schema, Struct } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api"; + import { LocationQuery, locationQueryOpenApi } from "./location.js"; + const PublicLocalSource = Schema.Struct(Struct.omit(Reference.LocalSource.fields, ["description", "hidden"])).annotate({ + identifier: "Reference.LocalSource", +diff --git a/dist/groups/rpc.d.ts b/dist/groups/rpc.d.ts +index 3790115..08e86ec 100644 +--- a/dist/groups/rpc.d.ts ++++ b/dist/groups/rpc.d.ts +@@ -1,5 +1,5 @@ + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api"; + import { RpcError, RpcInternalError } from "../errors.js"; + export declare const RpcInput: Schema.Struct<{ + readonly input: Schema.decodeTo>, Schema.optionalKey, never, never>; +diff --git a/dist/groups/rpc.js b/dist/groups/rpc.js +index c12866c..36dadc6 100644 +--- a/dist/groups/rpc.js ++++ b/dist/groups/rpc.js +@@ -1,6 +1,6 @@ + import { optional } from "@opencode/schema/schema"; + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api"; + import { RpcError, RpcInternalError } from "../errors.js"; + import { LocationQuery, locationQueryOpenApi } from "./location.js"; + export const RpcInput = Schema.Struct({ input: optional(Schema.Unknown) }).annotate({ identifier: "Rpc.Input" }); +diff --git a/dist/groups/server.d.ts b/dist/groups/server.d.ts +index b02cf39..5e605d6 100644 +--- a/dist/groups/server.d.ts ++++ b/dist/groups/server.d.ts +@@ -1,5 +1,5 @@ + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup } from "effect/http-api"; + import { UnauthorizedError } from "../errors.js"; + export declare const ServerInfo: Schema.Struct<{ + readonly version: Schema.String; +diff --git a/dist/groups/server.js b/dist/groups/server.js +index c2415ec..ab9fef3 100644 +--- a/dist/groups/server.js ++++ b/dist/groups/server.js +@@ -1,5 +1,5 @@ + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api"; + import { UnauthorizedError } from "../errors.js"; + export const ServerInfo = Schema.Struct({ + version: Schema.String, +diff --git a/dist/groups/session.d.ts b/dist/groups/session.d.ts +index 316bfb1..adbea93 100644 +--- a/dist/groups/session.d.ts ++++ b/dist/groups/session.d.ts +@@ -2,7 +2,7 @@ import { PromptInput } from "@opencode/schema/prompt-input"; + import { InstructionEntry } from "@opencode/schema/instruction-entry"; + import { Event } from "@opencode/schema/event"; + import { Context, Effect, Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema } from "effect/http-api"; + import { ConflictError, LocationNotFoundError, CommandExecutionError, CommandNotFoundError, FormAlreadySettledError, FormInvalidAnswerError, FormNotFoundError, InvalidCursorError, InvalidRequestError, MessageNotFoundError, ServiceUnavailableError, SessionBusyError, SessionNotFoundError, SkillNotFoundError, UnknownError } from "../errors.js"; + declare const SessionsCursorInput: Schema.Union; +diff --git a/dist/groups/session.js b/dist/groups/session.js +index 64fe213..c835084 100644 +--- a/dist/groups/session.js ++++ b/dist/groups/session.js +@@ -7,8 +7,9 @@ import { InstructionEntry } from "@opencode/schema/instruction-entry"; + import { Project } from "@opencode/schema/project"; + import { AbsolutePath, DateTimeUtcFromMillis, NonNegativeInt, PositiveInt, RelativePath, statics, } from "@opencode/schema/schema"; + import { Event } from "@opencode/schema/event"; +-import { Context, Effect, Encoding, Result, Schema, SchemaGetter, Struct } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema, OpenApi } from "effect/unstable/httpapi"; ++import * as Base64Url from "effect/encoding/Base64Url"; ++import { Context, Effect, Result, Schema, SchemaGetter, Struct } from "effect"; ++import { HttpApiEndpoint, HttpApiGroup, HttpApiMiddleware, HttpApiSchema, OpenApi } from "effect/http-api"; + import { ConflictError, LocationNotFoundError, CommandExecutionError, CommandNotFoundError, FormAlreadySettledError, FormInvalidAnswerError, FormNotFoundError, InvalidCursorError, InvalidRequestError, MessageNotFoundError, ServiceUnavailableError, SessionBusyError, SessionNotFoundError, SkillNotFoundError, UnknownError, } from "../errors.js"; + import { Agent } from "@opencode/schema/agent"; + import { Skill } from "@opencode/schema/skill"; +@@ -65,9 +66,9 @@ const invalidCursor = "Invalid cursor"; + export const SessionsCursor = Schema.String.pipe(Schema.brand("SessionsCursor"), statics((schema) => { + const make = schema.make.bind(schema); + return { +- make: (input) => make(Encoding.encodeBase64Url(encodeSessionsCursor(input))), ++ make: (input) => make(Base64Url.encode(encodeSessionsCursor(input))), + parse: (input) => Effect.suspend(() => { +- const result = Encoding.decodeBase64UrlString(input); ++ const result = Base64Url.decodeString(input); + return Result.isFailure(result) + ? Effect.fail(invalidCursor) + : decodeSessionsCursor(result.success).pipe(Effect.mapError(() => invalidCursor)); +diff --git a/dist/groups/shell.d.ts b/dist/groups/shell.d.ts +index 55b3455..dd1cfe3 100644 +--- a/dist/groups/shell.d.ts ++++ b/dist/groups/shell.d.ts +@@ -1,5 +1,5 @@ + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api"; + import { ShellNotFoundError } from "../errors.js"; + export declare const ShellGroup: HttpApiGroup.HttpApiGroup<"server.shell", HttpApiEndpoint.HttpApiEndpoint<"shell.list", "GET", "/api/shell", never, Schema.toCodecStringTree; +diff --git a/dist/groups/skill.js b/dist/groups/skill.js +index a55e3ed..b419ad2 100644 +--- a/dist/groups/skill.js ++++ b/dist/groups/skill.js +@@ -1,7 +1,7 @@ + import { Skill } from "@opencode/schema/skill"; + import { Location } from "@opencode/schema/location"; + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, OpenApi } from "effect/http-api"; + import { LocationQuery, locationQueryOpenApi } from "./location.js"; + export const SkillGroup = HttpApiGroup.make("server.skill") + .add(HttpApiEndpoint.get("skill.list", "/api/skill", { +diff --git a/dist/groups/vcs.d.ts b/dist/groups/vcs.d.ts +index 7672482..d129386 100644 +--- a/dist/groups/vcs.d.ts ++++ b/dist/groups/vcs.d.ts +@@ -1,5 +1,5 @@ + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema } from "effect/http-api"; + import { ConflictError, InvalidRequestError, ServiceUnavailableError } from "../errors.js"; + declare const VcsInitNotSupportedError_base: Schema.Class; +diff --git a/dist/groups/worktree.js b/dist/groups/worktree.js +index 67bed29..0a501b1 100644 +--- a/dist/groups/worktree.js ++++ b/dist/groups/worktree.js +@@ -1,6 +1,6 @@ + import { Worktree } from "@opencode/schema/worktree"; + import { Schema } from "effect"; +-import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/unstable/httpapi"; ++import { HttpApiEndpoint, HttpApiGroup, HttpApiSchema, OpenApi } from "effect/http-api"; + import { Project } from "@opencode/schema/project"; + import { ProjectNotFoundError } from "../errors.js"; + const root = "/api/worktree"; +diff --git a/dist/middleware/authorization.d.ts b/dist/middleware/authorization.d.ts +index 2d043d9..f84b1df 100644 +--- a/dist/middleware/authorization.d.ts ++++ b/dist/middleware/authorization.d.ts +@@ -1,4 +1,4 @@ +-import { HttpApiMiddleware } from "effect/unstable/httpapi"; ++import { HttpApiMiddleware } from "effect/http-api"; + import { UnauthorizedError } from "../errors.js"; + declare const Authorization_base: HttpApiMiddleware.ServiceClass; +diff --git a/dist/simulation.js b/dist/simulation.js +index 3e52010..ce8f56e 100644 +--- a/dist/simulation.js ++++ b/dist/simulation.js +@@ -1,5 +1,5 @@ + import { Effect, Schema } from "effect"; +-import { Rpc, RpcGroup } from "effect/unstable/rpc"; ++import { Rpc, RpcGroup } from "effect/rpc"; + const JsonRpcID = Schema.Union([Schema.String, Schema.Number, Schema.Null]); + const decodeJson = Schema.decodeUnknownSync(Schema.Json); + export var JsonRpc; diff --git a/patches/@opencode__schema@2.0.23.patch b/patches/@opencode__schema@2.0.23.patch new file mode 100644 index 000000000000..dbde0d412d75 --- /dev/null +++ b/patches/@opencode__schema@2.0.23.patch @@ -0,0 +1,155 @@ +diff --git a/dist/event.js b/dist/event.js +index a0f0831..c4d39e2 100644 +--- a/dist/event.js ++++ b/dist/event.js +@@ -4,7 +4,7 @@ import { optional } from "./schema.js"; + import { ascending } from "./identifier.js"; + import { Location } from "./location.js"; + import { statics } from "./schema.js"; +-export const ID = Schema.String.check(Schema.isStartsWith("evt_")).pipe(Schema.brand("Event.ID"), statics((schema) => ({ create: () => schema.make("evt_" + ascending()) }))); ++export const ID = Schema.String.check(Schema.isStartingWith("evt_")).pipe(Schema.brand("Event.ID"), statics((schema) => ({ create: () => schema.make("evt_" + ascending()) }))); + /** + * Position in one aggregate's durable log. Values originate from the durable + * event envelope and synced markers; +diff --git a/dist/form.js b/dist/form.js +index 920d0dd..bd4799d 100644 +--- a/dist/form.js ++++ b/dist/form.js +@@ -3,7 +3,7 @@ import { Schema } from "effect"; + import { ephemeral, inventory } from "./event.js"; + import { ascending } from "./identifier.js"; + import { NonNegativeInt, optional, statics } from "./schema.js"; +-const IDSchema = Schema.String.check(Schema.isStartsWith("frm_")).pipe(Schema.brand("Form.ID")); ++const IDSchema = Schema.String.check(Schema.isStartingWith("frm_")).pipe(Schema.brand("Form.ID")); + export const ID = IDSchema.pipe(statics((schema) => ({ create: (id) => schema.make(id ?? "frm_" + ascending()) }))); + export const Metadata = Schema.Record(Schema.String, Schema.Unknown).annotate({ identifier: "Form.Metadata" }); + export const Option = Schema.Struct({ +diff --git a/dist/permission.js b/dist/permission.js +index d004da5..9b3f133 100644 +--- a/dist/permission.js ++++ b/dist/permission.js +@@ -5,7 +5,7 @@ import { ephemeral, inventory } from "./event.js"; + import { ascending } from "./identifier.js"; + import { SessionID } from "./session-id.js"; + import { statics } from "./schema.js"; +-export const ID = Schema.String.check(Schema.isStartsWith("per")).pipe(Schema.brand("Permission.ID"), statics((schema) => ({ create: (id) => schema.make(id ?? "per_" + ascending()) }))); ++export const ID = Schema.String.check(Schema.isStartingWith("per")).pipe(Schema.brand("Permission.ID"), statics((schema) => ({ create: (id) => schema.make(id ?? "per_" + ascending()) }))); + export const Source = Schema.Union([ + Schema.Struct({ + type: Schema.Literal("tool"), +diff --git a/dist/pty.js b/dist/pty.js +index b69f558..f5872fd 100644 +--- a/dist/pty.js ++++ b/dist/pty.js +@@ -4,7 +4,7 @@ import { optional } from "./schema.js"; + import { ephemeral, inventory } from "./event.js"; + import { ascending } from "./identifier.js"; + import { NonNegativeInt, PositiveInt, statics } from "./schema.js"; +-const IDSchema = Schema.String.check(Schema.isStartsWith("pty")).pipe(Schema.brand("PtyID")); ++const IDSchema = Schema.String.check(Schema.isStartingWith("pty")).pipe(Schema.brand("PtyID")); + export const ID = IDSchema.pipe(statics((schema) => { + const create = () => schema.make("pty_" + ascending()); + return { +diff --git a/dist/schema.js b/dist/schema.js +index d90b9f6..ab09ced 100644 +--- a/dist/schema.js ++++ b/dist/schema.js +@@ -7,7 +7,17 @@ export const optional = (schema) => Schema.optionalKey(schema).pipe(Schema.decod + decode: SchemaGetter.passthrough({ strict: false }), + encode: SchemaGetter.transformOptional(Option.filter((value) => value !== undefined)), + })); +-export const statics = (methods) => (schema) => Object.assign(schema, methods(schema)); ++export const statics = (methods) => (schema) => { ++ // Effect 4.0.0 caches `make` as a non-configurable own property on first ++ // read, so a static that overrides it is defined before anything reads it: ++ // `methods` sees a view whose `make` comes from a fresh rebuild. ++ const base = schema.rebuild(schema.ast); ++ const view = new Proxy(schema, { get: (target, key) => (key === "make" ? base.make : Reflect.get(target, key)) }); ++ for (const [key, value] of Object.entries(methods(view))) { ++ Object.defineProperty(schema, key, { value, writable: true, enumerable: true, configurable: true }); ++ } ++ return schema; ++}; + export const DateTimeUtcFromMillis = Schema.Finite.pipe(Schema.decodeTo(Schema.DateTimeUtc, { + decode: SchemaGetter.transform((value) => DateTime.makeUnsafe(value)), + encode: SchemaGetter.transform((value) => DateTime.toEpochMillis(value)), +diff --git a/dist/session-id.js b/dist/session-id.js +index fe5f778..03ef1e6 100644 +--- a/dist/session-id.js ++++ b/dist/session-id.js +@@ -1,7 +1,7 @@ + import { Schema } from "effect"; + import { descending } from "./identifier.js"; + import { statics } from "./schema.js"; +-export const SessionID = Schema.String.check(Schema.isStartsWith("ses")).pipe(Schema.brand("SessionID"), statics((schema) => { ++export const SessionID = Schema.String.check(Schema.isStartingWith("ses")).pipe(Schema.brand("SessionID"), statics((schema) => { + const create = () => schema.make("ses_" + descending()); + return { + create, +diff --git a/dist/session-message.js b/dist/session-message.js +index 9ddeda7..6a0a1e2 100644 +--- a/dist/session-message.js ++++ b/dist/session-message.js +@@ -18,7 +18,7 @@ import { Skill as SkillSchema } from "./skill.js"; + import { Money } from "./money.js"; + import { Snapshot } from "./snapshot.js"; + import { TokenUsage } from "./token-usage.js"; +-export const ID = Schema.String.check(Schema.isStartsWith("msg_")).pipe(Schema.brand("Session.Message.ID"), statics((schema) => ({ ++export const ID = Schema.String.check(Schema.isStartingWith("msg_")).pipe(Schema.brand("Session.Message.ID"), statics((schema) => ({ + create: () => schema.make("msg_" + ascending()), + fromEvent: (eventID) => schema.make(eventID.replace(/^evt_/, "msg_")), + }))); +diff --git a/dist/shell.js b/dist/shell.js +index 75b981e..969160a 100644 +--- a/dist/shell.js ++++ b/dist/shell.js +@@ -4,7 +4,7 @@ import { optional } from "./schema.js"; + import { ephemeral, inventory } from "./event.js"; + import { ascending } from "./identifier.js"; + import { NonNegativeInt, statics } from "./schema.js"; +-const IDSchema = Schema.String.check(Schema.isStartsWith("sh_")).pipe(Schema.brand("Shell.ID")); ++const IDSchema = Schema.String.check(Schema.isStartingWith("sh_")).pipe(Schema.brand("Shell.ID")); + export const ID = IDSchema.pipe(statics((schema) => { + const create = () => schema.make("sh_" + ascending()); + return { +diff --git a/dist/v1/permission.js b/dist/v1/permission.js +index 86af654..d4008e5 100644 +--- a/dist/v1/permission.js ++++ b/dist/v1/permission.js +@@ -5,7 +5,7 @@ import { ascending } from "../identifier.js"; + import { Project } from "../project.js"; + import { statics } from "../schema.js"; + import { SessionID } from "../session-id.js"; +-export const ID = Schema.String.check(Schema.isStartsWith("per")).pipe(Schema.brand("PermissionV1.ID"), statics((schema) => ({ ascending: (id) => schema.make(id ?? "per_" + ascending()) }))); ++export const ID = Schema.String.check(Schema.isStartingWith("per")).pipe(Schema.brand("PermissionV1.ID"), statics((schema) => ({ ascending: (id) => schema.make(id ?? "per_" + ascending()) }))); + export const Action = Schema.Literals(["allow", "deny", "ask"]).annotate({ identifier: "PermissionV1.Action" }); + export const Rule = Schema.Struct({ permission: Schema.String, pattern: Schema.String, action: Action }).annotate({ + identifier: "PermissionV1.Rule", +diff --git a/dist/v1/session.js b/dist/v1/session.js +index 867c87b..e06a17b 100644 +--- a/dist/v1/session.js ++++ b/dist/v1/session.js +@@ -11,8 +11,8 @@ import { WorkspaceID } from "../workspace-id.js"; + import { PermissionV1 } from "./permission.js"; + import { FileDiff } from "../file-diff.js"; + const Timestamp = Schema.Finite.check(Schema.isGreaterThanOrEqualTo(0)); +-export const MessageID = Schema.String.check(Schema.isStartsWith("msg")).pipe(Schema.brand("SessionV1.MessageID"), statics((schema) => ({ ascending: (id) => schema.make(id ?? "msg_" + ascending()) }))); +-export const PartID = Schema.String.check(Schema.isStartsWith("prt")).pipe(Schema.brand("SessionV1.PartID"), statics((schema) => ({ ascending: (id) => schema.make(id ?? "prt_" + ascending()) }))); ++export const MessageID = Schema.String.check(Schema.isStartingWith("msg")).pipe(Schema.brand("SessionV1.MessageID"), statics((schema) => ({ ascending: (id) => schema.make(id ?? "msg_" + ascending()) }))); ++export const PartID = Schema.String.check(Schema.isStartingWith("prt")).pipe(Schema.brand("SessionV1.PartID"), statics((schema) => ({ ascending: (id) => schema.make(id ?? "prt_" + ascending()) }))); + const namedError = (name, fields) => { + const schema = Schema.Struct({ name: Schema.Literal(name), data: Schema.Struct(fields) }).annotate({ + identifier: name, +diff --git a/dist/workspace-id.js b/dist/workspace-id.js +index 4bed474..4ec8671 100644 +--- a/dist/workspace-id.js ++++ b/dist/workspace-id.js +@@ -1,7 +1,7 @@ + import { Schema } from "effect"; + import { ascending } from "./identifier.js"; + import { statics } from "./schema.js"; +-export const WorkspaceID = Schema.String.check(Schema.isStartsWith("wrk")).pipe(Schema.brand("Workspace.ID"), statics((schema) => { ++export const WorkspaceID = Schema.String.check(Schema.isStartingWith("wrk")).pipe(Schema.brand("Workspace.ID"), statics((schema) => { + const create = () => schema.make("wrk_" + ascending()); + return { + ascending: (id) => { diff --git a/patches/alchemy@2.0.0-beta.79.patch b/patches/alchemy@2.0.0-beta.80.patch similarity index 91% rename from patches/alchemy@2.0.0-beta.79.patch rename to patches/alchemy@2.0.0-beta.80.patch index 0f0f81d8da27..a47ed599b87a 100644 --- a/patches/alchemy@2.0.0-beta.79.patch +++ b/patches/alchemy@2.0.0-beta.80.patch @@ -1,5 +1,5 @@ diff --git a/lib/Drizzle/Postgres.d.ts b/lib/Drizzle/Postgres.d.ts -index ddba2e1e6ae85ca24e626ce2d7ea2bde92ef6f86..31335e2039a52ad2fe7a12d6bc820dbb04fe15a8 100644 +index ddba2e1..31335e2 100644 --- a/lib/Drizzle/Postgres.d.ts +++ b/lib/Drizzle/Postgres.d.ts @@ -4,6 +4,11 @@ import type { EffectPgDatabase } from "drizzle-orm/effect-postgres"; @@ -25,7 +25,7 @@ index ddba2e1e6ae85ca24e626ce2d7ea2bde92ef6f86..31335e2039a52ad2fe7a12d6bc820dbb //# sourceMappingURL=Postgres.d.ts.map \ No newline at end of file diff --git a/lib/Drizzle/Postgres.js b/lib/Drizzle/Postgres.js -index fdd0942fc9da4f220e135bd9ce6c891dd837a948..e7452288b6b92e0aeacc26f37a10e85a3ba232e5 100644 +index fdd0942..e745228 100644 --- a/lib/Drizzle/Postgres.js +++ b/lib/Drizzle/Postgres.js @@ -38,13 +38,13 @@ import { proxyChain } from "../Util/proxy-chain.js"; @@ -46,7 +46,7 @@ index fdd0942fc9da4f220e135bd9ce6c891dd837a948..e7452288b6b92e0aeacc26f37a10e85a //# sourceMappingURL=Postgres.js.map \ No newline at end of file diff --git a/lib/Test/Vitest.js b/lib/Test/Vitest.js -index 0ecf9ccff01bb6556bf3e471d5a93254d16224a7..c0f1237e6a98e698718b0bbde5de8eb58c859e8e 100644 +index bada542..f135b00 100644 --- a/lib/Test/Vitest.js +++ b/lib/Test/Vitest.js @@ -3,7 +3,7 @@ import { it } from "@effect/vitest"; @@ -59,7 +59,7 @@ index 0ecf9ccff01bb6556bf3e471d5a93254d16224a7..c0f1237e6a98e698718b0bbde5de8eb5 export { executeWhenReady, getWhenReady, guardContentType, guardedFetchLayer, rpcClientLayer, WorkerNotReady, } from "./Http.js"; export const defaultStage = Core.defaultStage; diff --git a/src/Drizzle/Postgres.ts b/src/Drizzle/Postgres.ts -index 2d138914e834d5c47078c42b756129897506f51d..61ae549db6ee20e8809295e8d1543b3bc78f63ad 100644 +index 2d13891..61ae549 100644 --- a/src/Drizzle/Postgres.ts +++ b/src/Drizzle/Postgres.ts @@ -48,6 +48,15 @@ import { proxyChain } from "../Util/proxy-chain.ts"; @@ -96,7 +96,7 @@ index 2d138914e834d5c47078c42b756129897506f51d..61ae549db6ee20e8809295e8d1543b3b return yield* PgDrizzle.makeWithDefaults(config).pipe( Effect.provideContext(pgCtx), diff --git a/src/Test/Vitest.ts b/src/Test/Vitest.ts -index c321e6d4924d0f6b3ae53292a12af88167692ccb..673929a81d066bdd6a2dd94e9c1d95bb69f3e3cd 100644 +index 7dd3576..0bcfc4d 100644 --- a/src/Test/Vitest.ts +++ b/src/Test/Vitest.ts @@ -8,7 +8,7 @@ import { diff --git a/patches/effect@4.0.0-rc.115.patch b/patches/effect@4.0.1.patch similarity index 71% rename from patches/effect@4.0.0-rc.115.patch rename to patches/effect@4.0.1.patch index 53b1a3b3f5be..20bfe1cbc5bc 100644 --- a/patches/effect@4.0.0-rc.115.patch +++ b/patches/effect@4.0.1.patch @@ -1,48 +1,63 @@ -diff --git a/dist/unstable/ai/McpServer.js b/dist/unstable/ai/McpServer.js -index e8b9be4..9cffc5c 100644 ---- a/dist/unstable/ai/McpServer.js -+++ b/dist/unstable/ai/McpServer.js -@@ -450,6 +450,26 @@ const runWithProtocolState = /*#__PURE__*/Effect.fnUntraced(function* (options, - const defaultLogLevel = yield* CurrentLogLevel; - const isHttp = Option.isSome(yield* Effect.serviceOption(HttpRouter.HttpRouter)); - const sessions = protocolState.sessions; -+ if (isHttp && options.path !== undefined) { -+ const router = yield* HttpRouter.HttpRouter; -+ yield* router.add("DELETE", options.path, Effect.gen(function* () { -+ const request = yield* HttpServerRequest.HttpServerRequest; -+ const sessionId = request.headers[MCP_SESSION_ID_HEADER]; -+ if (sessionId === undefined) { -+ return HttpServerResponse.empty({ -+ status: 400 -+ }); -+ } -+ if (!sessions.bySessionId.delete(sessionId)) { -+ return HttpServerResponse.empty({ -+ status: 404 -+ }); -+ } -+ return HttpServerResponse.empty({ -+ status: 204 -+ }); -+ })); -+ } - const clientProtocols = new Map(); - const activeRequests = new Map(); - const clientProfiles = new Map(); -@@ -948,7 +968,7 @@ export const layerHttp = options => { +diff --git a/dist/ai/McpServer.js b/dist/ai/McpServer.js +index 2da5941..9fada51 100644 +--- a/dist/ai/McpServer.js ++++ b/dist/ai/McpServer.js +@@ -1093,7 +1093,7 @@ export const layerHttp = options => { const methodNotAllowed = request => isAllowedMcpOrigin(request, options.allowedOrigins) ? Effect.succeed(methodNotAllowedResponse) : Effect.succeed(HttpServerResponse.empty({ status: 403 })); - 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)); + 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)); - return Layer.merge(layerWithProtocolState(options), routes).pipe(Layer.provide(layerMcpProtocolHttp(options)), Layer.provide(protocolState), Layer.provide(RpcSerialization.layerJsonRpc())); + return Layer.merge(layerWithRuntime(options, "http"), routes).pipe(Layer.provide(layerMcpProtocolHttp(options)), Layer.provide(runtime), Layer.provide(RpcSerialization.layerJsonRpc())); }; const layerMcpProtocolHttp = options => Layer.effect(RpcServer.Protocol)(Effect.gen(function* () { -diff --git a/dist/unstable/http/HttpClientResponse.js b/dist/unstable/http/HttpClientResponse.js -index 59a2b12..ef54250 100644 ---- a/dist/unstable/http/HttpClientResponse.js -+++ b/dist/unstable/http/HttpClientResponse.js -@@ -180,7 +180,7 @@ class WebHttpClientResponse extends Inspectable.Class { +@@ -1136,6 +1136,17 @@ const layerMcpProtocolHttp = options => Layer.effect(RpcServer.Protocol)(Effect. + }))) : response; + }); + }); ++ yield* router.add("DELETE", options.path, request => { ++ if (!isAllowedMcpOrigin(request, options.allowedOrigins)) { ++ return Effect.succeed(HttpServerResponse.empty({ ++ status: 403 ++ })); ++ } ++ const sessionId = request.headers[MCP_SESSION_ID_HEADER]; ++ return Effect.succeed(HttpServerResponse.empty({ ++ status: sessionId === undefined ? 400 : runtime.terminateSession(sessionId) ? 204 : 404 ++ })); ++ }); + return protocol; + })); + const mcpHttpSerialization = /*#__PURE__*/(() => { +diff --git a/dist/ai/internal/mcpRuntime.js b/dist/ai/internal/mcpRuntime.js +index 06370fd..baa945b 100644 +--- a/dist/ai/internal/mcpRuntime.js ++++ b/dist/ai/internal/mcpRuntime.js +@@ -336,6 +336,7 @@ export const make = /*#__PURE__*/Effect.fnUntraced(function* (protocols) { + }, + effectLogLevel: (clientId, headers, fallback) => stateful?.effectLogLevel(clientId, headers, fallback) ?? fallback, + disconnect: clientId => stateful?.disconnect(clientId), ++ terminateSession: sessionId => stateful?.terminateSession(sessionId) ?? false, + deliveryClientIds: () => stateful?.initializedClientIds() ?? [], + canDeliver: (clientId, headers, notification, fallback) => stateful?.canDeliver(clientId, headers, notification, fallback) ?? true, + installHandlers: Effect.fnUntraced(function* (options) { +diff --git a/dist/ai/internal/mcpStatefulRuntime.js b/dist/ai/internal/mcpStatefulRuntime.js +index 9471bdf..4558603 100644 +--- a/dist/ai/internal/mcpStatefulRuntime.js ++++ b/dist/ai/internal/mcpStatefulRuntime.js +@@ -46,6 +46,7 @@ export const make = () => { + }, + resolve: resolveSession, + resolveSessionId: sessionId => bySessionId.get(sessionId), ++ terminateSession: sessionId => bySessionId.delete(sessionId), + setLogLevel: (level, clientId, headers) => Effect.sync(() => { + const session = resolveSession(clientId, headers); + if (session !== undefined) { +diff --git a/dist/http/HttpClientResponse.js b/dist/http/HttpClientResponse.js +index 42fba67..2b4981b 100644 +--- a/dist/http/HttpClientResponse.js ++++ b/dist/http/HttpClientResponse.js +@@ -195,7 +195,7 @@ class WebHttpClientResponse extends Inspectable.Class { if (this.cachedCookies) { return this.cachedCookies; } @@ -51,19 +66,19 @@ index 59a2b12..ef54250 100644 } get remoteAddress() { return Option.none(); -diff --git a/dist/unstable/rpc/RpcClient.d.ts b/dist/unstable/rpc/RpcClient.d.ts -index 1a471aa..7233784 100644 ---- a/dist/unstable/rpc/RpcClient.d.ts -+++ b/dist/unstable/rpc/RpcClient.d.ts -@@ -2,6 +2,7 @@ import * as Cause from "../../Cause.ts"; - import * as Context from "../../Context.ts"; - import type * as Duration from "../../Duration.ts"; - import * as Effect from "../../Effect.ts"; -+import * as Exit from "../../Exit.ts"; - import * as Layer from "../../Layer.ts"; - import * as Queue from "../../Queue.ts"; - import * as Schedule from "../../Schedule.ts"; -@@ -280,9 +281,40 @@ export declare const layerProtocolWorker: (options: { +diff --git a/dist/rpc/RpcClient.d.ts b/dist/rpc/RpcClient.d.ts +index c498ff7..7680fec 100644 +--- a/dist/rpc/RpcClient.d.ts ++++ b/dist/rpc/RpcClient.d.ts +@@ -2,6 +2,7 @@ import * as Cause from "../Cause.ts"; + import * as Context from "../Context.ts"; + import type * as Duration from "../Duration.ts"; + import * as Effect from "../Effect.ts"; ++import * as Exit from "../Exit.ts"; + import * as Headers from "../http/Headers.ts"; + import * as HttpClient from "../http/HttpClient.ts"; + import * as Layer from "../Layer.ts"; +@@ -299,9 +300,40 @@ export declare const layerProtocolWorker: (options: { readonly targetUtilization?: number | undefined; readonly timeToLive: Duration.Input; }) => Layer.Layer; @@ -104,11 +119,11 @@ index 1a471aa..7233784 100644 }>; /** * Represents optional client protocol hooks that run when a transport connects -diff --git a/dist/unstable/rpc/RpcClient.js b/dist/unstable/rpc/RpcClient.js -index c586c60..49886d8 100644 ---- a/dist/unstable/rpc/RpcClient.js -+++ b/dist/unstable/rpc/RpcClient.js -@@ -49,6 +49,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro +diff --git a/dist/rpc/RpcClient.js b/dist/rpc/RpcClient.js +index 8af2e2e..d657cf2 100644 +--- a/dist/rpc/RpcClient.js ++++ b/dist/rpc/RpcClient.js +@@ -50,6 +50,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro const services = yield* Effect.context(); const scope = Context.get(services, Scope.Scope); const entries = new Map(); @@ -116,7 +131,7 @@ index c586c60..49886d8 100644 let isShutdown = false; yield* Scope.addFinalizer(scope, Effect.withFiber(parent => { isShutdown = true; -@@ -86,6 +87,11 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro +@@ -87,6 +88,11 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro return Effect.interrupt; } const id = generateRequestId(); @@ -128,7 +143,7 @@ index c586c60..49886d8 100644 const send = middleware(message => options.onFromClient({ message, context, -@@ -103,7 +109,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro +@@ -104,7 +110,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro headers: Headers.merge(parentFiber.getRef(CurrentHeaders), headers) }); if (discard) { @@ -137,7 +152,7 @@ index c586c60..49886d8 100644 } let fiber; return Effect.onInterrupt(Effect.callback(resume => { -@@ -121,7 +127,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro +@@ -122,7 +128,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro } }; entries.set(id, entry); @@ -146,7 +161,7 @@ index c586c60..49886d8 100644 captureStackTrace: false }) : identity, Effect.runForkWith(parentFiber.context)); fiber.addObserver(exit => { -@@ -130,8 +136,9 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro +@@ -131,8 +137,9 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro } }); }), interruptors => { @@ -157,7 +172,7 @@ index c586c60..49886d8 100644 }); }); const onStreamRequest = Effect.fnUntraced(function* (rpc, middleware, payload, headers, streamBufferSize, context) { -@@ -143,11 +150,18 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro +@@ -144,22 +151,29 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro }); const fiber = Fiber.getCurrent(); const id = generateRequestId(); @@ -167,18 +182,18 @@ index c586c60..49886d8 100644 + stream: true + }) : Effect.void; const scope = Context.getUnsafe(fiber.context, Scope.Scope); + const queue = yield* Queue.bounded(streamBufferSize); yield* Scope.addFinalizerExit(scope, exit => { + Queue.shutdownUnsafe(queue); - if (!entries.has(id)) return Effect.void; + const entry = entries.get(id); + if (!entry) return Effect.void; entries.delete(id); - return sendInterrupt(id, Exit.isFailure(exit) ? Array.from(Cause.interruptors(exit.cause)) : [], context); -+ // Shutting down releases a socket reader blocked offering into this full buffer. -+ return Queue.shutdown(entry.queue).pipe(Effect.andThen(sendInterrupt(id, Exit.isFailure(exit) ? Array.from(Cause.interruptors(exit.cause)) : [], context, entry.rpc._tag))); ++ return sendInterrupt(id, Exit.isFailure(exit) ? Array.from(Cause.interruptors(exit.cause)) : [], context, entry.rpc._tag); }); - const queue = yield* Queue.bounded(streamBufferSize); entries.set(id, { -@@ -155,9 +169,10 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro + _tag: "Queue", rpc, queue, scope, @@ -191,16 +206,16 @@ index c586c60..49886d8 100644 message, context, discard: false -@@ -172,7 +187,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro +@@ -174,7 +188,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro sampled: span.sampled } : {}), headers: Headers.merge(fiber.getRef(CurrentHeaders), headers) - }).pipe(span ? Effect.withParentSpan(span, { + }))).pipe(span ? Effect.withParentSpan(span, { captureStackTrace: false - }) : identity, Effect.catchCause(error => Queue.failCause(queue, error)), Effect.interruptible, Effect.forkIn(scope, { + }) : identity, Effect.onError(cause => Queue.failCause(queue, cause)), Effect.interruptible, Effect.forkIn(scope, { startImmediately: true -@@ -202,7 +217,10 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro +@@ -204,7 +218,10 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro }); }; }; @@ -212,7 +227,7 @@ index c586c60..49886d8 100644 const parentFiber = Fiber.getCurrent(); const fiber = options.onFromClient({ message: { -@@ -216,7 +234,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro +@@ -218,7 +235,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro fiber.addObserver(() => { resume(Effect.void); }); @@ -221,7 +236,7 @@ index c586c60..49886d8 100644 const write = message => { switch (message._tag) { case "Chunk": -@@ -224,7 +242,13 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro +@@ -226,7 +243,13 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro const requestId = message.requestId; const entry = entries.get(requestId); if (!entry || entry._tag !== "Queue") return Effect.void; @@ -236,7 +251,7 @@ index c586c60..49886d8 100644 message: { _tag: "Ack", requestId: message.requestId -@@ -239,11 +263,18 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro +@@ -241,11 +264,18 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro const entry = entries.get(requestId); if (!entry) return Effect.void; entries.delete(requestId); @@ -258,7 +273,7 @@ index c586c60..49886d8 100644 } case "Defect": { -@@ -598,7 +629,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun +@@ -613,7 +643,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun // `parser` is replaced on every connect, and a stateful serialization // encodes against the connection it is writing to, so the ping is encoded // when it is sent rather than once up front. @@ -267,7 +282,7 @@ index c586c60..49886d8 100644 let currentError; const broadcast = response => Effect.forEach(clientIds, clientId => writeResponse(clientId, response)); const broadcastError = error => { -@@ -618,8 +649,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun +@@ -633,8 +663,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun body: () => { const response = responses[i++]; if (response._tag === "Pong") { @@ -277,14 +292,13 @@ index c586c60..49886d8 100644 } if (Object.hasOwn(response, "requestId")) { const requestId = response.requestId; -@@ -664,12 +694,12 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun +@@ -679,11 +708,11 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun yield* processData(frames[i]); } } - }).pipe(Effect.scoped, Effect.raceFirst(Effect.flatMap(pinger.timeout, () => Effect.fail(new Socket.SocketError({ + }).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({ - reason: new Socket.SocketOpenError({ - kind: "Timeout", + reason: new Socket.SocketReadError({ cause: new Error("ping timeout") }) - }))))); @@ -292,7 +306,7 @@ index c586c60..49886d8 100644 }).pipe(Option.isSome(hooks) ? Effect.ensuring(hooks.value.onDisconnect) : identity, Effect.tapCause(cause => { const error = Cause.findError(cause); const hasError = Result.isSuccess(error); -@@ -710,20 +740,28 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun +@@ -724,20 +753,28 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun }; })); const defaultRetryPolicy = /*#__PURE__*/Schedule.min([/*#__PURE__*/Schedule.exponential(500, 1.5), /*#__PURE__*/Schedule.spaced(5000)]); @@ -326,7 +340,7 @@ index c586c60..49886d8 100644 }).pipe(Effect.delay("5 seconds"), Effect.ignore, Effect.forever, Effect.interruptible, Effect.forkScoped); return { timeout: latch.await, -@@ -874,6 +912,11 @@ export const makeProtocolWorker = options => Protocol.make(Effect.fnUntraced(fun +@@ -891,6 +928,11 @@ export const makeProtocolWorker = options => Protocol.make(Effect.fnUntraced(fun * @since 4.0.0 */ export const layerProtocolWorker = /*#__PURE__*/flow(makeProtocolWorker, /*#__PURE__*/Layer.effect(Protocol)); @@ -338,11 +352,11 @@ index c586c60..49886d8 100644 /** * Represents optional client protocol hooks that run when a transport connects * and disconnects. -diff --git a/src/unstable/http/HttpClientResponse.ts b/src/unstable/http/HttpClientResponse.ts -index cbf047f..c7d5cc2 100644 ---- a/src/unstable/http/HttpClientResponse.ts -+++ b/src/unstable/http/HttpClientResponse.ts -@@ -321,7 +321,7 @@ class WebHttpClientResponse extends Inspectable.Class implements HttpClientRespo +diff --git a/src/http/HttpClientResponse.ts b/src/http/HttpClientResponse.ts +index c037015..a8b0d8b 100644 +--- a/src/http/HttpClientResponse.ts ++++ b/src/http/HttpClientResponse.ts +@@ -341,7 +341,7 @@ class WebHttpClientResponse extends Inspectable.Class implements HttpClientRespo if (this.cachedCookies) { return this.cachedCookies } diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2c4421d93ead..31936d2e9b51 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -7,8 +7,8 @@ settings: catalogs: default: '@effect/openapi-generator': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115 + specifier: 4.0.1 + version: 4.0.1 '@effect/tsgo': specifier: 0.41.0 version: 0.41.0 @@ -63,11 +63,11 @@ overrides: '@clerk/expo': 4.6.8 '@clerk/react': 6.16.1 '@clerk/shared': 4.33.0 - '@effect/atom-react': 4.0.0-rc.115 - '@effect/platform-node': 4.0.0-rc.115 - '@effect/platform-node-shared': 4.0.0-rc.115 - '@effect/sql-pg': 4.0.0-rc.115 - '@effect/vitest': 4.0.0-rc.115 + '@effect/atom-react': 4.0.1 + '@effect/platform-node': 4.0.1 + '@effect/platform-node-shared': 4.0.1 + '@effect/sql-pg': 4.0.1 + '@effect/vitest': 4.0.1 '@effect/vitest>vitest': '-' '@expo/dom-webview': 58.0.2 '@expo/metro-config': 58.0.6 @@ -80,30 +80,33 @@ overrides: '@tailwindcss/oxide': 4.3.3 '@tailwindcss/vite': 4.3.3 '@types/node': 24.12.4 - effect: 4.0.0-rc.115 - '@opencode/protocol>effect': 4.0.0-rc.115 - '@opencode/schema>effect': 4.0.0-rc.115 + effect: 4.0.1 + '@opencode/protocol>effect': 4.0.1 + '@opencode/schema>effect': 4.0.1 node-abi: 4.33.0 lightningcss: 1.33.0 tailwindcss: 4.3.3 vite: npm:@voidzero-dev/vite-plus-core@1.0.0 yaml: ^2.9.0 -packageExtensionsChecksum: sha256-34mvKz5PLlrn2Tt9jUJC1SbK5hRE+oxwqyC1J6r09oE= +packageExtensionsChecksum: sha256-5eCaJsEbFd91t/FlV40i8+LdoqvpruFaYC829uwEE7s= patchedDependencies: '@clerk/expo@4.6.8': b8b22ab733de5bea846ad9e88046c10582352fe9ad86f314f368b2a823f0f281 - '@effect/vitest@4.0.0-rc.115': 172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902 + '@effect/vitest@4.0.1': 174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad '@expo/metro-config@58.0.6': 90fa980e8b6480631fb2fbb04559834e3c612db40c550cd828f11be297d8d760 '@ff-labs/fff-node@0.9.4': c4e3cc2420ceb9dc650f9d189e9c24baf7e83f342998bacda5f459a4ce7927a8 '@legendapp/list@3.3.5': 680cc6a5c5b4a4032e467e7b3fde22f89a84c0ee2e6eac6fda737d6277cc0806 + '@opencode/client@2.0.23': f725d6e6d9af0d56dc6ed71b863518fbfc751af1773cff2311209d2c404cf4cd + '@opencode/protocol@2.0.23': 17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685 + '@opencode/schema@2.0.23': 650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59 '@pierre/diffs@1.3.0-beta.10': 0ccee155b93b63d810e2c1a40c1fd676fb6fbcfa72cf6430dcedf1a3ae475ab4 '@react-native-ai/apple@0.12.0': 2d09870c2848d185cb05b53ed823a46e12dba519324d8dd8e584e28731990f9d '@react-native-menu/menu@2.0.0': a4866ecfcd44f318043de839d20110c17e14909004900f002ffe12050376f2ba '@react-navigation/native-stack@7.17.6': e667c3cef8c78bb9ff4882ee5bd23a432247b843060a9499eb5f07e9e2295552 - alchemy@2.0.0-beta.79: 2ad1ff594ebadb1d8653c94b9ac2762703788acdbd8432c22273e6c19da1f7a6 + alchemy@2.0.0-beta.80: bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd dbus-next@0.10.2: cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4 - effect@4.0.0-rc.115: e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec + effect@4.0.1: 728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb expo-audio@58.0.4: c20cb927d6848c53e7bf6ec14fe12f19daae9210165d2dbaf4e0f97ce31e8742 expo-blur@58.0.3: d0311b0c0b05bd94393bd9a84653cb42503d5f3c8a19eb2627c34ace08bedf18 expo-glass-effect@58.0.3: f750041c45ab838a3530451dc7b50d6640a79141037a1b0499c5e3412a860c57 @@ -151,8 +154,8 @@ importers: specifier: 0.13.0 version: 0.13.0 '@effect/platform-node': - specifier: 4.0.0-rc.115 - 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) + specifier: 4.0.1 + version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) '@napi-rs/keyring': specifier: ^1.3.0 version: 1.3.0 @@ -175,8 +178,8 @@ importers: specifier: 0.10.2 version: 0.10.2(patch_hash=cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4) effect: - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + specifier: 4.0.1 + version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) electron: specifier: 44.4.2 version: 44.4.2 @@ -197,8 +200,8 @@ importers: version: 0.1.44(react@19.2.6) devDependencies: '@effect/vitest': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 4.0.1 + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -216,7 +219,7 @@ importers: version: 4.3.3 vite-plus: specifier: 'catalog:' - 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) + 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) apps/marketing: dependencies: @@ -246,8 +249,8 @@ importers: specifier: 4.6.8 version: 4.6.8(patch_hash=b8b22ab733de5bea846ad9e88046c10582352fe9ad86f314f368b2a823f0f281)(9fda653cb5598772915b4a39a7aee91d) '@effect/atom-react': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(react@19.3.0)(scheduler@0.27.0) + specifier: 4.0.1 + version: 4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(react@19.3.0)(scheduler@0.28.0) '@expo-google-fonts/dm-sans': specifier: ^0.4.2 version: 0.4.2 @@ -324,8 +327,8 @@ importers: specifier: 8.0.3 version: 8.0.3 effect: - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + specifier: 4.0.1 + version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) expo: specifier: 58.0.2 version: 58.0.2(56fc8ddb8129740412739f0f0a6ee025) @@ -490,8 +493,8 @@ importers: 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) devDependencies: '@effect/vitest': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 4.0.1 + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1(vitest@5.0.1))(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(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)))(yaml@2.9.0) '@pierre/trees': specifier: 1.0.0-beta.4 version: 1.0.0-beta.4(react-dom@19.3.0(react@19.3.0))(react@19.3.0) @@ -520,11 +523,11 @@ importers: specifier: 1.0.31 version: 1.0.31 '@effect/platform-node': - specifier: 4.0.0-rc.115 - 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) + specifier: 4.0.1 + version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) '@effect/platform-node-shared': - specifier: 4.0.0-rc.115 - 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) + specifier: 4.0.1 + version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(utf-8-validate@6.0.6) '@ff-labs/fff-node': specifier: 0.9.4 version: 0.9.4(patch_hash=c4e3cc2420ceb9dc650f9d189e9c24baf7e83f342998bacda5f459a4ce7927a8) @@ -535,20 +538,20 @@ importers: specifier: ^1.3.15 version: 1.15.13 '@opencode/client': - specifier: 2.0.18 - version: 2.0.18(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 2.0.23 + version: 2.0.23(patch_hash=f725d6e6d9af0d56dc6ed71b863518fbfc751af1773cff2311209d2c404cf4cd)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) '@opencode/protocol': - specifier: 2.0.18 - version: 2.0.18 + specifier: 2.0.23 + version: 2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685) '@opencode/schema': - specifier: 2.0.18 - version: 2.0.18 + specifier: 2.0.23 + version: 2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59) diff: specifier: 8.0.3 version: 8.0.3 effect: - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + specifier: 4.0.1 + version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) jose: specifier: 'catalog:' version: 6.2.2 @@ -572,8 +575,8 @@ importers: version: 3.4.0 devDependencies: '@effect/vitest': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 4.0.1 + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) '@t3tools/contracts': specifier: workspace:* version: link:../../packages/contracts @@ -606,7 +609,7 @@ importers: version: link:../../packages/effect-codex-app-server vite-plus: specifier: 'catalog:' - 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) + 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) apps/web: dependencies: @@ -635,8 +638,8 @@ importers: specifier: ^3.2.2 version: 3.2.2(react@19.2.6) '@effect/atom-react': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))(react@19.2.6)(scheduler@0.27.0) + specifier: 4.0.1 + version: 4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(react@19.2.6)(scheduler@0.28.0) '@formkit/auto-animate': specifier: ^0.9.0 version: 0.9.0 @@ -698,8 +701,8 @@ importers: specifier: ^3.4.16 version: 3.4.16 effect: - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + specifier: 4.0.1 + version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) hast-util-to-html: specifier: ^9.0.5 version: 9.0.5 @@ -762,11 +765,11 @@ importers: version: 5.0.14(@types/react@19.3.0)(react@19.2.6)(use-sync-external-store@1.6.0(react@19.2.6)) devDependencies: '@effect/platform-node': - specifier: 4.0.0-rc.115 - 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) + specifier: 4.0.1 + version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) '@effect/vitest': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 4.0.1 + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) '@rolldown/plugin-babel': specifier: ^0.2.0 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) @@ -826,7 +829,7 @@ importers: 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)' vite-plus: specifier: 'catalog:' - 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) + 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) infra/relay: dependencies: @@ -834,8 +837,8 @@ importers: specifier: 3.18.1 version: 3.18.1(react-dom@19.3.0(react@19.3.0))(react@19.2.6) '@effect/sql-pg': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 4.0.1 + version: 4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) '@noble/curves': specifier: 'catalog:' version: 1.9.1 @@ -852,24 +855,24 @@ importers: specifier: workspace:* version: link:../../packages/shared alchemy: - specifier: 2.0.0-beta.79 - 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)) + specifier: 2.0.0-beta.80 + version: 2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(bc2c8272d4f80ff5e255def168c10b3c) drizzle-orm: specifier: 1.0.0-rc.5-ab785fc - version: 1.0.0-rc.5-ab785fc(77d4691b21c77897491506c37fa7b5ad) + version: 1.0.0-rc.5-ab785fc(8fb3f5e892a2b61c45030ec806e1385e) effect: - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + specifier: 4.0.1 + version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) devDependencies: '@cloudflare/workers-types': specifier: ^4.20260601.1 version: 4.20260604.1 '@effect/platform-node': - specifier: 4.0.0-rc.115 - 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) + specifier: 4.0.1 + version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) '@effect/vitest': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 4.0.1 + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -884,26 +887,26 @@ importers: 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)' vite-plus: specifier: 'catalog:' - 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) + 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) oxlint-plugin-t3code: dependencies: '@effect/platform-node': - specifier: 4.0.0-rc.115 - 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) + specifier: 4.0.1 + version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) '@oxlint/plugins': specifier: ^1.63.0 version: 1.68.0 effect: - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + specifier: 4.0.1 + version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) devDependencies: '@effect/vitest': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 4.0.1 + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) vite-plus: specifier: 'catalog:' - 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) + 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) packages/client-runtime: dependencies: @@ -914,8 +917,8 @@ importers: specifier: workspace:* version: link:../shared effect: - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + specifier: 4.0.1 + version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) mdast-util-directive: specifier: ^3.1.0 version: 3.1.0 @@ -936,8 +939,8 @@ importers: version: 11.0.5 devDependencies: '@effect/vitest': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 4.0.1 + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) '@types/three': specifier: 0.180.0 version: 0.180.0 @@ -946,64 +949,64 @@ importers: version: 2.0.2 vite-plus: specifier: 'catalog:' - 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) + 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) packages/contracts: dependencies: effect: - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + specifier: 4.0.1 + version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) devDependencies: '@effect/vitest': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 4.0.1 + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) vite-plus: specifier: 'catalog:' - 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) + 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) packages/effect-acp: dependencies: effect: - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + specifier: 4.0.1 + version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) devDependencies: '@effect/openapi-generator': specifier: 'catalog:' - 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) + version: 4.0.1(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(encoding@0.1.13) '@effect/platform-node': - specifier: 4.0.0-rc.115 - 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) + specifier: 4.0.1 + version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) '@effect/vitest': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 4.0.1 + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) '@types/node': specifier: 24.12.4 version: 24.12.4 vite-plus: specifier: 'catalog:' - 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) + 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) packages/effect-codex-app-server: dependencies: effect: - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + specifier: 4.0.1 + version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) devDependencies: '@effect/openapi-generator': specifier: 'catalog:' - 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) + version: 4.0.1(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(encoding@0.1.13) '@effect/platform-node': - specifier: 4.0.0-rc.115 - 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) + specifier: 4.0.1 + version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) '@effect/vitest': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 4.0.1 + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) '@types/node': specifier: 24.12.4 version: 24.12.4 vite-plus: specifier: 'catalog:' - 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) + 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) packages/shared: dependencies: @@ -1017,8 +1020,8 @@ importers: specifier: workspace:* version: link:../contracts effect: - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + specifier: 4.0.1 + version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) jose: specifier: 'catalog:' version: 6.2.2 @@ -1027,17 +1030,17 @@ importers: version: 2.9.0 devDependencies: '@effect/platform-node': - specifier: 4.0.0-rc.115 - 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) + specifier: 4.0.1 + version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) '@effect/vitest': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 4.0.1 + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) '@types/node': specifier: 24.12.4 version: 24.12.4 vite-plus: specifier: 'catalog:' - 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) + 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) packages/ssh: dependencies: @@ -1048,21 +1051,21 @@ importers: specifier: workspace:* version: link:../shared effect: - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + specifier: 4.0.1 + version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) devDependencies: '@effect/platform-node': - specifier: 4.0.0-rc.115 - 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) + specifier: 4.0.1 + version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) '@effect/vitest': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 4.0.1 + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) '@types/node': specifier: 24.12.4 version: 24.12.4 vite-plus: specifier: 'catalog:' - 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) + 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) packages/tailscale: dependencies: @@ -1070,24 +1073,24 @@ importers: specifier: workspace:* version: link:../shared effect: - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + specifier: 4.0.1 + version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) devDependencies: '@effect/vitest': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 4.0.1 + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) '@types/node': specifier: 24.12.4 version: 24.12.4 vite-plus: specifier: 'catalog:' - 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) + 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) scripts: dependencies: '@effect/platform-node': - specifier: 4.0.0-rc.115 - 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) + specifier: 4.0.1 + version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) '@electron/asar': specifier: ^4.3.0 version: 4.3.0 @@ -1101,8 +1104,8 @@ importers: specifier: workspace:* version: link:../packages/tailscale effect: - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + specifier: 4.0.1 + version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) pngjs: specifier: 7.0.0 version: 7.0.0 @@ -1111,8 +1114,8 @@ importers: version: 0.35.4(@types/node@24.12.4) devDependencies: '@effect/vitest': - specifier: 4.0.0-rc.115 - version: 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + specifier: 4.0.1 + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) '@types/pngjs': specifier: 6.0.5 version: 6.0.5 @@ -1124,7 +1127,7 @@ importers: version: typescript@6.0.3 vite-plus: specifier: 'catalog:' - 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) + 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) packages: @@ -1147,13 +1150,13 @@ packages: resolution: {integrity: sha512-XeZW1CcDF2GMbH4wejW6xBRI2QCOgnkVYUnxoeDadB1mf85riL2bMUeDoh+6gJ/r4mjNfzUPW8OjLjvwTP0u1Q==} engines: {node: '>=18'} - '@alchemy.run/cloudflare-runtime@2.0.0-beta.79': - resolution: {integrity: sha512-v/kmQ4s9B2PcHo4NSxm76OcmaQsX2TkQoy2IzB4FBu/4kJ6gkEBYKKLz4FK6x4ewOAtwI7kQwZ8OmzAmft3xoQ==} + '@alchemy.run/cloudflare-runtime@2.0.0-beta.80': + resolution: {integrity: sha512-vrMDVAQ+LlzFGkgfIbi/65iwskdSxxWYhJX03sFL72mvkGxvb8RQSKrbxLGHhMz0QSZh796dOff1z9zOwxsIbA==} peerDependencies: - '@distilled.cloud/cloudflare': 1.0.0-rc.12 - '@effect/platform-bun': '>=4.0.0-rc.115 || >=4.0.0' - '@effect/platform-node': 4.0.0-rc.115 - effect: 4.0.0-rc.115 + '@distilled.cloud/cloudflare': 1.0.0-rc.13 + '@effect/platform-bun': ^4.0.0 + '@effect/platform-node': 4.0.1 + effect: 4.0.1 rolldown: 1.2.5 vite: ^7.0.0 || ^8.0.0 peerDependenciesMeta: @@ -1166,16 +1169,16 @@ packages: vite: optional: true - '@alchemy.run/floci@2.0.0-beta.79': - resolution: {integrity: sha512-Wd7DiDUhEep3APW3pix7gEHG0zZwzmE3y+twv5oiFKX8rBLhKOFCRluZ3xyx1ivIw1VpTFyE2PGLvJWwscX/Vw==} + '@alchemy.run/floci@2.0.0-beta.80': + resolution: {integrity: sha512-gtUXFitVY9pSQQYCDtSVyjfd5YOKY3Wleg3WCG5yWno7/l7xBo4kfOMbM63tzWnmka9LewVSITbMfwnC4D/73A==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 - '@alchemy.run/node-utils@2.0.0-beta.79': - resolution: {integrity: sha512-2Qi3L+GBcNayAaOCo2dBTUTBszTOV2hFgX6rZkl73p//D8XFz/h6bb/Ka4NxBe+bfV7rp9JSZC6ZBBg2d+CJZw==} + '@alchemy.run/node-utils@2.0.0-beta.80': + resolution: {integrity: sha512-uOhVDQZTjwh1AU4mrk0wB5rQaziTwSrVMfqwFP8wALfU//nveu4goOWZimHtqytXiybENh+iEbALH25EFAkc7A==} - '@alchemy.run/sigil@0.0.0-alpha.11': - resolution: {integrity: sha512-JzaCBeRu9kY0qWC8JKkrierstImkrK77dl+7l0RvCTR+7uhOJECL2VxmjhJ1blea+mmbYUVob8OXOH5r8Mqfpw==} + '@alchemy.run/sigil@0.1.0-alpha.1': + resolution: {integrity: sha512-RtHELG2w+GluVewRsuKm66idtPzC+4STptMr/61X1Vy5uBkDzcCzjzV8G6jUa4iBv6Il0hHV7UL6wvv//9nD/Q==} engines: {node: '>=22'} peerDependencies: '@types/react': '>=19.2.0' @@ -2026,32 +2029,32 @@ packages: workerd: optional: true - '@cloudflare/workerd-darwin-64@1.20260901.1': - resolution: {integrity: sha512-5nJCpnclV6cc5v3aZOewu+djFvNvm9A/owQ+WJ2G1450roeFHfZGsyW7vVjSRWx3v2iykfkviyJfGm9ApeFDGg==} + '@cloudflare/workerd-darwin-64@1.20260918.1': + resolution: {integrity: sha512-H5Em6Wd0jjxaloYh2rp+WLBl2eWbkk7nSP1svGt6K1RSv/rNVqmKdpjZPJTBSavOmeYGa88qvtOWwS+33OHTqQ==} engines: {node: '>=16'} cpu: [x64] os: [darwin] - '@cloudflare/workerd-darwin-arm64@1.20260901.1': - resolution: {integrity: sha512-nLwfUVoYmFNW1Ntp0BfZ2K1UWIll4zTTYP8Ni7NQnyrNkTnFeU/prrllWtnw7OG8Z/jyaEAAFaDFEBobrNTU3A==} + '@cloudflare/workerd-darwin-arm64@1.20260918.1': + resolution: {integrity: sha512-CR9JRZEQo93fNgBVF4Df2H2/VYO4n7rxSseSwCVv3bJQEb0huADUSCj2FK4ipxar8ToOEB4wawyw0vJo5U/rQQ==} engines: {node: '>=16'} cpu: [arm64] os: [darwin] - '@cloudflare/workerd-linux-64@1.20260901.1': - resolution: {integrity: sha512-wzCO0cMrFLRRs6bG5KXDpLSe70GpzpsxPjxwBzQngQOfyI2cxs5i4Rb5rDB0GG8E19feZEhjGXcHgY9+5Lq8YA==} + '@cloudflare/workerd-linux-64@1.20260918.1': + resolution: {integrity: sha512-UQ2nnY3qpXLzQ80frmWO+8HvtqyWaQILe8QYZwpemdjT+sqwCz4Dz+0/WVkFco0v/04kIIqikVeLTY/7gEhmkw==} engines: {node: '>=16'} cpu: [x64] os: [linux] - '@cloudflare/workerd-linux-arm64@1.20260901.1': - resolution: {integrity: sha512-aBk82+sSphMa6uR6h/CFN/GXmELJ2YOgQKYSsOsCTvbVLvHjclmyoEdLTY5FEImvo1ch1uXpGQgTjI8/suHGEg==} + '@cloudflare/workerd-linux-arm64@1.20260918.1': + resolution: {integrity: sha512-4rib51MaLNWweUIUxM/Xj558M5QmyZoBSf0ffv+lYah5VTrvwnez3XGxX72pElnBKHROvAPOi5msQ5Ts8JSI0A==} engines: {node: '>=16'} cpu: [arm64] os: [linux] - '@cloudflare/workerd-windows-64@1.20260901.1': - resolution: {integrity: sha512-3oJnCV7mWwzqmqz+3E+KYLbw1FylH+8n+p84srWv9MEsY9II1QuKiRKVf3CQTIdTDb6rkr5fCuRtkmLgRpAsNg==} + '@cloudflare/workerd-windows-64@1.20260918.1': + resolution: {integrity: sha512-sATrMx5ShYYgmgUGrcTmvsFSJBFuN95NEkX3xwb1qk8w1A6h5N11sea7yN2IeibwPyPmXKjWNjXOno0hZAM71Q==} engines: {node: '>=16'} cpu: [x64] os: [win32] @@ -2059,8 +2062,8 @@ packages: '@cloudflare/workers-types@4.20260604.1': resolution: {integrity: sha512-nVTydUwPcz9WfwZ/6xAmqs8uUVeGbDVmyPvSYrYAo4CQTyi0122SoE1Suw8RvqnN60XXHPChAjDqSIjnr/mbmg==} - '@cloudflare/workers-types@5.20260907.1': - resolution: {integrity: sha512-HYI7eFb/MOcNzvbUW7ZwHVZL5YFXb4r6yHN3vx8gJCqde7yhn3bhuPKiQPw90UtGWWp7uOI+Que3kf8Svjn5cw==} + '@cloudflare/workers-types@5.20261004.1': + resolution: {integrity: sha512-K9D4/Y6bSIDNYFzjqzFMNoWK99pLgfgFxqSa76kfW++3VCkTSzJbzsQRffir366G3kmNyjoigC6ekp7DxIkxkw==} '@connectrpc/connect-node@1.7.0': resolution: {integrity: sha512-6vaPIkG/NyhxlYgytLoR9KYbPhczEboFB2OYWkA9qvUz1K7efXfeGrlRxoLtpa+r8VxyIOw73w5ktNe743nD+A==} @@ -2208,60 +2211,85 @@ packages: '@dimforge/rapier3d-compat@0.12.0': resolution: {integrity: sha512-uekIGetywIgopfD97oDL5PfeezkFpNhwlzlaEYNOA0N6ghdsOvh/HYjSMek5Q2O1PYvRSDFcqFVJl4r4ZBwOow==} - '@distilled.cloud/aws@1.0.0-rc.12': - resolution: {integrity: sha512-L4TTEwMKB1ymXbYUqvYeoy5UWgmJtqQSzry2qWtAvD2ccwVGy0F7cFViEIYQk7boF4ZIP6SfhAls4+y1fVIi/g==} + '@distilled.cloud/acme@1.0.0-rc.13': + resolution: {integrity: sha512-3rmzH125jQxk0zpCvXGNEybSaqpAolyCX+8LWDDrXf+wIKs67GflkJyQLjOOh0lKARe29hdUZGgqEbbvpp0LNA==} + peerDependencies: + effect: 4.0.1 + + '@distilled.cloud/aws@1.0.0-rc.13': + resolution: {integrity: sha512-6ZGcp0LkniB0I2l8Gr7vKRQgTZTch0/07iuvuMZv9Nu+rWwNuZG9VHTUdlIoarWgCHFUNN8yvSYBGOjaeN99tQ==} + peerDependencies: + effect: 4.0.1 + + '@distilled.cloud/axiom@1.0.0-rc.13': + resolution: {integrity: sha512-aRoJtvfXgWi5dtfjuJvDwnArRKvv2MPYHCxYeZcxZbqe62IaQA5yu/khft7TJvxeDyJoSDnVXZu3RyJjNmBA4g==} + peerDependencies: + effect: 4.0.1 + + '@distilled.cloud/cloudflare@1.0.0-rc.13': + resolution: {integrity: sha512-Py5FoA6azyYExDb91VaeC+9x+ravOBSRhXeUmpcQjCtgqmOdiXgc2YZGMMPI68DF+kMuHRVIrR+2uRZNDOhYjw==} + peerDependencies: + effect: 4.0.1 + + '@distilled.cloud/core@1.0.0-rc.13': + resolution: {integrity: sha512-RYyrxW+F5zrTuu1UWV/JoycholBCIkXIusYJdDniDwCdmbjdKGl07KlkkeeY774uBawNGf+pt1ESNGeLVnNHsg==} + peerDependencies: + effect: 4.0.1 + + '@distilled.cloud/doppler@1.0.0-rc.13': + resolution: {integrity: sha512-GgOEUCc4Bx0C+lYNfZ4OqaA3ULvqDUQTJC8gobSh1L0jfrWclv/kRcSr43v4IXyStld+saUvDfDZgeGzlE74OA==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 - '@distilled.cloud/axiom@1.0.0-rc.12': - resolution: {integrity: sha512-W/Kx0qKXh/RF5bJeLNr73BTLV51AFf7zsP8pG9wv2yGrA8sPj4Xu2z72sBG+TeQZIhNwA8Rh4J8GotNqH/380g==} + '@distilled.cloud/fly-io@1.0.0-rc.13': + resolution: {integrity: sha512-Ipp+9nvs+PzqwDPhZq2/BEHNUeWzXKhrvjfT/eBLFHo/QpH0HgdMH8MSQe6/LGszZoormwA6ZrTv2wxaFO7ZiQ==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 - '@distilled.cloud/cloudflare@1.0.0-rc.12': - resolution: {integrity: sha512-ddcL4RnAx6L8gRWCnE5T1W35ZlerI7SlaRLidX726iG/K/aA+bkU0ND39y7ljJ2Eyx3zR03TfpNrgXAXc9E3ng==} + '@distilled.cloud/gcp@1.0.0-rc.13': + resolution: {integrity: sha512-un8jqil9ejt96oN+OfEDUsbrEOpC6Ut4B/73DqKDttvt0Btal1OeBNTTQsftVCpeEzXAvkYKGRIT2AeEu1J5jA==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 - '@distilled.cloud/core@1.0.0-rc.12': - resolution: {integrity: sha512-YeH/uPohGXp2qIctbqVzBtQV+bUs+K5Zdac8qIid7/t6VlwY964SALme5znRdFu/rQgrloXnaej8iTSK9RIQdA==} + '@distilled.cloud/hetzner@1.0.0-rc.13': + resolution: {integrity: sha512-FvqofgMypNkeZbnjGjWMZqvqGd9GxcMzdbi/6JrbcPaHMJG+CCBGt/mAa7mLlEovzwVaGCsBnOXJ6rP5pZjB4Q==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 - '@distilled.cloud/fly-io@1.0.0-rc.12': - resolution: {integrity: sha512-ACgR8Kcx/OP8gAF+PnXYneGGZNUqyiQHrcTB3/lRcv5gQdacXhTAvreV/d0t7jclRo5BBdNxnd5TuuHpr9vDLA==} + '@distilled.cloud/infisical@1.0.0-rc.13': + resolution: {integrity: sha512-Zz8ksA/Y8UUUnWag2UBxB5WYA6wLqOS78ugWJ3cOr9Ot+4bC0NJYWanq35uFInozLXWhun84USU2wOI+mdwQUQ==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 - '@distilled.cloud/hetzner@1.0.0-rc.12': - resolution: {integrity: sha512-G6QzOXTNply63I90IjOtNofs0nHkEd1we/fgXiOjobLZt4+sKjjNBVTAHYHGMDeidbtxw270oF9JakgT11Pzww==} + '@distilled.cloud/neon@1.0.0-rc.13': + resolution: {integrity: sha512-2JvbBFj1kBfkDVPnWcJZ7TJ1cJwWBtScAY7SNJ2qNBUuAK1Wf2kjJXU0/j16eCJ48BQigPArQFWL51wVu/EUQQ==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 - '@distilled.cloud/neon@1.0.0-rc.12': - resolution: {integrity: sha512-jiypsVQCcKa9qNgG9HULXNgXj1E4FFO96Hk9p2JX6CEHca7ePldJSJEOf7roogQGC7lrnldBDCiZrxQLOapD3Q==} + '@distilled.cloud/planetscale@1.0.0-rc.13': + resolution: {integrity: sha512-AM97YGRnDfZdqsxFgQMQ83p7ZlRqxS6/foTTJA5P590UMbbOyrQyFyd33BD0agul8a3ngZde3Oej6v7BN55aWw==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 - '@distilled.cloud/planetscale@1.0.0-rc.12': - resolution: {integrity: sha512-YCTB7soZtqzzgcCAUtrNHjAIsq92XS8cpjnbn3VU+sCQ0LnfnFGeMGJxQ/7qLHtx7Hv4+Ms8XNOs2Q5P81Skig==} + '@distilled.cloud/prisma@1.0.0-rc.13': + resolution: {integrity: sha512-+UmHSp9JV8XQl5t5tTdQBY+dWZ9abrEoc7leYEctA0Ar1TrKZEl2EaeQDoumrg4RyGaacRlirEbxaDFI4SOPtQ==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 - '@distilled.cloud/prisma@1.0.0-rc.12': - resolution: {integrity: sha512-Z1KyUrhxkUt0KdxmNUd29Dtl9NizKv7HFHUuTcA1j6Ar5apUMvlR0f4lKqpliXW8Om3oVS3Wgvm+gDsxul2Ojg==} + '@distilled.cloud/railway@1.0.0-rc.13': + resolution: {integrity: sha512-yXalRS3GFLo3hWM0HXptqudi23NVCM4FRD20db2/Ob9FFcNrMJik1fopv+74HOiV+BuxfkCP609KsEK6LVdB/g==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 - '@distilled.cloud/railway@1.0.0-rc.12': - resolution: {integrity: sha512-KOXSpl7r9qTiOYabJ6wUmM418exzv6YE5BVztaqKSGMuNGP/lAqhZm709/p97Zg6vHpxhJLIgmCq00z7hRM3sQ==} + '@distilled.cloud/stripe@1.0.0-rc.13': + resolution: {integrity: sha512-jLTJ1mg4U39lHZb9EGYBJLR91yB3LSG6fVxix+r1BbqaTovWzE+NuJ7fu9fRSeax9jRAqsGLLxe9IxJbOtwQnQ==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 - '@distilled.cloud/stripe@1.0.0-rc.12': - resolution: {integrity: sha512-4OuZF362yU66G1jDFDgRFFv8ZNRPZ6lw8Wrd5R/isRNHpGgvggLNlKg1QXWEQaTcRzn3RBXczqQCVwQV9IRZDQ==} + '@distilled.cloud/zerossl@1.0.0-rc.13': + resolution: {integrity: sha512-dnxhg39lZjpTdZbHCVYPoUC9E2r8eSHbqiYDhSq2EurVPJcc9YRXlxZR1bP1nniSp078XV8GA+aUECt/Z56aQg==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 '@dnd-kit/accessibility@3.1.1': resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==} @@ -2294,52 +2322,52 @@ packages: '@drizzle-team/brocli@0.12.0': resolution: {integrity: sha512-mlUE+rZ8CatQekLhnaiN91Iemdd+e2gFKooGlnRB3oPTL3VghLfX24dx7HrzMNeC1JrIB/0kpsfyty3f5HNfxQ==} - '@effect/atom-react@4.0.0-rc.115': - resolution: {integrity: sha512-CUPeP6JmiGyFa4t8YSBEydXAL3kCOzs/5st0kanjqj/rqnekydrThx/l2u2HNTkhqSrQi9HLokMd8QTEpWsdDQ==} + '@effect/atom-react@4.0.1': + resolution: {integrity: sha512-V/vcbFCVY2AV7PvjhmOP37Cr4NofrtxBBGW6M1ckBIBxmpi3sMwdPTxj2obPNE4Ho3gkeEQzRC9zEIQ4BDNdQg==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 react: '>=19.0.0 <20.0.0' scheduler: '>=0.25.0 <0.28.0' - '@effect/openapi-generator@4.0.0-rc.115': - resolution: {integrity: sha512-/AkcQ4GdoTTa7CwkybSnKc0U0FhOCA+TAV6E93Ozz4XshgKCC2F75Zik+3EOlTfbENmvAsYNEIVrPfqupoO+ng==} + '@effect/openapi-generator@4.0.1': + resolution: {integrity: sha512-UWlXX1cjP68FDQyc+mlwfh34OpCKlnAREFpWk9DG6fzmw/w/+FvIyadZvS1y7G2b8U2e/khO0f3p5ak0DTC9Ng==} hasBin: true peerDependencies: - '@effect/platform-node': 4.0.0-rc.115 - effect: 4.0.0-rc.115 + '@effect/platform-node': 4.0.1 + effect: 4.0.1 - '@effect/platform-node-shared@4.0.0-rc.115': - resolution: {integrity: sha512-rcBwhDIfb82akJoTv7Vwh8K5x9vC/XfuePS7JjOr+z+dORXzsmKqI1BUQF27ARCN9fTAbDh7I6YvBlWhLjnqNg==} + '@effect/platform-node-shared@4.0.1': + resolution: {integrity: sha512-VanaejudEhKJ4mpmqnEzdncVUhN6sGSO9ZDND54mRxAlZxj+4dYAWjDTYAy9o4tJo9aALeP2U8cVcOFzEdSeLg==} engines: {node: '>=18.0.0'} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 - '@effect/platform-node@4.0.0-rc.115': - resolution: {integrity: sha512-mW03Wjq2FiTL5oi9yOkaKpCyUNBaduKgTk7qMHNELvC21Jq2qOAfdsfH+p+s2zmpB9w2RSa+ApODv4WjO9wQfw==} + '@effect/platform-node@4.0.1': + resolution: {integrity: sha512-FT0Fu5LO0/XP9zBpj0HqrtJNLluK4StNKqf6TSulUsjp8FPBsDVXGJiDuyoN5J2yVMT7tgvhxSwaDcObWVRIaQ==} engines: {node: '>=18.0.0'} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 redis: '>=5.0.0 <7.0.0' - '@effect/sql-d1@4.0.0-rc.115': - resolution: {integrity: sha512-o2JkGjN02NBMxwDtJbwcC4teyMiOApqN085fdVMid4FUC6ixj/WyKyPpe51QGOMQQTTl2BkXccA/IwDIywGXlA==} + '@effect/sql-d1@4.0.0': + resolution: {integrity: sha512-pmkzncZCGD6CLyvc89keEBU85h+gHVCu/LKQnThd+ruYSUbG0R9jYA+lnk3R8Djp0wQW6SbsbmHQuhopIYyo3Q==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 - '@effect/sql-pg@4.0.0-rc.115': - resolution: {integrity: sha512-TLdzqBvGF/HwAKpWTw/5ih7JqVkkakVSb4aD6amzMaavFfFl4vsqqeKjSBijwuzbOMANNN0HqnEt/9fgjTsFEA==} + '@effect/sql-pg@4.0.1': + resolution: {integrity: sha512-X5aqOxHNWqVXL+vyTQZLYDip65lm5rrZHuNkWyyr672iup1tjYAs5Dn9tHR5h1t0blpJ57j8Ng5G5AUQ8teIqA==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 '@effect/sql-sqlite-bun@4.0.0-rc.112': resolution: {integrity: sha512-EqR8pWZo3VzedRvP6qo5HcfqNmFvSa+sQLWQl3oBMx2KY1FCc8NYjep79wYjNkW0qABnffrPUXCMTOncd1A+5g==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 - '@effect/sql-sqlite-do@4.0.0-rc.115': - resolution: {integrity: sha512-7lH9h+w4DW2tI+dus4hEac5mSCy1wgiT+uw/VvjR8YhNDemd3zEFY03NkbD81ipfOpnu2QA1YwgM58ExyPlhug==} + '@effect/sql-sqlite-do@4.0.0': + resolution: {integrity: sha512-XkRZmQOPblzwjmAJ0RWSOiLlTsKkf1EigZsxUNuIuk4uZ/pnufSqvDpXubCwv8iyRTbOLFMmM+EyOEH5V5XqAw==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 '@effect/tsgo-darwin-arm64@0.41.0': resolution: {integrity: sha512-3iEPtcHF72yDjv7T5YpnX+Io1LDLywJb1oGG3Fp/Fth4xmqiT1Vacyz5wnPCfEWGQ6CyrlyCZSSjUxPyJ70+DQ==} @@ -2380,10 +2408,14 @@ packages: resolution: {integrity: sha512-C/U7lFM0AXsfpqRilDOgwu+llBhAo8bcdIlzgbRWf1LWlU4KZKB2UsUvBPL3qPnm+wmbCvQLeTQc4BjV9oJrcg==} hasBin: true - '@effect/vitest@4.0.0-rc.115': - resolution: {integrity: sha512-DJR0hfdr3HNXAkzW8AzfvUz6VmrNFLrKk9tZGDURi33faMyxkc7ZewxELMMZwGpOTGN4mfqYVbX2CXgI+ZJBeQ==} + '@effect/vitest@4.0.1': + resolution: {integrity: sha512-DbY9kf/018zBxRIX7rJwBnPVPzSarnUpcshm0vfYPFiDkSa7AFrXTh2BlDNUbrdrmqcIOBhVZ7GkEtxf8WiQrg==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 + vitest: '*' + peerDependenciesMeta: + vitest: + optional: true '@electric-sql/pglite@0.3.15': resolution: {integrity: sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==} @@ -3552,6 +3584,15 @@ packages: '@neon-rs/load@0.0.4': resolution: {integrity: sha512-kTPhdZyTQxB+2wpiRcFWrDcejc4JI6tkPuS7UZCG4l6Zvc5kU/gGQ/ozvHTh1XR5tS+UlfAfGuPajjzQjCiHCw==} + '@neon/functions@0.11.0': + resolution: {integrity: sha512-xyIEk9aULR2nBTzyTgxljkM8aS+Ppe9oVw/t5mdqYOlY/mLFppHSZHq8hiWVDWy6Ca8oLd3loTtfVz+cZQQjsA==} + engines: {node: '>=20.19.0'} + peerDependencies: + hono: ^4.7.8 + peerDependenciesMeta: + hono: + optional: true + '@noble/curves@1.9.1': resolution: {integrity: sha512-k11yZxZg+t+gWvBbIswW0yoJlu8cHOC7dhunwOzoWH/mXGBiYyR4YY6hAEK/3EUs4UpB8la1RfdRpeGsFHkWsA==} engines: {node: ^14.21.3 || >=16} @@ -3571,9 +3612,6 @@ packages: '@nodable/entities@2.1.1': resolution: {integrity: sha512-Pig3HxDIoMgjdEH8OCf/dkcTmLFjJRjWuq8jSnklu284/TKOPibSRERmOykiwmyXTtv61mP+44f3GMx0tLAyjg==} - '@nodable/entities@3.0.0': - resolution: {integrity: sha512-8L9xFeTYKhm49xfIypoe2W5wV1m/3Z58kT+7kR9A8OyFxcPduI4VmxaUMQyKYrRjUoLLSXv6EKKID5Tvj9cUVw==} - '@nornagon/put@0.0.8': resolution: {integrity: sha512-ugvXJjwF5ldtUpa7D95kruNJ41yFQDEKyF5CW4TgKJnh+W/zmlBzXXeKTyqIgwMFrkePN2JqOBqcF0M0oOunow==} engines: {node: '>=0.3.0'} @@ -3705,10 +3743,10 @@ packages: '@opencode-ai/sdk@1.15.13': resolution: {integrity: sha512-4TwojIoQ8EG6/mVBuUVYZXiFcwNmiiytEnjnvyuvSJjGwFIlw2YIBFxtSVC3FbwwbwHT63teh1RHiQUUC4U5xw==} - '@opencode/client@2.0.18': - resolution: {integrity: sha512-N74FNdXkTTC1Re5T+PNxH6fsVf1tZiV3kESu3UWL/545oAkBRXoiikMmDszuuHZ4AxGwtr9NiQjKrHiMdnLVYQ==} + '@opencode/client@2.0.23': + resolution: {integrity: sha512-tHfYu7sKNxFu2dZ7Pu5vZG4T8GHqU71ZCsXHZ/RoI0LLdG7t2zwePHWR9aNbcSP+jDUGyaQlzr5utC9Uduczvg==} peerDependencies: - effect: 4.0.0-rc.115 + effect: 4.0.1 solid-js: '>=1.9.0' peerDependenciesMeta: effect: @@ -3716,11 +3754,11 @@ packages: solid-js: optional: true - '@opencode/protocol@2.0.18': - resolution: {integrity: sha512-IhzzlCz/hAlFvBLWQ+kDceX0/CkYOrjVyTPwYJYvWwKze5AHzVxxDYxkhCqLJj0hn/wtdNL10nhjVothuHcaBQ==} + '@opencode/protocol@2.0.23': + resolution: {integrity: sha512-acwAvjQgzzBsZ0h2Phvo+P/SurCexqcidPL2AYB6cDDPgOhY7ppeoKJAOQ76zAUcT4WBlcQzLl6Lq3L+IR6OEw==} - '@opencode/schema@2.0.18': - resolution: {integrity: sha512-f+lp6f+kxhygdeSxjqkiu6vk9t0onH/6OVBghSNyo9ZUUFP9BU/2JKthMgy9kHGyFu2vp0lg01H9umXn76u52A==} + '@opencode/schema@2.0.23': + resolution: {integrity: sha512-DglA+CCNmCaiAJ8FqAKo2EKIkCOF9/EmMEYowcXhTrQcoJ7eaTx7ytGjPgis6VHQuU4aaAgwZYw96ypS3ojsIw==} '@oslojs/encoding@1.1.0': resolution: {integrity: sha512-70wQhgYmndg4GCPxPPxPGevRKqTIJ2Nh4OkiMWmDAVYsTQ+Ta7Sq+rPevXyXGdzr30/qZBnyOalCszoMxlyldQ==} @@ -3991,6 +4029,9 @@ packages: '@oxc-project/types@0.151.0': resolution: {integrity: sha512-J1yXrIlNDZVzE3ada310xeAw7nH8yCAyLPuUIsjKatFPmfn5bS1oW+cM+QsGOtVWd5nhSpbwZWx/rue+r5Z+PA==} + '@oxc-project/types@0.152.0': + resolution: {integrity: sha512-oM/5rLBm2tPkg0iBgkH/FOeR3PCDpY19GTgAZjMFM8h9WI9VW7cLgzp6nwtarYKmovavIQZ+Fe/RKX/8C8O/Rw==} + '@oxc-resolver/binding-android-arm-eabi@11.24.2': resolution: {integrity: sha512-y09e0L0SRI2OA2tUIrjBgoV3eH5hvUKXNkJqXmNo5V2WxIjyC7I7aJfRLMEVpA8yi95f90gFDvO0VMgrDw+vwA==} cpu: [arm] @@ -4610,6 +4651,12 @@ packages: peerDependencies: '@redis/client': ^6.2.1 + '@rolldown/binding-android-arm-eabi@1.2.12': + resolution: {integrity: sha512-dB/a1214qKfHMXCpgqR4OZT+jS4kTyEXbQGJPqzobt5EwH5rX080pxE37alt3RzvR1bf1Yz/yGqRfrYAxuPw0A==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [android] + '@rolldown/binding-android-arm-eabi@1.2.5': resolution: {integrity: sha512-DLe/i+l8ynIBY7XEQ191TeZvCoowIGa18R+dIV30GW7DiOtp74i/xX8hs8GUjW5ARV7VZuie3d6AumSmCwbeRA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4622,6 +4669,12 @@ packages: cpu: [arm64] os: [android] + '@rolldown/binding-android-arm64@1.2.12': + resolution: {integrity: sha512-7KHFgQ5VJxIHcLlrwrc3Xbds7oTNQT7Pgi9gQCJKrd2VGab/UksIOYp6VD8MzCstGxOKMgNamPwUCfxPdP1OHg==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [android] + '@rolldown/binding-android-arm64@1.2.5': resolution: {integrity: sha512-zXcwKlQApYAOELHd8PwKDFkagYF9Wy4e0RJ+0qnzl9Pjnpj75TEG8ufv40p2J7kCEfwZAsNiuzRIyNNMWT38ig==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4634,6 +4687,12 @@ packages: cpu: [arm64] os: [darwin] + '@rolldown/binding-darwin-arm64@1.2.12': + resolution: {integrity: sha512-3YIhqHD96nA5SaYNRBR16HnGv4oavZvXfD/ayHM+oYZ0WD/8lBAtf6zQua4kEyAvpqrluKXl0lnOBoiNby7x9w==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [darwin] + '@rolldown/binding-darwin-arm64@1.2.5': resolution: {integrity: sha512-dK4QakI42nzWgJT5sm4y4y/O//D4OxM75/cH28RLV+nzIN9AY+YsbuUVrUTjlLjXR6vpyxFbSsbmNuJ6BP9sww==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4646,6 +4705,12 @@ packages: cpu: [x64] os: [darwin] + '@rolldown/binding-darwin-x64@1.2.12': + resolution: {integrity: sha512-UuuJ35MFw4gmFOrE9pEqIV+K3syIKveph+Qc1/ljHZVdoDW4pz/JHR/eMVom+TZGl/5OOvGJOWaOCVt3ZfqhxA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [darwin] + '@rolldown/binding-darwin-x64@1.2.5': resolution: {integrity: sha512-fqSALaUu1Wjd1nK2uW2kJDWdLCc8lx1IcY+MTY26Aurfdx19anlzhqXOgCFbBFQnlFDTn4TC1/7Nz4Bl2mLP3A==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4658,6 +4723,12 @@ packages: cpu: [x64] os: [freebsd] + '@rolldown/binding-freebsd-x64@1.2.12': + resolution: {integrity: sha512-uMvssit0a4W+/7D8CbHUvG719mH3R2jwXAlh/XcPvuHTE0g++LymF88DCGNX0HM2rBOn0xrzgXktIB6fLSJBTQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [freebsd] + '@rolldown/binding-freebsd-x64@1.2.5': resolution: {integrity: sha512-/vCnNxlkxs9tKxNDcyWUePpJ/PgTzxIaVhoM5SmG8UV+GR/IcPam4VYxi7GIMo7PSDuNqlJqvprqii9NqqVCMw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4670,6 +4741,12 @@ packages: cpu: [arm] os: [linux] + '@rolldown/binding-linux-arm-gnueabihf@1.2.12': + resolution: {integrity: sha512-XcFu0R0xWnwzSf4IQgFH1rJIckPN1pLy2R+4r9IDB7Yfu/ys9cVqfa4pBrMHj7a3gl8mIR4nRNPg0e5IvEVs6g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm] + os: [linux] + '@rolldown/binding-linux-arm-gnueabihf@1.2.5': resolution: {integrity: sha512-abk0NLA519LxRCszmbE0jYKuQ9YPocOXTiOXOo6Yr+YAT95VH+PtqYAjOJvGKt3viEd/x4qzabAlwd5bHOOARg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4683,6 +4760,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-arm64-gnu@1.2.12': + resolution: {integrity: sha512-260UrKgn8tz39ak+SMDOirKzr7V04M9dWPw5llW00SwBivCZoWcRBKV1d8cXnRkUmSZA3BdiUmBHWk7734Ulpw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-arm64-gnu@1.2.5': resolution: {integrity: sha512-Y7eALiJ8lr0M2HH103Js+g7V34wf6snlpZLAsHI90uLhr3PVlNsbFVAXJC9d/V6BnPyKtpSwI+NcB/RLxsQxuA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4697,6 +4781,13 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-linux-arm64-musl@1.2.12': + resolution: {integrity: sha512-5YK1I9SqDkbPgc1IA8BgDl34suqUS2q0KWnBrirm0E51YjOs6eo6dV6jbQfNE/argHRSvd0QUGgtpIoYx+WWpw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [linux] + libc: [musl] + '@rolldown/binding-linux-arm64-musl@1.2.5': resolution: {integrity: sha512-xMvZgnbZg4YVnR/AX2b3oOPDTFYJvUVaJg5FedA/LuvexAtXibZQej4cnTkw3rjsJ/ggUROB64TdtETiim+FYA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4711,6 +4802,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-ppc64-gnu@1.2.12': + resolution: {integrity: sha512-Rkcrmp7eFRg74yL5fXEU91JEWbdEPLevWwGtXpmhbjlD1StScbWTmO94Bhly+Mo+ketKYkdmM1vNUKeWSlx8cQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [ppc64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-ppc64-gnu@1.2.5': resolution: {integrity: sha512-GRjeqTUDHTo5GwntsLaAMcBahG3nlpjftXWZLN73HiYQlhwEowvarFgQnRnQZtIp4keXX7quXFbG38uPZBa2EA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4725,6 +4823,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-s390x-gnu@1.2.12': + resolution: {integrity: sha512-qvK4DuAsQc2BSjlx+Xr+IzOIvvxbGZqxFwdWfG6F518Erj0GGISyQbJ6pIappnOxlNPzNHvo/L0BwB30GZ+zVw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [s390x] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-s390x-gnu@1.2.5': resolution: {integrity: sha512-vLNTR45F2Uwc8AufkNXPmB4VliaXs+FvcheEogIzOXzO4l+LzieXF5A/TWxLy5HtqpsRCHUfd0lPVrrdgXdLHQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4739,6 +4844,13 @@ packages: os: [linux] libc: [glibc] + '@rolldown/binding-linux-x64-gnu@1.2.12': + resolution: {integrity: sha512-Q9uLBO53Xd4QIq1WOycVQyPP1O4HhraEV2qqb3uTrnVw6QZih9duY4vNXOivL1xoUS1/z+W8eF4NMfl2a8Sdjw==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [glibc] + '@rolldown/binding-linux-x64-gnu@1.2.5': resolution: {integrity: sha512-Mgj59/HTuYeK9Gz2MA+mBWKnHsAgkBSec15ZMb1st3oIfFbX7gCjOae7GydHhzcyQi9Z/7M1QuN9bR3oFqF0jQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4753,6 +4865,13 @@ packages: os: [linux] libc: [musl] + '@rolldown/binding-linux-x64-musl@1.2.12': + resolution: {integrity: sha512-3IBxWFMjbOZskDPKv8Lf9BCnahlKuHthWkYnyIxOH/QcJrFcS4EmcenthApkwr/5+nEqZlLzeYbxeMaX7A5u4g==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [linux] + libc: [musl] + '@rolldown/binding-linux-x64-musl@1.2.5': resolution: {integrity: sha512-mY8AP0/ichsbhAxGnLa3d3+MwV0EfgrPND2bplI3Ym8T6R2pJ0N87bvrKVwNXmdy3jnr6eQBecdqx/HMknBmpA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4766,6 +4885,12 @@ packages: cpu: [arm64] os: [openharmony] + '@rolldown/binding-openharmony-arm64@1.2.12': + resolution: {integrity: sha512-xtX61xg4LKPkPWilZU1ynKClz5Gj4bf74LML4r3eVLWumKnGjoEr1OSHQhMdbBDoYTi+yjrujvpZe2pUnqCrrA==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [openharmony] + '@rolldown/binding-openharmony-arm64@1.2.5': resolution: {integrity: sha512-8SLssA2oweAxyRgDp789ACfRb/3P+zNRJpzZxSizxF9m8NUDQ4+3xjo8ttjhVGGw6Qxb70oZiEtIjaKikCO7Yw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4783,6 +4908,12 @@ packages: cpu: [arm64] os: [win32] + '@rolldown/binding-win32-arm64-msvc@1.2.12': + resolution: {integrity: sha512-At7fPB6PCaIjzgIhEZFxuT+BBFqiQibJDT4d3PhiR3f4E7bbMZF4aKblbFfEM3sETRDd1YiQx/+U/g/B/ou5Ew==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [arm64] + os: [win32] + '@rolldown/binding-win32-arm64-msvc@1.2.5': resolution: {integrity: sha512-vGbruD5zquhoc8D9SViXgN2FBJtNdTyQ4DtG+SWiEGlJiAzoKcZ2xp+xuXCffhubVdt0NJlTZqkeRuERy7g8Cw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4795,6 +4926,12 @@ packages: cpu: [x64] os: [win32] + '@rolldown/binding-win32-x64-msvc@1.2.12': + resolution: {integrity: sha512-WIw2haVKwjuYdXkHaoC0mF8Le71TuCBxjrdKqLbJGctbBABj+ClfmNvtbOnzpq3RokNo5+V1qhtSzJyXorsklQ==} + engines: {node: ^20.19.0 || >=22.12.0} + cpu: [x64] + os: [win32] + '@rolldown/binding-win32-x64-msvc@1.2.5': resolution: {integrity: sha512-e/SXpgISz+IoqVcSSI0rx/d/he8zqLex+/rCWpnHpmVfmPIUjag9H6P7zotf0gJHwPUhQxZ/mF8tr6acebT9yw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4906,10 +5043,6 @@ packages: resolution: {integrity: sha512-ZAFvHXrEk6K180EVhmZVg8GU5pUH5BSFqRs27JW3j1qEFx9YyYwWFx17x/MHcjALYimGAji7qEOlF1++be+G5A==} engines: {node: '>=18.0.0'} - '@smithy/shared-ini-file-loader@4.7.2': - resolution: {integrity: sha512-XsIDj5gVG4YRxGS4n4TiBDAogPWRHXKZyor6JW/sEuaa/7BvKADe9j45jI2dPYCnYbKkLBmbZ4qN9ns0sH+kMQ==} - engines: {node: '>=18.0.0'} - '@smithy/signature-v4@5.4.6': resolution: {integrity: sha512-Ojg4B6oIDlIr1R86xCDJt1zJWnYa0VINmqdjfe9qxWjdRivHalZ3iSlQgVqYbW0MdpFOC5XfHEWsnbmdnpIILQ==} engines: {node: '>=18.0.0'} @@ -4918,10 +5051,6 @@ packages: resolution: {integrity: sha512-CgB6HHWer/vrKps24ulRIbpcpb7K4xAU7SkZ7YHzBPlwHsvsrCJFEXK421s+cJzX+ZrqtA/TuU5w1HzI7k9N8A==} engines: {node: '>=18.0.0'} - '@smithy/util-base64@4.6.2': - resolution: {integrity: sha512-wTQX1hPfElIqY6AzM/s6c4UgpMxCL4MwJ5u6340ksLPq78lur6Y+keheIDk5gMX4G3KFh4MERcDt6xhRq+ie1Q==} - engines: {node: '>=18.0.0'} - '@smithy/util-buffer-from@2.2.0': resolution: {integrity: sha512-IJdWBbTcMQ6DA0gdNhh/BwrLkDR+ADW5Kr1aZmd4k3DIF6ezMV4R2NIAmT08wQJ3yUK82thHWmC/TnK/wpMMIA==} engines: {node: '>=14.0.0'} @@ -6246,23 +6375,26 @@ packages: ajv@8.20.0: resolution: {integrity: sha512-Thbli+OlOj+iMPYFBVBfJ3OmCAnaSyNn4M1vz9T6Gka5Jt9ba/HIR56joy65tY6kx/FCF5VXNB819Y7/GUrBGA==} - alchemy@2.0.0-beta.79: - resolution: {integrity: sha512-pn48ye2fenePmhVFkQHPP1zNlpPN/5HzsWerrgKE8N9ljBUJgwgQeL+3QyeWhxGwxttsaSGc/o5JZPppTTL4UQ==} + alchemy@2.0.0-beta.80: + resolution: {integrity: sha512-2y7mswypPiApxuEdp8NGMfzCGB5+9W6OmQAuePyZ2xBkgoCpEqtKAnASuvKGUZPSYNESENbamXDuI5428ewu9w==} hasBin: true peerDependencies: - '@alchemy.run/frontend-frameworks': 2.0.0-beta.79 + '@alchemy.run/frontend-frameworks': 2.0.0-beta.80 '@aws/durable-execution-sdk-js': ^2.1.0 - '@effect/platform-bun': '>=4.0.0-rc.115 || >=4.0.0' - '@effect/platform-node': 4.0.0-rc.115 - '@effect/sql-mysql2': '>=4.0.0-rc.115 || >=4.0.0' - '@effect/sql-pg': 4.0.0-rc.115 + '@effect/platform-bun': ^4.0.0 + '@effect/platform-node': 4.0.1 + '@effect/sql-mysql2': ^4.0.0 + '@effect/sql-pg': 4.0.1 + '@effect/vitest': 4.0.1 + '@prisma/orm-postgres': 8.0.0-rc.11 '@vercel/nft': ^1.10.2 drizzle-kit: 1.0.0-rc.5-ab785fc drizzle-orm: 1.0.0-rc.5-ab785fc - effect: 4.0.0-rc.115 + effect: 4.0.1 mongodb: ^6.10.0 mysql2: ^3.24.2 pg: ^8.22.0 + prisma: 8.0.0-rc.15 vite: ^8.0.7 ws: ^8.21.0 peerDependenciesMeta: @@ -6278,6 +6410,10 @@ packages: optional: true '@effect/sql-pg': optional: true + '@effect/vitest': + optional: true + '@prisma/orm-postgres': + optional: true '@vercel/nft': optional: true drizzle-kit: @@ -6290,6 +6426,8 @@ packages: optional: true pg: optional: true + prisma: + optional: true vite: optional: true ws: @@ -7282,7 +7420,7 @@ packages: '@effect/sql-d1': '>=4.0.0-beta.105 || >=4.0.0' '@effect/sql-libsql': '>=4.0.0-beta.105 || >=4.0.0' '@effect/sql-mysql2': '>=4.0.0-beta.105 || >=4.0.0' - '@effect/sql-pg': 4.0.0-rc.115 + '@effect/sql-pg': 4.0.1 '@effect/sql-pglite': '>=4.0.0-beta.105 || >=4.0.0' '@effect/sql-sqlite-bun': '>=4.0.0-beta.105 || >=4.0.0' '@effect/sql-sqlite-do': '>=4.0.0-beta.105 || >=4.0.0' @@ -7313,7 +7451,7 @@ packages: arktype: '>=2.0.0' better-sqlite3: '>=9.3.0' bun-types: '*' - effect: 4.0.0-rc.115 + effect: 4.0.1 expo-sqlite: '>=14.0.0' minipg: '>=0.2.0' mssql: ^11.0.1 @@ -7440,8 +7578,8 @@ packages: ee-first@1.1.1: resolution: {integrity: sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==} - effect@4.0.0-rc.115: - resolution: {integrity: sha512-ogYulZ5ffeOzrJqQrG0XOkDO5lKn2s9KNHhoxJy/6wKUkF0i12dlVXWA9TgsgQ+zV/JzizyG0+XMPepZEQX6vw==} + effect@4.0.1: + resolution: {integrity: sha512-b1VlQG9g8fwxE5QnIZuPoOP/0MsqHJSRKxUijjoM80E5q95FXrX5yWtY5XI8G+GJsBQAVSDbLS458z9a++uVvw==} ejs@3.1.10: resolution: {integrity: sha512-UeJmFfOrAQS8OJWPZ4qtgHyWExa088/MtK5UEyoJGFH67cDEXkZSviOiKRCZ4Xij0zxI3JECgYs3oKx+AizQBA==} @@ -7995,10 +8133,6 @@ packages: fast-xml-builder@1.2.0: resolution: {integrity: sha512-00aAWieqff+ZJhsXA4g1g7M8k+7AYoMUUHF+/zFb5U6Uv/P0Vl4QZo84/IcufzYalLuEj9928bXN9PbbFzMF0Q==} - fast-xml-parser@5.11.1: - resolution: {integrity: sha512-TBw6K/fxoQGGjCmZDw9w/ZwP3uDcnTM4YH/g+PFRWr8sbe5idXtxNN6vITh4+1ruCZaho6uBFurElsA7F0zzgw==} - hasBin: true - fast-xml-parser@5.7.3: resolution: {integrity: sha512-C0AaNuC+mscy6vrAQKAc/rMq+zAPHodfHGZu4sGVehvAQt/JLG1O5zEcYcXSY5zSqr4YVgxsB+pHXTq0i7eDlg==} hasBin: true @@ -8478,9 +8612,6 @@ packages: resolution: {integrity: sha512-mE00Gnza5EEB3Ds0HfMyllZzbBrmLOX3vfWoj9A9PEnTfratQ/BcaJOuMhnkhjXvb2+FkY3VuHqtAGpTPmglFQ==} engines: {node: '>=18'} - is-unsafe@2.0.2: - resolution: {integrity: sha512-HgbIHPBH0KHHCcjLfGsCvhtPTVxjaAZlXjwdz7/GQC40SjSe4sfQsar8J5VFo8JOSbarkpV0OLG95bbaNd9aAQ==} - is-wsl@2.2.0: resolution: {integrity: sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==} engines: {node: '>=8'} @@ -10217,6 +10348,11 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true + rolldown@1.2.12: + resolution: {integrity: sha512-8wafseiaG80xmXSfqidUNqZcylTlhmPZZt+za2m+js2sFZ8dTNlhIOV2WcbIPx2hgwPBJpEUGFAMZ9bgBBLTSQ==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + rolldown@1.2.5: resolution: {integrity: sha512-VD2IE5PUG4Oj8zz2VGykiYd5wbnjdIiSsNQb8Qu5B+noEp+A78mu2iVvpp27g8es14Tk9rofNs5Tku9iQCS4fA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -10853,6 +10989,10 @@ packages: resolution: {integrity: sha512-/y4/bH9YNU5hi9NIrpOuvGXFcxrj3CMrV+/AYpowAYTpHn8gX/XPFjNy766FPoYY0miQhdW977JFWKGNhBdwyQ==} engines: {node: '>=22.19.0'} + undici@8.11.2: + resolution: {integrity: sha512-u4UB2/IrKdU6lFxumHmmo1a3fCQO5tzQllRorfoRS63txhrB7xTpSn1PftwC4qEHkOaqP95fCWW4lJzwErwzhQ==} + engines: {node: '>=22.19.0'} + unenv@2.0.0-rc.24: resolution: {integrity: sha512-i7qRCmY42zmCwnYlh9H2SvLEypEFGye5iRmEMKjcGi7zk9UquigRjFtTLz0TYqr0ZGLZhaMHl/foy1bZR+Cwlw==} @@ -11087,6 +11227,49 @@ packages: '@vitest/browser-webdriverio': optional: true + vite@8.3.2: + resolution: {integrity: sha512-SQr1x6W5vVSbROg7vsyXIaxK9b0G7zsT68acdWWRmnBUsgDieLCRG+Rep9WdZgcposvv/GSnr4GUUBqB3vXq6w==} + engines: {node: ^20.19.0 || >=22.12.0} + hasBin: true + peerDependencies: + '@types/node': 24.12.4 + '@vitejs/devtools': ^0.7.1 + esbuild: ^0.27.0 || ^0.28.0 + jiti: '>=1.21.0' + less: ^4.0.0 + sass: ^1.70.0 + sass-embedded: ^1.70.0 + stylus: '>=0.54.8' + sugarss: ^5.0.0 + terser: ^5.16.0 + tsx: ^4.8.1 + yaml: ^2.9.0 + peerDependenciesMeta: + '@types/node': + optional: true + '@vitejs/devtools': + optional: true + esbuild: + optional: true + jiti: + optional: true + less: + optional: true + sass: + optional: true + sass-embedded: + optional: true + stylus: + optional: true + sugarss: + optional: true + terser: + optional: true + tsx: + optional: true + yaml: + optional: true + vitefu@1.1.3: resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==} peerDependencies: @@ -11316,8 +11499,8 @@ packages: engines: {node: '>=8'} hasBin: true - workerd@1.20260901.1: - resolution: {integrity: sha512-Z5PVprrPRlV70+RzgbFpzoPpjCLGtErhsQ9Ahe96pe7hJGMsmexTU4+rhUPH+2Sguf7vRAxFFsqXpkIleRFSPA==} + workerd@1.20260918.1: + resolution: {integrity: sha512-NsjfQlBNQ0iEniv/STOy4zbp8s5k60PzL1Ter02Eg44arbDhHtf6UOs03E31XDRmmBFxSIkAZuCyld3RKH1wqA==} engines: {node: '>=16'} hasBin: true @@ -11360,6 +11543,18 @@ packages: utf-8-validate: optional: true + ws@8.22.0: + resolution: {integrity: sha512-Ydggc987+RO0AnWtZ/7Wq9FtNvcrL1b/RO0ud9mWjUPgDrsAAwQSF51sm2hm1XofbU/4jkpGEsLFsZZxU+1DOg==} + engines: {node: '>=10.0.0'} + peerDependencies: + bufferutil: ^4.0.1 + utf-8-validate: '>=5.0.2' + peerDependenciesMeta: + bufferutil: + optional: true + utf-8-validate: + optional: true + xcode@3.0.1: resolution: {integrity: sha512-kCz5k7J7XbJtjABOvkc5lJmkiDh8VhjVCGNiqdKCscmVpdVUpEAyXv1xmCLkQJ5dsHqx3IPO4XW+NTDhU/fatA==} engines: {node: '>=10.0.0'} @@ -11372,10 +11567,6 @@ packages: resolution: {integrity: sha512-k8KO9hrMyNk6tUWqUfkTEZbezRRpONVOzUTnc97VnCvyj6Tf9lyUR9EDAIeiVLv56jsMcoXEwjW8Kv5yPY52lw==} engines: {node: '>=16.0.0'} - xml-naming@0.3.0: - resolution: {integrity: sha512-ghig2TBE/H11aOVgmahA3MhimvkBr6JIYknH/Dhdk10nXwdbIqBJsbfMxpvFPG8bAw77gN29aQWvKpmVoPlvPQ==} - engines: {node: '>=16.0.0'} - xml2js@0.4.23: resolution: {integrity: sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==} engines: {node: '>=4.0.0'} @@ -11528,22 +11719,22 @@ snapshots: dependencies: json-schema: 0.4.0 - '@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)': + '@alchemy.run/cloudflare-runtime@2.0.0-beta.80(@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)))(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(rolldown@1.2.5)(typescript@7.0.2)': dependencies: - '@alchemy.run/node-utils': 2.0.0-beta.79 - '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260901.1) - '@distilled.cloud/cloudflare': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + '@alchemy.run/node-utils': 2.0.0-beta.80 + '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260918.1) + '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) '@puppeteer/browsers': 3.2.2(yauzl@3.4.0) capnp-es: 0.0.16(typescript@7.0.2) - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) magic-string: 0.30.21 mime: 4.1.0 sharp: 0.35.4(@types/node@24.12.4) unenv: 2.0.0-rc.24 - workerd: 1.20260901.1 + workerd: 1.20260918.1 yauzl: 3.4.0 optionalDependencies: - '@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/platform-node': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) rolldown: 1.2.5 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)' transitivePeerDependencies: @@ -11551,16 +11742,16 @@ snapshots: - proxy-agent - typescript - '@alchemy.run/floci@2.0.0-beta.79(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@alchemy.run/floci@2.0.0-beta.80(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) - '@alchemy.run/node-utils@2.0.0-beta.79': + '@alchemy.run/node-utils@2.0.0-beta.80': dependencies: chokidar: 5.0.0 rolldown: 1.2.5 - '@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))': + '@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))': optionalDependencies: '@types/react': 19.3.0 react-devtools-core: 6.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6) @@ -11735,22 +11926,26 @@ snapshots: '@aws-sdk/util-locate-window': 3.965.5 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 + optional: true '@aws-crypto/sha256-js@5.2.0': dependencies: '@aws-crypto/util': 5.2.0 '@aws-sdk/types': 3.974.5 tslib: 2.8.1 + optional: true '@aws-crypto/supports-web-crypto@5.2.0': dependencies: tslib: 2.8.1 + optional: true '@aws-crypto/util@5.2.0': dependencies: '@aws-sdk/types': 3.974.5 '@smithy/util-utf8': 2.3.0 tslib: 2.8.1 + optional: true '@aws-sdk/client-cognito-identity@3.1062.0': dependencies: @@ -11764,6 +11959,7 @@ snapshots: '@smithy/node-http-handler': 4.7.7 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@aws-sdk/core@3.974.17': dependencies: @@ -11775,6 +11971,7 @@ snapshots: '@smithy/types': 4.18.0 bowser: 2.14.1 tslib: 2.8.1 + optional: true '@aws-sdk/credential-provider-cognito-identity@3.972.41': dependencies: @@ -11783,6 +11980,7 @@ snapshots: '@smithy/core': 3.34.1 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@aws-sdk/credential-provider-env@3.972.43': dependencies: @@ -11791,6 +11989,7 @@ snapshots: '@smithy/core': 3.34.1 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@aws-sdk/credential-provider-http@3.972.45': dependencies: @@ -11801,6 +12000,7 @@ snapshots: '@smithy/node-http-handler': 4.7.7 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@aws-sdk/credential-provider-ini@3.972.49': dependencies: @@ -11817,6 +12017,7 @@ snapshots: '@smithy/credential-provider-imds': 4.3.8 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@aws-sdk/credential-provider-login@3.972.48': dependencies: @@ -11826,6 +12027,7 @@ snapshots: '@smithy/core': 3.34.1 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@aws-sdk/credential-provider-node@3.972.51': dependencies: @@ -11840,6 +12042,7 @@ snapshots: '@smithy/credential-provider-imds': 4.3.8 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@aws-sdk/credential-provider-process@3.972.43': dependencies: @@ -11848,6 +12051,7 @@ snapshots: '@smithy/core': 3.34.1 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@aws-sdk/credential-provider-sso@3.972.48': dependencies: @@ -11858,6 +12062,7 @@ snapshots: '@smithy/core': 3.34.1 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@aws-sdk/credential-provider-web-identity@3.972.48': dependencies: @@ -11867,6 +12072,7 @@ snapshots: '@smithy/core': 3.34.1 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@aws-sdk/credential-providers@3.1062.0': dependencies: @@ -11887,6 +12093,7 @@ snapshots: '@smithy/credential-provider-imds': 4.3.8 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@aws-sdk/nested-clients@3.997.16': dependencies: @@ -11900,6 +12107,7 @@ snapshots: '@smithy/node-http-handler': 4.7.7 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@aws-sdk/signature-v4-multi-region@3.996.31': dependencies: @@ -11907,6 +12115,7 @@ snapshots: '@smithy/signature-v4': 5.4.6 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@aws-sdk/token-providers@3.1062.0': dependencies: @@ -11916,23 +12125,28 @@ snapshots: '@smithy/core': 3.34.1 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@aws-sdk/types@3.974.5': dependencies: '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@aws-sdk/util-locate-window@3.965.5': dependencies: tslib: 2.8.1 + optional: true '@aws-sdk/xml-builder@3.972.27': dependencies: '@smithy/types': 4.18.0 fast-xml-parser: 5.7.3 tslib: 2.8.1 + optional: true - '@aws/lambda-invoke-store@0.2.4': {} + '@aws/lambda-invoke-store@0.2.4': + optional: true '@babel/code-frame@7.29.7': dependencies: @@ -12690,30 +12904,30 @@ snapshots: react: 19.3.0 react-dom: 19.3.0(react@19.3.0) - '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260901.1)': + '@cloudflare/unenv-preset@2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260918.1)': dependencies: unenv: 2.0.0-rc.24 optionalDependencies: - workerd: 1.20260901.1 + workerd: 1.20260918.1 - '@cloudflare/workerd-darwin-64@1.20260901.1': + '@cloudflare/workerd-darwin-64@1.20260918.1': optional: true - '@cloudflare/workerd-darwin-arm64@1.20260901.1': + '@cloudflare/workerd-darwin-arm64@1.20260918.1': optional: true - '@cloudflare/workerd-linux-64@1.20260901.1': + '@cloudflare/workerd-linux-64@1.20260918.1': optional: true - '@cloudflare/workerd-linux-arm64@1.20260901.1': + '@cloudflare/workerd-linux-arm64@1.20260918.1': optional: true - '@cloudflare/workerd-windows-64@1.20260901.1': + '@cloudflare/workerd-windows-64@1.20260918.1': optional: true '@cloudflare/workers-types@4.20260604.1': {} - '@cloudflare/workers-types@5.20260907.1': {} + '@cloudflare/workers-types@5.20261004.1': {} '@connectrpc/connect-node@1.7.0(@bufbuild/protobuf@1.10.0)(@connectrpc/connect@1.7.0(@bufbuild/protobuf@1.10.0))': dependencies: @@ -12822,65 +13036,86 @@ snapshots: '@dimforge/rapier3d-compat@0.12.0': {} - '@distilled.cloud/aws@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@distilled.cloud/acme@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - '@aws-sdk/types': 3.974.5 - '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@smithy/shared-ini-file-loader': 4.7.2 + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + + '@distilled.cloud/aws@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + dependencies: + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) '@smithy/types': 4.18.0 - '@smithy/util-base64': 4.6.2 - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) - fast-xml-parser: 5.11.1 + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) - '@distilled.cloud/axiom@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@distilled.cloud/axiom@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) - '@distilled.cloud/cloudflare@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) - '@distilled.cloud/core@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@distilled.cloud/core@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) graphql: 16.11.0 - '@distilled.cloud/fly-io@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@distilled.cloud/doppler@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + dependencies: + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + + '@distilled.cloud/fly-io@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + dependencies: + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + + '@distilled.cloud/gcp@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + dependencies: + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + + '@distilled.cloud/hetzner@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) - '@distilled.cloud/hetzner@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@distilled.cloud/infisical@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) - '@distilled.cloud/neon@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@distilled.cloud/neon@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) - '@distilled.cloud/planetscale@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@distilled.cloud/planetscale@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) - '@distilled.cloud/prisma@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@distilled.cloud/prisma@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) - '@distilled.cloud/railway@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@distilled.cloud/railway@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) - '@distilled.cloud/stripe@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@distilled.cloud/stripe@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + + '@distilled.cloud/zerossl@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + dependencies: + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) '@dnd-kit/accessibility@3.1.1(react@19.2.6)': dependencies: @@ -12916,62 +13151,62 @@ snapshots: '@drizzle-team/brocli@0.12.0': {} - '@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)': + '@effect/atom-react@4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(react@19.2.6)(scheduler@0.28.0)': dependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) react: 19.2.6 - scheduler: 0.27.0 + scheduler: 0.28.0 - '@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)': + '@effect/atom-react@4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(react@19.3.0)(scheduler@0.28.0)': dependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) react: 19.3.0 - scheduler: 0.27.0 + scheduler: 0.28.0 - '@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)': + '@effect/openapi-generator@4.0.1(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(encoding@0.1.13)': dependencies: - '@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) + '@effect/platform-node': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) swagger2openapi: 7.0.8(encoding@0.1.13) transitivePeerDependencies: - encoding - '@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)': + '@effect/platform-node-shared@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(utf-8-validate@6.0.6)': dependencies: '@types/ws': 8.18.1 - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) - ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + ws: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) transitivePeerDependencies: - bufferutil - utf-8-validate - '@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/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6)': dependencies: - '@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) - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + '@effect/platform-node-shared': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(utf-8-validate@6.0.6) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) redis: 6.2.1 - undici: 8.10.2 + undici: 8.11.2 transitivePeerDependencies: - bufferutil - utf-8-validate - '@effect/sql-d1@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@effect/sql-d1@4.0.0(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - '@cloudflare/workers-types': 5.20260907.1 - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + '@cloudflare/workers-types': 5.20261004.1 + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) - '@effect/sql-pg@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@effect/sql-pg@4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) - '@effect/sql-sqlite-bun@4.0.0-rc.112(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@effect/sql-sqlite-bun@4.0.0-rc.112(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) optional: true - '@effect/sql-sqlite-do@4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@effect/sql-sqlite-do@4.0.0(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) '@effect/tsgo-darwin-arm64@0.41.0': optional: true @@ -13004,56 +13239,128 @@ snapshots: '@effect/tsgo-win32-arm64': 0.41.0 '@effect/tsgo-win32-x64': 0.41.0 - '@effect/vitest@4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': - dependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) - - '@electric-sql/pglite@0.3.15': - optional: true - - '@electron-internal/extract-zip@1.0.5': {} - - '@electron/asar@3.4.1': - dependencies: - commander: 5.1.0 - glob: 7.2.3 - minimatch: 3.1.5 - - '@electron/asar@4.3.0': - dependencies: - glob: 13.0.6 - minimatch: 10.2.5 - - '@electron/fuses@1.8.0': - dependencies: - chalk: 4.1.2 - fs-extra: 9.1.0 - minimist: 1.2.8 - - '@electron/get@3.1.0': - dependencies: - debug: 4.4.3 - env-paths: 2.2.1 - fs-extra: 8.1.0 - got: 11.8.6 - progress: 2.0.3 - semver: 6.3.1 - sumchecker: 3.0.1 - optionalDependencies: - global-agent: 3.0.0 - transitivePeerDependencies: - - supports-color - - '@electron/get@5.1.0': + '@effect/vitest@4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1(vitest@5.0.1))(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(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)))(yaml@2.9.0)': dependencies: - debug: 4.4.3 - env-paths: 3.0.0 - graceful-fs: 4.2.11 - progress: 2.0.3 - semver: 7.8.5 - sumchecker: 3.0.1 + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + 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) optionalDependencies: - undici: 7.29.1 + 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)) + transitivePeerDependencies: + - '@arethetypeswrong/core' + - '@edge-runtime/vm' + - '@opentelemetry/api' + - '@types/node' + - '@vitejs/devtools' + - '@vitest/browser-playwright' + - '@vitest/browser-webdriverio' + - '@vitest/coverage-istanbul' + - '@vitest/coverage-v8' + - '@vitest/ui' + - bufferutil + - esbuild + - happy-dom + - jiti + - jsdom + - less + - msw + - publint + - sass + - sass-embedded + - stylus + - sugarss + - svelte + - terser + - tsx + - typescript + - unplugin-unused + - unrun + - utf-8-validate + - yaml + + '@effect/vitest@4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0)': + dependencies: + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + 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) + optionalDependencies: + vitest: 5.0.1(@types/node@24.12.4)(@vitest/browser-preview@5.0.1)(@vitest/ui@5.0.1(vitest@5.0.1))(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) + transitivePeerDependencies: + - '@arethetypeswrong/core' + - '@edge-runtime/vm' + - '@opentelemetry/api' + - '@types/node' + - '@vitejs/devtools' + - '@vitest/browser-playwright' + - '@vitest/browser-webdriverio' + - '@vitest/coverage-istanbul' + - '@vitest/coverage-v8' + - '@vitest/ui' + - bufferutil + - esbuild + - happy-dom + - jiti + - jsdom + - less + - msw + - publint + - sass + - sass-embedded + - stylus + - sugarss + - svelte + - terser + - tsx + - typescript + - unplugin-unused + - unrun + - utf-8-validate + - yaml + + '@electric-sql/pglite@0.3.15': + optional: true + + '@electron-internal/extract-zip@1.0.5': {} + + '@electron/asar@3.4.1': + dependencies: + commander: 5.1.0 + glob: 7.2.3 + minimatch: 3.1.5 + + '@electron/asar@4.3.0': + dependencies: + glob: 13.0.6 + minimatch: 10.2.5 + + '@electron/fuses@1.8.0': + dependencies: + chalk: 4.1.2 + fs-extra: 9.1.0 + minimist: 1.2.8 + + '@electron/get@3.1.0': + dependencies: + debug: 4.4.3 + env-paths: 2.2.1 + fs-extra: 8.1.0 + got: 11.8.6 + progress: 2.0.3 + semver: 6.3.1 + sumchecker: 3.0.1 + optionalDependencies: + global-agent: 3.0.0 + transitivePeerDependencies: + - supports-color + + '@electron/get@5.1.0': + dependencies: + debug: 4.4.3 + env-paths: 3.0.0 + graceful-fs: 4.2.11 + progress: 2.0.3 + semver: 7.8.5 + sumchecker: 3.0.1 + optionalDependencies: + undici: 7.29.1 transitivePeerDependencies: - supports-color @@ -14243,6 +14550,10 @@ snapshots: '@neon-rs/load@0.0.4': {} + '@neon/functions@0.11.0(hono@4.13.7)': + optionalDependencies: + hono: 4.13.7 + '@noble/curves@1.9.1': dependencies: '@noble/hashes': 1.8.0 @@ -14253,9 +14564,8 @@ snapshots: '@noble/hashes@2.2.0': {} - '@nodable/entities@2.1.1': {} - - '@nodable/entities@3.0.0': {} + '@nodable/entities@2.1.1': + optional: true '@nornagon/put@0.0.8': {} @@ -14372,22 +14682,22 @@ snapshots: dependencies: cross-spawn: 7.0.6 - '@opencode/client@2.0.18(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@opencode/client@2.0.23(patch_hash=f725d6e6d9af0d56dc6ed71b863518fbfc751af1773cff2311209d2c404cf4cd)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': dependencies: - '@opencode/protocol': 2.0.18 - '@opencode/schema': 2.0.18 + '@opencode/protocol': 2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685) + '@opencode/schema': 2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59) optionalDependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) - '@opencode/protocol@2.0.18': + '@opencode/protocol@2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685)': dependencies: - '@opencode/schema': 2.0.18 - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + '@opencode/schema': 2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) - '@opencode/schema@2.0.18': + '@opencode/schema@2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59)': dependencies: '@standard-schema/spec': 1.1.0 - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) '@oslojs/encoding@1.1.0': {} @@ -14521,6 +14831,9 @@ snapshots: '@oxc-project/types@0.151.0': {} + '@oxc-project/types@0.152.0': + optional: true + '@oxc-resolver/binding-android-arm-eabi@11.24.2': optional: true @@ -15058,78 +15371,117 @@ snapshots: dependencies: '@redis/client': 6.2.1 + '@rolldown/binding-android-arm-eabi@1.2.12': + optional: true + '@rolldown/binding-android-arm-eabi@1.2.5': optional: true '@rolldown/binding-android-arm64@1.0.0-rc.17': optional: true + '@rolldown/binding-android-arm64@1.2.12': + optional: true + '@rolldown/binding-android-arm64@1.2.5': optional: true '@rolldown/binding-darwin-arm64@1.0.0-rc.17': optional: true + '@rolldown/binding-darwin-arm64@1.2.12': + optional: true + '@rolldown/binding-darwin-arm64@1.2.5': optional: true '@rolldown/binding-darwin-x64@1.0.0-rc.17': optional: true + '@rolldown/binding-darwin-x64@1.2.12': + optional: true + '@rolldown/binding-darwin-x64@1.2.5': optional: true '@rolldown/binding-freebsd-x64@1.0.0-rc.17': optional: true + '@rolldown/binding-freebsd-x64@1.2.12': + optional: true + '@rolldown/binding-freebsd-x64@1.2.5': optional: true '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17': optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.2.12': + optional: true + '@rolldown/binding-linux-arm-gnueabihf@1.2.5': optional: true '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17': optional: true + '@rolldown/binding-linux-arm64-gnu@1.2.12': + optional: true + '@rolldown/binding-linux-arm64-gnu@1.2.5': optional: true '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': optional: true + '@rolldown/binding-linux-arm64-musl@1.2.12': + optional: true + '@rolldown/binding-linux-arm64-musl@1.2.5': optional: true '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': optional: true + '@rolldown/binding-linux-ppc64-gnu@1.2.12': + optional: true + '@rolldown/binding-linux-ppc64-gnu@1.2.5': optional: true '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': optional: true + '@rolldown/binding-linux-s390x-gnu@1.2.12': + optional: true + '@rolldown/binding-linux-s390x-gnu@1.2.5': optional: true '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': optional: true + '@rolldown/binding-linux-x64-gnu@1.2.12': + optional: true + '@rolldown/binding-linux-x64-gnu@1.2.5': optional: true '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': optional: true + '@rolldown/binding-linux-x64-musl@1.2.12': + optional: true + '@rolldown/binding-linux-x64-musl@1.2.5': optional: true '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': optional: true + '@rolldown/binding-openharmony-arm64@1.2.12': + optional: true + '@rolldown/binding-openharmony-arm64@1.2.5': optional: true @@ -15143,12 +15495,18 @@ snapshots: '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17': optional: true + '@rolldown/binding-win32-arm64-msvc@1.2.12': + optional: true + '@rolldown/binding-win32-arm64-msvc@1.2.5': optional: true '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17': optional: true + '@rolldown/binding-win32-x64-msvc@1.2.12': + optional: true + '@rolldown/binding-win32-x64-msvc@1.2.5': optional: true @@ -15237,58 +15595,56 @@ snapshots: dependencies: '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@smithy/credential-provider-imds@4.3.8': dependencies: '@smithy/core': 3.34.1 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@smithy/fetch-http-handler@5.4.6': dependencies: '@smithy/core': 3.34.1 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@smithy/is-array-buffer@2.2.0': dependencies: tslib: 2.8.1 + optional: true '@smithy/node-http-handler@4.7.7': dependencies: '@smithy/core': 3.34.1 '@smithy/types': 4.18.0 tslib: 2.8.1 - - '@smithy/shared-ini-file-loader@4.7.2': - dependencies: - '@smithy/core': 3.34.1 - tslib: 2.8.1 + optional: true '@smithy/signature-v4@5.4.6': dependencies: '@smithy/core': 3.34.1 '@smithy/types': 4.18.0 tslib: 2.8.1 + optional: true '@smithy/types@4.18.0': dependencies: tslib: 2.8.1 - '@smithy/util-base64@4.6.2': - dependencies: - '@smithy/core': 3.34.1 - tslib: 2.8.1 - '@smithy/util-buffer-from@2.2.0': dependencies: '@smithy/is-array-buffer': 2.2.0 tslib: 2.8.1 + optional: true '@smithy/util-utf8@2.3.0': dependencies: '@smithy/util-buffer-from': 2.2.0 tslib: 2.8.1 + optional: true '@stablelib/base64@1.0.1': {} @@ -16145,6 +16501,19 @@ snapshots: - utf-8-validate - vite + '@vitest/browser-preview@5.0.1(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(utf-8-validate@6.0.6)(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vitest@5.0.1)': + dependencies: + '@testing-library/dom': 10.4.1 + '@testing-library/user-event': 14.6.7(@testing-library/dom@10.4.1) + '@vitest/browser': 5.0.1(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(utf-8-validate@6.0.6)(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vitest@5.0.1) + vitest: 5.0.1(@types/node@24.12.4)(@vitest/browser-preview@5.0.1)(@vitest/ui@5.0.1(vitest@5.0.1))(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) + transitivePeerDependencies: + - bufferutil + - msw + - utf-8-validate + - vite + optional: true + '@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)': dependencies: '@blazediff/core': 1.10.0 @@ -16163,6 +16532,25 @@ snapshots: - utf-8-validate - vite + '@vitest/browser@5.0.1(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(utf-8-validate@6.0.6)(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vitest@5.0.1)': + dependencies: + '@blazediff/core': 1.10.0 + '@vitest/mocker': 5.0.1(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) + '@vitest/ui': 5.0.1(vitest@5.0.1) + '@vitest/utils': 5.0.1 + magic-string: 1.4.1 + pngjs: 7.0.0 + sirv: 3.0.2 + tinyrainbow: 3.1.1 + vitest: 5.0.1(@types/node@24.12.4)(@vitest/browser-preview@5.0.1)(@vitest/ui@5.0.1(vitest@5.0.1))(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) + ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) + transitivePeerDependencies: + - bufferutil + - msw + - utf-8-validate + - vite + optional: true + '@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))': dependencies: '@jridgewell/trace-mapping': 0.3.31 @@ -16173,6 +16561,17 @@ snapshots: msw: 2.12.11(@types/node@24.12.4)(typescript@7.0.2) 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)' + '@vitest/mocker@5.0.1(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))': + dependencies: + '@jridgewell/trace-mapping': 0.3.31 + '@vitest/spy': 5.0.1 + estree-walker: 3.0.3 + magic-string: 1.4.1 + optionalDependencies: + msw: 2.12.11(@types/node@24.12.4)(typescript@7.0.2) + vite: 8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) + optional: true + '@vitest/pretty-format@5.0.1': dependencies: tinyrainbow: 3.1.1 @@ -16510,55 +16909,59 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - ? 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)) - : dependencies: - '@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) - '@alchemy.run/floci': 2.0.0-beta.79(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@alchemy.run/node-utils': 2.0.0-beta.79 - '@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)) - '@aws-sdk/credential-providers': 3.1062.0 - '@distilled.cloud/aws': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@distilled.cloud/axiom': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@distilled.cloud/cloudflare': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@distilled.cloud/core': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@distilled.cloud/fly-io': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@distilled.cloud/hetzner': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@distilled.cloud/neon': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@distilled.cloud/planetscale': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@distilled.cloud/prisma': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@distilled.cloud/railway': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@distilled.cloud/stripe': 1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@effect/sql-d1': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@effect/sql-sqlite-do': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@effect/vitest': 4.0.0-rc.115(patch_hash=172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902)(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + alchemy@2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(bc2c8272d4f80ff5e255def168c10b3c): + dependencies: + '@alchemy.run/cloudflare-runtime': 2.0.0-beta.80(@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)))(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(rolldown@1.2.5)(typescript@7.0.2) + '@alchemy.run/floci': 2.0.0-beta.80(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@alchemy.run/node-utils': 2.0.0-beta.80 + '@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)) + '@distilled.cloud/acme': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/aws': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/axiom': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/doppler': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/fly-io': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/gcp': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/hetzner': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/infisical': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/neon': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/planetscale': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/prisma': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/railway': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/stripe': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/zerossl': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@effect/sql-d1': 4.0.0(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@effect/sql-sqlite-do': 4.0.0(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) + '@neon/functions': 0.11.0(hono@4.13.7) '@octokit/rest': 22.0.1 '@octokit/webhooks': 14.2.0 '@types/aws-lambda': 8.10.161 - aws4fetch: 1.0.20 capnweb: 0.12.0 - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) fflate: 0.8.3 libsodium-wrappers: 0.8.4 pathe: 2.0.3 picomatch: 4.0.7 rolldown: 1.2.5 tinyglobby: 0.2.17 - undici: 7.29.1 yaml: 2.9.0 optionalDependencies: - '@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)) + '@effect/platform-node': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) + '@effect/sql-pg': 4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@effect/vitest': 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) drizzle-kit: 1.0.0-rc.5-ab785fc - drizzle-orm: 1.0.0-rc.5-ab785fc(77d4691b21c77897491506c37fa7b5ad) + drizzle-orm: 1.0.0-rc.5-ab785fc(8fb3f5e892a2b61c45030ec806e1385e) mongodb: 6.21.0(@aws-sdk/credential-providers@3.1062.0)(socks@2.8.9) pg: 8.23.0 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)' - ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) + ws: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) transitivePeerDependencies: - '@types/node' - '@types/react' - bufferutil + - hono - proxy-agent - react-devtools-core - typescript @@ -16601,7 +17004,8 @@ snapshots: normalize-path: 3.0.0 picomatch: 2.3.2 - anynum@1.0.1: {} + anynum@1.0.1: + optional: true app-builder-lib@26.15.6(dmg-builder@26.15.6)(electron-builder-squirrel-windows@26.15.6): dependencies: @@ -16783,7 +17187,8 @@ snapshots: aws4@1.13.2: {} - aws4fetch@1.0.20: {} + aws4fetch@1.0.20: + optional: true axobject-query@4.1.0: {} @@ -16942,7 +17347,8 @@ snapshots: boolean@3.2.0: optional: true - bowser@2.14.1: {} + bowser@2.14.1: + optional: true bplist-creator@0.1.0: dependencies: @@ -17703,17 +18109,17 @@ snapshots: get-tsconfig: 4.14.3 jiti: 2.7.0 - drizzle-orm@1.0.0-rc.5-ab785fc(77d4691b21c77897491506c37fa7b5ad): + drizzle-orm@1.0.0-rc.5-ab785fc(8fb3f5e892a2b61c45030ec806e1385e): optionalDependencies: '@cloudflare/workers-types': 4.20260604.1 - '@effect/sql-d1': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@effect/sql-pg': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@effect/sql-sqlite-bun': 4.0.0-rc.112(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) - '@effect/sql-sqlite-do': 4.0.0-rc.115(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec)) + '@effect/sql-d1': 4.0.0(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@effect/sql-pg': 4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@effect/sql-sqlite-bun': 4.0.0-rc.112(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@effect/sql-sqlite-do': 4.0.0(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) '@electric-sql/pglite': 0.3.15 '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) bun-types: 1.3.14 - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) 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) pg: 8.23.0 valibot: 1.2.0(typescript@7.0.2) @@ -17735,7 +18141,7 @@ snapshots: ee-first@1.1.1: {} - effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec): {} + effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb): {} ejs@3.1.10: dependencies: @@ -18450,15 +18856,7 @@ snapshots: dependencies: path-expression-matcher: 1.6.2 xml-naming: 0.1.0 - - fast-xml-parser@5.11.1: - dependencies: - '@nodable/entities': 3.0.0 - fast-xml-builder: 1.2.0 - is-unsafe: 2.0.2 - path-expression-matcher: 1.6.2 - strnum: 2.4.2 - xml-naming: 0.3.0 + optional: true fast-xml-parser@5.7.3: dependencies: @@ -18466,6 +18864,7 @@ snapshots: fast-xml-builder: 1.2.0 path-expression-matcher: 1.6.2 strnum: 2.4.2 + optional: true fastdom@1.0.12: dependencies: @@ -19024,8 +19423,6 @@ snapshots: is-unicode-supported@2.1.0: {} - is-unsafe@2.0.2: {} - is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -20385,6 +20782,31 @@ snapshots: '@oxc-resolver/binding-win32-arm64-msvc': 11.24.2 '@oxc-resolver/binding-win32-x64-msvc': 11.24.2 + 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)): + dependencies: + tinypool: 2.1.2 + optionalDependencies: + '@oxfmt/binding-android-arm-eabi': 0.70.0 + '@oxfmt/binding-android-arm64': 0.70.0 + '@oxfmt/binding-darwin-arm64': 0.70.0 + '@oxfmt/binding-darwin-x64': 0.70.0 + '@oxfmt/binding-freebsd-x64': 0.70.0 + '@oxfmt/binding-linux-arm-gnueabihf': 0.70.0 + '@oxfmt/binding-linux-arm-musleabihf': 0.70.0 + '@oxfmt/binding-linux-arm64-gnu': 0.70.0 + '@oxfmt/binding-linux-arm64-musl': 0.70.0 + '@oxfmt/binding-linux-ppc64-gnu': 0.70.0 + '@oxfmt/binding-linux-riscv64-gnu': 0.70.0 + '@oxfmt/binding-linux-riscv64-musl': 0.70.0 + '@oxfmt/binding-linux-s390x-gnu': 0.70.0 + '@oxfmt/binding-linux-x64-gnu': 0.70.0 + '@oxfmt/binding-linux-x64-musl': 0.70.0 + '@oxfmt/binding-openharmony-arm64': 0.70.0 + '@oxfmt/binding-win32-arm64-msvc': 0.70.0 + '@oxfmt/binding-win32-ia32-msvc': 0.70.0 + '@oxfmt/binding-win32-x64-msvc': 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) + 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)): dependencies: tinypool: 2.1.2 @@ -20419,6 +20841,30 @@ snapshots: '@oxlint-tsgolint/win32-arm64': 7.0.2003 '@oxlint-tsgolint/win32-x64': 7.0.2003 + 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)): + optionalDependencies: + '@oxlint/binding-android-arm-eabi': 1.85.0 + '@oxlint/binding-android-arm64': 1.85.0 + '@oxlint/binding-darwin-arm64': 1.85.0 + '@oxlint/binding-darwin-x64': 1.85.0 + '@oxlint/binding-freebsd-x64': 1.85.0 + '@oxlint/binding-linux-arm-gnueabihf': 1.85.0 + '@oxlint/binding-linux-arm-musleabihf': 1.85.0 + '@oxlint/binding-linux-arm64-gnu': 1.85.0 + '@oxlint/binding-linux-arm64-musl': 1.85.0 + '@oxlint/binding-linux-ppc64-gnu': 1.85.0 + '@oxlint/binding-linux-riscv64-gnu': 1.85.0 + '@oxlint/binding-linux-riscv64-musl': 1.85.0 + '@oxlint/binding-linux-s390x-gnu': 1.85.0 + '@oxlint/binding-linux-x64-gnu': 1.85.0 + '@oxlint/binding-linux-x64-musl': 1.85.0 + '@oxlint/binding-openharmony-arm64': 1.85.0 + '@oxlint/binding-win32-arm64-msvc': 1.85.0 + '@oxlint/binding-win32-ia32-msvc': 1.85.0 + '@oxlint/binding-win32-x64-msvc': 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) + 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)): optionalDependencies: '@oxlint/binding-android-arm-eabi': 1.85.0 @@ -20506,7 +20952,8 @@ snapshots: path-exists@3.0.0: {} - path-expression-matcher@1.6.2: {} + path-expression-matcher@1.6.2: + optional: true path-is-absolute@1.0.1: {} @@ -21319,6 +21766,28 @@ snapshots: '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.17 optional: true + rolldown@1.2.12: + dependencies: + '@oxc-project/types': 0.152.0 + '@rolldown/pluginutils': 1.0.1 + optionalDependencies: + '@rolldown/binding-android-arm-eabi': 1.2.12 + '@rolldown/binding-android-arm64': 1.2.12 + '@rolldown/binding-darwin-arm64': 1.2.12 + '@rolldown/binding-darwin-x64': 1.2.12 + '@rolldown/binding-freebsd-x64': 1.2.12 + '@rolldown/binding-linux-arm-gnueabihf': 1.2.12 + '@rolldown/binding-linux-arm64-gnu': 1.2.12 + '@rolldown/binding-linux-arm64-musl': 1.2.12 + '@rolldown/binding-linux-ppc64-gnu': 1.2.12 + '@rolldown/binding-linux-s390x-gnu': 1.2.12 + '@rolldown/binding-linux-x64-gnu': 1.2.12 + '@rolldown/binding-linux-x64-musl': 1.2.12 + '@rolldown/binding-openharmony-arm64': 1.2.12 + '@rolldown/binding-win32-arm64-msvc': 1.2.12 + '@rolldown/binding-win32-x64-msvc': 1.2.12 + optional: true + rolldown@1.2.5: dependencies: '@oxc-project/types': 0.146.0 @@ -21756,6 +22225,7 @@ snapshots: strnum@2.4.2: dependencies: anynum: 1.0.1 + optional: true structured-headers@0.4.1: {} @@ -22016,10 +22486,13 @@ snapshots: undici@6.28.1: {} - undici@7.29.1: {} + undici@7.29.1: + optional: true undici@8.10.2: {} + undici@8.11.2: {} + unenv@2.0.0-rc.24: dependencies: pathe: 2.0.3 @@ -22196,6 +22669,61 @@ snapshots: '@types/unist': 3.0.3 vfile-message: 4.0.3 + 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): + dependencies: + '@oxc-project/types': 0.151.0 + '@oxlint/plugins': 1.79.0 + '@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) + '@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) + '@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)) + '@vitest/pretty-format': 5.0.1 + '@vitest/snapshot': 5.0.1 + '@vitest/spy': 5.0.1 + '@vitest/utils': 5.0.1 + 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)) + 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)) + oxlint-tsgolint: 7.0.2003 + 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)' + 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)) + optionalDependencies: + '@voidzero-dev/vite-plus-darwin-arm64': 1.0.0 + '@voidzero-dev/vite-plus-darwin-x64': 1.0.0 + '@voidzero-dev/vite-plus-linux-arm64-gnu': 1.0.0 + '@voidzero-dev/vite-plus-linux-arm64-musl': 1.0.0 + '@voidzero-dev/vite-plus-linux-x64-gnu': 1.0.0 + '@voidzero-dev/vite-plus-linux-x64-musl': 1.0.0 + '@voidzero-dev/vite-plus-win32-arm64-msvc': 1.0.0 + '@voidzero-dev/vite-plus-win32-x64-msvc': 1.0.0 + transitivePeerDependencies: + - '@arethetypeswrong/core' + - '@edge-runtime/vm' + - '@opentelemetry/api' + - '@types/node' + - '@vitejs/devtools' + - '@vitest/coverage-istanbul' + - '@vitest/coverage-v8' + - '@vitest/ui' + - bufferutil + - esbuild + - happy-dom + - jiti + - jsdom + - less + - msw + - publint + - sass + - sass-embedded + - stylus + - sugarss + - svelte + - terser + - tsx + - typescript + - unplugin-unused + - unrun + - utf-8-validate + - yaml + 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): dependencies: '@oxc-project/types': 0.151.0 @@ -22251,6 +22779,22 @@ snapshots: - utf-8-validate - yaml + vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0): + dependencies: + lightningcss: 1.33.0 + picomatch: 4.0.7 + postcss: 8.5.28 + rolldown: 1.2.12 + tinyglobby: 0.2.17 + optionalDependencies: + '@types/node': 24.12.4 + esbuild: 0.28.2 + fsevents: 2.3.3 + jiti: 2.7.0 + terser: 5.48.0 + yaml: 2.9.0 + optional: true + vitefu@1.1.3(@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@6.0.3)(unrun@0.2.39)(yaml@2.9.0)): optionalDependencies: 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@6.0.3)(unrun@0.2.39)(yaml@2.9.0)' @@ -22279,6 +22823,31 @@ snapshots: transitivePeerDependencies: - msw + vitest@5.0.1(@types/node@24.12.4)(@vitest/browser-preview@5.0.1)(@vitest/ui@5.0.1(vitest@5.0.1))(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)): + dependencies: + '@types/chai': 5.2.3 + '@vitest/mocker': 5.0.1(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) + chai: 6.2.2 + es-module-lexer: 2.3.2 + expect-type: 1.4.0 + magic-string: 1.4.1 + obug: 2.2.1 + picomatch: 4.0.7 + std-env: 4.3.0 + tinybench: 6.1.4 + tinyexec: 1.3.0 + tinyglobby: 0.2.17 + vite: 8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) + why-is-node-running: 2.3.0 + optionalDependencies: + '@types/node': 24.12.4 + '@vitest/browser-preview': 5.0.1(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(utf-8-validate@6.0.6)(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vitest@5.0.1) + '@vitest/ui': 5.0.1(vitest@5.0.1) + jsdom: 30.1.0(@noble/hashes@1.8.0) + transitivePeerDependencies: + - msw + optional: true + vlq@1.0.1: {} volar-service-css@0.0.70(@volar/language-service@2.4.28): @@ -22465,13 +23034,13 @@ snapshots: siginfo: 2.0.0 stackback: 0.0.2 - workerd@1.20260901.1: + workerd@1.20260918.1: optionalDependencies: - '@cloudflare/workerd-darwin-64': 1.20260901.1 - '@cloudflare/workerd-darwin-arm64': 1.20260901.1 - '@cloudflare/workerd-linux-64': 1.20260901.1 - '@cloudflare/workerd-linux-arm64': 1.20260901.1 - '@cloudflare/workerd-windows-64': 1.20260901.1 + '@cloudflare/workerd-darwin-64': 1.20260918.1 + '@cloudflare/workerd-darwin-arm64': 1.20260918.1 + '@cloudflare/workerd-linux-64': 1.20260918.1 + '@cloudflare/workerd-linux-arm64': 1.20260918.1 + '@cloudflare/workerd-windows-64': 1.20260918.1 wrap-ansi@6.2.0: dependencies: @@ -22504,6 +23073,11 @@ snapshots: bufferutil: 4.1.0 utf-8-validate: 6.0.6 + ws@8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6): + optionalDependencies: + bufferutil: 4.1.0 + utf-8-validate: 6.0.6 + xcode@3.0.1: dependencies: simple-plist: 1.3.1 @@ -22511,9 +23085,8 @@ snapshots: xml-name-validator@5.0.0: {} - xml-naming@0.1.0: {} - - xml-naming@0.3.0: {} + xml-naming@0.1.0: + optional: true xml2js@0.4.23: dependencies: diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 11f052624a48..f6bad514212a 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -30,13 +30,13 @@ catalog: "@clerk/expo": 4.6.8 "@clerk/react": 6.16.1 "@clerk/shared": 4.33.0 - "@effect/atom-react": 4.0.0-rc.115 - "@effect/openapi-generator": 4.0.0-rc.115 - "@effect/platform-node": 4.0.0-rc.115 - "@effect/platform-node-shared": 4.0.0-rc.115 - "@effect/sql-pg": 4.0.0-rc.115 + "@effect/atom-react": 4.0.1 + "@effect/openapi-generator": 4.0.1 + "@effect/platform-node": 4.0.1 + "@effect/platform-node-shared": 4.0.1 + "@effect/sql-pg": 4.0.1 "@effect/tsgo": 0.41.0 - "@effect/vitest": 4.0.0-rc.115 + "@effect/vitest": 4.0.1 "@legendapp/list": 3.3.5 "@noble/curves": 1.9.1 "@noble/hashes": 1.8.0 @@ -45,7 +45,7 @@ catalog: "@tailwindcss/oxide": 4.3.3 "@tailwindcss/vite": 4.3.3 "@types/node": 24.12.4 - effect: 4.0.0-rc.115 + effect: 4.0.1 jose: 6.2.2 lightningcss: 1.33.0 tailwindcss: 4.3.3 @@ -64,20 +64,20 @@ minimumReleaseAgeExclude: - "@clerk/expo@4.6.8" - "@clerk/react@6.16.1" - "@clerk/shared@4.33.0" - - "@distilled.cloud/aws@1.0.0-rc.12" - - "@distilled.cloud/axiom@1.0.0-rc.12" - - "@distilled.cloud/cloudflare@1.0.0-rc.12" - - "@distilled.cloud/core@1.0.0-rc.12" - - "@distilled.cloud/neon@1.0.0-rc.12" - - "@distilled.cloud/planetscale@1.0.0-rc.12" - - "@effect/atom-react@4.0.0-rc.115" - - "@effect/openapi-generator@4.0.0-rc.115" - - "@effect/platform-node-shared@4.0.0-rc.115" - - "@effect/platform-node@4.0.0-rc.115" - - "@effect/sql-pg@4.0.0-rc.115" - - "@effect/vitest@4.0.0-rc.115" - - alchemy@2.0.0-beta.79 - - effect@4.0.0-rc.115 + - "@distilled.cloud/aws@1.0.0-rc.13" + - "@distilled.cloud/axiom@1.0.0-rc.13" + - "@distilled.cloud/cloudflare@1.0.0-rc.13" + - "@distilled.cloud/core@1.0.0-rc.13" + - "@distilled.cloud/neon@1.0.0-rc.13" + - "@distilled.cloud/planetscale@1.0.0-rc.13" + - "@effect/atom-react@4.0.1" + - "@effect/openapi-generator@4.0.1" + - "@effect/platform-node-shared@4.0.1" + - "@effect/platform-node@4.0.1" + - "@effect/sql-pg@4.0.1" + - "@effect/vitest@4.0.1" + - alchemy@2.0.0-beta.80 + - effect@4.0.1 - "@legendapp/list@3.3.5" - "@expo/cli@58.1.1" - "@expo/env@2.5.1" @@ -115,14 +115,14 @@ minimumReleaseAgeExclude: - expo-symbols@58.0.3 - electron@44.4.2 - "@anthropic-ai/claude-agent-sdk@0.3.276" - - "@alchemy.run/cloudflare-runtime@2.0.0-beta.79" - - "@alchemy.run/floci@2.0.0-beta.79" - - "@alchemy.run/node-utils@2.0.0-beta.79" - - "@distilled.cloud/fly-io@1.0.0-rc.12" - - "@distilled.cloud/hetzner@1.0.0-rc.12" - - "@distilled.cloud/prisma@1.0.0-rc.12" - - "@distilled.cloud/railway@1.0.0-rc.12" - - "@distilled.cloud/stripe@1.0.0-rc.12" + - "@alchemy.run/cloudflare-runtime@2.0.0-beta.80" + - "@alchemy.run/floci@2.0.0-beta.80" + - "@alchemy.run/node-utils@2.0.0-beta.80" + - "@distilled.cloud/fly-io@1.0.0-rc.13" + - "@distilled.cloud/hetzner@1.0.0-rc.13" + - "@distilled.cloud/prisma@1.0.0-rc.13" + - "@distilled.cloud/railway@1.0.0-rc.13" + - "@distilled.cloud/stripe@1.0.0-rc.13" - "@shadcn/lint@0.1.5" - cn@0.3.2 - uniwind@1.12.1 @@ -152,6 +152,14 @@ minimumReleaseAgeExclude: - expo-application@58.0.3 - expo-eas-client@58.0.2 - expo-image-loader@58.0.3 + - "@distilled.cloud/acme@1.0.0-rc.13" + - "@distilled.cloud/doppler@1.0.0-rc.13" + - "@distilled.cloud/gcp@1.0.0-rc.13" + - "@distilled.cloud/infisical@1.0.0-rc.13" + - "@distilled.cloud/zerossl@1.0.0-rc.13" + - "@opencode/client@2.0.23" + - "@opencode/protocol@2.0.23" + - "@opencode/schema@2.0.23" overrides: # Keep jsdom's optional peer consistent so Vite+ has one test-runner instance. @@ -217,6 +225,9 @@ overrides: # dependency, and their schemas fail to decode under a second Effect copy. # The `effect` override above already collapses them; these name the edge so it # stays pinned on its own. OpenCode2Client.live.test.ts re-proves it on bumps. + # All three still target Effect rc.112 APIs (effect/unstable/*, Encoding, + # Schema.isStartsWith) that 4.0 removed; their patches port those call sites + # until OpenCode moves to stable Effect. "@opencode/protocol>effect": "catalog:" "@opencode/schema>effect": "catalog:" node-abi: 4.33.0 @@ -231,7 +242,8 @@ packageExtensions: "@expo/config-plugins": 58.0.4 "@effect/vitest@*": dependencies: - vite-plus: "catalog:" + # Same as the vite-plus catalog entry; pnpm rejects catalog: inside packageExtensions. + vite-plus: 1.0.0 peerDependenciesMeta: vitest: optional: true @@ -240,23 +252,26 @@ packageExtensions: vite: "catalog:" patchedDependencies: - alchemy@2.0.0-beta.79: patches/alchemy@2.0.0-beta.79.patch + alchemy@2.0.0-beta.80: patches/alchemy@2.0.0-beta.80.patch expo-glass-effect@58.0.3: patches/expo-glass-effect@58.0.3.patch expo-blur@58.0.3: patches/expo-blur@58.0.3.patch expo-audio@58.0.4: patches/expo-audio@58.0.4.patch "@clerk/expo@4.6.8": patches/@clerk__expo@4.6.8.patch - "@effect/vitest@4.0.0-rc.115": patches/@effect__vitest@4.0.0-rc.115.patch + "@effect/vitest@4.0.1": patches/@effect__vitest@4.0.1.patch "@expo/metro-config@58.0.6": patches/@expo__metro-config@58.0.6.patch expo-sharing@58.0.13: patches/expo-sharing@58.0.13.patch expo-widgets@58.0.11: patches/expo-widgets@58.0.11.patch "@ff-labs/fff-node@0.9.4": patches/@ff-labs__fff-node@0.9.4.patch "@legendapp/list@3.3.5": patches/@legendapp__list@3.3.5.patch + "@opencode/client@2.0.23": patches/@opencode__client@2.0.23.patch + "@opencode/protocol@2.0.23": patches/@opencode__protocol@2.0.23.patch + "@opencode/schema@2.0.23": patches/@opencode__schema@2.0.23.patch "@pierre/diffs@1.3.0-beta.10": patches/@pierre%2Fdiffs@1.3.0-beta.10.patch "@react-native-ai/apple@0.12.0": patches/@react-native-ai__apple@0.12.0.patch "@react-native-menu/menu@2.0.0": patches/@react-native-menu__menu@2.0.0.patch "@react-navigation/native-stack@7.17.6": patches/@react-navigation%2Fnative-stack@7.17.6.patch dbus-next@0.10.2: patches/dbus-next@0.10.2.patch - effect@4.0.0-rc.115: patches/effect@4.0.0-rc.115.patch + effect@4.0.1: patches/effect@4.0.1.patch node-pty@1.2.0-beta.15: patches/node-pty@1.2.0-beta.15.patch # Link http(s) URLs with a port or a single-label host. md4c otherwise requires a dotted host and stops at ':'. react-native-nitro-markdown@0.5.8: patches/react-native-nitro-markdown@0.5.8.patch diff --git a/scripts/apply-web-brand-assets.ts b/scripts/apply-web-brand-assets.ts index 450af75f37be..90b4e39c104a 100644 --- a/scripts/apply-web-brand-assets.ts +++ b/scripts/apply-web-brand-assets.ts @@ -6,7 +6,7 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; -import { Argument, Command, Flag } from "effect/unstable/cli"; +import { Argument, Command, Flag } from "effect/cli"; import { resolveWebAssetBrandForChannel, resolveWebIconOverrides, diff --git a/scripts/build-cli-archive.ts b/scripts/build-cli-archive.ts index e5839989efc7..65835de83019 100644 --- a/scripts/build-cli-archive.ts +++ b/scripts/build-cli-archive.ts @@ -25,8 +25,8 @@ import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as PlatformError from "effect/PlatformError"; import * as Schema from "effect/Schema"; -import { Command, Flag } from "effect/unstable/cli"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { Command, Flag } from "effect/cli"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { HostProcessArchitecture, HostProcessPlatform } from "@t3tools/shared/hostProcess"; import { fromYaml } from "@t3tools/shared/schemaYaml"; diff --git a/scripts/build-desktop-artifact.test.ts b/scripts/build-desktop-artifact.test.ts index 38417a2e4f08..aa733d531631 100644 --- a/scripts/build-desktop-artifact.test.ts +++ b/scripts/build-desktop-artifact.test.ts @@ -12,7 +12,7 @@ import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { BundleNotSelfContainedError, diff --git a/scripts/build-desktop-artifact.ts b/scripts/build-desktop-artifact.ts index 9b2e26c8f459..f8f5a6ca2d52 100644 --- a/scripts/build-desktop-artifact.ts +++ b/scripts/build-desktop-artifact.ts @@ -50,8 +50,8 @@ import type { PlatformError } from "effect/PlatformError"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { Command, Flag } from "effect/unstable/cli"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { Command, Flag } from "effect/cli"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; const LINUX_ICON_SIZES = [16, 22, 24, 32, 48, 64, 128, 256, 512] as const; const DESKTOP_APP_ID = "com.t3tools.t3code"; diff --git a/scripts/build-npm-platform-packages.test.ts b/scripts/build-npm-platform-packages.test.ts index 5fc0d859fc3d..cd813ae742b7 100644 --- a/scripts/build-npm-platform-packages.test.ts +++ b/scripts/build-npm-platform-packages.test.ts @@ -6,7 +6,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { buildNpmPlatformPackages, diff --git a/scripts/build-npm-platform-packages.ts b/scripts/build-npm-platform-packages.ts index 4f56f5b449e6..26ac80b1a3d9 100644 --- a/scripts/build-npm-platform-packages.ts +++ b/scripts/build-npm-platform-packages.ts @@ -28,8 +28,8 @@ import * as Layer from "effect/Layer"; import * as Logger from "effect/Logger"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { Command, Flag } from "effect/unstable/cli"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { Command, Flag } from "effect/cli"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { CLI_ARCHIVE_PLATFORM_KEYS, diff --git a/scripts/dev-runner.test.ts b/scripts/dev-runner.test.ts index be58bcecde08..c8363c181976 100644 --- a/scripts/dev-runner.test.ts +++ b/scripts/dev-runner.test.ts @@ -17,7 +17,7 @@ import * as Path from "effect/Path"; import * as PlatformError from "effect/PlatformError"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { checkPortAvailabilityOnHosts, diff --git a/scripts/dev-runner.ts b/scripts/dev-runner.ts index 5a44c7c1845e..f026e2507e59 100644 --- a/scripts/dev-runner.ts +++ b/scripts/dev-runner.ts @@ -16,8 +16,8 @@ import * as Logger from "effect/Logger"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { Argument, Command, Flag } from "effect/unstable/cli"; -import { ChildProcess } from "effect/unstable/process"; +import { Argument, Command, Flag } from "effect/cli"; +import { ChildProcess } from "effect/process"; import { type DevShareError, shareDevServer, unshareDevServer } from "./lib/dev-share.ts"; import { loadRepoEnv } from "./lib/public-config.ts"; diff --git a/scripts/export-brand-icons.ts b/scripts/export-brand-icons.ts index 620a98655367..6ae7cf3802ea 100644 --- a/scripts/export-brand-icons.ts +++ b/scripts/export-brand-icons.ts @@ -10,8 +10,8 @@ import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { Command, Flag } from "effect/unstable/cli"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { Command, Flag } from "effect/cli"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { BRAND_ASSET_PATHS, DEVELOPMENT_PUBLIC_ICON_OVERRIDES } from "./lib/brand-assets.ts"; import { encodePngIco, readPngDimensions, WINDOWS_ICON_SIZES } from "./lib/icon-export.ts"; diff --git a/scripts/lib/dev-share.test.ts b/scripts/lib/dev-share.test.ts index 2b133e456c46..cddc95e63614 100644 --- a/scripts/lib/dev-share.test.ts +++ b/scripts/lib/dev-share.test.ts @@ -3,7 +3,7 @@ import * as Effect from "effect/Effect"; import * as Layer from "effect/Layer"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { type DevShareError, diff --git a/scripts/lib/dev-share.ts b/scripts/lib/dev-share.ts index 94a1c462043f..08d3b750a672 100644 --- a/scripts/lib/dev-share.ts +++ b/scripts/lib/dev-share.ts @@ -23,7 +23,7 @@ import { } from "@t3tools/tailscale"; import * as Effect from "effect/Effect"; import * as Schema from "effect/Schema"; -import type { ChildProcessSpawner } from "effect/unstable/process"; +import type { ChildProcessSpawner } from "effect/process"; /** * Human-readable gloss for each diagnostic. Deliberately our own words rather diff --git a/scripts/merge-update-manifests.test.ts b/scripts/merge-update-manifests.test.ts index 32431b81d339..8925aaa0798d 100644 --- a/scripts/merge-update-manifests.test.ts +++ b/scripts/merge-update-manifests.test.ts @@ -3,7 +3,7 @@ import { assert, describe, it } from "@effect/vitest"; import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; -import { Command, CliError } from "effect/unstable/cli"; +import { Command, CliError } from "effect/cli"; import { mergePlatformUpdateManifests, diff --git a/scripts/merge-update-manifests.ts b/scripts/merge-update-manifests.ts index a3cb63878b6c..f8a30d660828 100644 --- a/scripts/merge-update-manifests.ts +++ b/scripts/merge-update-manifests.ts @@ -7,7 +7,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { Argument, Command, Flag } from "effect/unstable/cli"; +import { Argument, Command, Flag } from "effect/cli"; import { mergeUpdateManifests, diff --git a/scripts/mobile-native-client.ts b/scripts/mobile-native-client.ts index a1324c0a2c6d..e20151e3457e 100644 --- a/scripts/mobile-native-client.ts +++ b/scripts/mobile-native-client.ts @@ -13,8 +13,8 @@ import * as FileSystem from "effect/FileSystem"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { Argument, Command } from "effect/unstable/cli"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { Argument, Command } from "effect/cli"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; export type NativePlatform = "ios" | "android"; const NativeClientRecord = Schema.Struct({ fingerprint: Schema.String, binary: Schema.String }); diff --git a/scripts/mobile-native-static-check.test.ts b/scripts/mobile-native-static-check.test.ts index 7393b4bd9c82..a3e4b183b3ac 100644 --- a/scripts/mobile-native-static-check.test.ts +++ b/scripts/mobile-native-static-check.test.ts @@ -8,7 +8,7 @@ import * as Path from "effect/Path"; import * as PlatformError from "effect/PlatformError"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { collectSources, runCommand } from "./mobile-native-static-check.ts"; diff --git a/scripts/mobile-native-static-check.ts b/scripts/mobile-native-static-check.ts index a99e6e143630..9ed98ad4414e 100644 --- a/scripts/mobile-native-static-check.ts +++ b/scripts/mobile-native-static-check.ts @@ -9,8 +9,8 @@ import * as FileSystem from "effect/FileSystem"; import * as Logger from "effect/Logger"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { Command } from "effect/unstable/cli"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { Command } from "effect/cli"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; interface NativeStaticTool { readonly command: string; diff --git a/scripts/mock-update-server.test.ts b/scripts/mock-update-server.test.ts index 5e060ff9013b..ac26e013f2c0 100644 --- a/scripts/mock-update-server.test.ts +++ b/scripts/mock-update-server.test.ts @@ -4,7 +4,7 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; -import { HttpClient, HttpRouter } from "effect/unstable/http"; +import { HttpClient, HttpRouter } from "effect/http"; import { makeMockUpdateRouteLayer } from "./mock-update-server.ts"; import { symlinksSupported } from "@t3tools/shared/testing/symlinks"; diff --git a/scripts/mock-update-server.ts b/scripts/mock-update-server.ts index e65d41f0e872..687e0d7513c7 100644 --- a/scripts/mock-update-server.ts +++ b/scripts/mock-update-server.ts @@ -7,7 +7,7 @@ import * as Effect from "effect/Effect"; import * as FileSystem from "effect/FileSystem"; import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; -import { HttpRouter, HttpServerRequest, HttpServerResponse } from "effect/unstable/http"; +import { HttpRouter, HttpServerRequest, HttpServerResponse } from "effect/http"; interface MockUpdateServerConfig { readonly port: number; diff --git a/scripts/notify-discord-release.test.ts b/scripts/notify-discord-release.test.ts index 21588b718ecc..3c890d29d251 100644 --- a/scripts/notify-discord-release.test.ts +++ b/scripts/notify-discord-release.test.ts @@ -11,9 +11,9 @@ import * as Logger from "effect/Logger"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as TestClock from "effect/testing/TestClock"; -import { Command } from "effect/unstable/cli"; -import { HttpClient, HttpClientError, HttpClientResponse, UrlParams } from "effect/unstable/http"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { Command } from "effect/cli"; +import { HttpClient, HttpClientError, HttpClientResponse, UrlParams } from "effect/http"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { buildDiscordReleaseAnnouncement, diff --git a/scripts/notify-discord-release.ts b/scripts/notify-discord-release.ts index d096969c36b8..689fe965a2c5 100644 --- a/scripts/notify-discord-release.ts +++ b/scripts/notify-discord-release.ts @@ -12,14 +12,14 @@ import * as Option from "effect/Option"; import * as Redacted from "effect/Redacted"; import * as Schedule from "effect/Schedule"; import * as Schema from "effect/Schema"; -import { Argument, Command, Flag } from "effect/unstable/cli"; +import { Argument, Command, Flag } from "effect/cli"; import { FetchHttpClient, HttpClient, HttpClientError, HttpClientRequest, HttpClientResponse, -} from "effect/unstable/http"; +} from "effect/http"; export type DiscordReleaseTarget = "prerelease" | "latest"; diff --git a/scripts/resolve-nightly-release.ts b/scripts/resolve-nightly-release.ts index c2413c23dc49..c3ae72484e2d 100644 --- a/scripts/resolve-nightly-release.ts +++ b/scripts/resolve-nightly-release.ts @@ -9,7 +9,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { Command, Flag } from "effect/unstable/cli"; +import { Command, Flag } from "effect/cli"; export interface NightlyReleaseMetadata { readonly baseVersion: string; diff --git a/scripts/resolve-previous-release-tag.test.ts b/scripts/resolve-previous-release-tag.test.ts index 1cffc47aac70..856dd698f76e 100644 --- a/scripts/resolve-previous-release-tag.test.ts +++ b/scripts/resolve-previous-release-tag.test.ts @@ -5,7 +5,7 @@ import * as FileSystem from "effect/FileSystem"; import * as PlatformError from "effect/PlatformError"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { listGitTags, diff --git a/scripts/resolve-previous-release-tag.ts b/scripts/resolve-previous-release-tag.ts index 9dcb656b3955..d6c17d060e42 100644 --- a/scripts/resolve-previous-release-tag.ts +++ b/scripts/resolve-previous-release-tag.ts @@ -8,8 +8,8 @@ import * as FileSystem from "effect/FileSystem"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; import * as String from "effect/String"; -import { Command, Flag } from "effect/unstable/cli"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { Command, Flag } from "effect/cli"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; const ReleaseChannel = Schema.Literals(["stable", "nightly", "preview"]); type ReleaseChannel = typeof ReleaseChannel.Type; diff --git a/scripts/smoke-cli-archive.ts b/scripts/smoke-cli-archive.ts index 0af024c0ec92..179c268b909a 100644 --- a/scripts/smoke-cli-archive.ts +++ b/scripts/smoke-cli-archive.ts @@ -18,13 +18,13 @@ import * as Path from "effect/Path"; import * as Schedule from "effect/Schedule"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { Command, Flag } from "effect/unstable/cli"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { Command, Flag } from "effect/cli"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import * as NetService from "@t3tools/shared/Net"; import { HostProcessPlatform } from "@t3tools/shared/hostProcess"; import { windowsSystemTar } from "./build-cli-archive.ts"; -import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/unstable/http"; +import { FetchHttpClient, HttpClient, HttpClientRequest } from "effect/http"; export class CliArchiveSmokeError extends Schema.TaggedError()( "CliArchiveSmokeError", diff --git a/scripts/sync-reference-repos.test.ts b/scripts/sync-reference-repos.test.ts index e3189936352c..aa21c309c28c 100644 --- a/scripts/sync-reference-repos.test.ts +++ b/scripts/sync-reference-repos.test.ts @@ -6,7 +6,7 @@ import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as Sink from "effect/Sink"; import * as Stream from "effect/Stream"; -import { ChildProcessSpawner } from "effect/unstable/process"; +import { ChildProcessSpawner } from "effect/process"; import { referenceRepos } from "./lib/reference-repos.ts"; import { diff --git a/scripts/sync-reference-repos.ts b/scripts/sync-reference-repos.ts index e56c5fe9e4b4..6a2dcc68c6ed 100644 --- a/scripts/sync-reference-repos.ts +++ b/scripts/sync-reference-repos.ts @@ -9,8 +9,8 @@ import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; import * as Stream from "effect/Stream"; -import { Command, Flag } from "effect/unstable/cli"; -import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process"; +import { Command, Flag } from "effect/cli"; +import { ChildProcess, ChildProcessSpawner } from "effect/process"; import { fromYaml } from "@t3tools/shared/schemaYaml"; import { referenceRepos, type ReferenceRepo } from "./lib/reference-repos.ts"; diff --git a/scripts/update-release-package-versions.test.ts b/scripts/update-release-package-versions.test.ts index 01a27f3273b5..7b2138e2d790 100644 --- a/scripts/update-release-package-versions.test.ts +++ b/scripts/update-release-package-versions.test.ts @@ -8,7 +8,7 @@ import * as Layer from "effect/Layer"; import * as Path from "effect/Path"; import * as PlatformError from "effect/PlatformError"; import * as Schema from "effect/Schema"; -import { Command, CliError } from "effect/unstable/cli"; +import { Command, CliError } from "effect/cli"; import * as TestConsole from "effect/testing/TestConsole"; import { fromJsonStringPretty } from "@t3tools/shared/schemaJson"; diff --git a/scripts/update-release-package-versions.ts b/scripts/update-release-package-versions.ts index ec825d709d68..2c6dbe3b4eec 100644 --- a/scripts/update-release-package-versions.ts +++ b/scripts/update-release-package-versions.ts @@ -9,7 +9,7 @@ import * as FileSystem from "effect/FileSystem"; import * as Option from "effect/Option"; import * as Path from "effect/Path"; import * as Schema from "effect/Schema"; -import { Argument, Command, Flag } from "effect/unstable/cli"; +import { Argument, Command, Flag } from "effect/cli"; import { fromJsonStringPretty } from "@t3tools/shared/schemaJson"; export class ReleasePackageManifestError extends Schema.TaggedError()( From b116ef4db5395eb455d8646a208be45f9c313a95 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Mon, 5 Oct 2026 11:15:01 -0700 Subject: [PATCH 2/4] chore(deps): drop unused RpcClient hooks from the effect patch RequestHooks and the ConnectionHooks onPing/onPong/onPingTimeout callbacks have had no callers since the client connection rewrite (#2978). The patch now carries only MCP session DELETE (upstream: Effect-TS/effect#8773), the getSetCookie guard (Effect-TS/effect#8772) and the missed-pong tolerance (Effect-TS/effect#8774). Co-Authored-By: Claude Opus 5.5 (1M context) --- patches/effect@4.0.1.patch | 269 +----------------------------- pnpm-lock.yaml | 328 ++++++++++++++++++------------------- 2 files changed, 171 insertions(+), 426 deletions(-) diff --git a/patches/effect@4.0.1.patch b/patches/effect@4.0.1.patch index 20bfe1cbc5bc..6f0178d21eda 100644 --- a/patches/effect@4.0.1.patch +++ b/patches/effect@4.0.1.patch @@ -66,252 +66,13 @@ index 42fba67..2b4981b 100644 } get remoteAddress() { return Option.none(); -diff --git a/dist/rpc/RpcClient.d.ts b/dist/rpc/RpcClient.d.ts -index c498ff7..7680fec 100644 ---- a/dist/rpc/RpcClient.d.ts -+++ b/dist/rpc/RpcClient.d.ts -@@ -2,6 +2,7 @@ import * as Cause from "../Cause.ts"; - import * as Context from "../Context.ts"; - import type * as Duration from "../Duration.ts"; - import * as Effect from "../Effect.ts"; -+import * as Exit from "../Exit.ts"; - import * as Headers from "../http/Headers.ts"; - import * as HttpClient from "../http/HttpClient.ts"; - import * as Layer from "../Layer.ts"; -@@ -299,9 +300,40 @@ export declare const layerProtocolWorker: (options: { - readonly targetUtilization?: number | undefined; - readonly timeToLive: Duration.Input; - }) => Layer.Layer; -+declare const RequestHooks_base: Context.ServiceClass Effect.Effect) | undefined; -+ readonly onRequestChunk?: ((info: { -+ readonly id: RequestId; -+ readonly tag: string; -+ readonly chunkCount: number; -+ }) => Effect.Effect) | undefined; -+ readonly onRequestExit?: ((info: { -+ readonly id: RequestId; -+ readonly tag: string; -+ readonly stream: boolean; -+ readonly exit: Exit.Exit; -+ }) => Effect.Effect) | undefined; -+ readonly onRequestInterrupt?: ((info: { -+ readonly id: RequestId; -+ readonly tag?: string | undefined; -+ }) => Effect.Effect) | undefined; -+}>; -+/** -+ * @since 4.0.0 -+ * @category RequestHooks -+ */ -+export declare class RequestHooks extends RequestHooks_base { -+} - declare const ConnectionHooks_base: Context.ServiceClass; - readonly onDisconnect: Effect.Effect; -+ readonly onPing?: Effect.Effect | undefined; -+ readonly onPong?: Effect.Effect | undefined; -+ readonly onPingTimeout?: Effect.Effect | undefined; - }>; - /** - * Represents optional client protocol hooks that run when a transport connects diff --git a/dist/rpc/RpcClient.js b/dist/rpc/RpcClient.js -index 8af2e2e..d657cf2 100644 +index 8af2e2e..65acae4 100644 --- a/dist/rpc/RpcClient.js +++ b/dist/rpc/RpcClient.js -@@ -50,6 +50,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro - const services = yield* Effect.context(); - const scope = Context.get(services, Scope.Scope); - const entries = new Map(); -+ const hooks = yield* Effect.serviceOption(RequestHooks); - let isShutdown = false; - yield* Scope.addFinalizer(scope, Effect.withFiber(parent => { - isShutdown = true; -@@ -87,6 +88,11 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro - return Effect.interrupt; - } - const id = generateRequestId(); -+ const onStart = Option.isSome(hooks) && hooks.value.onRequestStart ? hooks.value.onRequestStart({ -+ id, -+ tag: rpc._tag, -+ stream: false -+ }) : Effect.void; - const send = middleware(message => options.onFromClient({ - message, - context, -@@ -104,7 +110,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro - headers: Headers.merge(parentFiber.getRef(CurrentHeaders), headers) - }); - if (discard) { -- return send; -+ return onStart.pipe(Effect.andThen(send)); - } - let fiber; - return Effect.onInterrupt(Effect.callback(resume => { -@@ -122,7 +128,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro - } - }; - entries.set(id, entry); -- fiber = send.pipe(span ? Effect.withParentSpan(span, { -+ fiber = onStart.pipe(Effect.andThen(send), span ? Effect.withParentSpan(span, { - captureStackTrace: false - }) : identity, Effect.runForkWith(parentFiber.context)); - fiber.addObserver(exit => { -@@ -131,8 +137,9 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro - } - }); - }), interruptors => { -+ const entry = entries.get(id); - entries.delete(id); -- return Effect.andThen(Fiber.interrupt(fiber), sendInterrupt(id, Array.from(interruptors), context)); -+ return Effect.andThen(Fiber.interrupt(fiber), sendInterrupt(id, Array.from(interruptors), context, entry?.rpc._tag)); - }); - }); - const onStreamRequest = Effect.fnUntraced(function* (rpc, middleware, payload, headers, streamBufferSize, context) { -@@ -144,22 +151,29 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro - }); - const fiber = Fiber.getCurrent(); - const id = generateRequestId(); -+ const onStart = Option.isSome(hooks) && hooks.value.onRequestStart ? hooks.value.onRequestStart({ -+ id, -+ tag: rpc._tag, -+ stream: true -+ }) : Effect.void; - const scope = Context.getUnsafe(fiber.context, Scope.Scope); - const queue = yield* Queue.bounded(streamBufferSize); - yield* Scope.addFinalizerExit(scope, exit => { - Queue.shutdownUnsafe(queue); -- if (!entries.has(id)) return Effect.void; -+ const entry = entries.get(id); -+ if (!entry) return Effect.void; - entries.delete(id); -- return sendInterrupt(id, Exit.isFailure(exit) ? Array.from(Cause.interruptors(exit.cause)) : [], context); -+ return sendInterrupt(id, Exit.isFailure(exit) ? Array.from(Cause.interruptors(exit.cause)) : [], context, entry.rpc._tag); - }); - entries.set(id, { - _tag: "Queue", - rpc, - queue, - scope, -- context -+ context, -+ chunkCount: 0 - }); -- yield* middleware(message => options.onFromClient({ -+ yield* onStart.pipe(Effect.andThen(middleware(message => options.onFromClient({ - message, - context, - discard: false -@@ -174,7 +188,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro - sampled: span.sampled - } : {}), - headers: Headers.merge(fiber.getRef(CurrentHeaders), headers) -- }).pipe(span ? Effect.withParentSpan(span, { -+ }))).pipe(span ? Effect.withParentSpan(span, { - captureStackTrace: false - }) : identity, Effect.onError(cause => Queue.failCause(queue, cause)), Effect.interruptible, Effect.forkIn(scope, { - startImmediately: true -@@ -204,7 +218,10 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro - }); - }; - }; -- const sendInterrupt = (requestId, interruptors, context) => Effect.callback(resume => { -+ const sendInterrupt = (requestId, interruptors, context, tag) => (Option.isSome(hooks) && hooks.value.onRequestInterrupt ? hooks.value.onRequestInterrupt({ -+ id: requestId, -+ tag -+ }) : Effect.void).pipe(Effect.andThen(Effect.callback(resume => { - const parentFiber = Fiber.getCurrent(); - const fiber = options.onFromClient({ - message: { -@@ -218,7 +235,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro - fiber.addObserver(() => { - resume(Effect.void); - }); -- }); -+ }))); - const write = message => { - switch (message._tag) { - case "Chunk": -@@ -226,7 +243,13 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro - const requestId = message.requestId; - const entry = entries.get(requestId); - if (!entry || entry._tag !== "Queue") return Effect.void; -- return Queue.offerAll(entry.queue, message.values).pipe(supportsAck ? Effect.flatMap(() => options.onFromClient({ -+ const chunkCount = entry.chunkCount += message.values.length; -+ const onChunk = Option.isSome(hooks) && hooks.value.onRequestChunk ? hooks.value.onRequestChunk({ -+ id: requestId, -+ tag: entry.rpc._tag, -+ chunkCount -+ }) : Effect.void; -+ return Queue.offerAll(entry.queue, message.values).pipe(Effect.andThen(onChunk), supportsAck ? Effect.flatMap(() => options.onFromClient({ - message: { - _tag: "Ack", - requestId: message.requestId -@@ -241,11 +264,18 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro - const entry = entries.get(requestId); - if (!entry) return Effect.void; - entries.delete(requestId); -+ const onExit = Option.isSome(hooks) && hooks.value.onRequestExit ? hooks.value.onRequestExit({ -+ id: requestId, -+ tag: entry.rpc._tag, -+ stream: entry._tag === "Queue", -+ exit: message.exit -+ }) : Effect.void; - if (entry._tag === "Effect") { -- entry.resume(message.exit); -- return Effect.void; -+ return onExit.pipe(Effect.andThen(Effect.sync(() => { -+ entry.resume(message.exit); -+ }))); - } -- return message.exit._tag === "Success" ? Queue.end(entry.queue) : Queue.failCause(entry.queue, message.exit.cause); -+ return onExit.pipe(Effect.andThen(message.exit._tag === "Success" ? Queue.end(entry.queue) : Queue.failCause(entry.queue, message.exit.cause))); - } - case "Defect": - { -@@ -613,7 +643,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun - // `parser` is replaced on every connect, and a stateful serialization - // encodes against the connection it is writing to, so the ping is encoded - // when it is sent rather than once up front. -- const pinger = yield* makePinger(Effect.suspend(() => writer.write(parser.encode(constPing)))); -+ const pinger = yield* makePinger(Effect.suspend(() => writer.write(parser.encode(constPing))), Option.isSome(hooks) ? hooks.value : undefined); - let currentError; - const broadcast = response => Effect.forEach(clientIds, clientId => writeResponse(clientId, response)); - const broadcastError = error => { -@@ -633,8 +663,7 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun - body: () => { - const response = responses[i++]; - if (response._tag === "Pong") { -- pinger.onPong(); -- return Effect.void; -+ return pinger.onPong; - } - if (Object.hasOwn(response, "requestId")) { - const requestId = response.requestId; -@@ -679,11 +708,11 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun - yield* processData(frames[i]); - } - } -- }).pipe(Effect.scoped, Effect.raceFirst(Effect.flatMap(pinger.timeout, () => Effect.fail(new Socket.SocketError({ -+ }).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({ - reason: new Socket.SocketReadError({ - cause: new Error("ping timeout") - }) -- }))))); -+ }))))))); - }).pipe(Option.isSome(hooks) ? Effect.ensuring(hooks.value.onDisconnect) : identity, Effect.tapCause(cause => { - const error = Cause.findError(cause); - const hasError = Result.isSuccess(error); -@@ -724,20 +753,28 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun - }; - })); +@@ -726,17 +726,25 @@ export const makeProtocolSocket = options => Protocol.make(Effect.fnUntraced(fun const defaultRetryPolicy = /*#__PURE__*/Schedule.min([/*#__PURE__*/Schedule.exponential(500, 1.5), /*#__PURE__*/Schedule.spaced(5000)]); --const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing) { -+const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing, hooks) { + const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing) { let recievedPong = true; + let missedPongs = 0; const latch = Latch.makeUnsafe(); @@ -320,38 +81,22 @@ index 8af2e2e..d657cf2 100644 + missedPongs = 0; latch.closeUnsafe(); }; -- const onPong = () => { -+ const onPong = Effect.sync(() => { + const onPong = () => { recievedPong = true; -- }; + missedPongs = 0; -+ }).pipe(Effect.andThen(hooks?.onPong ?? Effect.void)); + }; yield* Effect.suspend(() => { - if (!recievedPong) return latch.open; + if (!recievedPong) { + missedPongs += 1; + if (missedPongs >= 3) return latch.open; -+ return (hooks?.onPing ?? Effect.void).pipe(Effect.andThen(writePing)); ++ return writePing; + } recievedPong = false; -- return writePing; + missedPongs = 0; -+ return (hooks?.onPing ?? Effect.void).pipe(Effect.andThen(writePing)); + return writePing; }).pipe(Effect.delay("5 seconds"), Effect.ignore, Effect.forever, Effect.interruptible, Effect.forkScoped); return { - timeout: latch.await, -@@ -891,6 +928,11 @@ export const makeProtocolWorker = options => Protocol.make(Effect.fnUntraced(fun - * @since 4.0.0 - */ - export const layerProtocolWorker = /*#__PURE__*/flow(makeProtocolWorker, /*#__PURE__*/Layer.effect(Protocol)); -+/** -+ * @since 4.0.0 -+ * @category RequestHooks -+ */ -+export class RequestHooks extends /*#__PURE__*/Context.Service()("effect/rpc/RpcClient/RequestHooks") {} - /** - * Represents optional client protocol hooks that run when a transport connects - * and disconnects. diff --git a/src/http/HttpClientResponse.ts b/src/http/HttpClientResponse.ts index c037015..a8b0d8b 100644 --- a/src/http/HttpClientResponse.ts diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 31936d2e9b51..8c400cafb680 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -106,7 +106,7 @@ patchedDependencies: '@react-navigation/native-stack@7.17.6': e667c3cef8c78bb9ff4882ee5bd23a432247b843060a9499eb5f07e9e2295552 alchemy@2.0.0-beta.80: bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd dbus-next@0.10.2: cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4 - effect@4.0.1: 728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb + effect@4.0.1: 612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1 expo-audio@58.0.4: c20cb927d6848c53e7bf6ec14fe12f19daae9210165d2dbaf4e0f97ce31e8742 expo-blur@58.0.3: d0311b0c0b05bd94393bd9a84653cb42503d5f3c8a19eb2627c34ace08bedf18 expo-glass-effect@58.0.3: f750041c45ab838a3530451dc7b50d6640a79141037a1b0499c5e3412a860c57 @@ -155,7 +155,7 @@ importers: version: 0.13.0 '@effect/platform-node': specifier: 4.0.1 - version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) + 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) '@napi-rs/keyring': specifier: ^1.3.0 version: 1.3.0 @@ -179,7 +179,7 @@ importers: version: 0.10.2(patch_hash=cfff57561b0ee59b5addb3b2e6c6f20906e967507a530ab67e8db8108e520ba4) effect: specifier: 4.0.1 - version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) electron: specifier: 44.4.2 version: 44.4.2 @@ -201,7 +201,7 @@ importers: devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -250,7 +250,7 @@ importers: version: 4.6.8(patch_hash=b8b22ab733de5bea846ad9e88046c10582352fe9ad86f314f368b2a823f0f281)(9fda653cb5598772915b4a39a7aee91d) '@effect/atom-react': specifier: 4.0.1 - version: 4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(react@19.3.0)(scheduler@0.28.0) + version: 4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(react@19.3.0)(scheduler@0.28.0) '@expo-google-fonts/dm-sans': specifier: ^0.4.2 version: 0.4.2 @@ -328,7 +328,7 @@ importers: version: 8.0.3 effect: specifier: 4.0.1 - version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) expo: specifier: 58.0.2 version: 58.0.2(56fc8ddb8129740412739f0f0a6ee025) @@ -494,7 +494,7 @@ importers: devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1(vitest@5.0.1))(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(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)))(yaml@2.9.0) + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1(vitest@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)(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)))(yaml@2.9.0) '@pierre/trees': specifier: 1.0.0-beta.4 version: 1.0.0-beta.4(react-dom@19.3.0(react@19.3.0))(react@19.3.0) @@ -524,10 +524,10 @@ importers: version: 1.0.31 '@effect/platform-node': specifier: 4.0.1 - version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) + 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) '@effect/platform-node-shared': specifier: 4.0.1 - version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(utf-8-validate@6.0.6) + version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(utf-8-validate@6.0.6) '@ff-labs/fff-node': specifier: 0.9.4 version: 0.9.4(patch_hash=c4e3cc2420ceb9dc650f9d189e9c24baf7e83f342998bacda5f459a4ce7927a8) @@ -539,7 +539,7 @@ importers: version: 1.15.13 '@opencode/client': specifier: 2.0.23 - version: 2.0.23(patch_hash=f725d6e6d9af0d56dc6ed71b863518fbfc751af1773cff2311209d2c404cf4cd)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + version: 2.0.23(patch_hash=f725d6e6d9af0d56dc6ed71b863518fbfc751af1773cff2311209d2c404cf4cd)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) '@opencode/protocol': specifier: 2.0.23 version: 2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685) @@ -551,7 +551,7 @@ importers: version: 8.0.3 effect: specifier: 4.0.1 - version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) jose: specifier: 'catalog:' version: 6.2.2 @@ -576,7 +576,7 @@ importers: devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) '@t3tools/contracts': specifier: workspace:* version: link:../../packages/contracts @@ -639,7 +639,7 @@ importers: version: 3.2.2(react@19.2.6) '@effect/atom-react': specifier: 4.0.1 - version: 4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(react@19.2.6)(scheduler@0.28.0) + version: 4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(react@19.2.6)(scheduler@0.28.0) '@formkit/auto-animate': specifier: ^0.9.0 version: 0.9.0 @@ -702,7 +702,7 @@ importers: version: 3.4.16 effect: specifier: 4.0.1 - version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) hast-util-to-html: specifier: ^9.0.5 version: 9.0.5 @@ -766,10 +766,10 @@ importers: devDependencies: '@effect/platform-node': specifier: 4.0.1 - version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) + 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) '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) '@rolldown/plugin-babel': specifier: ^0.2.0 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) @@ -838,7 +838,7 @@ importers: version: 3.18.1(react-dom@19.3.0(react@19.3.0))(react@19.2.6) '@effect/sql-pg': specifier: 4.0.1 - version: 4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + version: 4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) '@noble/curves': specifier: 'catalog:' version: 1.9.1 @@ -856,23 +856,23 @@ importers: version: link:../../packages/shared alchemy: specifier: 2.0.0-beta.80 - version: 2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(bc2c8272d4f80ff5e255def168c10b3c) + version: 2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(b90ad5ec57bd255d4e38630809267169) drizzle-orm: specifier: 1.0.0-rc.5-ab785fc - version: 1.0.0-rc.5-ab785fc(8fb3f5e892a2b61c45030ec806e1385e) + version: 1.0.0-rc.5-ab785fc(b25f7c76220d3224392693e60345984f) effect: specifier: 4.0.1 - version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) devDependencies: '@cloudflare/workers-types': specifier: ^4.20260601.1 version: 4.20260604.1 '@effect/platform-node': specifier: 4.0.1 - version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) + 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) '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -893,17 +893,17 @@ importers: dependencies: '@effect/platform-node': specifier: 4.0.1 - version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) + 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) '@oxlint/plugins': specifier: ^1.63.0 version: 1.68.0 effect: specifier: 4.0.1 - version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) vite-plus: specifier: 'catalog:' 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) @@ -918,7 +918,7 @@ importers: version: link:../shared effect: specifier: 4.0.1 - version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) mdast-util-directive: specifier: ^3.1.0 version: 3.1.0 @@ -940,7 +940,7 @@ importers: devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) '@types/three': specifier: 0.180.0 version: 0.180.0 @@ -955,11 +955,11 @@ importers: dependencies: effect: specifier: 4.0.1 - version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) vite-plus: specifier: 'catalog:' 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) @@ -968,17 +968,17 @@ importers: dependencies: effect: specifier: 4.0.1 - version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) devDependencies: '@effect/openapi-generator': specifier: 'catalog:' - version: 4.0.1(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(encoding@0.1.13) + 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) '@effect/platform-node': specifier: 4.0.1 - version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) + 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) '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -990,17 +990,17 @@ importers: dependencies: effect: specifier: 4.0.1 - version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) devDependencies: '@effect/openapi-generator': specifier: 'catalog:' - version: 4.0.1(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(encoding@0.1.13) + 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) '@effect/platform-node': specifier: 4.0.1 - version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) + 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) '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -1021,7 +1021,7 @@ importers: version: link:../contracts effect: specifier: 4.0.1 - version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) jose: specifier: 'catalog:' version: 6.2.2 @@ -1031,10 +1031,10 @@ importers: devDependencies: '@effect/platform-node': specifier: 4.0.1 - version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) + 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) '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -1052,14 +1052,14 @@ importers: version: link:../shared effect: specifier: 4.0.1 - version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) devDependencies: '@effect/platform-node': specifier: 4.0.1 - version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) + 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) '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -1074,11 +1074,11 @@ importers: version: link:../shared effect: specifier: 4.0.1 - version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -1090,7 +1090,7 @@ importers: dependencies: '@effect/platform-node': specifier: 4.0.1 - version: 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) + 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) '@electron/asar': specifier: ^4.3.0 version: 4.3.0 @@ -1105,7 +1105,7 @@ importers: version: link:../packages/tailscale effect: specifier: 4.0.1 - version: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) pngjs: specifier: 7.0.0 version: 7.0.0 @@ -1115,7 +1115,7 @@ importers: devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) + version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) '@types/pngjs': specifier: 6.0.5 version: 6.0.5 @@ -11719,14 +11719,14 @@ snapshots: dependencies: json-schema: 0.4.0 - '@alchemy.run/cloudflare-runtime@2.0.0-beta.80(@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)))(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(rolldown@1.2.5)(typescript@7.0.2)': + '@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)': dependencies: '@alchemy.run/node-utils': 2.0.0-beta.80 '@cloudflare/unenv-preset': 2.16.1(unenv@2.0.0-rc.24)(workerd@1.20260918.1) - '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) '@puppeteer/browsers': 3.2.2(yauzl@3.4.0) capnp-es: 0.0.16(typescript@7.0.2) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) magic-string: 0.30.21 mime: 4.1.0 sharp: 0.35.4(@types/node@24.12.4) @@ -11734,7 +11734,7 @@ snapshots: workerd: 1.20260918.1 yauzl: 3.4.0 optionalDependencies: - '@effect/platform-node': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) + '@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) rolldown: 1.2.5 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)' transitivePeerDependencies: @@ -11742,9 +11742,9 @@ snapshots: - proxy-agent - typescript - '@alchemy.run/floci@2.0.0-beta.80(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@alchemy.run/floci@2.0.0-beta.80(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) '@alchemy.run/node-utils@2.0.0-beta.80': dependencies: @@ -13036,86 +13036,86 @@ snapshots: '@dimforge/rapier3d-compat@0.12.0': {} - '@distilled.cloud/acme@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/acme@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/aws@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/aws@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) '@smithy/types': 4.18.0 - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/axiom@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/axiom@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/core@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/core@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) graphql: 16.11.0 - '@distilled.cloud/doppler@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/doppler@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/fly-io@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/fly-io@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/gcp@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/gcp@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/hetzner@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/hetzner@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/infisical@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/infisical@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/neon@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/neon@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/planetscale@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/planetscale@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/prisma@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/prisma@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/railway@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/railway@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/stripe@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/stripe@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/zerossl@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@distilled.cloud/zerossl@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) '@dnd-kit/accessibility@3.1.1(react@19.2.6)': dependencies: @@ -13151,62 +13151,62 @@ snapshots: '@drizzle-team/brocli@0.12.0': {} - '@effect/atom-react@4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(react@19.2.6)(scheduler@0.28.0)': + '@effect/atom-react@4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(react@19.2.6)(scheduler@0.28.0)': dependencies: - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) react: 19.2.6 scheduler: 0.28.0 - '@effect/atom-react@4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(react@19.3.0)(scheduler@0.28.0)': + '@effect/atom-react@4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(react@19.3.0)(scheduler@0.28.0)': dependencies: - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) react: 19.3.0 scheduler: 0.28.0 - '@effect/openapi-generator@4.0.1(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6))(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(encoding@0.1.13)': + '@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)': dependencies: - '@effect/platform-node': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@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) swagger2openapi: 7.0.8(encoding@0.1.13) transitivePeerDependencies: - encoding - '@effect/platform-node-shared@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(utf-8-validate@6.0.6)': + '@effect/platform-node-shared@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(utf-8-validate@6.0.6)': dependencies: '@types/ws': 8.18.1 - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) ws: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) transitivePeerDependencies: - bufferutil - utf-8-validate - '@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6)': + '@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)': dependencies: - '@effect/platform-node-shared': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(utf-8-validate@6.0.6) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + '@effect/platform-node-shared': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(utf-8-validate@6.0.6) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) redis: 6.2.1 undici: 8.11.2 transitivePeerDependencies: - bufferutil - utf-8-validate - '@effect/sql-d1@4.0.0(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@effect/sql-d1@4.0.0(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: '@cloudflare/workers-types': 5.20261004.1 - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@effect/sql-pg@4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@effect/sql-pg@4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@effect/sql-sqlite-bun@4.0.0-rc.112(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@effect/sql-sqlite-bun@4.0.0-rc.112(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) optional: true - '@effect/sql-sqlite-do@4.0.0(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@effect/sql-sqlite-do@4.0.0(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) '@effect/tsgo-darwin-arm64@0.41.0': optional: true @@ -13239,9 +13239,9 @@ snapshots: '@effect/tsgo-win32-arm64': 0.41.0 '@effect/tsgo-win32-x64': 0.41.0 - '@effect/vitest@4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1(vitest@5.0.1))(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(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)))(yaml@2.9.0)': + '@effect/vitest@4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1(vitest@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)(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)))(yaml@2.9.0)': dependencies: - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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) optionalDependencies: 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)) @@ -13277,9 +13277,9 @@ snapshots: - utf-8-validate - yaml - '@effect/vitest@4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0)': + '@effect/vitest@4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0)': dependencies: - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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) optionalDependencies: vitest: 5.0.1(@types/node@24.12.4)(@vitest/browser-preview@5.0.1)(@vitest/ui@5.0.1(vitest@5.0.1))(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) @@ -14387,7 +14387,7 @@ snapshots: '@libsql/isomorphic-ws@0.1.5(bufferutil@4.1.0)(utf-8-validate@6.0.6)': dependencies: '@types/ws': 8.18.1 - ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) + ws: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) transitivePeerDependencies: - bufferutil - utf-8-validate @@ -14682,22 +14682,22 @@ snapshots: dependencies: cross-spawn: 7.0.6 - '@opencode/client@2.0.23(patch_hash=f725d6e6d9af0d56dc6ed71b863518fbfc751af1773cff2311209d2c404cf4cd)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))': + '@opencode/client@2.0.23(patch_hash=f725d6e6d9af0d56dc6ed71b863518fbfc751af1773cff2311209d2c404cf4cd)(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: '@opencode/protocol': 2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685) '@opencode/schema': 2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59) optionalDependencies: - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) '@opencode/protocol@2.0.23(patch_hash=17a82f6c2c98fd0371e786c211a4fbdaaba403577a25733e5e99a0c25a16a685)': dependencies: '@opencode/schema': 2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59) - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) '@opencode/schema@2.0.23(patch_hash=650f1b8602789407c010861284272dcb6bd6de01ec6a75bf3c0904a0e7596d59)': dependencies: '@standard-schema/spec': 1.1.0 - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) '@oslojs/encoding@1.1.0': {} @@ -16909,37 +16909,37 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - alchemy@2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(bc2c8272d4f80ff5e255def168c10b3c): + alchemy@2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(b90ad5ec57bd255d4e38630809267169): dependencies: - '@alchemy.run/cloudflare-runtime': 2.0.0-beta.80(@distilled.cloud/cloudflare@1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)))(@effect/platform-node@4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(rolldown@1.2.5)(typescript@7.0.2) - '@alchemy.run/floci': 2.0.0-beta.80(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@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) + '@alchemy.run/floci': 2.0.0-beta.80(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) '@alchemy.run/node-utils': 2.0.0-beta.80 '@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)) - '@distilled.cloud/acme': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@distilled.cloud/aws': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@distilled.cloud/axiom': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@distilled.cloud/doppler': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@distilled.cloud/fly-io': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@distilled.cloud/gcp': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@distilled.cloud/hetzner': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@distilled.cloud/infisical': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@distilled.cloud/neon': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@distilled.cloud/planetscale': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@distilled.cloud/prisma': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@distilled.cloud/railway': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@distilled.cloud/stripe': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@distilled.cloud/zerossl': 1.0.0-rc.13(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@effect/sql-d1': 4.0.0(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@effect/sql-sqlite-do': 4.0.0(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@distilled.cloud/acme': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@distilled.cloud/aws': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@distilled.cloud/axiom': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@distilled.cloud/cloudflare': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@distilled.cloud/core': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@distilled.cloud/doppler': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@distilled.cloud/fly-io': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@distilled.cloud/gcp': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@distilled.cloud/hetzner': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@distilled.cloud/infisical': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@distilled.cloud/neon': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@distilled.cloud/planetscale': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@distilled.cloud/prisma': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@distilled.cloud/railway': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@distilled.cloud/stripe': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@distilled.cloud/zerossl': 1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@effect/sql-d1': 4.0.0(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@effect/sql-sqlite-do': 4.0.0(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) '@neon/functions': 0.11.0(hono@4.13.7) '@octokit/rest': 22.0.1 '@octokit/webhooks': 14.2.0 '@types/aws-lambda': 8.10.161 capnweb: 0.12.0 - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) fflate: 0.8.3 libsodium-wrappers: 0.8.4 pathe: 2.0.3 @@ -16948,11 +16948,11 @@ snapshots: tinyglobby: 0.2.17 yaml: 2.9.0 optionalDependencies: - '@effect/platform-node': 4.0.1(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(redis@6.2.1)(utf-8-validate@6.0.6) - '@effect/sql-pg': 4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@effect/vitest': 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1)(bufferutil@4.1.0)(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb))(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)(vitest@5.0.1)(yaml@2.9.0) + '@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/sql-pg': 4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@effect/vitest': 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) drizzle-kit: 1.0.0-rc.5-ab785fc - drizzle-orm: 1.0.0-rc.5-ab785fc(8fb3f5e892a2b61c45030ec806e1385e) + drizzle-orm: 1.0.0-rc.5-ab785fc(b25f7c76220d3224392693e60345984f) mongodb: 6.21.0(@aws-sdk/credential-providers@3.1062.0)(socks@2.8.9) pg: 8.23.0 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)' @@ -18109,17 +18109,17 @@ snapshots: get-tsconfig: 4.14.3 jiti: 2.7.0 - drizzle-orm@1.0.0-rc.5-ab785fc(8fb3f5e892a2b61c45030ec806e1385e): + drizzle-orm@1.0.0-rc.5-ab785fc(b25f7c76220d3224392693e60345984f): optionalDependencies: '@cloudflare/workers-types': 4.20260604.1 - '@effect/sql-d1': 4.0.0(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@effect/sql-pg': 4.0.1(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@effect/sql-sqlite-bun': 4.0.0-rc.112(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) - '@effect/sql-sqlite-do': 4.0.0(effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb)) + '@effect/sql-d1': 4.0.0(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@effect/sql-pg': 4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@effect/sql-sqlite-bun': 4.0.0-rc.112(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + '@effect/sql-sqlite-do': 4.0.0(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) '@electric-sql/pglite': 0.3.15 '@libsql/client': 0.17.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) bun-types: 1.3.14 - effect: 4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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) pg: 8.23.0 valibot: 1.2.0(typescript@7.0.2) @@ -18141,7 +18141,7 @@ snapshots: ee-first@1.1.1: {} - effect@4.0.1(patch_hash=728e4a9d61b657cc673b0cb4c9c74567f572d5bcd406d2f0444873988ead2fbb): {} + effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1): {} ejs@3.1.10: dependencies: @@ -19514,7 +19514,7 @@ snapshots: parse5: 8.0.1 saxes: 6.0.0 tough-cookie: 6.0.2 - undici: 8.10.2 + undici: 8.11.2 w3c-xmlserializer: 5.0.0 webidl-conversions: 8.0.1 whatwg-mimetype: 5.0.0 From 73c42b103fb9edd17622a9a3cf5c5846cf910afb Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Mon, 5 Oct 2026 11:37:22 -0700 Subject: [PATCH 3/4] chore(deps): stop installing a second vitest and vite for @effect/vitest MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit @effect/vitest 4.0.1 declares vitest as a peer. pnpm auto-installed one for it, and that vitest brought real vite@8.3.2 with its own rolldown, since the vite → vite-plus-core override does not reach auto-installed peers. Our patch already makes @effect/vitest import vite-plus/test, so the patch now also drops the unused vitest peer, and the peerDependenciesMeta extension that only marked it optional goes away. Co-Authored-By: Claude Opus 5.5 (1M context) --- patches/@effect__vitest@4.0.1.patch | 12 + pnpm-lock.yaml | 385 ++-------------------------- pnpm-workspace.yaml | 3 - 3 files changed, 32 insertions(+), 368 deletions(-) diff --git a/patches/@effect__vitest@4.0.1.patch b/patches/@effect__vitest@4.0.1.patch index be5bbf6c9872..f11210fb9794 100644 --- a/patches/@effect__vitest@4.0.1.patch +++ b/patches/@effect__vitest@4.0.1.patch @@ -58,6 +58,18 @@ index 75a243d..08a4c89 100644 // ---------------------------- // Primitives // ---------------------------- +diff --git a/package.json b/package.json +index d64c43d..939548e 100644 +--- a/package.json ++++ b/package.json +@@ -37,7 +37,6 @@ + "provenance": true + }, + "peerDependencies": { +- "vitest": ">=5.0.0 <6.0.0", + "effect": "^4.0.1" + }, + "devDependencies": { diff --git a/src/index.ts b/src/index.ts index 20c0497..2b16d32 100644 --- a/src/index.ts diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 8c400cafb680..f4895892d817 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -89,11 +89,11 @@ overrides: vite: npm:@voidzero-dev/vite-plus-core@1.0.0 yaml: ^2.9.0 -packageExtensionsChecksum: sha256-5eCaJsEbFd91t/FlV40i8+LdoqvpruFaYC829uwEE7s= +packageExtensionsChecksum: sha256-OZAzv9VA/pc51xAOHQRk6kwjT15Hnc/0tvJx4rf3kOs= patchedDependencies: '@clerk/expo@4.6.8': b8b22ab733de5bea846ad9e88046c10582352fe9ad86f314f368b2a823f0f281 - '@effect/vitest@4.0.1': 174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad + '@effect/vitest@4.0.1': 359f6fb2f7b3ec145bb72208edb9034f02489791aa2491a55cdbd69bd56ee0d2 '@expo/metro-config@58.0.6': 90fa980e8b6480631fb2fbb04559834e3c612db40c550cd828f11be297d8d760 '@ff-labs/fff-node@0.9.4': c4e3cc2420ceb9dc650f9d189e9c24baf7e83f342998bacda5f459a4ce7927a8 '@legendapp/list@3.3.5': 680cc6a5c5b4a4032e467e7b3fde22f89a84c0ee2e6eac6fda737d6277cc0806 @@ -201,7 +201,7 @@ importers: devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) + 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) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -494,7 +494,7 @@ importers: devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1(vitest@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)(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)))(yaml@2.9.0) + 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) '@pierre/trees': specifier: 1.0.0-beta.4 version: 1.0.0-beta.4(react-dom@19.3.0(react@19.3.0))(react@19.3.0) @@ -576,7 +576,7 @@ importers: devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) + 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) '@t3tools/contracts': specifier: workspace:* version: link:../../packages/contracts @@ -769,7 +769,7 @@ importers: 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) '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) + 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) '@rolldown/plugin-babel': specifier: ^0.2.0 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) @@ -856,7 +856,7 @@ importers: version: link:../../packages/shared alchemy: specifier: 2.0.0-beta.80 - version: 2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(b90ad5ec57bd255d4e38630809267169) + version: 2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(58de9aada26e3d6e07bee630615d7b5f) drizzle-orm: specifier: 1.0.0-rc.5-ab785fc version: 1.0.0-rc.5-ab785fc(b25f7c76220d3224392693e60345984f) @@ -872,7 +872,7 @@ importers: 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) '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) + 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) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -903,7 +903,7 @@ importers: devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) + 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) vite-plus: specifier: 'catalog:' 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) @@ -940,7 +940,7 @@ importers: devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) + 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) '@types/three': specifier: 0.180.0 version: 0.180.0 @@ -959,7 +959,7 @@ importers: devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) + 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) vite-plus: specifier: 'catalog:' 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) @@ -978,7 +978,7 @@ importers: 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) '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) + 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) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -1000,7 +1000,7 @@ importers: 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) '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) + 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) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -1034,7 +1034,7 @@ importers: 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) '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) + 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) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -1059,7 +1059,7 @@ importers: 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) '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) + 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) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -1078,7 +1078,7 @@ importers: devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) + 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) '@types/node': specifier: 24.12.4 version: 24.12.4 @@ -1115,7 +1115,7 @@ importers: devDependencies: '@effect/vitest': specifier: 4.0.1 - version: 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) + 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) '@types/pngjs': specifier: 6.0.5 version: 6.0.5 @@ -2412,10 +2412,6 @@ packages: resolution: {integrity: sha512-DbY9kf/018zBxRIX7rJwBnPVPzSarnUpcshm0vfYPFiDkSa7AFrXTh2BlDNUbrdrmqcIOBhVZ7GkEtxf8WiQrg==} peerDependencies: effect: 4.0.1 - vitest: '*' - peerDependenciesMeta: - vitest: - optional: true '@electric-sql/pglite@0.3.15': resolution: {integrity: sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==} @@ -4029,9 +4025,6 @@ packages: '@oxc-project/types@0.151.0': resolution: {integrity: sha512-J1yXrIlNDZVzE3ada310xeAw7nH8yCAyLPuUIsjKatFPmfn5bS1oW+cM+QsGOtVWd5nhSpbwZWx/rue+r5Z+PA==} - '@oxc-project/types@0.152.0': - resolution: {integrity: sha512-oM/5rLBm2tPkg0iBgkH/FOeR3PCDpY19GTgAZjMFM8h9WI9VW7cLgzp6nwtarYKmovavIQZ+Fe/RKX/8C8O/Rw==} - '@oxc-resolver/binding-android-arm-eabi@11.24.2': resolution: {integrity: sha512-y09e0L0SRI2OA2tUIrjBgoV3eH5hvUKXNkJqXmNo5V2WxIjyC7I7aJfRLMEVpA8yi95f90gFDvO0VMgrDw+vwA==} cpu: [arm] @@ -4651,12 +4644,6 @@ packages: peerDependencies: '@redis/client': ^6.2.1 - '@rolldown/binding-android-arm-eabi@1.2.12': - resolution: {integrity: sha512-dB/a1214qKfHMXCpgqR4OZT+jS4kTyEXbQGJPqzobt5EwH5rX080pxE37alt3RzvR1bf1Yz/yGqRfrYAxuPw0A==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [android] - '@rolldown/binding-android-arm-eabi@1.2.5': resolution: {integrity: sha512-DLe/i+l8ynIBY7XEQ191TeZvCoowIGa18R+dIV30GW7DiOtp74i/xX8hs8GUjW5ARV7VZuie3d6AumSmCwbeRA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4669,12 +4656,6 @@ packages: cpu: [arm64] os: [android] - '@rolldown/binding-android-arm64@1.2.12': - resolution: {integrity: sha512-7KHFgQ5VJxIHcLlrwrc3Xbds7oTNQT7Pgi9gQCJKrd2VGab/UksIOYp6VD8MzCstGxOKMgNamPwUCfxPdP1OHg==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [android] - '@rolldown/binding-android-arm64@1.2.5': resolution: {integrity: sha512-zXcwKlQApYAOELHd8PwKDFkagYF9Wy4e0RJ+0qnzl9Pjnpj75TEG8ufv40p2J7kCEfwZAsNiuzRIyNNMWT38ig==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4687,12 +4668,6 @@ packages: cpu: [arm64] os: [darwin] - '@rolldown/binding-darwin-arm64@1.2.12': - resolution: {integrity: sha512-3YIhqHD96nA5SaYNRBR16HnGv4oavZvXfD/ayHM+oYZ0WD/8lBAtf6zQua4kEyAvpqrluKXl0lnOBoiNby7x9w==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [darwin] - '@rolldown/binding-darwin-arm64@1.2.5': resolution: {integrity: sha512-dK4QakI42nzWgJT5sm4y4y/O//D4OxM75/cH28RLV+nzIN9AY+YsbuUVrUTjlLjXR6vpyxFbSsbmNuJ6BP9sww==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4705,12 +4680,6 @@ packages: cpu: [x64] os: [darwin] - '@rolldown/binding-darwin-x64@1.2.12': - resolution: {integrity: sha512-UuuJ35MFw4gmFOrE9pEqIV+K3syIKveph+Qc1/ljHZVdoDW4pz/JHR/eMVom+TZGl/5OOvGJOWaOCVt3ZfqhxA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [darwin] - '@rolldown/binding-darwin-x64@1.2.5': resolution: {integrity: sha512-fqSALaUu1Wjd1nK2uW2kJDWdLCc8lx1IcY+MTY26Aurfdx19anlzhqXOgCFbBFQnlFDTn4TC1/7Nz4Bl2mLP3A==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4723,12 +4692,6 @@ packages: cpu: [x64] os: [freebsd] - '@rolldown/binding-freebsd-x64@1.2.12': - resolution: {integrity: sha512-uMvssit0a4W+/7D8CbHUvG719mH3R2jwXAlh/XcPvuHTE0g++LymF88DCGNX0HM2rBOn0xrzgXktIB6fLSJBTQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [freebsd] - '@rolldown/binding-freebsd-x64@1.2.5': resolution: {integrity: sha512-/vCnNxlkxs9tKxNDcyWUePpJ/PgTzxIaVhoM5SmG8UV+GR/IcPam4VYxi7GIMo7PSDuNqlJqvprqii9NqqVCMw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4741,12 +4704,6 @@ packages: cpu: [arm] os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.2.12': - resolution: {integrity: sha512-XcFu0R0xWnwzSf4IQgFH1rJIckPN1pLy2R+4r9IDB7Yfu/ys9cVqfa4pBrMHj7a3gl8mIR4nRNPg0e5IvEVs6g==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm] - os: [linux] - '@rolldown/binding-linux-arm-gnueabihf@1.2.5': resolution: {integrity: sha512-abk0NLA519LxRCszmbE0jYKuQ9YPocOXTiOXOo6Yr+YAT95VH+PtqYAjOJvGKt3viEd/x4qzabAlwd5bHOOARg==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4760,13 +4717,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-arm64-gnu@1.2.12': - resolution: {integrity: sha512-260UrKgn8tz39ak+SMDOirKzr7V04M9dWPw5llW00SwBivCZoWcRBKV1d8cXnRkUmSZA3BdiUmBHWk7734Ulpw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-arm64-gnu@1.2.5': resolution: {integrity: sha512-Y7eALiJ8lr0M2HH103Js+g7V34wf6snlpZLAsHI90uLhr3PVlNsbFVAXJC9d/V6BnPyKtpSwI+NcB/RLxsQxuA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4781,13 +4731,6 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-arm64-musl@1.2.12': - resolution: {integrity: sha512-5YK1I9SqDkbPgc1IA8BgDl34suqUS2q0KWnBrirm0E51YjOs6eo6dV6jbQfNE/argHRSvd0QUGgtpIoYx+WWpw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [linux] - libc: [musl] - '@rolldown/binding-linux-arm64-musl@1.2.5': resolution: {integrity: sha512-xMvZgnbZg4YVnR/AX2b3oOPDTFYJvUVaJg5FedA/LuvexAtXibZQej4cnTkw3rjsJ/ggUROB64TdtETiim+FYA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4802,13 +4745,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-ppc64-gnu@1.2.12': - resolution: {integrity: sha512-Rkcrmp7eFRg74yL5fXEU91JEWbdEPLevWwGtXpmhbjlD1StScbWTmO94Bhly+Mo+ketKYkdmM1vNUKeWSlx8cQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [ppc64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-ppc64-gnu@1.2.5': resolution: {integrity: sha512-GRjeqTUDHTo5GwntsLaAMcBahG3nlpjftXWZLN73HiYQlhwEowvarFgQnRnQZtIp4keXX7quXFbG38uPZBa2EA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4823,13 +4759,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.2.12': - resolution: {integrity: sha512-qvK4DuAsQc2BSjlx+Xr+IzOIvvxbGZqxFwdWfG6F518Erj0GGISyQbJ6pIappnOxlNPzNHvo/L0BwB30GZ+zVw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [s390x] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-s390x-gnu@1.2.5': resolution: {integrity: sha512-vLNTR45F2Uwc8AufkNXPmB4VliaXs+FvcheEogIzOXzO4l+LzieXF5A/TWxLy5HtqpsRCHUfd0lPVrrdgXdLHQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4844,13 +4773,6 @@ packages: os: [linux] libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.2.12': - resolution: {integrity: sha512-Q9uLBO53Xd4QIq1WOycVQyPP1O4HhraEV2qqb3uTrnVw6QZih9duY4vNXOivL1xoUS1/z+W8eF4NMfl2a8Sdjw==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [glibc] - '@rolldown/binding-linux-x64-gnu@1.2.5': resolution: {integrity: sha512-Mgj59/HTuYeK9Gz2MA+mBWKnHsAgkBSec15ZMb1st3oIfFbX7gCjOae7GydHhzcyQi9Z/7M1QuN9bR3oFqF0jQ==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4865,13 +4787,6 @@ packages: os: [linux] libc: [musl] - '@rolldown/binding-linux-x64-musl@1.2.12': - resolution: {integrity: sha512-3IBxWFMjbOZskDPKv8Lf9BCnahlKuHthWkYnyIxOH/QcJrFcS4EmcenthApkwr/5+nEqZlLzeYbxeMaX7A5u4g==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [linux] - libc: [musl] - '@rolldown/binding-linux-x64-musl@1.2.5': resolution: {integrity: sha512-mY8AP0/ichsbhAxGnLa3d3+MwV0EfgrPND2bplI3Ym8T6R2pJ0N87bvrKVwNXmdy3jnr6eQBecdqx/HMknBmpA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4885,12 +4800,6 @@ packages: cpu: [arm64] os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.2.12': - resolution: {integrity: sha512-xtX61xg4LKPkPWilZU1ynKClz5Gj4bf74LML4r3eVLWumKnGjoEr1OSHQhMdbBDoYTi+yjrujvpZe2pUnqCrrA==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [openharmony] - '@rolldown/binding-openharmony-arm64@1.2.5': resolution: {integrity: sha512-8SLssA2oweAxyRgDp789ACfRb/3P+zNRJpzZxSizxF9m8NUDQ4+3xjo8ttjhVGGw6Qxb70oZiEtIjaKikCO7Yw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4908,12 +4817,6 @@ packages: cpu: [arm64] os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.2.12': - resolution: {integrity: sha512-At7fPB6PCaIjzgIhEZFxuT+BBFqiQibJDT4d3PhiR3f4E7bbMZF4aKblbFfEM3sETRDd1YiQx/+U/g/B/ou5Ew==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [arm64] - os: [win32] - '@rolldown/binding-win32-arm64-msvc@1.2.5': resolution: {integrity: sha512-vGbruD5zquhoc8D9SViXgN2FBJtNdTyQ4DtG+SWiEGlJiAzoKcZ2xp+xuXCffhubVdt0NJlTZqkeRuERy7g8Cw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -4926,12 +4829,6 @@ packages: cpu: [x64] os: [win32] - '@rolldown/binding-win32-x64-msvc@1.2.12': - resolution: {integrity: sha512-WIw2haVKwjuYdXkHaoC0mF8Le71TuCBxjrdKqLbJGctbBABj+ClfmNvtbOnzpq3RokNo5+V1qhtSzJyXorsklQ==} - engines: {node: ^20.19.0 || >=22.12.0} - cpu: [x64] - os: [win32] - '@rolldown/binding-win32-x64-msvc@1.2.5': resolution: {integrity: sha512-e/SXpgISz+IoqVcSSI0rx/d/he8zqLex+/rCWpnHpmVfmPIUjag9H6P7zotf0gJHwPUhQxZ/mF8tr6acebT9yw==} engines: {node: ^20.19.0 || >=22.12.0} @@ -10348,11 +10245,6 @@ packages: engines: {node: ^20.19.0 || >=22.12.0} hasBin: true - rolldown@1.2.12: - resolution: {integrity: sha512-8wafseiaG80xmXSfqidUNqZcylTlhmPZZt+za2m+js2sFZ8dTNlhIOV2WcbIPx2hgwPBJpEUGFAMZ9bgBBLTSQ==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - rolldown@1.2.5: resolution: {integrity: sha512-VD2IE5PUG4Oj8zz2VGykiYd5wbnjdIiSsNQb8Qu5B+noEp+A78mu2iVvpp27g8es14Tk9rofNs5Tku9iQCS4fA==} engines: {node: ^20.19.0 || >=22.12.0} @@ -11227,49 +11119,6 @@ packages: '@vitest/browser-webdriverio': optional: true - vite@8.3.2: - resolution: {integrity: sha512-SQr1x6W5vVSbROg7vsyXIaxK9b0G7zsT68acdWWRmnBUsgDieLCRG+Rep9WdZgcposvv/GSnr4GUUBqB3vXq6w==} - engines: {node: ^20.19.0 || >=22.12.0} - hasBin: true - peerDependencies: - '@types/node': 24.12.4 - '@vitejs/devtools': ^0.7.1 - esbuild: ^0.27.0 || ^0.28.0 - jiti: '>=1.21.0' - less: ^4.0.0 - sass: ^1.70.0 - sass-embedded: ^1.70.0 - stylus: '>=0.54.8' - sugarss: ^5.0.0 - terser: ^5.16.0 - tsx: ^4.8.1 - yaml: ^2.9.0 - peerDependenciesMeta: - '@types/node': - optional: true - '@vitejs/devtools': - optional: true - esbuild: - optional: true - jiti: - optional: true - less: - optional: true - sass: - optional: true - sass-embedded: - optional: true - stylus: - optional: true - sugarss: - optional: true - terser: - optional: true - tsx: - optional: true - yaml: - optional: true - vitefu@1.1.3: resolution: {integrity: sha512-ub4okH7Z5KLjb6hDyjqrGXqWtWvoYdU3IGm/NorpgHncKoLTCfRIbvlhBm7r0YstIaQRYlp4yEbFqDcKSzXSSg==} peerDependencies: @@ -13239,50 +13088,10 @@ snapshots: '@effect/tsgo-win32-arm64': 0.41.0 '@effect/tsgo-win32-x64': 0.41.0 - '@effect/vitest@4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@types/node@24.12.4)(@vitest/ui@5.0.1(vitest@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)(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)))(yaml@2.9.0)': - dependencies: - effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - 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) - optionalDependencies: - 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)) - transitivePeerDependencies: - - '@arethetypeswrong/core' - - '@edge-runtime/vm' - - '@opentelemetry/api' - - '@types/node' - - '@vitejs/devtools' - - '@vitest/browser-playwright' - - '@vitest/browser-webdriverio' - - '@vitest/coverage-istanbul' - - '@vitest/coverage-v8' - - '@vitest/ui' - - bufferutil - - esbuild - - happy-dom - - jiti - - jsdom - - less - - msw - - publint - - sass - - sass-embedded - - stylus - - sugarss - - svelte - - terser - - tsx - - typescript - - unplugin-unused - - unrun - - utf-8-validate - - yaml - - '@effect/vitest@4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0)': + '@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)': dependencies: effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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) - optionalDependencies: - vitest: 5.0.1(@types/node@24.12.4)(@vitest/browser-preview@5.0.1)(@vitest/ui@5.0.1(vitest@5.0.1))(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) transitivePeerDependencies: - '@arethetypeswrong/core' - '@edge-runtime/vm' @@ -14831,9 +14640,6 @@ snapshots: '@oxc-project/types@0.151.0': {} - '@oxc-project/types@0.152.0': - optional: true - '@oxc-resolver/binding-android-arm-eabi@11.24.2': optional: true @@ -15371,117 +15177,78 @@ snapshots: dependencies: '@redis/client': 6.2.1 - '@rolldown/binding-android-arm-eabi@1.2.12': - optional: true - '@rolldown/binding-android-arm-eabi@1.2.5': optional: true '@rolldown/binding-android-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-android-arm64@1.2.12': - optional: true - '@rolldown/binding-android-arm64@1.2.5': optional: true '@rolldown/binding-darwin-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-darwin-arm64@1.2.12': - optional: true - '@rolldown/binding-darwin-arm64@1.2.5': optional: true '@rolldown/binding-darwin-x64@1.0.0-rc.17': optional: true - '@rolldown/binding-darwin-x64@1.2.12': - optional: true - '@rolldown/binding-darwin-x64@1.2.5': optional: true '@rolldown/binding-freebsd-x64@1.0.0-rc.17': optional: true - '@rolldown/binding-freebsd-x64@1.2.12': - optional: true - '@rolldown/binding-freebsd-x64@1.2.5': optional: true '@rolldown/binding-linux-arm-gnueabihf@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.2.12': - optional: true - '@rolldown/binding-linux-arm-gnueabihf@1.2.5': optional: true '@rolldown/binding-linux-arm64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm64-gnu@1.2.12': - optional: true - '@rolldown/binding-linux-arm64-gnu@1.2.5': optional: true '@rolldown/binding-linux-arm64-musl@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-arm64-musl@1.2.12': - optional: true - '@rolldown/binding-linux-arm64-musl@1.2.5': optional: true '@rolldown/binding-linux-ppc64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-ppc64-gnu@1.2.12': - optional: true - '@rolldown/binding-linux-ppc64-gnu@1.2.5': optional: true '@rolldown/binding-linux-s390x-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-s390x-gnu@1.2.12': - optional: true - '@rolldown/binding-linux-s390x-gnu@1.2.5': optional: true '@rolldown/binding-linux-x64-gnu@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-x64-gnu@1.2.12': - optional: true - '@rolldown/binding-linux-x64-gnu@1.2.5': optional: true '@rolldown/binding-linux-x64-musl@1.0.0-rc.17': optional: true - '@rolldown/binding-linux-x64-musl@1.2.12': - optional: true - '@rolldown/binding-linux-x64-musl@1.2.5': optional: true '@rolldown/binding-openharmony-arm64@1.0.0-rc.17': optional: true - '@rolldown/binding-openharmony-arm64@1.2.12': - optional: true - '@rolldown/binding-openharmony-arm64@1.2.5': optional: true @@ -15495,18 +15262,12 @@ snapshots: '@rolldown/binding-win32-arm64-msvc@1.0.0-rc.17': optional: true - '@rolldown/binding-win32-arm64-msvc@1.2.12': - optional: true - '@rolldown/binding-win32-arm64-msvc@1.2.5': optional: true '@rolldown/binding-win32-x64-msvc@1.0.0-rc.17': optional: true - '@rolldown/binding-win32-x64-msvc@1.2.12': - optional: true - '@rolldown/binding-win32-x64-msvc@1.2.5': optional: true @@ -16501,19 +16262,6 @@ snapshots: - utf-8-validate - vite - '@vitest/browser-preview@5.0.1(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(utf-8-validate@6.0.6)(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vitest@5.0.1)': - dependencies: - '@testing-library/dom': 10.4.1 - '@testing-library/user-event': 14.6.7(@testing-library/dom@10.4.1) - '@vitest/browser': 5.0.1(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(utf-8-validate@6.0.6)(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vitest@5.0.1) - vitest: 5.0.1(@types/node@24.12.4)(@vitest/browser-preview@5.0.1)(@vitest/ui@5.0.1(vitest@5.0.1))(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) - transitivePeerDependencies: - - bufferutil - - msw - - utf-8-validate - - vite - optional: true - '@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)': dependencies: '@blazediff/core': 1.10.0 @@ -16532,25 +16280,6 @@ snapshots: - utf-8-validate - vite - '@vitest/browser@5.0.1(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(utf-8-validate@6.0.6)(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vitest@5.0.1)': - dependencies: - '@blazediff/core': 1.10.0 - '@vitest/mocker': 5.0.1(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) - '@vitest/ui': 5.0.1(vitest@5.0.1) - '@vitest/utils': 5.0.1 - magic-string: 1.4.1 - pngjs: 7.0.0 - sirv: 3.0.2 - tinyrainbow: 3.1.1 - vitest: 5.0.1(@types/node@24.12.4)(@vitest/browser-preview@5.0.1)(@vitest/ui@5.0.1(vitest@5.0.1))(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) - ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) - transitivePeerDependencies: - - bufferutil - - msw - - utf-8-validate - - vite - optional: true - '@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))': dependencies: '@jridgewell/trace-mapping': 0.3.31 @@ -16561,17 +16290,6 @@ snapshots: msw: 2.12.11(@types/node@24.12.4)(typescript@7.0.2) 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)' - '@vitest/mocker@5.0.1(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))': - dependencies: - '@jridgewell/trace-mapping': 0.3.31 - '@vitest/spy': 5.0.1 - estree-walker: 3.0.3 - magic-string: 1.4.1 - optionalDependencies: - msw: 2.12.11(@types/node@24.12.4)(typescript@7.0.2) - vite: 8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) - optional: true - '@vitest/pretty-format@5.0.1': dependencies: tinyrainbow: 3.1.1 @@ -16909,7 +16627,7 @@ snapshots: json-schema-traverse: 1.0.0 require-from-string: 2.0.2 - alchemy@2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(b90ad5ec57bd255d4e38630809267169): + alchemy@2.0.0-beta.80(patch_hash=bea1b6c0c0b23157fd5f439a1d7feff430f28ac1621ba135d8a13eeec60ccacd)(58de9aada26e3d6e07bee630615d7b5f): dependencies: '@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) '@alchemy.run/floci': 2.0.0-beta.80(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) @@ -16950,7 +16668,7 @@ snapshots: optionalDependencies: '@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/sql-pg': 4.0.1(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) - '@effect/vitest': 4.0.1(patch_hash=174f1dbfffcf38e27c151876a758d60d93368c56c8b4d90ddb5bdba0edee9bad)(@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)(vitest@5.0.1)(yaml@2.9.0) + '@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) drizzle-kit: 1.0.0-rc.5-ab785fc drizzle-orm: 1.0.0-rc.5-ab785fc(b25f7c76220d3224392693e60345984f) mongodb: 6.21.0(@aws-sdk/credential-providers@3.1062.0)(socks@2.8.9) @@ -21766,28 +21484,6 @@ snapshots: '@rolldown/binding-win32-x64-msvc': 1.0.0-rc.17 optional: true - rolldown@1.2.12: - dependencies: - '@oxc-project/types': 0.152.0 - '@rolldown/pluginutils': 1.0.1 - optionalDependencies: - '@rolldown/binding-android-arm-eabi': 1.2.12 - '@rolldown/binding-android-arm64': 1.2.12 - '@rolldown/binding-darwin-arm64': 1.2.12 - '@rolldown/binding-darwin-x64': 1.2.12 - '@rolldown/binding-freebsd-x64': 1.2.12 - '@rolldown/binding-linux-arm-gnueabihf': 1.2.12 - '@rolldown/binding-linux-arm64-gnu': 1.2.12 - '@rolldown/binding-linux-arm64-musl': 1.2.12 - '@rolldown/binding-linux-ppc64-gnu': 1.2.12 - '@rolldown/binding-linux-s390x-gnu': 1.2.12 - '@rolldown/binding-linux-x64-gnu': 1.2.12 - '@rolldown/binding-linux-x64-musl': 1.2.12 - '@rolldown/binding-openharmony-arm64': 1.2.12 - '@rolldown/binding-win32-arm64-msvc': 1.2.12 - '@rolldown/binding-win32-x64-msvc': 1.2.12 - optional: true - rolldown@1.2.5: dependencies: '@oxc-project/types': 0.146.0 @@ -22779,22 +22475,6 @@ snapshots: - utf-8-validate - yaml - vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0): - dependencies: - lightningcss: 1.33.0 - picomatch: 4.0.7 - postcss: 8.5.28 - rolldown: 1.2.12 - tinyglobby: 0.2.17 - optionalDependencies: - '@types/node': 24.12.4 - esbuild: 0.28.2 - fsevents: 2.3.3 - jiti: 2.7.0 - terser: 5.48.0 - yaml: 2.9.0 - optional: true - vitefu@1.1.3(@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@6.0.3)(unrun@0.2.39)(yaml@2.9.0)): optionalDependencies: 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@6.0.3)(unrun@0.2.39)(yaml@2.9.0)' @@ -22823,31 +22503,6 @@ snapshots: transitivePeerDependencies: - msw - vitest@5.0.1(@types/node@24.12.4)(@vitest/browser-preview@5.0.1)(@vitest/ui@5.0.1(vitest@5.0.1))(jsdom@30.1.0(@noble/hashes@1.8.0))(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)): - dependencies: - '@types/chai': 5.2.3 - '@vitest/mocker': 5.0.1(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0)) - chai: 6.2.2 - es-module-lexer: 2.3.2 - expect-type: 1.4.0 - magic-string: 1.4.1 - obug: 2.2.1 - picomatch: 4.0.7 - std-env: 4.3.0 - tinybench: 6.1.4 - tinyexec: 1.3.0 - tinyglobby: 0.2.17 - vite: 8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0) - why-is-node-running: 2.3.0 - optionalDependencies: - '@types/node': 24.12.4 - '@vitest/browser-preview': 5.0.1(bufferutil@4.1.0)(msw@2.12.11(@types/node@24.12.4)(typescript@7.0.2))(utf-8-validate@6.0.6)(vite@8.3.2(@types/node@24.12.4)(esbuild@0.28.2)(jiti@2.7.0)(terser@5.48.0)(yaml@2.9.0))(vitest@5.0.1) - '@vitest/ui': 5.0.1(vitest@5.0.1) - jsdom: 30.1.0(@noble/hashes@1.8.0) - transitivePeerDependencies: - - msw - optional: true - vlq@1.0.1: {} volar-service-css@0.0.70(@volar/language-service@2.4.28): diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index f6bad514212a..4e4ff5ba77af 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -244,9 +244,6 @@ packageExtensions: dependencies: # Same as the vite-plus catalog entry; pnpm rejects catalog: inside packageExtensions. vite-plus: 1.0.0 - peerDependenciesMeta: - vitest: - optional: true vite-plus@*: dependencies: vite: "catalog:" From da1038c26dc021dd66d83669a06b5b42d751d78e Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Mon, 5 Oct 2026 12:13:42 -0700 Subject: [PATCH 4/4] chore(deps): pin vite-plus through the catalog everywhere A catalog: spec in packageExtensions resolves only when the same name has a catalog: override, which is why vite-plus@*'s vite entry worked and @effect/vitest's vite-plus one did not. Add a vite-plus catalog override so @effect/vitest can use catalog: like everything else, and every vite-plus in the tree resolves to the one catalog version. The vite-plus@* extension is dropped: vite-plus already depends on vite-plus-core, so it changed nothing but the extensions checksum. Co-Authored-By: Claude Opus 5.5 (1M context) --- pnpm-lock.yaml | 40 +++++++++++++++++++--------------------- pnpm-workspace.yaml | 9 ++++----- 2 files changed, 23 insertions(+), 26 deletions(-) diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index f4895892d817..8229e9022d05 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -30,9 +30,6 @@ catalogs: typescript: specifier: 7.0.2 version: 7.0.2 - vite-plus: - specifier: 1.0.0 - version: 1.0.0 overrides: '@exodus/bytes>@noble/hashes': 1.8.0 @@ -87,9 +84,10 @@ overrides: lightningcss: 1.33.0 tailwindcss: 4.3.3 vite: npm:@voidzero-dev/vite-plus-core@1.0.0 + vite-plus: 1.0.0 yaml: ^2.9.0 -packageExtensionsChecksum: sha256-OZAzv9VA/pc51xAOHQRk6kwjT15Hnc/0tvJx4rf3kOs= +packageExtensionsChecksum: sha256-FYDaKefjFcda1+vgiq8yMpZC4ehE5CyLi/bsCGLgTtY= patchedDependencies: '@clerk/expo@4.6.8': b8b22ab733de5bea846ad9e88046c10582352fe9ad86f314f368b2a823f0f281 @@ -139,7 +137,7 @@ importers: specifier: 'catalog:' version: 7.0.2 vite-plus: - specifier: 'catalog:' + specifier: 1.0.0 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) apps/desktop: @@ -218,7 +216,7 @@ importers: specifier: 4.3.3 version: 4.3.3 vite-plus: - specifier: 'catalog:' + specifier: 1.0.0 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) apps/marketing: @@ -608,7 +606,7 @@ importers: specifier: workspace:* version: link:../../packages/effect-codex-app-server vite-plus: - specifier: 'catalog:' + specifier: 1.0.0 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) apps/web: @@ -828,7 +826,7 @@ importers: specifier: npm:@voidzero-dev/vite-plus-core@1.0.0 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)' vite-plus: - specifier: 'catalog:' + specifier: 1.0.0 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) infra/relay: @@ -886,7 +884,7 @@ importers: specifier: npm:@voidzero-dev/vite-plus-core@1.0.0 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)' vite-plus: - specifier: 'catalog:' + specifier: 1.0.0 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) oxlint-plugin-t3code: @@ -905,7 +903,7 @@ importers: specifier: 4.0.1 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) vite-plus: - specifier: 'catalog:' + specifier: 1.0.0 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) packages/client-runtime: @@ -948,7 +946,7 @@ importers: specifier: ^2.0.2 version: 2.0.2 vite-plus: - specifier: 'catalog:' + specifier: 1.0.0 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) packages/contracts: @@ -961,7 +959,7 @@ importers: specifier: 4.0.1 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) vite-plus: - specifier: 'catalog:' + specifier: 1.0.0 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) packages/effect-acp: @@ -983,7 +981,7 @@ importers: specifier: 24.12.4 version: 24.12.4 vite-plus: - specifier: 'catalog:' + specifier: 1.0.0 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) packages/effect-codex-app-server: @@ -1005,7 +1003,7 @@ importers: specifier: 24.12.4 version: 24.12.4 vite-plus: - specifier: 'catalog:' + specifier: 1.0.0 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) packages/shared: @@ -1039,7 +1037,7 @@ importers: specifier: 24.12.4 version: 24.12.4 vite-plus: - specifier: 'catalog:' + specifier: 1.0.0 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) packages/ssh: @@ -1064,7 +1062,7 @@ importers: specifier: 24.12.4 version: 24.12.4 vite-plus: - specifier: 'catalog:' + specifier: 1.0.0 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) packages/tailscale: @@ -1083,7 +1081,7 @@ importers: specifier: 24.12.4 version: 24.12.4 vite-plus: - specifier: 'catalog:' + specifier: 1.0.0 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) scripts: @@ -1126,7 +1124,7 @@ importers: specifier: npm:typescript@~6.0.3 version: typescript@6.0.3 vite-plus: - specifier: 'catalog:' + specifier: 1.0.0 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) packages: @@ -9514,7 +9512,7 @@ packages: hasBin: true peerDependencies: svelte: ^5.0.0 - vite-plus: '*' + vite-plus: 1.0.0 peerDependenciesMeta: svelte: optional: true @@ -9531,7 +9529,7 @@ packages: hasBin: true peerDependencies: oxlint-tsgolint: '>=7.0.2001' - vite-plus: '*' + vite-plus: 1.0.0 peerDependenciesMeta: oxlint-tsgolint: optional: true @@ -16273,7 +16271,7 @@ snapshots: sirv: 3.0.2 tinyrainbow: 3.1.1 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)) - ws: 8.21.3(bufferutil@4.1.0)(utf-8-validate@6.0.6) + ws: 8.22.0(bufferutil@4.1.0)(utf-8-validate@6.0.6) transitivePeerDependencies: - bufferutil - msw diff --git a/pnpm-workspace.yaml b/pnpm-workspace.yaml index 4e4ff5ba77af..460a39ca541e 100644 --- a/pnpm-workspace.yaml +++ b/pnpm-workspace.yaml @@ -234,19 +234,18 @@ overrides: lightningcss: "catalog:" tailwindcss: "catalog:" vite: "catalog:" + vite-plus: "catalog:" yaml: "catalog:" packageExtensions: "@clerk/expo@*": dependencies: "@expo/config-plugins": 58.0.4 + # Our patch makes @effect/vitest import vite-plus/test. A catalog: spec here + # resolves through the vite-plus override above. "@effect/vitest@*": dependencies: - # Same as the vite-plus catalog entry; pnpm rejects catalog: inside packageExtensions. - vite-plus: 1.0.0 - vite-plus@*: - dependencies: - vite: "catalog:" + vite-plus: "catalog:" patchedDependencies: alchemy@2.0.0-beta.80: patches/alchemy@2.0.0-beta.80.patch