From 194c73f3f991558ca540ef6fe0ce75223bbe87a7 Mon Sep 17 00:00:00 2001 From: Julius Marminge Date: Mon, 5 Oct 2026 13:15:14 -0700 Subject: [PATCH] chore(deps): upgrade Effect to stable 4.0.1 (#16138) 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} | 66 +- 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 +- patches/effect@4.0.0-rc.115.patch | 353 ------ patches/effect@4.0.1.patch | 112 ++ pnpm-lock.yaml | 1098 ++++++++++------- pnpm-workspace.yaml | 87 +- 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 +- 835 files changed, 3642 insertions(+), 2162 deletions(-) rename patches/{@effect__vitest@4.0.0-rc.115.patch => @effect__vitest@4.0.1.patch} (65%) 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%) delete mode 100644 patches/effect@4.0.0-rc.115.patch create mode 100644 patches/effect@4.0.1.patch diff --git a/apps/desktop/src/app/DesktopConnectionCatalogStore.test.ts b/apps/desktop/src/app/DesktopConnectionCatalogStore.test.ts index 5cb7aafbbd2006d73bfd6740f401dc246d8bcdd5..963755adc42b58a21b2022629d8756a036d9954f 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 46b2546e681ca3fccbfc5430ae24574da3c3b459..e9edcab88dcd22d4e1492b9cc91e6fcf59933496 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 893c1aaebe1d69859996bc5cdd77456a0c4379d8..54c3184c2aa8e9b7c84d4f2a5273d1242510609c 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 f01e81d890bcff1e7559484e790e525562b0d10c..e67cdcefe9fa375011f3a32b995090ffd94d5962 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 e23d78aa21614e76fed468201b6a7f1d5645fa1a..cf17bf793a82a113766508ad86a60b4e6eb5ad85 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 55d8074ab7f008cf0ba046b029702e7befffb6df..03e3a8dfe222c69a12ba0da43fb4aeb13618d28e 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 07644a8af47ccba490c2cd6b35b5147cb83eefbd..f3b60a3fdba3f8bfc5da851b1bb64b8fafcf254c 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 d1590d1a433d4a44ce151718747c7507ca89d418..e920c0d73971818509536b92270be0f98eba17a9 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 901d9f4a270865287a86140f92f5178a21d1b0da..8813825198725828a1a75d00a31b47280ea54d21 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 6f1ea139bdca4c4bbc3223b48af35f35a8bff2a9..02bc1c5d7d8c53fff3758dde3f0a737614d00052 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 8373437ae3124718fb56a9a557ef2342efa81444..d1016bbfa9fcb225bbb4fe3caf15fa869a9363e4 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 2930780d4102ec5237aad2ccd27c4a88879675e2..07c9ba5289204324348bf8e4b46d6f89f76afd7b 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 ed71bd332d24ee8e6f4317933d148b1a895172e0..20cb51d9714a1ea303e8ae42eebbe25c0955069f 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 dae20e2da9555b3bb0dae83da014143a1ceafb01..33ba2e40334c3232f367ab91b3f595d5af37697b 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 0914167cffb09079ac6aed6fe74207143d275b85..b9c4608255618819a82c7f4d69ca086229eafc64 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 a04f4ecbc10066fcffc716a491c81530d1b557a6..8deafeefacd85cc27a1263f458863c3ad680da97 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 e8216ea99e998c6f3f87a2ce1bf37ef2d15b842d..91e8ec5e7be8ef335ca52dcc176c45884690d69c 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 1ec0ebf1874dd382034340362b90c6346116308d..7dff0b61b372db1c2add5ba595696d64ef79e0d6 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 30feb85043f841ab536546cea34a9da3af6a024e..6ac3488917b9ccf19f3343b3921acdf6b77dbb4f 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 fa53486d5e2afb3fde32472ea2e8f18a7687e4be..d12c467731bd59036ad21ae525371094e0de809d 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 9b867adb48df4554cc7a9e072ebb180f021ec67b..8893f232241021255f6061fef86dcffaa6fec217 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 fc60c658b1d169825dcefef6ba198f249b6e2811..0cd921267ac387c310b3ffb24f42d2a9b77bfeee 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 36ec1700debe575ae31ae2ba814770e8265a982d..2c2fd425df5695ba3e3963c2f27c39a4780db38b 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 0420e755d92be0b4f525e20b9116cd0aa924773c..890d9e2715865e2a9e038ea3f26e4febfd78152f 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 1ab34cae13827e208ea566bcf5bfc11013d7d9f3..8e1c29b6f1750a72ca1cd142dc761bd3c2f3e8be 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 9c03523191a3ad006c34eedf6c81706f434099ab..35e1e9c4b55ebf0db9a5f03acfea5fad735ba64b 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 8ae178e17efffd11501bdd6f0ccf580a6b2f05f8..18bcd7581b4fc5479998eab9ffb2e684e805b03c 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 a9e6be495c05d6672c8ec8fcd45de4f139e6423a..9742cb68c364d2b4725655d8989612647267305e 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 0db4fc9096ec753a4900f9990740526d5f4381f4..1c159f68262285dfc1934171157894b70f07f605 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 df27c4f96f1afb6afddbee6c6dab1c5ea7dd048a..4a04e0498cb6eba315ba6b0cbd61c847845a5149 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 6075f0ad56a3414775dbfddc0eaa08dd16ad18f8..fa8f79e1ccba8214215fa373badfad06aaafa4b8 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 664302d7f83b7274e1c06ad8f5473d64d1c30186..9681be83fdbbc52cadba6979caebe60f62bae42c 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 b1e467869e8e8a542449767f04ade4ad72785966..3d0e29484674de1d0b58fd700961a5e24d0b442e 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 f54b464a7dbdf99a64d94abeab25819d8c9dbeef..d6e1a210cc0a6bac26e566d01bfff923d5cf99fd 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 6a369a4598a27bbe6d8085de18f9bdc2ee9d1ef4..6f2b863482d8e25fc73ca7f2f60d2c8639a7fdaa 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 704b061db36357657edf8a5551d4a7d2174ad916..1143ed057b2b88c3bc01096c1394fc1db739e259 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 7ee4557569300532e40b93c8fbc763e42677b0a7..f1c1c2a4908f0f39ff3ab59d43068c4f7cd52dfe 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 b5e724084a21ad6c31bef45eebea4be7894c0ab8..26e307b0c25092f44372a62ab8af7f5eb76a332b 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 e261524f9ac9c501362bb5831e5462b44a6a608e..a3cb739be0f636cae7c56f9b1a99269cf470ce51 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 2f922a48f4d841bb6dea4eb9c487ffd4dadfa240..dedf4a4a342796901b685e820b4bb24eec5b01cf 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 a716055b15ca627595c8587503f128b1ab95c8e8..1eff2e8995008ee48cdf619b294665e5a2bd7e40 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 57215cd18462d64942ac36d477026d5873501ebf..b736c5a96d8ca545f635b50a961eac1f9e351bf3 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 4bf506ae0ba1a06ee89203e40940450c24f8d056..7bd16613c842125129d98b776e3610e43dadf79c 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 501904204867d26a3a6563b762254d677b28ce7d..b056d7252ce2eab3621e5c1655d29873e6c7f14f 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 836e529e5965d40f2424ad539f1063293491437e..fb7013fceae81bd80594d3bea23faf3606a30bd5 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 9d3944331a7bcbca6c37f0505e66d278ff7348ee..a320b8b8422b68407c0a9640c0267f09f5e6d25c 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 eabf0dd79b6de8116197bf99d69bbbcc2b938a27..cbd78580f58f6d3ff14ebaab9e99f899e0ce1583 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 5472f0dfb0c73c33a51c2fd8d15faf2831f41d9a..cbfea654bd9269f0e0370ee83e012f72613ef2e8 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 73bd28c550edafe4f879d348efa48279fcddee8d..1f7d9bb14371aaa44dae42b3973ef46b832fd249 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 375bda715e120e79880a682cb82d4141fec88adb..5f8da54ef068c8ca608734b6baffc73927b19388 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 28b34fdec6d3c20da5d99ddfb5517586d16c104d..f4a682c6c14c357f9876b4ee1e9cd4b63928b764 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 b46f5433ff60bdaefe4407211269ce73810d2631..c633f67db79f0709f168088a39370643f4d9495a 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 c7c2310ba936f057dfab3ed50b8e1f7e309ee3a0..42b7dbf282d4c2fb659562059ef526e20a77e704 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 50b4eec41b0dd5c4bcb99756f75b53ee4a92182b..e17a94c5bb5f14c4b604a07c220880eb0be73f77 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 43363115bc84ce109122f49fbdcdf9ae6c09e82a..4f591bc6e6222daf165f36ae743c0ad5f4718388 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 60df38b30357330799bcc4e5599982a8c27873ef..caaed841ce01db01c417820e7ca8288a9f34e20a 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 0b079d9902ad33e10916f2d25b584dae46cf4bef..8ccc7508cee6fd5ba6f3deba62b4f75e3c58b553 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 f211b4bc06d9b7b9c688279e8834fd306cd24af7..7a2343ed4859a0093891c69c4b77b4348647072d 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 54fa89387fa7f62315c4ef7caad9b79e2e33d813..288ddbd2f34d4875641d7f43401f368cabc8f7a8 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 0e8395b44db8b3b3520e769c6e5a42d06c80fdc8..3d25c749bc8b7a44ec71b9eb81e597466e6920bb 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 1e8e6c73ff0f9b89d5fb3c013440ab2bf3fe26cd..f25d7844f04a49462ea271afbb8c98baf83301ba 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 aa12849c1f394755d3c1a9787587285afd1d302c..253c64c0465a20ae6d026ed091b0fcde146fe9ca 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 f0cb34ce9d7e6e7fdcf25ab362082f564f11496f..5226f8a0ed1e7f7ee719e073e589435af4c63efb 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 8809c429c824bcd6003170a42fd7a3991b0284f2..293841e9571f21f0381b123046e395f3a3dce2a0 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 bb343e0e255f3cc75f918b2fdf595a63b0915db5..f3544c9382db563b571baf4ce5fb4a41ca082247 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 dab724e236a30c5cfbe32dfefa673356983979f6..386cdfba062b605b06aabecad8125d0975410ce9 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 5e0426daaa0b0dd782df4a5b185a59d4d83a1e1d..023236dde460725e2c40fcac46f208329459bc0c 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 3ac81c08b13d9fc3b9dd6c8e12a4dd1d2a169fae..a0ab412a83441e953fdb49e457c2eeccc83dee1c 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 716f4edd41666d51ad1803c875ea6435f0c5f84d..6d5df639cbd65966f8780cd751fbe3fccb83ac28 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 d0da6e2f03d008a6ee43db525142fc813c13acfb..b926db7326e1d3750b325cb2b5502c9937642d23 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 158b8d7efca9a2fcd10f13f2788372c5634b5769..ac03553eb7dc751bfd86571a50b924d3071a4f15 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 2652581f6e1b8490a6198fa3d058ec00bb80bab0..8a52228e4ed2f6a884036a1788a4ba6e736b35f5 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 c415cf7398091115353f48ce3297a5547cd854b5..a8957eab7caf2ebc91755904a687c03564175569 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 281452364b7643156abbeb7b3e5bc8f024f1bd9d..a39253215515145d910eca732c18cdd52ea4c05b 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 4007fe183dbaa278e7f357db33f4e5c8f69e9776..3b1b2894a8fce293bd0a7785bbd1b927718a45da 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 684049155a9ebcba0c30d0c8eefe2710efdea3c4..37ad63198d319d6a468f1f7beb43113f4592a396 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 b32d9ad400437e91f7bce31b2d149d4a690b4619..1ee46cbff89dc77e28fc8652c102cc274e19cbfe 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 07fc6348f8af5f2e1bc6463e964def00a1c5dae8..3e15c905d686de3cf6c50d4c3341ca56037054a9 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 b4d596900a41a43f0c77d1134c64bf126b6e4289..f14108e49c37608a1fdcb0709093b5d2fb62fa40 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 0a0587a775f4a4155da2790fa4368b1e642cf3ab..ab5effe2d2b7659ae460e7ab702a376451bb8308 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 8b170cd9069b62c69c3e78fc4ac735d32bcc71da..b96a6e9efb7a78147b3e263a2eaa14d7171a1efa 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 a7f9a5dab1bd7aa85f07ad99f36edc9948334d3a..d78117a33b2732ddd22821728886d91a0965b799 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 0ceeb490302e7d1351a8484c79a195d073573849..6dd9ca8c36fd46b7c4d9f1fd7e66453685ff4008 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 d6fefe2b8f86ada7e6befd1686b094317b87bc0b..f96d65f6602367cc68421f5cc282c1fba281bb41 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 5dc5fab44e95eccb16ec6fa568d993b258d62455..60cdebb0626155a8cd3d6eb2c86f95ae672aa127 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 b8717facf2e6f166647b2bde5d9cbe92b1c7647f..92dfa0feb8664fd9433025c4ece035fa2219aa61 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 dec31f9ce0399cd33b2196bdb4fcf3a53f0d097a..52bcd1bc678a47fd41f904449cac2f8935b5c84d 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 f989d3c5b745ace481aecf6f36bd8e397464a904..9183f8effdfb4d9e326f3a10fc583e265f36f8d5 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 3bc9066a399e4671102bed8e952b37860f90629b..94ab662c72919353e991cb34e7aabea744143471 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 0e3b207a560c475faab51392d0c62a6dfd98066b..979c3d596664edfe982b9f22634d82e4999372a7 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 75fb23bdf1736505ed83ecb7227d5f974caa3c94..96bce3cf9672af479880de45fcb7260d532d051f 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 b91bb20891bd832d2f0eef2a7d382431b627f3b8..a8691e3f91e3e6363dcf1ab90066efce58ad5ca6 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 96171d3ea5c2f7c51b485c57c2fb4900eb729f1c..437a4b7ccb6f48bc75177a9765751abba2695464 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 c012c59d5b640f0806983f69be78e3d25894169d..df91dab00ce6fa46bec8e1b81a0b112b77a1da8f 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 018fbddfcf5a2414d5cbc0c509901ad2d03fac5a..be00ce9a8edd163d5492cf25933fc621c51107df 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 db8269ff130bbfc1792e3663bc33dc9e99b8628f..0671c9e7e74d371060c6ea9de66cad01a4e7ebac 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 c29d01d397bc0d149be7ef9306cf6161e74e365d..c7b0eef57e38c6bc50bb35f4e24279545fff950f 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 4d1a4393f017e915c535a360cc408fb110c9e233..cbb5d7366346d244f0bd13319c8cf1fed10216b3 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 f3b29d83b15578097e2052cf9d6bd27c69737eaf..3abe8e156850067ad9ef76fb123b54c96542c92b 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 c2540a97aaa00c750a3414834b37d2792953cbe7..35e1b0b42abf87b23b61f3f4334ed5e15a6fa150 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 48b9649f5475b118e6c9f991a3ddc37b0e9e915e..c70acce6d932f19c6abeb7c3b807689ce8639ae1 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 747ab7c72ee2705cb05004efac3ccad10b7df598..18086c601852cb868a3f2e2e1652843e7e35ffc4 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 75c4db8701bbb8392cef5476518c1861acfe8c5f..6b6c3a9a29d7aa2e9d54900a8cd76dd99c334385 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 bf51139ede97990a1202a197bda8e9b28e1ab38b..0de3b3536321f2f3b2d644fd5b537c96e58222c6 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 fcb31285d5aecc501dd24a141f3460ec06b23595..8c99457a96466d049b6ea1e4a22a2e25bf444871 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 278ce0ec9e23a7a059d1109f0ad8bf198cf402f9..9df8a12ac502369108795a8375828b13ee089f8b 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 b30447a01907b38d07bd2210cc1b734cb5e3c556..d39120a5000595dd8a9f03a08c1467b07d7901ba 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 f83252e9cb8a663dc870e04c4f032ca41038b042..7667d47d159d283d00eda2f565d8f3e054d9d61b 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 520a9c72133adcfa36230823dd296c68b9e05c73..827507ad4ab268cb18ae5f41332de239605c3b75 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 734caeab226a7420e43ac2e69abf24c26ece860f..cbaffbbe50419fd659861423a60655d27151dd62 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 223c2646086902c6b5e5ed1540bcd74fa1004677..c056ce417f922becb3864d9d03bb26cda19f95c9 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 c5895d353fef7a33fc843c5de70aa95d9068a8a2..a2e7589aadb62613f0c30f8d5d928a616db56b56 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 691b1f43cb87b019509ce96f1374010d03e8fd0b..d90caee210a8d1b3060fa006190e75fa62fa268f 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 780485c0718f6dd4097d920f20d46ce15e4123de..e5efb1420785194e7da88fb4e728f5e8ef021033 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 3a8a1022d665073ee826321c210f563eb0de6fad..d2d654b05f141ac7914252bad7a707049fd76f2f 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 e66f690428e8e30a140b2b491787ae30afcc68fa..fde1b795d34f3d45330bb0cbe7c8c83501877657 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 af736a7a1b79aefdb105a72f29eba91807207213..b33a0d7e43265a596180842ed60a19f528f29652 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 9688eddc65a488781fc80d9a1cfccffd25705028..0db48453529c4f80e2fb9fa08bb0f895260ed0ca 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 5a7f521cbe18ff82c268a36d0a15ee7231643f9e..9a523890eae0001a148404fe0c27c6a6b6c06729 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 a7b807e6267ac32b07654f0e789e162af256b275..ce725e82de70fa3b7d2ef9e9081455608b995c82 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 db4d5b14f5906f1f201a34e81f4690036bfd5926..85c6cecb8f708bfd0ce3ea8071ce064aac9b71e3 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 e8599e1ecbb7fac3bcfd666c676432a5840f530f..e97951b50cb2a6d7d89752bd4f8635e2fc11ccac 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 c903abbb07f2b2c6e1e077ed538749fd2f284111..8895fcb671dc2a96eee10a19eaeef426eab289c6 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 e169005a07fa121d5c6b5a5b365be39af77219c6..318d38cd19804c33f790f6a2b062cf05719406fc 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 f9fa51dc75671fe3c5d891c7cd4eaf34156e8fae..1387ae99bba44ebbf879141dbee20414c5fccf5a 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 a46499f8b0ce9b9cb17ae91e9e34444bd269ee87..3edce3eb52714f32fd36f34e7711b3e86958c1a7 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 4a1c24f3839ab96ef285f83aa8c7a772f91a0914..c7d8376e23ea19b01d447c92332daff949edafbd 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 4a805b48ce22ec98743b4e293a55cb4da1cfa53b..000dcc21b15de891e31e38b9e837169a16094a67 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 3ed0ab8a3e11da18db13ddc9057cfffc0f0812e1..ad5b1f0b7b7f8d1812eb92fce00508ca50b35ae0 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 c992a923d9c04286a0cd1d907cec5965ec6942e5..1fafd695abe46d759fd106f6897752d805d7448c 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 1740815918ad56884f5ccc7cec7f207247662b28..595657dfe37627904eb1efa188ec89f2794f0761 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 a2292fbf9a7d5eb75ff24e1587971cd9d4410849..60bc08b0d4bb51b09c00b724a1ea369e5141fec1 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 4c6e04bb510ea439e214aef38e652273e45c5362..4e0691fe3a06d22ec0950efafc1657f272ff6f40 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 694af7bbf305db43978d183f4847ed7c46a11576..731a67d94cb624a508c81e7d446e6ebba88de8f1 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 c0982f731e771015294010e4c0af00070db39ef0..340d37a9c2b42f9e88f91dd17719f00be5d9ebe4 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 f6da1ccbfdf12cbb0edc2ec9e6f5c727426daccd..f77b81996f5f44d1cea3fd29401e545d44406512 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 6497880f36e7c34c8e0f1b6a1bbb32b9bd0530ee..1ccfb13c1bc5b5103baba681dbee08c7ba58f8a2 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 f09a3e51f0cb2a9016be765733580a50c256f562..43aef35a175b8256c023ab54e21b5e2cba120223 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 731620f728c175aa657464a91fd064c23bacc6e0..dc03732d36be25953b19a017948a4b13f1a40109 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 e0c734e11e866446c1e89786323fc4e5253315cf..45bc78b30e0ddcf7058e59ca3f84603f6405446a 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 2298cfd49c0e2b51bad2f0ca85c7b0ed4bee75b9..f905ac2588a59a1a08d1bce07d05175ee78462d0 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 557d730402bfe302598bb9c6ed91ef4537cb353b..5a76f33b2cf91a3a926083e48f04d06996547350 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 35844a6be11aa001d8b0bf33cb3ff307f7fc6d32..0907333032de85926c5f6eb36cd7ffb275022e27 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 be0d280fef7698650af0e7097df9eba74879709a..427d95b380e5887da52b1b68b39108e010d3e6fb 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 28b20c7ba2677d9a34515d798a6bcd81385e6bfc..a6e83d8853c8d313da5b27e29e9681f1e1822313 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 495c2fa14c3bf27833a2d3a9a06741678e2badc9..39ed14f8b6093caf96e7a912d629e16d621a8857 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 206f5e952cd6294ed759ee777abea0bb1e5e80d2..224ebce7b5df1b1d1a965250f94de52cbc172455 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 34299f95142fea0414baf66acd68d2399724de68..b883f625d33d34ef634efe3256788cfaf1a926aa 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 bfa1b87deb9984255d06d54ec44d1886979b21fb..8145ae4898079bf61513874545db4e37e2c975a8 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 4254691a24871e057750eaf35da2cfe26d92ce6d..c61c0e9cf9ae4de450ac300e35a68143fbd2bc0e 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 fc355f66a9eba7fb4183862dea4ccce979a2f7b8..1af8fd7c6214c103e4469b9b17f9e8743793d4b3 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 54d8e2a906bfebb3b3686210abeb201b90a13d4e..fb4a43185ef01fdfae7c4ded9b82391c8c032381 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 72f91e21d16fca0d8182435ee87d71ff94d2fff7..9c3d421144b0ee65a05f9bee1b97ac47eb876e11 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 5e026f584273f011650b334cd6ba5652d7153aa8..b66a75fa9f5fd032fd76dfbdd15b46203c2853b3 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 793f86349650d9f51b0777d4fb6dec775f2f443e..6597944a3efbe6e8cf722e6df0252fb974e7783c 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 0f927580367dd6a4241bd5a47df73ed3daa2382d..26551f77e8ddb6107b99789baf1ed4f2e455d6a2 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 67b56b722334192bc2b4d1d585bb0d6301e5c140..2d29ed202523a6bb78f8ece13b310c0cff1bb0e2 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 30d59d6540106ec5b181f9e9d4bb88409a62e0bc..88315aebbf2a19a40ffdd377f3835f1167fd8d0a 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 c39fa3e3b620118a645b0118d17fd4fdf99712b1..ffcc7d586e35dc1fc1315c798354287a73363555 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 2698839864b7066bc529e7027b731bee2a01728a..528796bb7fad7e98157532e60b972e17d46c859e 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 e5771b4bf6d75c4e92f23960c487c1898390c791..204df4d0a21077b008412e5a932ccb4ee1959b9a 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 a91ea416ffca76d014037ea52c0a4507dfadef80..4bde751dcf41e438a942cd1d1d71258b9762721a 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 83696e0c9e21f4b40b034e067ff24f6ff01a568a..35fe0489f52fe6fe290040e0fb37b477a457ce52 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 f37c65eac9edf05f05bb4a4f4bac5df0e8d1b05e..b9c2ae9d8189b41683bbf87d5cb385b1496bc9e5 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 30660223c5f6a4d86c52c0721021e0b29cf94d9d..b48ed2818a5989804e016802d51d1b0a92be8109 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 e78b8b54d73b767ce6736bbd26cc056d0169e0d6..7fb547e1a69b85a30f8c09616ebdccc751b50071 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 3427941bedebdbe1427de262db518ec341a96e60..997f403288d1f7dd5a650cc2dd9ff6bafd2faf9e 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 15e77f1752e4fea323fbc555738b00cc0966f1d9..1bafd6ce4380b13d2958259d5dbfa4b270d80cb9 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 04ce0332c14c01b1553580f84ce5e4d4a0c41d22..9687b4aa4e15c17ade0176626381dd2b2ceda7c2 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 1a489bdcb64ad65d16cf68b65fe53cd57b731495..720ead5e2fb8370d29327682f5f5e5ec0c45a974 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 c0d3c26b44614ce41004f8a797eb00b02808b9d9..0d0c783010c446b8595bb2647b133fa71d3c9d4f 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 44662c36b540ca0aa214d9d5aadb2b83d7ce3f6d..3062a840e59ee6c489d2cbc1f913630265176d00 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 74c2489e7b12a11b8a2a1412fc199cc5799d05a2..f58fe4a1781592f0fb360b32a72df13d714e15f4 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 692bf4f3a0997184b4acec32aae4b1fee8724ac8..409f7cb5a517f6f942b54d1033d1304b65fe7f5f 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 280177fc28079bf444188068d95b6e19867d7748..ddd53fd63026206a21f724791449a58611c7ac03 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 94aea99091e03e621d461c5751edb15e9d557fcd..eefb2a35d37cb7d2a74f9242e92268d082a93fef 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 58d88fed34a395fa059850884c7a0f2c3f5b933b..09538c7df22d8638fd78e21eaa4708e8938c87e3 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 0600c4ef08b62477ee55baaa2bd1c7be2df879eb..edf309ccc33b7f391a9b1479361ab161f7ab2dcb 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 ab662596267a713db1f0e5b7a8c27d2f3769e58d..13f451b42363d6d9b26513dc0121e436f630fe9a 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 61a209471d6e9c0e548b4a11e0ef051d658275b8..744c5957441b50c3f0307588a3180135294bd5d9 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 b408e355011236736a5523cbede2c2a9a9394190..a7bd06fab678ea2321c88c07447b0db6dd656ef0 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 a59d22ffd3b98096c3e1e7b1a9903fef252060f1..01bb6af9d22747026540ca9561b2c282d2c57ab5 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 5a67ba267965b500bb12e8fdb109bd6b224d2214..a077cb8cab70cafb501ac46d15dd72d0a4e4f0bf 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 37f645cbd4ffa81f247edf9293ddd94788222bf6..ed021fcab1f9b5e33bce908f171cbd9956742d90 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 2a666651a9a5b9533163d50c548ef8a2f960df35..817b25df2aedaf21c0f4c7172662487136dd938b 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 71677a43d6b8411ae13aac832c004b055d3c65a2..aebefed787c1d623d6dcb974701ba5dfd8e46a3d 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 21091c5c446e8eab024981488f5754f67addcbf1..25426fcba4ce92ae2ef1cc5da6772c4518e16876 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 25609853d2d347fd798a2f68e38ab6197186df9e..4d8bae4377c4c2ef59a2128967648ad3d27c1f9b 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 fc8fc1549a6b23e783ded7d5ffce67788df1c263..0b102579887ac19200bbbb9ad20efec0f70cdda3 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 d248d46e4feb618385dee0806f1bed5d6316274d..77d43230847760f185ad7a35c91519e7a976d1ce 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 a7e3de8c72831b2288f5a31cec5394bfd0fc38ea..82337df5b6a73e67eb88abb9fe7789873077ee48 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 27092f20a3e7993455df5a5439c66e6e6dba3415..4c75a78ff03f0cb9ac887db31277d1e8ace6f609 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 892ed4bcaba156b1983e8118f6ebd9be2a5bf326..3c04e4960d103bac17b6e60eeb74bd32390ff412 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 9f53378f14ce618d8d4698817a41e970ef207a57..7bbe2ec7005adca370e97f8992240678fe2a7f20 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 df04642158eb012618c257cbb8d45b51097b729f..eeb33f84ab6ee0b047ccad6ca1174f072a5a44c5 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 05c96c95c2df4760caf5660e3dc1786407506306..2ee84535470c4d899724e78f49165d3a9cfd7bbe 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 6a6d3d92d5b1f34d88b6ba28de9cddfc95b0d5d1..47c4949de739213a65f753ffd9549b869ee3d8f8 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 1481b891224d97e80f8b746126cd13b1640a1dac..a2b52742bf6fd38e2b4d7e72be6a2b9df5bb112c 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 9fde32d87289bf287e19e7912a25aa6d20536088..1e7d8e7c1c46a05e96f597b245a25aacb447f4d1 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 706137796654507daa314c5b8c859d884c23f386..0caafff1bfa4c0ca43cda5b3f2e939a12a7eb63d 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 33b63c96b7b50d00a245d4a87b93cf63ff0e60b4..0a96f97defba1a36f5bcf6b718bc8164edfcdee7 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 9a9663533259c3cfbbe57d546f519061557213a7..3c942a2a3a36e3d16ee98cbe05355b9bba519d3c 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 dcb81d95eb99eb3044d3baf9a6c3077dbe7bc23b..e402db235a1ce5fb2e637ba82c12b1d64292ae3c 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 d7812a92b48e963c2c57d12eef3b343e09e72dca..78dc719b141e7fa9a0322fa288c8b9724f67e33b 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 3f299db6d0c4a34261547ee7f2bb224115124123..7dde6263defd6d1f8adc0b9405ed55d0668022af 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 096b8312f89e7589f66edc091af24361acb5315b..261ae79a680cf8f22daab04c932f844b4def736d 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 71a15190ddc8c1f530bcd4f62c4edc2a620c989b..f0d0a7ece0ae6a209ef8cbe2397363091ba4079b 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 4ed6d740215c437fdf05e1d8c5e440b0b6cdea54..f9ad91087c3b9520c840100d3ffb019d332eb385 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 4c46be11bba4f478267ad484fbff70a20a06581c..67da025672fa69600cbf29aa94c99f29862ded21 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 d4d202950a46d55aae86624c418dca5579774052..77ece8dbe3e7290d90196a4740fb2d6cb801159d 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 5bbce9d8668649632091b1fa6c394098bbe8ed5b..aac94d75ee6f012706d2e6e9fafa98df241ec070 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 aa333a598ca4589df2d9cc410ad40842ef04a9a7..d875e6d1a96fd1e57aefae01474bf8c98b8e3e83 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 2f876b9955c1e7c8e5f4aeef19298f04dcf84479..36ae803372659c0641c26a81f86d5bded8506879 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 c0cd658a28c7f5a26850df7961ff3d6b86d6ffc3..e0acfaee2f48be3a83955edc92379de5b410e3be 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 6fc06b889dbc70e43b06dcb4fb02979998786ade..65db791675b57e4b545183eec7c14f1f4186b72a 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 2ae0989227de5acdfeed6b1271f7794f2de244e0..509cab5973bdecfd09c4ee62b8de45cb7bae73ec 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 501e97cedad580606c72778fd54b835c1579ab18..a4674ad7d576fb38eb98b885c5c084bbabbe2fe1 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 a18678796fade7709a713227cac2cdf9d81dd385..daa881365e411bc7fa4c3bbc17d4bbdf928dd95b 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 30b368e62167fcd0ac18ad9655497995fc91f528..7be9c6adad0bdf1ee1e8b4fd367860637234b9cd 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 958f004d4ac5c8c6e90042d0b15cb4274fdcf052..7ad8c37211f7e6d8d3c0256cab9b57e120a9a230 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 f5aba005f9a8f980a018d1cff29d86551471d4e6..03675f36c92e45467868d54778683b4cf6b53b42 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 96a0de29f3d067bb84534ee9231aa092fcb90a4a..be6b8aba324464fc8803e027c3306fef50ce170a 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 5c8f146bcadfc7a6c3ac9bf579a76638563090c4..1bf9e8a852bb45243e1ca541c41e02b1d6d898a6 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 719bed1ed4e7b423abc61523780b3b98bebec3fe..6b6207dc2660160cb6021204b7d7c093c6726f9c 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 10b933d4f45bb7f69a1eced2d4b863413ecbdaba..f90d344efaff2521c48f48211efa6175954bef90 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 132b2d3f635ff64947daac28b0ae6baf4f586003..2b91ae43db2ae8f18f13546ce9034bc750a062d7 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 fe08b0875ed152db1f46bc88776aaf9edbe70b93..2d3bad1df2e2c8c4e3b0c29c70e87bb2ca1706db 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 f93bb06729e88aa20a5e3e0bcd6862ec28f2713f..62c44c9363abef69acbe49a669974da0b6d145d0 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 99834a5ce5b4f0518814ff004d843888391bd32e..065df710c8ee1cf2e62c4f9c0deaae4ac580b9e8 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 c27545f8692345f64b59903f6c4f5b14b7f5877e..90e75ceb25c70b016e9b31a60ea8b4e4762859a4 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 76fb7ea1324d53f4c9c54753e2cff5e78965ffde..e441174900ce1062f50a3abb306ceefe590b1da6 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 572cdcbf43e9b3f7b106be0a76d56bf4d3460287..0e5b57e6d8a19ce2e4ac6dfdbf968c01a67e79c2 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 540de4e1ca061b3ddf0f61ff1e87f99d0ad22866..8daa419cc1319c726de6686226cdcc5760b26e54 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 0937fba72c60317857526b95575b101bf0aeb77b..645d7d474c049aa6e558a981fabaa16a53450338 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 1c790e8b643ac3432b94ed7c00d2fe7f3d576953..95a531d75ecaa78b826588db8de809a65868d5ae 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 c9870a6585844de65ca5fca8cdc83300653c1f32..52d476a7e1f0c8ad1260b1bd3fdfa405e8a571b2 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 e42b0012dd69fd2a768a72d06e7404c4923b56fe..43d0a0866e4ed6a8152d6f15066cdea53e441811 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 93485a41175c290aeb5004f0174f9163936fead9..3709abf67f54d73616c291573c5c30ae0ab5cfec 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 6dd8f7a795a80a35f935a9af64bce2391677c779..fa839896c88b7c3c036cbcdea3aa618438e68aa4 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 bc21880372461894b59dde2bf5ad54d7f0063141..0958e6f3add9b982ad1757ad381467132dbe9552 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 c9d6955a634db0d0f125c3cd572865aeeca680c0..452302095eafd770759bd604b034908e2f77742f 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 373be5d3e46d2aed94145c0f376977c2b09336dd..56e227aa14b626e06d7c5131a233bec55cd265e9 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 77ebe8410a91b1944e065e9e77343d2a2148edfe..65e4438926d34a112e1362ac93f49eb00e01c492 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 b733aa19790b45f280c441a322f0c34bd136a212..017537685a3265008547dcc255406ef377ea4951 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 031fa17c0506a8bcbf7c0edcc73c07e019b8b74d..b129a90a3946b55e5ab9fe5ec1d39ffe22d94b35 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 1fe86add60658fe9d1d461f0507eb8f2ca77bcd3..cf9c20e2860ab8d6d1934fc64f37f07bb12d4e10 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 e5ae85129e2f78b6a1c93aa7db595113ab3a0141..6b5b1b91fb0122d27888cbfc3e95eebe2764bb20 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 907d0794111a46fbd82af24c10d0dca6e86c37c8..ff19918c5291cb7819f70dccdeae9fa5e49f82c3 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 113b5b10a72573b4487c065b9adcef0c6e52d7ce..45b18f1bea4f21d184087666bc2d5ba74bb9b8b9 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 af9530a043ae00be0718fb1fe61a480ae1e2b468..86df1e23322bdfc824a660e332034cc393a4f866 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 6f2924c86bfc42e98937e18b7c5335bacebd263c..d6d16646f99325a49f44e571d318481d4b5a0950 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 bcee0edf38c24fdf9a14975de02e7e009e4c2f6c..1ee304556cc1653070a5136cf4fc84ac7a130ea4 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 9bb9ee2dce1616cf12dcfe150dfefa2475f6bed5..9675290ec18148e5181e91c8a29b7d9d5943cc1d 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 f8b635a9fa9c47b7e2ea38e1268dc86addff08e1..d4999c753cab8fbdc279ee3f26881248351c1b04 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 8dad9de3929f17651c56a51d9d1d23907cd7c790..704d0dfac8fcf737945a4f8fa172d12baebadc7c 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 281882c9eb5564c8e1138f82014bbffd2768a334..ce42d796c2829332709e4d1938a4cba7ee5529af 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 e997d21d1a4c48e56095d1d3a0790c6e016994b9..65b61848c30e443c5c9539ec6b2e6d185b1a6c60 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 c7f6f26d89fa301569eb85b82028bc48672e3052..e5fc6f09caa49d18967781610af38e715cd030c9 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 6df5f827fa767ce613d1b2145bc1b14cb7a87162..1b05810c1acdffe735fa72627d37b871ee54e094 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 8048e24ff0d6b54c4ce2f8dfda9cc87ddd75da13..19b32b43c718e955839cf2295b0aa4554c3f16cb 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 f31e0425cdbcd81118e31a5dffeb882dbd140e89..57682172eb2e3e393e637f12c3319abbac2f0b6a 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 f8e99469b388ed8ca5bce73407837fb01b8848d4..865f9383001e4bd819a42ebd5e1164085f74b047 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 80238ee56bcc3382a233053269d5970973d3662d..87e24f92b0e8d5191c8cbbeb6a744d4e1ab91260 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 bc6d09d6b421fc7ec35ab618f0896ac8b13d5023..5d6bab908cd2a478f359cdfc15955bb09d218cd3 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 d9efb6232af5c657160b777caec48c1b6e20bf38..aeadcb5b7eb339309a05d88cc4f66a8ac33f9d75 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 1338f68328d1630ce101ed4373744c94126b80db..10e12150c5a3f7c0ca1bfcb40e6f69383c15d86a 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 61e746551fe4ae40d94e1e3ef2428a5c678c0f0b..4710a8d95a558eceaa8a6dce2140e29dc9e740ca 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 9f63d8c568b670b75c0d352dbb4902d6df0722e4..db0ea8366a04208f2695426c61cb5edea860d083 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 71b6f0ea994fee7be92af994f3d7cc774af0636a..cb5af46f17c643d071650c94ce69ca0b6950fdcf 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 da3ccca2f2673144069d12c1651a98df3f738e64..f0c8a79bdc56f1c0ba31e205eaf4f4023f1d2c1f 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 dc7eacc59ba50ceca886d0a8702bb4f05795a931..03f4886ce1713e9ef807ffac101a54b7382a114d 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 d1c7e20bd49cf43cfb22dd4ffbb45a41e00f1621..248b5da378bf0a8f8ba0d74f8619b36f4892a378 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 835a9d19bf8b8d44f16fbb101a017948fd33b92a..c619253d9c0f6d05626d854973c27da8f66d279f 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 1a02b71982fe0094b6e50b1c7548b6b8570fee30..e8431a8ae3f0b0e4cdaa2e2eeaa9f8558ed4efc9 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 b056b27b1282ddbbcedef89e461ec322bc45363c..883151f60b38f744423de799d154f8f87099aab3 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 97003a92b5e21c9c954588e9883ab48fbf97cf0d..96079ff62f83fbb9a9cecfdf1ac0bab77bd02ac8 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 ba4cdd2aaeff342941cf674d4ce09a765fe9bdda..e7bbecbb09be1fb7a3bccbedbb8f2348ba942512 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 4889a48b3d83d1be0d916ea835b18c02fb7d5453..55443dbb6a3eed32c2059385800645acb92a78b6 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 e2386bb2693075c7789519563cc635883e0ef44a..8c10de3142028ef23ea92a8e7338950148f874a1 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 617655e38fb1e330c8dd6663fee01d31eb5a6e50..8557a9435c03102918ff9da626c029558c661530 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 4028b4986e88cad58da6f1839039d3f8d7c45b54..2a76341b42e185b054cd972e9dad9f08ba168de3 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 3bb7617eef0fac962485ea8566f22d884d62c456..c4581497768b35936e41808ed10636e3f0433f03 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 a6be3079946f3beb1af6b38b46c57999b2665e24..70abf77de7cd9a2850808f048def3de2552a0304 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 b000351508aafd9dd0415da7670ad547b936e445..1db376ca3c8f2f864ea7bfe8299899b7e97a666a 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 0d44bac4c054c7bb0439d5beb6cd8f6d2d49c3b3..527b95f4a3fbfe639465f6df116f7f9fdea7df4a 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 89d5cd3e129125cd0c934fec1aa16c36ad580ae5..d8054be9a586a76da0ba9f89b8443d22e30bffb9 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 d84f572e837f741b3dc3cf391042b26a445c5020..144ff0623da79394fcb889d1e67a407516371c38 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 4b0eef0df6f5c9b66e7ff13891f29795cdf5cc22..855556dd3d19eb406fbc07e6fde7528522fb26eb 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 8f5037dfcfd5075f9c143fc03b387a509011329e..60ff0008d3655eae9ec4f731b1bff504984e7d3d 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 1147a85d60e88114126939baa4006ac2c403874a..016fe4f8401745a8a4c0f7106944d1547c5b0b32 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 7c24750e7ed644f1044ceee88d7f4b4f60df8e1a..5bdd45119d86013824c366bf1b43c7927fa00239 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 572f651cad4aef0781acb669c4514d044faa2a2d..f7205ded554692f83a43b7f77f521518f8e28305 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 7ce2e1fe2542936f93d6f7f8377e6aabd306982a..37629fda7e8248e47f7711732607f48fb8a87b8e 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 d07a3f5b6ef346a9136d83601991d6bbb8116548..07c02dcaf80db9d3071e56ea7b1b8b7b70a41272 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 9a87bec48bbb36eacd1d52b70f4c941e52346d04..86fcff68b7daae263124c44d72ec7bc756b33782 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 a9f68a75b7d46270eafb9df7e76864a50282ffe7..ac49f09454488fb115c4763fcc56424d46f0dcf9 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 053825ad6962a1a653d09fb0b09ac1c2fc7931c9..b56fed5408cd185ce0c22a7908443e5788336c6d 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 98ee5d6c8537f8e67d343057b7851c6c957b2129..eef3a9420d164f653747a45317ec350dd9c876ae 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 0b088e0d009ed299a4ed5f6702764530b1fde2d1..1239d5bfbd9e2443a51c8f172b04c27c113b2188 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 a2e2c87c3220e4536c9e66b548c3f99c72e873ad..a40cb9f5d8637c85c5c5c532f6b16e4f4181d71a 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 7ad1d95ed7bc3f38132b60550cd68d3f85fb296f..f1082a1fa3737baaf03494b303bb78bc1bc47c5e 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 bbc8fc75685ac59bc16d3a94a0a6148bca760cfb..995a21acb2255c93e9f49ed04696a21089d35e0e 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 5b9d37b3a65518207fa41f65af9a23b1da2d62d0..2e8907d199bdfd3feea09a35bcf5bd11bdb6b1e8 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 4302b9004f94242d49d119ea4aefd4a5168fafe4..54176cd586bf578967d35c761091a0dafd3226ad 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 c5d630610b8ceb4a5f5d974af62c199c55a89bfc..eb3b3c28ccce9823e44d51a64ee5be8acba75e9e 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 fc43700b06a49a6558d9eb18ec8d92ef8b9639a1..7cf5bc6af204ab18b4b43e8787d9b6d4d4f6b28a 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 26eca3c7d855acc04afd77d0b61294ab99c192b2..610b031ad92f371b2f25f67075ab36f2aeca3b8e 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 5bcbd35e918c09aa033812578aa762151a964cc6..0798456467f2b413ff3b809af44e81feab81ff51 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 68e700dc23e3a8425960ef97e0c7a4935878f172..39c530989dea8331b4a413e1ce54859fdba1cc91 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 fbc588af10a1bdb20e73b74eb62e5752083bf445..561aca8bb5efd2f9810f3a3e23bf006b28199515 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 b8e0cd43fa0100f0990d929b4e0a3841beed2132..b547dc1bc627c7a325fb8cf432156274b4f1a15a 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 a81f309fbf90069cfc6818e5f51a9583123fc4c0..4e545d5e6606618759016bc91c12d8c0315ed3d6 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 2a5d32a027eec8d19c6226e7259b0b4df38e7c79..0f9078a3f68253bc40bd4a5d8e625792d6861bdd 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 f468ad49cf93b5cfdd6c6a22ba562660da382192..9aebc2a4e71be6b2bfdd7d46d3c5ea37d9501c82 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 c950da76a18e2fd25609109764831ded8c84fbfe..7c27ba44a4967e9322d3b86ace1040189eefe762 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 a988a509766f893a4f7864cd82f56974eac32359..9198198872da51ff3a57092897f28950264298fd 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 d2cbe5b2b041d21dc4aa9536a27136ba686c5a7d..679259bfdf72ebfea1c99c48aec4924edf620bdf 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 6000f0c62cb4b829ccaa7e2f40a43533aca6d7b4..299a7fb82f086e4b8417842cc111c78cd5571a46 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 50b556d39afefe8a61a35610afd978f41015160d..82aa5df871b8f3452d4677d4c841b862fbbd1d30 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 93d1f0a8ec73b604702f382413f89ba468b85c6c..a0c2c72f1f846d7b96001f4ce9cbec9f9ecbb2da 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 a1021a4da93b453a61ecd39087b2057c18e3fde3..8387e32f52c217ca4e01017979693c0cf6b4d00a 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 60695ac6cc748adef0c9c199842847ee4f991ab0..1a49be029b964814de8e8595f0125130d01f6fd6 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 2af642c838a321f22fb311cd4a415da774b4a204..53e25d44b699205cf9b8f7da7f78cf3e9dd53f86 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 c7a82bfb3393dc6b606e059888853a7b788a51da..15869b613cbd9d74b0b40f3642cfabd5d0918a1f 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 57a26618799ed943f66e0c9667d3e64fba7742a0..5c9a39d0c56f55d45274332d6659c9a1ad404eeb 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 ca32b1bddd419383fb717900ad73053e3507fe73..78624fa137092fc275b81a9634907e94aed2c5ad 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 68d7baf83fa27e432e771c021052bcff9fec27d2..c1fd390eed770469557376399fa64c3c2bcd5987 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 35d05f189bf4d9e213f6784adc3031e18e28c72b..e1c725ec5ecc477c05cdfbf065446afde388e13e 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 b12ab1bcfbd10034872a17bc4c085db5eca2fe79..da13b1b4fdd3d3a4af1e59190df6175f0654d2d2 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 248c74b43b34b67c169fba7fea2b35ab1a643b9c..84f69deb273f949e06474ceb2261829583b458d9 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 bf74a5147d728dfefa654f375e77402a56c39562..27e74082a9c68d7c891bf640b090716962de714f 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 1be7fa80ff0a985c70e5be893a933e5879eaa80a..1b7b9a6aa7e14622a71c0e45761617b70b59e5cc 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 3b387fdcfd26f2cb30fe49ed8eeb88289e3385ee..1426208f23ab96e90f777446b24763f83018cb33 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 e806a073a5501b63237ffa4014ef459b50574273..9394f2e539b881fc28aaea130a437130f7cb54e0 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 759f87e8ad75a7592cceda011a27625009592489..3a550e943761028c5fe2559f5605351acce670f6 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 73c579a13366982d83b1a2bc8d2d2359ddbdc0dc..c90499c936252ec0dddffe23687da4cd00299e7e 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 549906dfb03b0d220e6f5ca4fb482145771a748e..9be3764e715b273f2d161f32dd09f17b45d89751 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 7e65f4c04f72d291f419459b4df2e4f9c26b1162..8b790cfd87e4f2e6313635e978b1835f863d732a 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 33a6512c750b604e9d324416aaded80d31b676df..f15b9d9117054d1ed745041f78d9c6ebd2b8ad6d 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 5dd053cfe77c0140c2a9422770b742fedb2e05e5..e1448664403583f547fd1edaea79a9213e414f1d 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 15c08debf64c4829e717a0fabf4efddd937e7033..102edca038df3ce02f707a6d0307fce1996e7075 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 aa99f0c862a272b91e3cc5aabe8c36f66ee63e73..403cc46f5a0e1621432144d7f2a55a8618203e1f 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 7ae0e55b13c5ec725e7c3d88f838de674c325bad..3acf4b9fdf2de4fdf4509311a5f1477777234463 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 bc4ba98044f9ebdc4b51c08978a95369b67a7f77..a84f9786f4c6e78e1a354bc2f3c34a859e48039f 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 cd246d16ee874e3c37305705a754e6be0699d72f..43cd9821b611e47ab8dfa48ea224680f8be594c0 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 4a0595afa9b7cdd8a98efe809cecdba63a18b020..29691fa11b2d85b7237671124df7fa7688750380 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 3b7bf51f04b0e0a712266d363d0eacd0c51a8ec5..95fab43eef5fdcc8f2477452d2f8c750d4dc01e9 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 60b0079d79f9ae4ff3551c0ff00bf2cf180f027a..c497d205c3e3d939099717aef297a2c730b3712d 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 59f9f9695c2b0dfbc83a833fd6d85fde6497988d..e9bc08195f3d09b4b0579cf881936c0568205967 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 db414213a11b2ac4f0cbd338c5b759280dffbda7..b0c430333941836473487bc97e3f1a7a0bf29787 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 e93407defe285c49339b6745e3430005e4343fa5..543080821e6aa45e87810494b23623919ca161e4 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 5259ae445014173ce44b8eed2dff01c691ff0617..172aa09d897184a0f9c23638c1733dcdb0895325 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 cf0ecff3253a51d92a3a90442c77880849159011..d753cf06d3cd0474225d844a46e27eadd0b95e5d 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 ee3dd4a0774543cd9ee4e92b438086112c3f9661..f12641b324476b8706a6168bdbcc37df69fc266e 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 c96e4693fc578597748a5ce57d4827dc187e7980..5ba13208d3c07ee593eb757ff59969c4e5178b39 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 6b1ee7c030438fe47ac0c162ee86b30ea0c5dcf2..b1645d527862bc9fd734d69d5db607735775751d 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 d6735ebdbfbe06c24fbc2702a4a3f6b164b8e518..b84faf1a91d1a56c1aeaac23ee5e412b2c9184a4 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 2ac6f78e6deef9086afc4854a7bd603c0c37f02c..de0aa2311ce4f37745e42a321dca63548d98de95 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 524831e891ab4b3a3c528e0c2837fbb73bd390dd..2894ef698ccbb4b8be69f69fd0cd2abc658f8b85 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 8424e8d5e7282087ec4c16d9c45227f0694fe52a..7e16896c9ab00d3e221963ff16bd20f3aa41d7fa 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 4f106de404a0c2a40927cb7d3dee3f99e1889116..90467511e67860a9390e4fb2c8f141c1374117e5 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 2194c3cd0f14b413d3804ed52617d7bc4af1093c..5d49814bf71537689dc21b9251dd9949bb8eb364 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 a4ed1653a962f1a3c1ae5251714f1e5cfc9b28e6..5039e70fb989707b78225418a1359bb3032e3685 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 a026f39c392a08b7fa04c3169473874795d7e92e..0882f176df7019847ea612e155495192133e246f 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 981d3c78f3a6a89ae34644539a9ffbc91cd5aca8..87438836e5a07373975d7ea6f017d9ad19354ccc 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 469402907fa55346d698f84a535dc70fbb498963..9ecfe949a38994e4d7c48113b5ba38514055302a 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 3a0ca678f6c5f5e6f089c8be573710a8cd2645c5..c9f9d2d1f0db1b95dbc9cfedef8dcea3a84d2679 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 de7c6f01f659561475c50e84363b795100458581..8aee17bde99205732b0a62f9e8f9fc6e5eeaa47f 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 4bc3b9d523df1f50f1141b75e935999baa4830c4..b415264a71764ad5fe145960d5006f2f4881b80e 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 c601bb0077fe044ec61b4061f195c3b836ce0651..0a62831b201f181e2e5e7dd74293ed4ed96bcbdf 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 0523a47b1c56b183f74d508ec11530e45fccbb36..1c44e576baaf3ad20c26cd0c7c2f4adcd7ca8cfa 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 49870b59635d3de1793e5ba82a75be2496234b34..ae8a67c58a88fdc9277afa3e646c8022671a7106 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 938ab25d0f8adb4e5d4357784ce6115efd721ecc..277bab11e31d97e4046f438c2147334e18e3116a 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 6f40ec38d081525e1d001a85b78e9d5fe7ae16dd..3d028e3671150915831056a851efd81c363a1122 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 7f3bc58d1cc152927ee85056c24be1d496dc01d0..9c40c3521ee15ee73377f2b00b866b25d509f2f3 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 2a53307c8901abe81e3374cbd146c06105aa94a3..0ee0f00c0b33fe79f006587d88b8cf8ba623aef3 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 a0e59217cd30b487d53a02d79e2d3a37e4c09921..50d4a4576cdf1e8575dd1a4898cc821f1d39d7a6 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 03d8a374a0913096f525f44247cb5e6f64f7b3af..a2902a9cfb6fc84235918fab1bd88e03afbe3381 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 bdc8a21ed778281c218881af4ae98c98cd6e0c54..a25482d49db7f311d47bf8f5ad26113abfb85741 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 5e7f67c0b189255605a00ea17babf64ab57976f9..02a888838b53f1efab583384d872d5e0060c40d6 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 df6403316e5b37f42673f6c3de2495c1bf5959ed..bf19a0199fceb366ab9eb6af4db49a77398380d6 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 f91f6d8abdfac42788e88dfafbb045cbf7cbee77..8e0f479bc7312132599d5b1b27d5f371a06dbda2 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 cd96a7ef22e70d8bf5eab62b1b8053f70f04a41e..069e25d6975ba72122ec40c1ad2cd6559fb56707 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 76861f22fc83a0f4aa596300708349459dae1e89..ad5d492fc06eb77fc73ac3c9868a30d023e1b779 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 b12ac9701938e7315f8f4cee7badca604ec0414a..71a323f99ddfe06fb821ad23d80c375e7e57318a 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 721c71ba3629ead87ef0fd58397cc3d781fe116a..7b658c296a4495578bc91d47f79129e057b0b9e1 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 f7d92f3dc968b87cdd3a6fea3df30d1e0d8da2ba..1b18002eed7c892d14d486110e0a21bd3603fb83 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 2ed4c9e11a3682ea7c3c9fae0fb35480d8fd1a9a..bc3245ea64cbf4d360c2ad831e2db16dbf90847f 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 7872d416190f36ca82f33f8c7d5b82f43eeb9538..66f0a7c98b7f85c76e652e6486732d101533b6bf 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 1365d886a2d9268e7a31da06c34961b0c22064df..9dca17a5ba11a89fa8a17c49a459e705b76391ab 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 e04363684ab6a3f6503d56adaebe44f9c64782f0..12c54a6e8b98ae97107effbb3ceb7a5bc2c6b5e1 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 3ee1cde819bfa2ca0895f93885fb83c3b77c1902..ebc6ebbc346d041c7ab9471ce977c8611f41c2f1 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 915aa31227aba5c0178570ec8ec584a7d89a2c9a..42aa47300c1cdf2711f010b4e05ec49f4955d119 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 769da3c4ca8f0ed262e70708721c423d3de70a77..79d9e655e3d4542340cb42344169ab70a33d8162 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 4bd8f62514595d77987c125645ca179127efd5b0..92c7cfb927eb3cdfb21632005ea7717e9904d0cd 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 f35830314516a39fdeb0ee047897eda34d762753..38e67092bbd5991fbf0d2ceb26e6cb3b2c65fc9f 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 5a9ab2a5d6cd74e885bd98eb45cd2fb5bf00b74c..6c49dfb7917502f7c983bc02e14883c362993683 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 a874987634c39fcdd0cb6de26917de62ab06900c..d63dc6a112a8795841012b68d5b6a4d3ab3ca7e3 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 1e5557c608218221cf5423a6b5edfc5431bde065..0a77b3cb5b945e566e9c070299117ab05a22e4d0 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 415e246a1c6b5af79220c68c2838b36512a8c648..364b96bbf6e4e04545a50f77000d42906be3b7cb 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 9904e244018a344ba4b5cedeb4945c077d201777..4e28f836d2edbe71a7006a7b6552c97fcb44c261 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 379b06e2a222fbcdf678ee3bda22688243c50d39..c7c9db88ea8054ad00fd0004bbf937594db617be 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 8a96d71324a990451ab8a5fb8b826bd131b81284..21a76eda39ff3652f7d6806ba3c5ed058ea43afe 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 ecaec10e5b4c214ea7e3763094afd6668b0f5ccc..c0778bea2e9a3e6e880c32c693998a74db82c544 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 d19f46c29cef5f901bbf0d5de24cebe1abf6b6b2..cbf83ef55f57d60eacc7677a3665dfff35f12723 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 d790002f95f15720e2dd22ac03573a4996a5cf04..d4df5c6bebb8aa551a72a479966d9b1c5bcf093e 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 9eee1a3e215ee4df873f0c407bc9af4e1bb77e1b..6fb25077df3a5ef0210c6d9551e715b9d412c434 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 9a5c8b99ce7d0fd3980c3afa21e136ba6f5d94fa..2c16c51de280cc0c5149bd12a670500ceb8288a1 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 058318ea9d55d6d484f1cf1d385e4b4c69873df9..ffd7a6213e2b8779f81dd0d2647ce7e1410f04ca 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 d7f3799e103b94165e9934dd61bfe8ac530b2222..d241b3b3a4d408b705a9e712e85d90931d11594e 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 049125de3fbfd3230fa9a6c849e6dfc9e4b05023..3fd4734069f35aca715224a205951263de752595 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 955baa79a79da1aaf2a6ea1da229fe679c873200..a65a28d3a36f8a5c755c23410745f5756e7d6e74 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 98e576a6fe9bca691cef97e3316ec6c2c2242d3e..60e216bf24ef30bba2b913b1849f59f6fbc34646 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 58f199b834e2585d907fe31e2c0283645d2bf0f7..4996e4023507da5695b83248c552d5271ebff015 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 1d4e591233b343d89feb94d61ab393b0b4d4b6e8..3b63894988002ecd4a36707caa581296f33c10ff 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 63363b0d5213069ff43f990b8b8321babb89c20d..be0fa4f00b169af7850100c395d0b9c47a42d88a 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 a0a6d81487ed12e365bb39ab81e1024675bc035b..81ae67f4cf40b70a6d1ccc30469f3577cfd47782 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 1bad9db0df10989d9523ea6679998b1e7b585d2f..fc840d029b994c91da50494a159733d6fa07089c 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 210cc9e968421515746531777c54fe5d036a94f4..5b06bf70209c9c6cd1e84b1d74ce44d5128a83bb 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 f50c211a2d0411635481b2d6409a45229392afae..d2a9e042836a43ca163410edae3a73f6ffae4873 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 9e7ec690d1df1e5389031cdc960c7c4f94781bf7..736f1319d7f014500aaa806309e0a0b05337d2c3 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 5b00d1d828864c97c604d147e3a54df01fbcbe5b..6a3dcb3b872abec76ba187f6b74d8d5bec9f4b08 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 2cc54cf83285af065962d6add7b3de346e97fc1b..a00319e2262530b0401afde71397a19c21633c72 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 543122fe8ae1b12477ed7f2a3bd2f53f386818e2..7dfce2bba4338b3c29a732316268a554315a5fd6 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 494ff88a2299a2034719f17e9808dc375d9270d3..c35fadcd0c64b49467e63cdcca55b4363291e273 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 897dbec5d7fcaed5f1a0a7b933ada506de78157b..4d01dcf6aa8651858d973bbc843c1677dbe83cad 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 1aad2d3310cc49a16207be08deddd924ea66bafc..4a33d05f13c4f172fd104a4e8653fcedda39bca3 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 cabcc643006e75aa7bc8d6691a5bdedf9751ed66..248cf2199a14ce1149248c55ed61388930caee28 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 87c33163a28b7ca83636260ac830820e6229735a..01f755586d3d90cd9b48f09de5c4dbef8a57da0a 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 4d1a4ce3519fb4563915710c4ed0b5bc0aa4e68e..85d73d7639d47a02e66359fb8bbc15fce1aa5f5d 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 20a00064a3433bf97ab3831076c5956f4464177a..927ec4da42eb5e9f2e3215717ddbf968ac583d86 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 7d1c3eafefdea5ca37e2185624375ea9c38c66aa..7c7f7d6ab979db8af2256123e1649ace42795a25 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 78bafdabc5bfb621657c538794722680af126dcb..218af6c817f13a66bfb9a15d4faae3168121c5f2 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 116ae062c93cba0f27165dbd5e6203d870050e99..5e8da04fb2054f5bc77ee57863b344dacfa61f06 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 a9d6791a3e5061eab5a2ee6be9fbbc15bc2d23e3..8d3eca51c78f07da4955cde5bdb6797797deb1a3 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 c056a740cfac7b97c2b29e63c46055ec4a327825..03b6e6f4f37c7f93afaa5314f19882c30251368b 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 ce8a31b519852ecfe4430092c452345b69cc3de4..6f194644617f2e07671e06f8fec44fa5cf6c06f5 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 36391e3d20089c361a8a72d22b19b17015c12b3e..9d0d45d4820eeb00489610a194db308ffd3ab68a 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 48100991e71cd1a39efc75b6f469e6a30c500227..94cff709c2de54c702d4cde248ac4cd6de2ca868 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 a16516c40a270beead223a9ae443660e2c6b15a8..4c3fb6c82475d59a769f26ae46704faf6d3da708 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 bed38746b6daf76bf62c9f4c01dd8b6d13e6d96c..685f6efbaaef73b1f5821ffeb68bbceae867bec9 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 78805fab5ae2247d54479261164fd46c5f0c9abf..a1b7f2494641954955a42d89c24fe2aadd39f803 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 dcb606932ab9826ff0eda368c68e7a59b4306fcb..d2fe58913be3c8c693f27d6b81f624b0c0ac497a 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 a51b124aadf50f72ad3f4dbded408eae7e137d0c..c0bf61dc40fa5239f4733974805648aeacbb14d8 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 9da0c08cff4a39ade9bd989ee6474f682b4a64f7..2e470a3caef305273c500609c9ce3c711f38a86a 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 e60515694ba57479c4898358d6debf9301da2fb4..d5bb089e4c432b230ebda874959f3f350e1f155f 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 4f7a6f6adf1f95c40368150a5a0dc8a301d2d853..7ca54dbf3cb0a279003558792f8d6e570ababc4d 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 47285b17f7390428e9c75aa871a7a3e55fe551c1..1a576c4fe2c3d46c0bc6fdee442c47325f9aa7a6 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 ef6366749be7dc2e4ef6b46bd45dac8550f023e4..4b3b4d17ef10f2c3effb5012953450c997447923 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 ee52a71bba5f5bfd817b91ff9eb00e3bfbaa7c65..595d671c0381210a1bdfdf4d3592e945d7792c7b 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 17f9a03c48bdf88088fd28582f965986dff3066e..0dcb409ffa3c12be05be00d7326d992595eba809 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 f02c17214c83382d4fa0652c9fc82883db250520..ff2d5778ec9fab9ee9c4af3b3dc9f0df5a85451d 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 a6628d965d0c00777792488671ec674e18001843..5ce2cee7fe8c2f4eb9cb9aeebf786219284bdbe6 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 c798537b502007ede6a167d16a2483825d8c17e1..470ed06446db29800c9bd0e21dd63aa3214defa7 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 7dc561d07ec00dcd0d2ea4cda760ef9d1a3a4504..27ae53bb6638b6d2d14b4a0f28342f7cb4bde893 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 74d0bd75b9f870c6b9727439ca68a041ad9d75b6..f2b0d6ffd21a3d8c77654caeeb3819fe216c098c 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 5bfd13a6947d77f0bc4444d4d859f2d0966c13fa..55db24a222417412336684a495bbba73bbf0d8ae 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 d1af1086e75058b2c1d9e0407149bc94c93f3b4d..2b518b58491ea876bb5948e2323c9d111af3d852 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 99058ab8fe14d861b2237bbccb01d06fb9a995ae..8298abfcd3d3062ebef7e241b02e373e8f0561fe 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 654e4c0c288962371f80c166b944644a03e23ec4..ef833571862ad7bd37beb29a4f06c44d61eeaab0 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 9ac187f3507f8216d6c0f5cac89045cd3c9ea1f4..c923a996898f779ce2999aca9445ff5f15e267f2 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 1d901a2db507af4aeba5f115a250fd68f3ee27fd..c7743d60daae7739f46f154f03da3c8efd1dbc05 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 6c8a0d9f12c1e31fa3cf6710f3c79e82e3966b2b..6a885b71112069f276e197a9e4ca0dc1e6612789 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 76d1ca0effded307df65e339736b4f20f283aa28..0ee7ea1a878b0bde99d28d684150fecc06b253de 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 dd29f89a254990539c8af66c0e5dce943786f93a..6ba7700e7da2e29b24f341472e9e9aea53724987 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 600ba3a6aaaaf8cecce7b47377827e9f7f11c591..0b02f733babb19ff137c7ba40c3faef5f985db9e 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 eb7129cf9482d13eb243d93dcd54ac0bd4db74a2..3ab2154b91fe6ff62ee086565c7c000b23f989f2 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 264ff09e4103a500989977f6aff33c9573df0d84..a3aa8005cfb13dccfc7ec4c9db3fa8f969a9eda0 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 514a921db16952ac3eeda93ae0feac1302827867..b5c8177d61f0f07aebb38cfc25da1a978042cac9 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 f623b253d1cfc1119cd789bf22b0effeb75a6644..0039a12683b8c95701590e7f502adabe3b192968 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 c2402c87c3ca204f9451be37c9c51f9fb694e483..8f794b59a1afe2ed76d9a9b809ce7383170c3c3c 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 6eaa4ec7a49707ca58b1c3b3d6ba392d89f4a5ba..7a87854b19db517d108cc50f0e6109a3de8257bd 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 4dfcfad26e30fecf8c5af73b0444f75cbb57c50d..333a554a75f457d6f56d0997a8d27eb727d80aed 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 8c62ebafba609abc74713e2e8eda00d21fd7f58a..95da430a6e2fb35d5f358d0d2b0748767739c2ba 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 33fe77d096adbdc22558221f7ebb585aeeeb4bc1..52baf0f9964797c521acfd69d237f40726d7cd83 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 d42b9e0cef86dbb6f32d6c2cf0c397b790e9ba96..231a5da3ae2b06de2299d0c317f22afaba2bcfb0 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 0bb14980ce2bc46c3f184cbe889fbc5d5cf23993..4fcc7dbdd2d18c5b1b42c2bea423002d0163c246 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 f55af658f0b239b17e9d2eec891f9819682c35bc..b7adc4830cbcdbdec225794d12aeffea5813c4d2 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 ebb8dbd48d303bd28cc794e63e74bb17d118ed84..9939055211469efb2a09679105bccbebd1bb97ad 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 586b7fb1448d092be6c2fe7416faca179fd23377..6b7284d0a6f8c129097014ea7a9357167ba4b86c 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 f14a93257486bdab6928e4b2d2b906771835d6ac..e318c0daf1909c01c048c989a024fe7c4bcad4fe 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 17b2ba201b27baa79f57d24fdcdeb30ad5fa0139..75d3873e19a4d7a1d50f2fd5f46c54f8505ec965 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 f31a79b63b47ea63b8dc14c9dd249762af374aa6..d6f9f1bce8e12582445720a1c4f10faa139796f8 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 c832ee8c17e94e50f106ce0e1cf86c008293353b..65ffc731ddcef7d925150a9d9f326d12a248abcc 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 3314ebe0bae7de12d9bb7a2ccf3fd03fca5cf9a3..e5d48a98946593b5008893470b6a2c292e065ced 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 64554ce263d38b4bd6815a870b79c3c6cac61d63..52c70fc1888818060a2afc1af06e88b7c82537e8 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 918e9ce3454e522b3a4477ecffc35220fb711974..b47befabe08f0af6b87768c59743807e8045523d 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 5c45362daa74e101fd2acb4ead1a5aea1accb408..32d8649d269960eade5376e1a3f43d93a3758bc2 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 002ee3633bf1776bca284e9218e2e4167d9fd957..f180c5facb1c95a7489db8b55ba2e0da9fd536a3 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 4ab85d22e550f5ad8d8e6e6e12dbeb4cb30f3e56..0eff526acd4f5d0b393845f76b8f32f499b2e60b 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 6e378c43b1b6685830367db87afd0f6fa633e3df..a6824d8a0a13def1b927d9aec6b78b9d3f2b658b 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 7db96681297fd1a42e32c4a78f059c2ef815ddd0..3ccbf8194213730ae3545f5b9f2fb8a17a28c0c6 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 daa85ee9eb8fe0981c244fa5466363c1d23c4c86..76fb1059b91d68848566e88c541bedb271d03c19 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 03bfe88abfd0b10e372a0ed99d5fc263c8f2e10a..c4df383e4b1a5d28853f33bb98b80d6fd3ae5cc6 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 da48e2694f762825916e9833dba9b0d700f3490e..b7188d514f82118715f7571d6d5cc87de8d39f83 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 14785b3f8e6b8bf57f80d30c43a817ca80167492..7f62db11fec6c2afc5a2fcc274ddbf687c2c7604 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 d4772789e13379ca1fb5617aea202969c580f618..7ef2acebad94fafa6196a5033025dbc6e4327a34 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 4ed254514ee029f94e9610b2ddff64d41cb1c126..61ad7da3c7b0761c6a3bd1c94f4e6f3fea0c1e52 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 88756e64accb1e88f39e591dd4e6990f27b04309..3676f329748c12204f55c2f54a086b2dc1bd13e2 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 90832a03a42a1ce5f34297379906343465782389..3ec69a74d20b034c1efca46596c5a9b5ccae0f4b 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 e6059853462009275701df5a0171939d4de3d09a..f5bf1d9c286c3b50d02fc0ef5219bfe5ee4b5655 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 4467fd9768ea8d3791922290e769ac098356f522..9c69a2cc524c73f61db957a3607a81aa38da67d2 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 bc0e3d23311992238bba1217174607278cd9bb79..25c3d1cb1bdc8224672f96bf01f79a42765cec08 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 2084fd47350a771edebfd6ce7e6b22f55147116a..cb9bee58f7cd3466fd5bf8c892f7a1b0dda646e0 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 392ea1650ea5782daa80fd05c9cf4ca5cecda6a5..607172b0f10917495c9318031b1127777b10631c 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 cf618aedbea78d8e7b05bfc31280355901fe1718..5630467655f8d8b5b34862d35b3935617bf94135 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 19bb8bf2fa0e7036ddb09effa1b3b46da4d13d8f..0095d1436c1703fb81a0bfbef35aa5b34595edd9 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 d2a6dedc46f5673d324ee710e863aaef3538039a..f6fd7e9cb8c5df8e79009ced9f6e27eb06398b2d 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 3a437ebe533c51cf4f9437ce98ccb139d7c0af9f..0984cee1087491fa20507363b4195f1d11dd9b45 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 50322b82857df31d3f91bb51e05109980b34d253..4f7db2a7141eae4da23d780b1769b2430b8fdc97 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 43843b249eeac1e272dede60cf9ee6fcff53013e..d7307709212e799440c10b573e1b00ded7d19e83 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 795a6975312ebde897b9d9eedbb8a69f1e0c6460..ae602b9229675ec1e0c300e20eab09bc1f3285c7 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 05c685259f73d348cc35eab8d183e4ff5aeda666..35df600e76a659505c1ae97fe1db49022b2c761a 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 7d4d8b4c268ec11606248c002550782ae84011a5..04530f9f790a85e6ac319b9c155f6f84f883bbda 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 24b28af13fe4e63407bd28c7ccab3a149af9b283..aa3874ebaffe268485ff841185d7c973138b3cbc 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 83965a38b21cf04b56d0157b1be7b8945aa79b43..8e2bc56c007b2792aceb25de96ba41827f59648b 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 2404e6b497e3bb4eb5e8ea3acd496a4871e65f25..3f34385a2d3c1f5b3c4e08d838c7e003d3e161f3 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 0eacba0759cff9e8c354ab7e39182977254339c8..c9298efb9d1d8bdfd3e6a0d8dbd3fac0700b4a6c 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 b604ec568aebe9a0efc446c38dfdff79ee095b2e..88c87760538168c41a937dbb64efb762cd366554 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 751420dfc5a11ce55e01b9e6212fede925bc21e8..a486c27ab66cf718ed8248b6920152b715f092f5 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 c5f22fe3088f3498ae45120441aba80bdd2026f7..a87a32831098802d4706cca1f2d85a236c094ac2 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 de0e6bad76c0eb51e1cad0c57c9d9e8179441589..513c2e2fc3b5070f14ed7b0ebefff489441f5517 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 1f5a8138b25286ec98aba4b87f47c1e8163770fe..397eeb3af60a538863412b79465b0e0a2e121e6a 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 11c0fcc97cd0893351fb4019582fd2246dfa42e6..ed590bc89c854ac3009bde57a2ae9bdd8d108177 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 ea90320eb8b6b3bc573d7b161c952c40cbf24a7c..d5f870872ccbea22aec56bc24ef8df9806a82686 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 041d43315ee81c4b204bf16e34f8983be76c1fea..4bc2578eeca738e92663117618e231d4f5252211 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 ec7a10e403cca446b99d7e6df3fd25082c9cc689..6b68d986dabe58b52febc8a7090d1db3a3c78c3e 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 e2966306329dda85f2517eb27b9a2aebd3483717..c81278179c441c28e1c9b88279d7c234581144c8 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 4d1db714eb969c35c7136b63ea978e31a299036d..3d10e93a26d6a5c76542ef4877ce7a15b3166309 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 b593ab2249134edde69787fe6ef0694091eac967..13aec2968fea756768dcc6c8c29069a9c8ac6253 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 b2b379edb85db66806b54db65047c916e0ecb11a..bd310224d0fe2addb0c0cc136095084174097871 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 8766255b72267037081f7f3c9cfae5073cefe9e5..e98ff0349ec1f702886a3e6ffa172c096dfe617a 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 58fa9e3d74d6b9464dd855564f6e8bad5943df7a..548a09c086861c1561ab239c38aa9229768ead27 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 1bd4934f94cc054ea00fd89c3d1482dbe5acf57c..441961a7952f411312f114071ddaeaca390bcc0c 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 b9f2aa0871d151e5c4c7f099daedeeecb746a939..28694dc15f422af43f2b33f42fe0c849101be057 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 22adbc587017c8f03be288f1cf57607a648cd206..046aae99965476e4faf89c5c0fe5e4954a2778b6 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 ee7bc28d64fa510e02a80b0387f39e1c99b71d47..b6f51d45c43981d92bcae9d654abf66a395f9f3b 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 1a4dfb93bfc3e38beccf57834ceaac14b37f53b5..038901ecfd78f95ea8afbb90985f16e739ce5097 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 62345d8472e1cf8c26ab96d4c07fd29bb4f39221..9dd60ffcc32ded555b8d0d4c517a87dd70201b2c 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 ca56c36028bbd2a353f5aae2cc0cc51d2bc60b43..6a3c75f79e40a5bbcf15bf7c2e491cfa15458372 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 10ce966ef1e259d87bb981b87ef16a21eb3a7ea7..7e6e727ddbad22e82672c25f2da1e0408f87a671 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 6bfd3fe4772e3769f5359c8521a3690cc2da1108..04307f21282b8b248d1342c918165a4ffa8d4921 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 6b89205012812d44c4f65c95fae99b924e91c6f3..84a2a30372062b927bdae8b3223caa0acf34d577 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 8e9147669433f9dfde3da1c7e616cc777ab98993..87ec4aaa662d82acabd3b6639b1759633a20b92f 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 17ae6e309feec93ac50979d36322785fb748dc78..01088f5b158f0cd4644eed2ab9e053e2b5193d66 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 935fb3d24a72c1b4b67f0712e2e7b6f9030f45f9..9ad0c97b009d61034db392b8a3b86762965b6310 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 0ad2450eb1922bbf20a1936e3bcadb30879ea161..f88b33e84567eb3afcea276ca79a22787476e3e6 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 169383d2cbf8148c8877884765525161bf1580ea..a08e1eb75b070b66cb63dfbd65b3da7b314b17ed 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 25f3a23c368a4b855bdd82f080a6c6d759a88b82..0739cd98fdc658b85d090ec00bbd53daeb67e437 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 0a28f9c9b2cee9b24b8be2c8fee0dc821cd82732..54e13f3dc6ef7c9203b935192ff5330e866070fa 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 630d64c49b6c18bd4ea237517b9ea9331f82c001..ae263ac15fd3bace27222bb131c371597e53286c 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 8838de05b4233371384fa55f3d2252819bfff139..f47594e08ff9e9bbb98d8bde218848eca1835074 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 89a864f76d419427c65824e9431f4a9e02c66c18..593eaf6c0730a092b2eb39dc29c6d2409ccb9477 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 cac54fe1ec8485c8ca2af18951f0c7e63778e870..0e4c5d46df4a336d779cfa1d551d6acfdf633052 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 0bbe4bd7bf182bd0158217c55ca3466e88bc6d9a..1b5eef3be2eb4841af6b7eafecc9e0158965dbf0 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 a320e3ba34daeef2c75eba1137fc642d4f7f2746..38ab15eb826b7c64f7f2a6e7486cee5b722f9dc9 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 98d985eba388b9f46465862b0d1228985ac15cb4..f9f4637e14c47562eb9ff11419c8e8ea5e966c7a 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 cb0da7b07d7fdb73e8e9d6cc7124a40b3c3818cd..a9f1f9b9891c3c677400d3633e410557bb185de3 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 c12541a59a92cae30c6fb426a0c0376c37bf05a9..40f12cebb9a44d8d135dbf2e4cff63c250a22d4a 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 c8f33d1d9d3de27f9ab6e28436ad14634e7c9ce0..35c3703626aa8f1646ff0ac788fa8eac2cee37ee 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 c5871fa65d6638c5afff5d3d21eef0f98f664fa7..d46ee641d5746f521f201c17729e6e3f5f6d5b3f 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 26b97c24719dd6dca4359f8441794f568cbfcb67..cfd0ddf1b2af3578e0134336a73a0581f4854371 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 9e6b96b21018fa726ed6ec07f1abaa9b6dc3842a..cc0c7dd35753fc15b907d1470b92d34135080739 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 ec924e2c694a5c57dd0346246998015c33aee772..d02a1ea4c881b54d9ff5e0f636f695bff46cce55 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 b34f82a775ac46cc350b2862cc5bdc7e4bb1363c..6760fb57b948f5b646c6ee94dbe4daee0bdc2b34 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 5e27fa901f0e01f327a47cb3ed35aa412583ee2c..d388f9f036cb96f339e9b3fc6569e21bbe9b4379 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 116b7fdd21bb4e348ff56fdc0a83af7bb18cf7a6..b065ef8c83491a38b71945d59d127c2efc3787f1 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 6d3432f3ddb9611f7817fcb61a9a50c0434be36d..d8e4bab4187c0ce14a36d874a850319bc60de079 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 3ad4ac09bc314bc3cbf42803f083a8262a7d0a66..7e7010d59a42d7fe9d015a33aec983e5162efdf7 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 2628125363acc53927e1b6c34300b303fc309e33..e32fb1000944efa7a2f9c733b4b74e490742abf1 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 3a32610bdb91026693c8f181bba5b8e8ee091a44..75d0a16f5af71759cfa07168938295fb92ea2f32 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 946834bb297eee88b1c04bdd00832841f1347498..b17d8f324c67debc029a588c2f523bb8e68e2dd6 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 244638e8eebf42c54248edf11199dc39a62436d0..47ea5fe7c2787a9f2ef344b5470cf0e0bb9bc084 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 d7f2e030cb58ecf40dcf2a38e7ba08952a1ee8e2..d596866efc53f668034913f8c2e282e8e3702a12 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 8ac353e86be88ea00e5c237f85e9557fd87de6b6..60536fdd5d7938806a05421ace22fa7650b3903f 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 0874bbb1e6621034c19f253131cf27ac787ceacc..263957f11c4256855075fede14c507258efdcaf5 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 8ac6f4e1cd26b6d9d60486ae98c0f02177d63b75..a33465f6cb19e8a045373c5c180acc78ed0892b5 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 a6a556231e1895876f3e8a341775618c8555a783..fa4657ca815f1d03ffd95996cebefd81533f3f66 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 603f97cf1f2641add0b4650e94c3fd7b1e55f746..8f49798ceebabc22ffd63bf855a8d0a1500d893f 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 0fda2ee2cecc70894ada667143e1690a80f303dd..15187b90defa049c7832233628a9e5e910ab9d0c 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 542b84907b6e705698aac438ceac0eb46c920db6..b26f25bb79b02b93c45688a984a64dc0911a570b 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 4a3f9b7c88ac647d6d8aa4cdb887cb441dddb69b..0a4b60be391f0310e0cf8f6e8728fa7f6a4bfdfa 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 de54c2014b2aa18c8caada090617fe7be0e5a64c..5d2b78ce4cc5c0d1e39874d653ae755e555aeabb 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 d61d2975a2759367be62a9b603893e11ee5e61e1..1df3e22702aa34d05949d1462ff230e3aed9d09d 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 fe14211280c2a4cbc1be5a7818009ea8c1c5b8fd..70751aef8342d47642a382f79754867ad5008ca4 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 07dab9a0b36d5ee3bfbfb9aec9c79e4cb8b56d4d..1b2f31a85da89b5617a0c22238c3543027a04482 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 96629b5c9b0275f0155c5dcf3e6bbab8a072fc4c..34c7192cd0e22bb2f99ac2403805d81125da3417 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 af3a95c32c784047640e58e266cf161751473408..8cde319236b878f923b8dd4f61accdd124cb9301 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 89a9387e4af6dc78c819fab05dbf3fa2687f0baa..b3177ee4360ccb4a10d31ebd7ca92f267bb4c97f 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 71597101dec89c7445af087374dc56afcd23d1d2..dc1b310daf50ebf391b1062959574ed7c5c23273 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 becb3a369f62d708d262538db7adbf12bef50461..27c98a02456178254839dd63ae58b83da9a31338 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 0b4a3a6e76396b6680f20b29af8333a5bdbbfdf9..bdcfebcf549a080ba5a8235f67beb9af2c1a3294 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 78314b7ca7d03e2c8d2f99480bf81b3284f12d2d..6f221bf7d363f27289294976519432be0a83a542 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 7cf6a162caf9895f1f3020e4fc34763f6993f4fd..1959857d12f6b681bac40f504cd95185038afa4c 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 8e5edec0f485ce8a222cfcb5af4b7ee989aaf8e8..0d368abef6aacfc8e7707c621bbb345991564d2d 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 add38f3e1880a585f6e513f44f4db2a3a2ca0fa4..1b2f212edd4422dff4ce1bfb8cc04dd8f3f3fb11 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 ed7ded33c3084690b96dcc0bf49b6b8e7cf47ce8..626496aa9a8d57132c543e4de4d3d26de76a95f4 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 0b52687c81b0b1df053ddbcb25c10664371b5ba9..125c7eaf0f4d48bdd97901e063ae41646cb42c6a 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 4940b9a95ae7fddb7fba1c91e575146b5bf0cf7e..4b772fedb220098334ca40fb5643115444e13a91 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 65d86365d26f64990dc9f0ca53f062b981e62966..3cb9c5939604c78d3183288dcae6cfca8a05c092 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 8e7be4070215f0d5293698268a6b5771448410c7..5903f122c3fcbd0294ec9e746c64f3827d70aa6c 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 ce06fbf5da05a39bea08a92832813ef83d1fb339..5a09dcb1288461475047fc0b8db9ebd5ee180fcc 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 4c70fbf5622edbff2c1bf31eb26e135e7450c8df..73b8005864daf42c80bdd580752aede9fcc9fe26 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 306b5de63d75dfb4044c4b7b756a99adb9fd5e7a..cb149b9687ff4efa35785bfd710486068e4b3d6a 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 5912a4865f9c39b1f39df06dc6d3e7f91399942d..e40a75b4d47209ac8f79d73a5a3f3c1633513274 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 aceb70c21d9c2e5059af2de52530f02fea462f81..74b0fed5ea49fb0f37b5922803d1fe4add435f57 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 701ee04706ebcac139925bb17f3ba90ac25b7a48..f3c77425e737a468c747cca7060962b41d15c61d 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 4328d61da82f166af53e2a5ba081b96617b81e33..fdf08e6c8c6ebbc49b1dc755b30643c4fb0a0d3e 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 1a4606d34d6057e880de5cf26f9fe2cc3445a3a5..70d2c160a1a1e0d410d1aad3fdc93a48cc9ed508 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 10b1e2e30a4375985f36c93b57883fbb5499f6bf..ea217616452a2f89dd8933fc9f35c38e6ffb43b1 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 b435c486a34faea59ee33d1f120d13646a29efd7..6681579088d40cbe653b4d0f5a8769e1c051e4c2 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 203ff37c888659380546f3509371db8a8470a89b..7bee138c1a406c740570be67b979e1440bd5eda9 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 1a6ffbff613330f389111be0a7faa7279a0d5b85..3d95f4cb70c2675d31151a64fdc6a8261a981d19 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 fd4f2b194096e8a7f8fa93d25af27209465429ed..d016919de415029710a5a035b6696f51abdc7844 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 8c44369dc53e5a49614bca3d13e795dec67d80a1..9824c0546fb2437791a7eb6a963a19f5f3d63d2d 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 e8ccd4173d35a87b306f6011ebd49f0e72b2195a..8618065dc4f81e52a931b8200a23aada3de564c4 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 fc039293048c8edd0706de0fa00b09a64386943c..cbb3c4f03d6724f5951e0dd0e727ae563f95ec0d 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 1e7ec370661843c94812881bd4dec78beee9f3ee..26be8c497740053f89ec37a30982e44c62c7a6ec 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 c9ac7ef82bacdb3c511b639e3ebe3de79dfcbaa3..f78b6343f954f2f7ecdc43e6052096afefd545f5 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 2731efecfc8547cabc00f5385e37f2735ca0690d..e53c8eb0a5d3ed8a822a28026448c6435c400bab 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 fe2acba3f9ac63c6517fb9861cc50c4e11385ba9..0af7bce4eae6c415b77504cb556fb08c4ba8fada 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 0dde5f7d7dc8dd5c49608fb73179534f6e250c25..25c522522ef516209547bb8ef130aa019b158bda 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 3f48cd27fd4f1af50e916410b39d3013ae5e1ab1..e94752f8ced6f96a076bc12c673855ea90f9409e 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 39958ac6e475e02a18e07bdbf834d81576285ad3..4b6b60250e4700d93b676d2ea9b08e627b818d99 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 8ff142f5d88752824c6315a9f54695ac632df63b..bc7d844451a5b66a0b567eab52b6f611fb59ce87 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 f3e7818ed591f4cae4f64b568d4740b56a0280f6..04c13c788ca2a4e1403f46b1f33fa9a77f442156 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 9c2cfc5f5fd10302c22bbe568fafb1f5f6bb7c6b..a5fc1d41a1ea818218d60d8c845ff65d76ffdf50 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 f3a532215afdcdf13a1ded10d53e0f576ed3c03d..0ae9a34a4b95f69bba17004de0df9508c6920e56 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 876690808188c54d1d642da3417f8cc09d2afc55..b67796e8707333cd33a2f38c970196f47dcaed28 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 9a42cb0b1305d50aa8f131aac8db2e43f77ce089..ae790e8fd02203e7637147742858ddc0f8f82970 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 a21e5e5c4c4b20b648ac785381efb02d3cb9a12d..00fcbd23cd7bc0242b309c181874d5f9b743a819 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 bf229acd32e722d86c402929b46d5aa5513c9f06..9b4d75d50131321548e7e9c2d66fcd4425489cea 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 41809b2de85e813e5f89737cb75c3bf56a59f24a..b46d2dac1bcdb145fa103c289aabb7c3fdf853ca 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 cc1cf39839fec68238799d1a63d859eb348d92ba..e970c64f23c7ed4a8b9680fbb0470dbcf4021972 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 e37931f74a8582cb4926456de7e248f65699b038..75739b8ddeffbefd992036dfcd87013b213b9d2b 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 7cc95c8ba00e047974f0b52d73e46a59727a42de..62be642631121badd0daf9b9fe00a37f78cd884a 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 365c6812d096b35abf0456f08d2e6d062a4cec3d..fa5a97f9ee05a2c80247670ab6859e4882ea01e9 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 839c4b65760626cab076fd1779edeb0a6f289a48..0cb413df91d0b5bfc56edc4ccad94a924921dc25 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 6a44c81049cb643ffa954b64393334adff937540..fbe28367ca3ce3319770b2d5286221955cbead2b 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 df9ca1b56e603d408f4dbd647894ae99d8e5d161..14cc31ae5e3b051e1205fd287915df896d1e25e5 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 a7d5a53d10d264b62960e3fc70f23acb36fe591c..c861245b9997c6cb2515c29d5c57aaff93b110c1 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 0a8727b9e7a0ec1dae123e1af69cad513a691fe1..48791fb76698c951c4119d3a32c42d1d8a236273 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 e8f61209ae6451363a826f58239b0173374d8dda..d600f542782f94fed43864c9e0a381a4313e615f 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 c2c215e3d32c7577c03a554baa4d616babc05aad..107d4294a64bbdc6cdcc99cd12351878922d56fe 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 ff57123247fd81ed3fa542eb9bab6090dfea8499..dc6585d75a9c6fce5e10d0300d5b09b850694f2a 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 fc16affdab9a66244a8f51163dc547ba29858e67..59401e41e7c085a37d2d3ae780c8248d4da60831 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 7bd4657e7d56cc42697a1fef96e19d80bf4ca085..91999750d40724c767b3c2965e4b7cab5f7b2d0c 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 691b1f43cb87b019509ce96f1374010d03e8fd0b..d90caee210a8d1b3060fa006190e75fa62fa268f 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 269baab3319fb6af9561d717046f10546bd7cd3f..e7fec1123cdf177dfe218b26f040228e95806dd0 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 8b8f88a0a63bd5d0bec5653e3368e2b9a0e46687..55fa96b1a5a147e40065c73e8c064999de5d5587 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 c4728333650906cf539afa601d238f1464ee30b5..e38045f196895fc45cbfa73b4732b73acab29140 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 ce43faacc40f09b3317f0d821d0a8596e0d32aca..46221e3fa496c36ff293ac6c3285cab8b75b47f3 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 d0649d73e3618a79608d785274c8fd0b281ee29d..03976ea81df8f1d3a23177174e200b5509bc876b 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 0c2078159ae776424b0931141294175bbcbfd2de..d4ee6a7af6b19d8dc5460f4dce8e7aa10d122332 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 138d51b70b64138f7a791479ef876e695ac5c687..3a8024970d8a68bb1c94217ab1e518fa36fe78ab 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 9031c7df18a22e7118c9c5601bb7fdaf5b4fab6d..d115b6b428d6c8502b3276d1c7dd584e2d03dfed 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 62ed56b6e7332a9e8fc28df9e848a6dcf0f4c3f4..01b2ad9952a27aed2091d4a6f22c65a8c8274229 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 934ebfdb44235da3224f3b1bd20580da74119f71..08483b8217cc713bb59969112596dabbde6f9dc8 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 8f990de895602d00654bd022b2d59d989718b3d5..f438aaea912519487507f895239f18697230f8b8 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 eb8d327f7a5e2482ffa315df91085c2afb6f3f26..0bec2a8a60a5b376fb63a79898b1cf6939aa0e22 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 2f23660e1b639acda42b9bc1df124ff422d613fb..41b32ef99db75d7a4f16bb541e1ef93dec6dd35d 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 9019e9c2c7f4bb8a1cd006b5fc19a2f338c9ad81..8ca65b73fb3bdacacb217225c1d6a569237f184e 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 379aff123d43a08f65fc9fa53a0c8466389ea42a..df1873529c2a38e6ff8389b05049da7ec0555f10 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 9201f814661e68ef043488cd9b34f430804449fb..d4b975d5438ad152007107882bc0fe7186c277aa 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 ca254ec01d2626d57c478f312cd65a0a3141ffa4..aa8a8a179083853adfabce79e7fffc6aff4022f0 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 962d55b050bc3ed3957e0afb87550ca220cf6124..257cf83ab20905f6b0a5c1f1a2837d4f64d47380 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 588333d3e15aafa1ee0f420bc562e6f316ff18a1..1b4d3744963b7f9cfb425892a06089173344923d 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 13494dd496782f127f5bf19bde81955337b57716..10b6ae2d88a4210b7830c61812b73e27182d1cb1 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 7e8458949a8081c998f71f882e234d8d19d3e969..6e0db9cd144cc2ca995629684843af8321724b19 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 42fd2cebf25b0787e1323c4e50e9c1d9bd6522a0..ef2f31ea6599ab79eaaf22e83bf45be07d23d133 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 d77c01277f1cae01f329e76fb963b04bc300c90d..122b8deb628c2a2dbe30146c5616230c92e49db3 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 2325d7e0432a7064a55b2ffe955e088cd1907edf..41f867b64e5c5968852ef384a58951973f74fea4 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 c5df3150c40f9177d2719aac2adb4c1c3101c745..4571a707db2fba4b44ca5c80d3f996d58f0c957d 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 dc80ea3451f405b9d38704907c216e9deeb9d5c5..594b3b80a6dbd49255e0dcbe104b40a800ddf65f 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 56b0ced307293ec8dbc41cfd62a82fb4b2ee8fb0..68f0e13cacdd95092cdb34d8443cb195e7375cdc 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 701f1c3d185d059fe3a05ffc99133447c45a5abd..d34bc1a9ba49a4efbaae9d96c3dbc2f7b23a401f 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 65ec090848d47ad27297b897380eb1d95c6975da..461d54dc36ef584f0e932194e8fab15309a7bbf2 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 e63d095facb51268763f8d3470ba8564e6b7ee39..459afd3dfe9f3b0aa63db7cf74c6eea26a5d08bf 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 08b5ae28651f07020fd28b8743a713e4d9602aec..ebb3749c7419bda429412ee938074f014deee8d3 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 c1f6ac9ea41658f1aced240450374db876711559..a70a7531a79955500a6f289c4bbb06fd4ce9b4a4 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 9f536e3db7796b8265896fb999c585ce9ea0c9a5..1aecd593718d707db2fd8cdadfe3c12ba3b76dd6 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 53fd583721908422d3b45140980ae909a8731cf7..32a502677df0e0ada5f1cab1e85e7619cc666a48 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 9c414ad9e60558690330946608f4b9018b8ddeeb..f7316240235624457bf7418b3cb538b66f8219f1 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 5c8b1a957c32384d18e48e5d7a265ee110f9d649..f893b58fa227f43cbda65da0ba53a4005e432ffb 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 cd092689cdd4b9a2378df88feff8562dd642d590..217d2e9a6d07eee1f940b0b93469a4baec84ed6a 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 5660339d035e82d7d6dcda4f2b040bcd793d1263..e4452ffa04d145183a49de90f8a47c5960e59c50 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 8dda4440e67381e5b0e89b1f84c92a4af66483b6..8af2609bf87cf199cf315d1fc608068f962cc5d4 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 4ce45cf3ff1b9fb6307b662ca9b8f2943dde8852..0761678c140a10841b459dfed52fbd693a8f521b 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 d1c470d171ffdb8588ccd7ce9a8b7eaa87023e03..1db4a5118d4b0eebbfb1c2a0408bbde6c8ed8f85 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 b8447f0d7af3fc7e6d45c40846578fb4c1ccae53..bc4666808ef932c69432d015dd8f1cfd580f6cf3 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 edbe429986f256827a8ecbafdfa078ccb229ab50..269e2305f8a7e3c91b25cf34183ed421957cae39 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 ce0296819e7ca5caac453db6527786bd7553b38e..1186d5f231664df78028d44c85f1608f94f6d79b 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 4928b1f8110497e64779cbfae5ef79184a22e62a..7680a73f26e04591e2e97fd7cbbc6a844f2d0cb8 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 8b71479b45ec93bf7fdb9e97192a674ec13d4596..7160d2f83f1b87aa880b61253aea313baf5a841c 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 d1407fe795981e4b6a835b3d02f7909d002d85ea..c572f51370e8d677955f6b9702d1f00451d0b751 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 670246610248a7277e7265c9836dd5270af51b09..865993bd5fc671ba43bed2d742b05e2e303dda15 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 f09c47362241c121b5684143e430a05dcde79bbf..4192d471f22fb1363568488925593fe4d5bb4f39 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 0dc457e2cade64b7ce0d9acefe373d87039c6cc3..b58a8e34e5a95ab8927330bf385bd5b02617c7b3 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 504dabb91b3498a2ec0da8edd96014600fea4d81..3f249e3b417fe6d64c4843a4858e5eba7fa75331 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 1da5841db975f3fbe45a95ebb33b6fe33f2e2b0f..fbcb6fb361ce0e02997d70e21180108a104f8409 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 9a9194a20adb6816c52c4e251b57e626da220ca4..d47761a2ce6659efc9e3ac527cb3ab772194c065 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 a9f5d5bb2ebde5b9ba21050c90e3ba1993e24b54..b84d1d92b64f1c04ed28fe0b459cc62348b0380c 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 92711db53dd8792eaa0f44009dc87d996444b75a..9681f27f6ab5a2b44063746705b316f1316a51db 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 6be3c9af028262094f74404785088720c7036ccd..2de60a11834524c0a41b52a97531a2c6ae5181ef 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 1d6d9b2f144f64efbb1e276d259639a03f3d71bc..acb34539c8ecd4d94174af1d2d77ee1400fdb3ee 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 794dc404147dd5880b892d8b8fe2e02a2540078c..9fb201af2665d20d0feb06e07c2bc6f6552d24a1 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 8a743485b4f67d862d48131e038f76c3c2173b1a..ddce3ca4da8c869d0a5ad44bf16635785b7bdd5c 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 94877ebc091d48e65760ba3a9befc5a394c2fc9b..9392ee2baab40741ac4e500214dcec747ffafb2e 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 36d7ba1f671383c29f980cf9b25a9f2822b22b07..9ae5bd201e44ec6d2863f5b81761c9ad7a3724a3 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 1ed8cafbc13740aeb35ac0348785ff23e7133ddf..cd610608e3096b8bd6296055e8eabaa243a820c1 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 e5112bce2b017a52cd39cf98ea719252b9d87fa0..deca7ff162b367006c43fe8922f14eb54da6956e 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 86ca157047baa1e035bc3e2c6cba345e679229a0..de3730f57a1e03f32e0a1b102d235f4e799e5747 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 4e1bc85ca6dfe4ffea9438a20ac1317cda1bfbcb..523a0ca8d8ea6cc1e618b493ee3ae9a9bc4e7fdb 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 261fee9db09ecc4875b6e352305b767463de5443..ae77cf4e79e3852de5e7d869a95e8d7496c2b586 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 86eef031282affd840a6e6ebe0f5178862d21c00..cc6faefa3819ba47da227c4176ac81b20a53a745 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 519582a35b30601e1dadd90c951dcdb414186e80..1ca490cb21f7199689b7ef5130aa51b2ba82351f 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 8f3ee5b2bc59ce2f6a49ce9cff7cdc7d314b6a32..dda824e40c4216d5ec8a71c89d98534feaf36761 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 6031b05b6f9d08463f2daf4812b222db2e7af6d4..b8545146e207eb39c30050ac47dce67755a7613a 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 bdf217d08800a32e2d5a7f6dca3a31b72353fc94..34b8c662c8821d66e5ceb0f5e8415de8b3542f52 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 24fe3fb6fa76288f4128333197d4a96177a83673..d96181dd70f5e59be959e4f2c1800ef5f9476d68 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 d04f313d26e5b00a1aa28253aa54ff98afb954fc..8dc3cac3c3f7a2fca43b79b6186c83ca421208e7 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 ef72946f5be22a70858ee2a207026d4b2e2214c7..90b761a53e30718e2d2c59e26525bbb9a6f82ec3 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 c569c682c823053827c1b83f25469c24232ba1f7..330df548ba0f73c4fb14847aceb7c0f32c8fb0b6 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 5f18183996407b219fd2c10e35348411748d7511..a41b64af3be01ab6b0701ce4c610794729a69717 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 53111e8e21e1dd7ff79774170a821dc852ab2500..d6600e57e85cc0300f5728b4deed032443b9d18a 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 ab8036afacbe120d1a7e03636259eda1b089c424..822efa9a1d257a6cea287d5c3e020354c027e685 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 4310aedb7cbac0f8acf01c229a828f47b70a15b6..7b39512fd9717df2b12353e678db4b9e89f573a2 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 698d4c2f4d4947ea96c55b3a492392100bd5292b..2c479489e318a177d5ed0df902b0fe37e8d0b481 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 785bb83ed47aa92b36ac38042f8ff3d5a48668f8..f1f456ef1b6a2db7966e0b58766a16f57e0e85b4 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 fb98c871ecb26a129d7415c1ed0e45cd8d3f198f..c4154e009c783a43b58e9a46d354879aeb1e68b0 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 f265fb3c47e7bdd0fe3c18848b6e896a59f9413f..bf9677eeb0a3620a003095c31449ee35b42e0be4 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 ff9824106a7802c9a124ff7c523164278f42636b..ed2de3b3cf147845613321ad36829667080c4e05 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 1e6b75b53440954aefcb86e0f0325a50190b7afa..69c7103d092dfc3d4f88be34f5ba8a982bb73a9b 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 3bc2bca78f0f11cfc44394996ef15640346e00e2..d336b9e25cac2f02a51c54746de30d5f02ae6e15 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 c0c45a1e2e3c4c5b335fbbf36d6fc4848d7b4d7e..cf36760baecb774b1ed8fe161d20178b5345d2b8 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 ed8cc1ec97cc5ded7dc566abf8845095cc684379..f237f1ce943d81f47b1dfad7b8db3fd818af45c0 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 51dcdd1c43111fde6a0125b3239fd7158bc22ab0..10ea41f4f3ad542857f16c410f93648cafbbb123 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 752867ab6b40031054904cc80ad5bcdb29f40d82..c845d622fd86fa748bd32eebc75d8fd787569ec5 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 bce38b7773f6065bb9ff94d44e59463f6875f816..3b8c185d952cb029f4b7757c7db03fa83c58bba5 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 936b052daa39688fbd17db2df205aea0db651bf7..f384ddc3d006c1087f939498051f619cf70ad843 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 ef4b401d474e80d091725d64f11d4e8ff5a30b0b..e907ea94f0515947987b2d6a6f62f9ffc008b452 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 6dae630aab7ebbcf7de0263bdbbcaa12ed21798c..ff7874d77bb6a7c16a363af0087b7575d179994a 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 0009f1a7aa33d4894fc3e89b1a9b1e3af946e66b..74c93edc3a9aad18151a588cd70e2e8d0720aae3 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 ae5f6dff692f69a87208c57cc310a98ebdea461a..a59fbb2375d359063f57fb562a01f1e7bea74a45 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 5e0f20c3305349c4814abbfcff793d987b93d501..1eebcd23c48970d33ebf6bd11155f4400a104400 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 61bd092a4b2ecfb12c539d7290b2e7d4b2a1defe..7bc377c0b4e40216b550d0d47148bcf5c66ae06c 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 5ae532cbbed1962b8f43dff66f526ef2cc5e261e..a6fdb7620b850471172c61fd50a231c1529713f7 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 86914c768e3ba0c287b1e6ae29330d81f0c7d854..9907c99cfc21e2d3c2e5a43dfd053e321c10d7b0 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 1f2377a89f42349653f88b4f78684019c9be8861..dec6b909d2662d338b5627638349d0d5a8c4a000 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 7b11c48f3ca53f8f67b8158951cd42571568f945..94ead9bf63a4949b711eb7b4797288f489ce274a 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 c5dee0f752804291623eaf8b87134a40f4a871db..c319e3e3ad1ff8d792ef2efc4ebb354f0000e787 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 47e56de0fd69011b4c238ec4f212a4bfa780764f..1564f521e5b0e7ac90c04fa7850beca3dfba213d 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 1e40e8cc3ef483ab789ceb9d91dc07d74ec7cd16..d03a7cd04dfe4dcf363422cd1c77b886dc1797db 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 3d5c20f5662f592d7b56381aff6126a5530e225d..f6d52df2a17f969780f86b358fab5087f01ff13a 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 de9b83c1b4afcefec32b82346e19b3ccf92a5f53..06a70184b3e8c791c2fd3dda098c45fba8f985f7 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 19d7bf67cdfe00d2598f9780efd509c3307f272e..00cb38a572a89dd756c2f850302e0a5230ad262e 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 ac7047c325874ca81352324f2dae06de08759a0d..3e62fb2685a9cd695e5f9410e593d83076ff1455 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 e6f9f6177a8805c380b1e1fd1513eac9f4f2769c..690f5b5cff0cccb0961b23d89f941c613423fafb 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 441fecd33268ed0ef33b5e4a6a4a879153e1a210..954c46e0d8badb1475d94dbb3b42c9e91f44b1ba 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 8b1e310b8b8dde2fb20e4e561bbf72a55bc2fcab..832c5405ba64b19a329e8ddedbdde25be53842f5 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 9fb0f186751ab3af3c6aed8ebb386c00c0596e90..c9e2e6f03ee11c1e3c7c93b04fe181fd80c0e292 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 3a11939c9f3676f1d5f88cf8951588fc0fe2fe13..1cc31b442c00a21c1cdd554ecffb578bc3416fdd 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 96dd8f7a9a48437134466c5ac056f02c0a3319f4..e4a98d51d8bf510dd5779d9f2afdcd51fde0a734 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 8a4171f7a8dd4d0e774e0918209fca7da3459528..e696ecbe20d1cb7bcc1a3aeade46a151fb83642a 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 87af633637ae3c8609dc2d2f233896fb0b131912..c04f27b97c4e1ddecc6b0fa9c3270eeea0c82b4c 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 2cd9a3ef8b4c407c1111a7f88e98e7099eb4fbba..3315472b9d0d3a034dba04551291fda38e93c3ed 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 94a1cccdd87920642763f6114340a810061492ef..bc615e70e93632a715506f7eba9973c4e790db01 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 593fdd443095de9a76435329e59dc7c8e175b93f..7b94845955be0e377a771e40aa8f5d6e12e3ba5a 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 47f7ee871344b77a7892f53d3ca5e8b80a2faae2..9f0945148279330f3385af27ab6f80d40295c529 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 051f03627f03c136e4b6c9cdbcd6aa10aba48c4c..91677618e0705a88a9e1057d3ef04c12a0de0cc3 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 354de5d656a63c2ec084c25cc8f01d9a1efc8e7d..fb926cfca05350ec00ea00dbdcce8e9ee9a6698b 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 b377afdce0d287b25694f2adf0682f6c3785f969..e7efb97b561326c944f0b93d4cf72c338411b580 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 f7cab8e59b939cc9f45598f35b7c62ddca5ba57b..2db05fcbb3eb5a0f8bf6e79f94dd5e07f8b2284b 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 6dbf4c857eb8f1343f6ad52b95ba718c10c1d199..e863093c659fbeef7e5d55a29fd43b2206c40320 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 312022824cb317a821e63dbeb230275deb820d90..e77f53e4b5cccc62a94d5d9f527223f86036cd86 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 f7eca6207ca715d0fbb9c634fe47606d0b93d108..09c5ea2c68bea09e8ee0211f3da3f01a9b2cd6e1 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 2f5588dd2ecd019658821dbe41fdebc390ec3c3b..e7c5f50b57045eba8f2119bdc95efb6ae8be3595 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 fff994dc2ca087ef32707c52b42bf9f604ea4406..36a0ca82f186a93e9303af0ea454e128824093cc 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 46f2e8f8fa1de0ace67b40a204189d614130b5af..d8f8416213aa39ddbdf2824fdd69e2b41d53886e 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 82ce0500396ff3955b24038816294d2c19cd6aec..5b1712b76ff74a077fd75c0b5c090882cdc3402b 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 4aeda1c4757a0a0720f66eb456ae9fa42a95785c..17a4a1f8a9046a8b70300acfa1b58c9f1a31608a 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 4d08effdab56ea2cb6779e4ee98879180794c097..83fe851ac8ad534f5399b153fe69dd7fb1439124 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 6f2c415e7f3b4a755208930d42859d3270a0f7bc..6b05d8ac6ca11c5285abad382a762c48ec4df47d 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 db3f4a89c0229050f4d337693793b67c5e5f4a80..a715594574001065c364c56df62a06f0fe48cfc3 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 e436c64c636028640ee764760275dbb558337ec0..341a26dba08f3fccc5eb695131fa8b054c4f6ebd 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 c2496bd28a527a6ba08b8a1287a666e464b24acd..9e0f1ef2f3765ba23fd5c21d38178c2a21a9c281 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 97dd90f277a7e66f2acd87631c174015f440981d..9306df5bdf12408728bb825f9804a192d113ce69 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 4d1ce988086d28b177cf083007e45f84897a8903..11c3680b5245645eb818e45dc0dcf23f087dfb5f 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 f96dfea8bb3bc06481f9e28f6525e09dd8c86156..faa22cafe79d48a4b5a10caa8bd1bdc60d1bb1f8 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 76954558eb07f4b5dc6d2da4ceae83cc3c55ac95..2c88cc6214d84595b510f2c75aaa816813027172 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 c811c1da1081d59bf313e36147afd1e818e3e331..64dd48575028afd555a5a16545b27330717e79cb 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 02e86b699a35b4b6d17f6baace44f8098515e817..143d0c1cfb6710554d14ff4e457faabc434e580e 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 fc388114351d3ba694565ddf11a9ba449f32867b..65e898a59437b0d48761d48eb4d04e1b6e1f1885 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 f26bbc39415e4d5b9d6994776ea2e01780c6abfa..4add0cb5784c94e686b4d4fbd589eb9d7dca02f3 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 1f093eee6d8257aec27ede4ad6f49cfaee8fb007..3f5025df92e8afc6969ecaed0e1a482bcb3edf5f 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 37d539c806b4927cfd50f402c2274144f6f87155..c77fe13cb818af9a52d8f5f232f00ebfacfe2219 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 102153f6e2046898314d0f35504452e49b56adcc..e69df58eec93d2832d4d314796829d2ec68e7828 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 096176aa42f8042c3f16a678a332940a6ab1dc71..c1da6fe2b2d432f7279b7a54326c5744363207f7 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 65% rename from patches/@effect__vitest@4.0.0-rc.115.patch rename to patches/@effect__vitest@4.0.1.patch index 7b005596c360170814d3f666f700fceb5419b2b1..f11210fb9794fa0c2149ad5b73881f57f8f9bacc 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"; @@ -58,41 +58,55 @@ index 4871215..2c46e2b 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 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 0000000000000000000000000000000000000000..c63b6ca08a9cdaf6b54ec99a0f717310cb3e8fda --- /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 0000000000000000000000000000000000000000..a96921ed6a58fa5455c2723127887dbf703a48a0 --- /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 0000000000000000000000000000000000000000..dbde0d412d75a9e2c5e0aa5c1e9ee04d38788d06 --- /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 0f0f81d8da2797fb89fb946277996576cfeb58d3..a47ed599b87a9fcafd08ded05b164439620cd5a0 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.0-rc.115.patch deleted file mode 100644 index 53b1a3b3f5be1755199f8a5baaa5750734156fec..0000000000000000000000000000000000000000 --- a/patches/effect@4.0.0-rc.115.patch +++ /dev/null @@ -1,353 +0,0 @@ -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 => { - 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())); - }; - 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 { - if (this.cachedCookies) { - return this.cachedCookies; - } -- return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie()); -+ return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie?.() ?? []); - } - 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: { - 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/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 - 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; -@@ -86,6 +87,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, -@@ -103,7 +109,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 => { -@@ -121,7 +127,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 => { -@@ -130,8 +136,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) { -@@ -143,11 +150,18 @@ 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); - yield* Scope.addFinalizerExit(scope, exit => { -- 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))); - }); - const queue = yield* Queue.bounded(streamBufferSize); - entries.set(id, { -@@ -155,9 +169,10 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro - 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 -@@ -172,7 +187,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, { - startImmediately: true -@@ -202,7 +217,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: { -@@ -216,7 +234,7 @@ export const makeNoSerialization = /*#__PURE__*/Effect.fnUntraced(function* (gro - fiber.addObserver(() => { - resume(Effect.void); - }); -- }); -+ }))); - const write = message => { - switch (message._tag) { - case "Chunk": -@@ -224,7 +242,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 -@@ -239,11 +263,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": - { -@@ -598,7 +629,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 => { -@@ -618,8 +649,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; -@@ -664,12 +694,12 @@ 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", - 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); -@@ -710,20 +740,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)]); --const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing) { -+const makePinger = /*#__PURE__*/Effect.fnUntraced(function* (writePing, hooks) { - let recievedPong = true; -+ let missedPongs = 0; - const latch = Latch.makeUnsafe(); - const reset = () => { - recievedPong = true; -+ missedPongs = 0; - latch.closeUnsafe(); - }; -- const onPong = () => { -+ const onPong = Effect.sync(() => { - 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)); -+ } - recievedPong = false; -- return writePing; -+ missedPongs = 0; -+ return (hooks?.onPing ?? Effect.void).pipe(Effect.andThen(writePing)); - }).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 - * @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/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 - if (this.cachedCookies) { - return this.cachedCookies - } -- return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie()) -+ return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie?.() ?? []) - } - - get remoteAddress(): Option.Option { diff --git a/patches/effect@4.0.1.patch b/patches/effect@4.0.1.patch new file mode 100644 index 0000000000000000000000000000000000000000..6f0178d21eda10751e67392594bd818daa80bc26 --- /dev/null +++ b/patches/effect@4.0.1.patch @@ -0,0 +1,112 @@ +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(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* () { +@@ -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; + } +- return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie()); ++ return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie?.() ?? []); + } + get remoteAddress() { + return Option.none(); +diff --git a/dist/rpc/RpcClient.js b/dist/rpc/RpcClient.js +index 8af2e2e..65acae4 100644 +--- a/dist/rpc/RpcClient.js ++++ b/dist/rpc/RpcClient.js +@@ -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) { + let recievedPong = true; ++ let missedPongs = 0; + const latch = Latch.makeUnsafe(); + const reset = () => { + recievedPong = true; ++ missedPongs = 0; + latch.closeUnsafe(); + }; + const onPong = () => { + recievedPong = true; ++ missedPongs = 0; + }; + yield* Effect.suspend(() => { +- if (!recievedPong) return latch.open; ++ if (!recievedPong) { ++ missedPongs += 1; ++ if (missedPongs >= 3) return latch.open; ++ return writePing; ++ } + recievedPong = false; ++ missedPongs = 0; + return writePing; + }).pipe(Effect.delay("5 seconds"), Effect.ignore, Effect.forever, Effect.interruptible, Effect.forkScoped); + return { +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 + } +- return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie()) ++ return this.cachedCookies = Cookies.fromSetCookie(this.source.headers.getSetCookie?.() ?? []) + } + + get remoteAddress(): Option.Option { diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2c4421d93ead6d5ab4fd3a17f130960dabc67c58..8229e9022d0500d0acae2e91d43f3c53c1642541 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 @@ -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 @@ -63,11 +60,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 +77,34 @@ 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 + vite-plus: 1.0.0 yaml: ^2.9.0 -packageExtensionsChecksum: sha256-34mvKz5PLlrn2Tt9jUJC1SbK5hRE+oxwqyC1J6r09oE= +packageExtensionsChecksum: sha256-FYDaKefjFcda1+vgiq8yMpZC4ehE5CyLi/bsCGLgTtY= patchedDependencies: '@clerk/expo@4.6.8': b8b22ab733de5bea846ad9e88046c10582352fe9ad86f314f368b2a823f0f281 - '@effect/vitest@4.0.0-rc.115': 172bd95ef73a13d322888984415d5d18d9d2aa8e13fa529eac235efac837e902 + '@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 + '@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: 612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1 expo-audio@58.0.4: c20cb927d6848c53e7bf6ec14fe12f19daae9210165d2dbaf4e0f97ce31e8742 expo-blur@58.0.3: d0311b0c0b05bd94393bd9a84653cb42503d5f3c8a19eb2627c34ace08bedf18 expo-glass-effect@58.0.3: f750041c45ab838a3530451dc7b50d6640a79141037a1b0499c5e3412a860c57 @@ -136,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: @@ -151,8 +152,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6) '@napi-rs/keyring': specifier: ^1.3.0 version: 1.3.0 @@ -175,8 +176,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) electron: specifier: 44.4.2 version: 44.4.2 @@ -197,8 +198,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=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 @@ -215,8 +216,8 @@ importers: specifier: 4.3.3 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) + 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: dependencies: @@ -246,8 +247,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(react@19.3.0)(scheduler@0.28.0) '@expo-google-fonts/dm-sans': specifier: ^0.4.2 version: 0.4.2 @@ -324,8 +325,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) expo: specifier: 58.0.2 version: 58.0.2(56fc8ddb8129740412739f0f0a6ee025) @@ -490,8 +491,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=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) @@ -520,11 +521,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(utf-8-validate@6.0.6) '@ff-labs/fff-node': specifier: 0.9.4 version: 0.9.4(patch_hash=c4e3cc2420ceb9dc650f9d189e9c24baf7e83f342998bacda5f459a4ce7927a8) @@ -535,20 +536,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) jose: specifier: 'catalog:' version: 6.2.2 @@ -572,8 +573,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=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 @@ -605,8 +606,8 @@ importers: specifier: workspace:* 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) + 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: dependencies: @@ -635,8 +636,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(react@19.2.6)(scheduler@0.28.0) '@formkit/auto-animate': specifier: ^0.9.0 version: 0.9.0 @@ -698,8 +699,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) hast-util-to-html: specifier: ^9.0.5 version: 9.0.5 @@ -762,11 +763,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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=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) @@ -825,8 +826,8 @@ 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:' - 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) + 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: dependencies: @@ -834,8 +835,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) '@noble/curves': specifier: 'catalog:' version: 1.9.1 @@ -852,24 +853,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)(58de9aada26e3d6e07bee630615d7b5f) drizzle-orm: specifier: 1.0.0-rc.5-ab785fc - version: 1.0.0-rc.5-ab785fc(77d4691b21c77897491506c37fa7b5ad) + version: 1.0.0-rc.5-ab785fc(b25f7c76220d3224392693e60345984f) 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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=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 @@ -883,27 +884,27 @@ 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:' - 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) + 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: 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=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.0-rc.115 - version: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + specifier: 4.0.1 + version: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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=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)(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) + 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: dependencies: @@ -914,8 +915,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) mdast-util-directive: specifier: ^3.1.0 version: 3.1.0 @@ -936,8 +937,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=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 @@ -945,65 +946,65 @@ importers: specifier: ^2.0.2 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) + 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: 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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=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)(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) + 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: 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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=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.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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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=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 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) + 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: 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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=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.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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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=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 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) + 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: dependencies: @@ -1017,8 +1018,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) jose: specifier: 'catalog:' version: 6.2.2 @@ -1027,17 +1028,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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=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 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) + 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: dependencies: @@ -1048,21 +1049,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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=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 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) + 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: dependencies: @@ -1070,24 +1071,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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=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 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) + 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: 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(redis@6.2.1)(utf-8-validate@6.0.6) '@electron/asar': specifier: ^4.3.0 version: 4.3.0 @@ -1101,8 +1102,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) pngjs: specifier: 7.0.0 version: 7.0.0 @@ -1111,8 +1112,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=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 @@ -1123,8 +1124,8 @@ importers: specifier: npm:typescript@~6.0.3 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) + 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: @@ -1147,13 +1148,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 +1167,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 +2027,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 +2060,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 +2209,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.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/aws@1.0.0-rc.13': + resolution: {integrity: sha512-6ZGcp0LkniB0I2l8Gr7vKRQgTZTch0/07iuvuMZv9Nu+rWwNuZG9VHTUdlIoarWgCHFUNN8yvSYBGOjaeN99tQ==} 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/axiom@1.0.0-rc.13': + resolution: {integrity: sha512-aRoJtvfXgWi5dtfjuJvDwnArRKvv2MPYHCxYeZcxZbqe62IaQA5yu/khft7TJvxeDyJoSDnVXZu3RyJjNmBA4g==} 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/cloudflare@1.0.0-rc.13': + resolution: {integrity: sha512-Py5FoA6azyYExDb91VaeC+9x+ravOBSRhXeUmpcQjCtgqmOdiXgc2YZGMMPI68DF+kMuHRVIrR+2uRZNDOhYjw==} 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/core@1.0.0-rc.13': + resolution: {integrity: sha512-RYyrxW+F5zrTuu1UWV/JoycholBCIkXIusYJdDniDwCdmbjdKGl07KlkkeeY774uBawNGf+pt1ESNGeLVnNHsg==} 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/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/neon@1.0.0-rc.12': - resolution: {integrity: sha512-jiypsVQCcKa9qNgG9HULXNgXj1E4FFO96Hk9p2JX6CEHca7ePldJSJEOf7roogQGC7lrnldBDCiZrxQLOapD3Q==} + '@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/planetscale@1.0.0-rc.12': - resolution: {integrity: sha512-YCTB7soZtqzzgcCAUtrNHjAIsq92XS8cpjnbn3VU+sCQ0LnfnFGeMGJxQ/7qLHtx7Hv4+Ms8XNOs2Q5P81Skig==} + '@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/prisma@1.0.0-rc.12': - resolution: {integrity: sha512-Z1KyUrhxkUt0KdxmNUd29Dtl9NizKv7HFHUuTcA1j6Ar5apUMvlR0f4lKqpliXW8Om3oVS3Wgvm+gDsxul2Ojg==} + '@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/railway@1.0.0-rc.12': - resolution: {integrity: sha512-KOXSpl7r9qTiOYabJ6wUmM418exzv6YE5BVztaqKSGMuNGP/lAqhZm709/p97Zg6vHpxhJLIgmCq00z7hRM3sQ==} + '@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/stripe@1.0.0-rc.12': - resolution: {integrity: sha512-4OuZF362yU66G1jDFDgRFFv8ZNRPZ6lw8Wrd5R/isRNHpGgvggLNlKg1QXWEQaTcRzn3RBXczqQCVwQV9IRZDQ==} + '@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/planetscale@1.0.0-rc.13': + resolution: {integrity: sha512-AM97YGRnDfZdqsxFgQMQ83p7ZlRqxS6/foTTJA5P590UMbbOyrQyFyd33BD0agul8a3ngZde3Oej6v7BN55aWw==} + peerDependencies: + effect: 4.0.1 + + '@distilled.cloud/prisma@1.0.0-rc.13': + resolution: {integrity: sha512-+UmHSp9JV8XQl5t5tTdQBY+dWZ9abrEoc7leYEctA0Ar1TrKZEl2EaeQDoumrg4RyGaacRlirEbxaDFI4SOPtQ==} + peerDependencies: + effect: 4.0.1 + + '@distilled.cloud/railway@1.0.0-rc.13': + resolution: {integrity: sha512-yXalRS3GFLo3hWM0HXptqudi23NVCM4FRD20db2/Ob9FFcNrMJik1fopv+74HOiV+BuxfkCP609KsEK6LVdB/g==} + peerDependencies: + effect: 4.0.1 + + '@distilled.cloud/stripe@1.0.0-rc.13': + resolution: {integrity: sha512-jLTJ1mg4U39lHZb9EGYBJLR91yB3LSG6fVxix+r1BbqaTovWzE+NuJ7fu9fRSeax9jRAqsGLLxe9IxJbOtwQnQ==} + peerDependencies: + effect: 4.0.1 + + '@distilled.cloud/zerossl@1.0.0-rc.13': + resolution: {integrity: sha512-dnxhg39lZjpTdZbHCVYPoUC9E2r8eSHbqiYDhSq2EurVPJcc9YRXlxZR1bP1nniSp078XV8GA+aUECt/Z56aQg==} + peerDependencies: + effect: 4.0.1 '@dnd-kit/accessibility@3.1.1': resolution: {integrity: sha512-2P+YgaXF+gRsIihwwY1gCsQSYnu9Zyj2py8kY5fFvUM1qm2WA2u639R6YNVfU4GWr+ZM5mqEsfHZZLoRONbemw==} @@ -2294,52 +2320,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 +2406,10 @@ 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 '@electric-sql/pglite@0.3.15': resolution: {integrity: sha512-Cj++n1Mekf9ETfdc16TlDi+cDDQF0W7EcbyRHYOAeZdsAe8M/FJg18itDTSwyHfar2WIezawM9o0EKaRGVKygQ==} @@ -3552,6 +3578,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 +3606,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 +3737,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 +3748,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==} @@ -4906,10 +4938,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 +4946,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 +6270,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 +6305,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 +6321,8 @@ packages: optional: true pg: optional: true + prisma: + optional: true vite: optional: true ws: @@ -7282,7 +7315,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 +7346,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 +7473,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 +8028,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 +8507,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'} @@ -9486,7 +9512,7 @@ packages: hasBin: true peerDependencies: svelte: ^5.0.0 - vite-plus: '*' + vite-plus: 1.0.0 peerDependenciesMeta: svelte: optional: true @@ -9503,7 +9529,7 @@ packages: hasBin: true peerDependencies: oxlint-tsgolint: '>=7.0.2001' - vite-plus: '*' + vite-plus: 1.0.0 peerDependenciesMeta: oxlint-tsgolint: optional: true @@ -10853,6 +10879,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==} @@ -11316,8 +11346,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 +11390,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 +11414,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 +11566,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=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.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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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=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: @@ -11551,16 +11589,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@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 +11773,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 +11806,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 +11818,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 +11827,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 +11836,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 +11847,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 +11864,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 +11874,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 +11889,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 +11898,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 +11909,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 +11919,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 +11940,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 +11954,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 +11962,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 +11972,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 +12751,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 +12883,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) + + '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/hetzner@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@distilled.cloud/fly-io@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/neon@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@distilled.cloud/gcp@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/planetscale@1.0.0-rc.12(effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec))': + '@distilled.cloud/hetzner@1.0.0-rc.13(effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/prisma@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/railway@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@distilled.cloud/stripe@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) + + '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) + + '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) + + '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) + + '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1)) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) '@dnd-kit/accessibility@3.1.1(react@19.2.6)': dependencies: @@ -12916,62 +12998,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(react@19.2.6)(scheduler@0.28.0)': dependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(react@19.3.0)(scheduler@0.28.0)': dependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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=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.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=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.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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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=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.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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))(utf-8-validate@6.0.6) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': dependencies: - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) '@effect/tsgo-darwin-arm64@0.41.0': optional: true @@ -13004,9 +13086,41 @@ 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))': + '@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.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + 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) + 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 @@ -14080,7 +14194,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 @@ -14243,6 +14357,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 +14371,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 +14489,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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1))': 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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) - '@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=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) '@oslojs/encoding@1.1.0': {} @@ -15237,58 +15354,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': {} @@ -16156,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 @@ -16510,55 +16625,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)(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)) + '@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=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 - aws4fetch: 1.0.20 capnweb: 0.12.0 - effect: 4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + effect: 4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1) 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=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=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(77d4691b21c77897491506c37fa7b5ad) + 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)' - 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 +16720,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 +16903,8 @@ snapshots: aws4@1.13.2: {} - aws4fetch@1.0.20: {} + aws4fetch@1.0.20: + optional: true axobject-query@4.1.0: {} @@ -16942,7 +17063,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 +17825,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(b25f7c76220d3224392693e60345984f): 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=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.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec) + 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) @@ -17735,7 +17857,7 @@ snapshots: ee-first@1.1.1: {} - effect@4.0.0-rc.115(patch_hash=e7f58877e87996e73e44f697dd39ec71b3a05dcfd00047253c11eb9ee47d84ec): {} + effect@4.0.1(patch_hash=612836d78f1412734beaab6e83cd087b1d5d95e0ea99098c00991579afdf1cd1): {} ejs@3.1.10: dependencies: @@ -18450,15 +18572,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 +18580,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 +19139,6 @@ snapshots: is-unicode-supported@2.1.0: {} - is-unsafe@2.0.2: {} - is-wsl@2.2.0: dependencies: is-docker: 2.2.1 @@ -19117,7 +19230,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 @@ -20385,6 +20498,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 +20557,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 +20668,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: {} @@ -21756,6 +21919,7 @@ snapshots: strnum@2.4.2: dependencies: anynum: 1.0.1 + optional: true structured-headers@0.4.1: {} @@ -22016,10 +22180,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 +22363,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 @@ -22465,13 +22687,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 +22726,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 +22738,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 11f052624a4842d03bfe431e8dfc95aeb13a0f6a..460a39ca541e1d532237e0d7508a0d40c5162f5c 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,46 +225,49 @@ 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 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: vite-plus: "catalog:" - peerDependenciesMeta: - vitest: - optional: true - vite-plus@*: - dependencies: - 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 450af75f37be15fe2c802337af098267538fd455..90b4e39c104ac6a2595506530bf1caef564b80b4 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 e5839989efc7261e9598746de7599c14c4f05f6f..65835de83019dbd504d2e130d85494dd00a68902 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 38417a2e4f088a5cba7ea1266dec93f990f7dc62..aa733d53163148c5889f9ce39df7c27ab5634f32 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 9b2e26c8f459769050c3e767bf78d9b444596c95..f8f5a6ca2d52dd37c7ec1677eda7ee1dc51b5455 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 5fc0d859fc3d37d7b636f32c0aa2b404bcda3f6f..cd813ae742b775859be959b741c8adb8ad5bcd9b 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 4f56f5b449e60bc57b590ad5470a003e50f32f58..26ac80b1a3d9ffed45c38b769eb073a3b6f487e8 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 be58bcecde08d11f8a8d2a5b174a9f1326bcf92e..c8363c181976bf729d651e1d1032be7fbb08fb01 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 5a44c7c1845e2c46c364a8baca1893f2e89c41fc..f026e2507e594b12a55b8ac13ed54e0f9f46a245 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 620a98655367e9d9225ed62661ec98db81ac8296..6ae7cf3802ea4d1c1488bbc9fb04875502610849 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 2b133e456c46722a400bbe1f82af70d7aa0f89a9..cddc95e636146d751de5a6ba83ab8d792d4c4ead 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 94a1c462043f81219078dee1989c9d25fabfe32b..08d3b750a6723482d08556617329293c1e815158 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 32431b81d3394ef3dd61fc26a3ef90b748011464..8925aaa0798de4097fc122f41dd233a6109eb7eb 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 a3cb63878b6c7b2ba11631e61e40abc6056e3a3b..f8a30d6608287952a350438531deeb05a0a6278a 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 a1324c0a2c6da30eee8723c8ef5708d8c83c4a37..e20151e3457ea6eb96b7a7d3760ae8ea30903b72 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 7393b4bd9c829f6e495f446de949188f58f6f63f..a3e4b183b3ac752b221480c1011818df66241be7 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 a99e6e14363089c1c228561dd426fcf5800674b4..9ed98ad4414e47a9dde847cad560176f7fc6f7af 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 5e060ff9013b808cca74e9607266e0749465e3a3..ac26e013f2c042af4529660fc32a77fb3f6ab235 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 e65d41f0e8725c8fe29bdd60ba7e39bace43b162..687e0d7513c7a59091d4500c84bfe4db428f3cc0 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 21588b718ecc7f40bdc3e9053756a5d0dc9f5878..3c890d29d251c466ef6be0af90dbf94ad02f814f 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 d096969c36b8e7cd8a2c33e444bc5c3e38ca75f2..689fe965a2c579c5b672f447820946c69ef1e14e 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 c2413c23dc4941c28abe06d307f68c41261c55b1..c3ae72484e2d4aee9b84b8f87d7ef929cc0e5f8b 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 1cffc47aac7007d3aeecf153fe15e6e0358ff839..856dd698f76e9fcf8f6609122f11976d3f2b0cd9 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 9dcb656b3955c27ef154fcf74d80857e95e0145c..d6c17d060e42fce0e2f124c7adc611644477970f 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 0af024c0ec92c6a515732cf3a0bed3431732c97f..179c268b909afbdd0befdc06dc13e2479b92f9e3 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 e3189936352cbc2102066f3b56bc10fb23d0c6f5..aa21c309c28cf5590d3439f4e9622c62beb509fd 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 e56c5fe9e4b47a1f8721e81dbda6724da5a3a64d..6a2dcc68c6edcca2f8ca3a9e1a6fb8fe93dbe940 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 01a27f3273b5374a12b8177e3f6e923ac656e46f..7b2138e2d7900a13508562477f23349c11a5ec82 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 ec825d709d683b6eb1198f6178497525413d49ed..2c6dbe3b4eece975c2f2cefdc3ce06989b20bb31 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()( -- 2.54.0