authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-06-20 00:37:47-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-06-20 00:37:47-07:00
log9a1c4875a37ea7eeb77db189e2e45db9404d7a47
tree67e6a7188471f04bd2fb8223f1a694a2dc6aaebd
parent7eda6ba5fce8290b3a13d1ab730827fc36a34e53
signature Signed by PGP key B5690EEEBB952194

[codex] Remove redundant Effect type annotations (#3229)

Co-authored-by: codex <codex@users.noreply.github.com>

14 files changed, 69 insertions(+), 123 deletions(-)

apps/desktop/src/app/DesktopObservability.ts+1-5
......@@ -50,11 +50,7 @@ export function makeComponentLogger(component: string): DesktopComponentLogger {
5050 };
5151}
5252
53const readPersistedOtlpTracesUrl: Effect.Effect<
54 Option.Option<string>,
55 never,
56 FileSystem.FileSystem | DesktopEnvironment.DesktopEnvironment
57> = Effect.gen(function* () {
53const readPersistedOtlpTracesUrl = Effect.gen(function* () {
5854 const fileSystem = yield* FileSystem.FileSystem;
5955 const environment = yield* DesktopEnvironment.DesktopEnvironment;
6056 const raw = yield* fileSystem.readFileString(environment.serverSettingsPath).pipe(Effect.option);
apps/desktop/src/backend/DesktopBackendConfiguration.ts+1-5
......@@ -54,11 +54,7 @@ const { logWarning: logBackendConfigurationWarning } = DesktopObservability.make
5454 "desktop-backend-configuration",
5555);
5656
57const readPersistedBackendObservabilitySettings: Effect.Effect<
58 BackendObservabilitySettings,
59 never,
60 FileSystem.FileSystem | DesktopEnvironment.DesktopEnvironment
61> = Effect.gen(function* () {
57const readPersistedBackendObservabilitySettings = Effect.gen(function* () {
6258 const fileSystem = yield* FileSystem.FileSystem;
6359 const environment = yield* DesktopEnvironment.DesktopEnvironment;
6460 const exists = yield* fileSystem
apps/desktop/src/shell/DesktopShellEnvironment.ts+1-5
......@@ -211,11 +211,7 @@ const readLoginShellEnvironment = (
211211 timeout: LOGIN_SHELL_TIMEOUT,
212212 }).pipe(Effect.map((output) => extractEnvironment(output, names)));
213213
214const readLaunchctlPath: Effect.Effect<
215 Option.Option<string>,
216 never,
217 ChildProcessSpawner.ChildProcessSpawner
218> = runCommandOutput({
214const readLaunchctlPath = runCommandOutput({
219215 command: "/bin/launchctl",
220216 args: ["getenv", "PATH"],
221217 timeout: LAUNCHCTL_TIMEOUT,
apps/desktop/src/window/DesktopApplicationMenu.ts+2-10
......@@ -37,11 +37,7 @@ const dispatchMenuAction = Effect.fn("desktop.menu.dispatchMenuAction")(function
3737 yield* desktopWindow.dispatchMenuAction(action);
3838});
3939
40const checkForUpdatesFromMenu: Effect.Effect<
41 void,
42 never,
43 DesktopUpdates.DesktopUpdates | ElectronDialog.ElectronDialog
44> = Effect.gen(function* () {
40const checkForUpdatesFromMenu = Effect.gen(function* () {
4541 const updates = yield* DesktopUpdates.DesktopUpdates;
4642 const electronDialog = yield* ElectronDialog.ElectronDialog;
4743 const result = yield* updates.check("menu");
......@@ -65,11 +61,7 @@ const checkForUpdatesFromMenu: Effect.Effect<
6561 }
6662}).pipe(Effect.withSpan("desktop.menu.checkForUpdates"));
6763
68const handleCheckForUpdatesMenuClick: Effect.Effect<
69 void,
70 DesktopWindow.DesktopWindowError,
71 DesktopUpdates.DesktopUpdates | ElectronDialog.ElectronDialog | DesktopWindow.DesktopWindow
72> = Effect.gen(function* () {
64const handleCheckForUpdatesMenuClick = Effect.gen(function* () {
7365 const updates = yield* DesktopUpdates.DesktopUpdates;
7466 const electronDialog = yield* ElectronDialog.ElectronDialog;
7567 const disabledReason = yield* updates.disabledReason;
apps/mobile/src/connection/runtime.ts+7-11
......@@ -5,24 +5,20 @@ import { Atom } from "effect/unstable/reactivity";
55import { runtimeContextLayer } from "../lib/runtime";
66import { connectionPlatformLayer } from "./platform";
77
8const providedConnectionPlatformLayer: Layer.Layer<
9 Layer.Success<typeof connectionPlatformLayer>,
10 Layer.Error<typeof connectionPlatformLayer>
11> = connectionPlatformLayer.pipe(Layer.provide(runtimeContextLayer));
8const providedConnectionPlatformLayer = connectionPlatformLayer.pipe(
9 Layer.provide(runtimeContextLayer),
10);
1211
1312type ConnectionLayerSource =
1413 | typeof Connection.layer
1514 | typeof runtimeContextLayer
16 | typeof providedConnectionPlatformLayer;
15 | typeof connectionPlatformLayer;
1716
18export const connectionLayer: Layer.Layer<
19 Layer.Success<ConnectionLayerSource>,
20 Layer.Error<ConnectionLayerSource>
21> = Connection.layer.pipe(
17const connectionLayer = Connection.layer.pipe(
2218 Layer.provideMerge(Layer.mergeAll(runtimeContextLayer, providedConnectionPlatformLayer)),
2319);
2420
2521export const connectionAtomRuntime: Atom.AtomRuntime<
26 Layer.Success<typeof connectionLayer>,
27 Layer.Error<typeof connectionLayer>
22 Layer.Success<ConnectionLayerSource>,
23 Layer.Error<ConnectionLayerSource>
2824> = Atom.runtime(connectionLayer);
apps/mobile/src/lib/runtime.ts+5-8
......@@ -22,10 +22,7 @@ type RuntimeLayerSource =
2222 | typeof httpClientLayer
2323 | typeof tracingLayer;
2424
25export const runtimeLayer: Layer.Layer<
26 Layer.Success<RuntimeLayerSource>,
27 Layer.Error<RuntimeLayerSource>
28> = Layer.merge(
25const runtimeLayer = Layer.merge(
2926 managedRelayClientLayer(configuredRelayUrl()),
3027 Socket.layerWebSocketConstructorGlobal,
3128).pipe(
......@@ -35,11 +32,11 @@ export const runtimeLayer: Layer.Layer<
3532);
3633
3734export const runtime: ManagedRuntime.ManagedRuntime<
38 Layer.Success<typeof runtimeLayer>,
39 Layer.Error<typeof runtimeLayer>
35 Layer.Success<RuntimeLayerSource>,
36 Layer.Error<RuntimeLayerSource>
4037> = ManagedRuntime.make(runtimeLayer);
4138
4239export const runtimeContextLayer: Layer.Layer<
43 Layer.Success<typeof runtimeLayer>,
44 Layer.Error<typeof runtimeLayer>
40 Layer.Success<RuntimeLayerSource>,
41 Layer.Error<RuntimeLayerSource>
4542> = Layer.effectContext(runtime.contextEffect);
apps/mobile/src/state/relay.ts+1-1
......@@ -2,5 +2,5 @@ import { createRelayEnvironmentDiscoveryAtoms } from "@t3tools/client-runtime/st
22
33import { connectionAtomRuntime } from "../connection/runtime";
44
5export const relayEnvironmentDiscovery: ReturnType<typeof createRelayEnvironmentDiscoveryAtoms> =
5export const relayEnvironmentDiscovery =
66 createRelayEnvironmentDiscoveryAtoms(connectionAtomRuntime);
apps/server/src/mcp/McpSessionRegistry.ts+1-5
......@@ -191,11 +191,7 @@ const make = Effect.acquireRelease(
191191 }),
192192);
193193
194export const layer: Layer.Layer<
195 McpSessionRegistry,
196 never,
197 Crypto.Crypto | ServerEnvironment.ServerEnvironment | HttpServer.HttpServer
198> = Layer.effect(McpSessionRegistry, make);
194export const layer = Layer.effect(McpSessionRegistry, make);
199195
200196export const issueActiveMcpCredential = (
201197 request: McpCredentialRequest,
apps/server/src/provider/Layers/ProviderInstanceRegistryHydration.ts+1-5
......@@ -114,11 +114,7 @@ export const deriveProviderInstanceConfigMap = (
114114 * configs, so the only way the watcher could fail is a settings stream
115115 * tear-down, which logs and exits cleanly.
116116 */
117const SettingsWatcherLive: Layer.Layer<
118 never,
119 never,
120 ProviderInstanceRegistryMutator | ServerSettingsService
121> = Layer.effectDiscard(
117const SettingsWatcherLive = Layer.effectDiscard(
122118 Effect.gen(function* () {
123119 const mutator = yield* ProviderInstanceRegistryMutator;
124120 const serverSettings = yield* ServerSettingsService;
apps/web/src/cloud/dpop.ts+34-37
......@@ -107,43 +107,40 @@ export function writeStoredBrowserDpopKey(
107107 );
108108}
109109
110export const generateBrowserDpopKey: Effect.Effect<BrowserDpopKey, BrowserDpopError> = Effect.gen(
111 function* () {
112 const generated = yield* Effect.tryPromise({
113 try: () =>
114 crypto.subtle.generateKey({ name: "ECDSA", namedCurve: "P-256" }, true, [
115 "sign",
116 "verify",
117 ]) as Promise<CryptoKeyPair>,
118 catch: (cause) => dpopError("Could not generate DPoP proof key.", cause),
119 });
120 const privateJwk = yield* Effect.tryPromise({
121 try: () => crypto.subtle.exportKey("jwk", generated.privateKey),
122 catch: (cause) => dpopError("Could not export DPoP private key.", cause),
123 });
124 const publicJwk = yield* Effect.tryPromise({
125 try: () => crypto.subtle.exportKey("jwk", generated.publicKey),
126 catch: (cause) => dpopError("Could not export DPoP public key.", cause),
127 }).pipe(
128 Effect.flatMap((jwk) => decodeDpopPublicJwk(jwk)),
129 Effect.mapError((cause) =>
130 cause instanceof BrowserDpopError
131 ? cause
132 : dpopError("Generated DPoP public key is invalid.", cause),
133 ),
134 );
135 const privateKey = yield* Effect.tryPromise({
136 try: () =>
137 importJWK(privateJwk as JWK, "ES256", { extractable: false }) as Promise<CryptoKey>,
138 catch: (cause) => dpopError("Could not import DPoP private key.", cause),
139 });
140 return {
141 privateKey,
142 publicJwk,
143 thumbprint: computeDpopJwkThumbprint(publicJwk),
144 };
145 },
146);
110export const generateBrowserDpopKey = Effect.gen(function* () {
111 const generated = yield* Effect.tryPromise({
112 try: () =>
113 crypto.subtle.generateKey({ name: "ECDSA", namedCurve: "P-256" }, true, [
114 "sign",
115 "verify",
116 ]) as Promise<CryptoKeyPair>,
117 catch: (cause) => dpopError("Could not generate DPoP proof key.", cause),
118 });
119 const privateJwk = yield* Effect.tryPromise({
120 try: () => crypto.subtle.exportKey("jwk", generated.privateKey),
121 catch: (cause) => dpopError("Could not export DPoP private key.", cause),
122 });
123 const publicJwk = yield* Effect.tryPromise({
124 try: () => crypto.subtle.exportKey("jwk", generated.publicKey),
125 catch: (cause) => dpopError("Could not export DPoP public key.", cause),
126 }).pipe(
127 Effect.flatMap((jwk) => decodeDpopPublicJwk(jwk)),
128 Effect.mapError((cause) =>
129 cause instanceof BrowserDpopError
130 ? cause
131 : dpopError("Generated DPoP public key is invalid.", cause),
132 ),
133 );
134 const privateKey = yield* Effect.tryPromise({
135 try: () => importJWK(privateJwk as JWK, "ES256", { extractable: false }) as Promise<CryptoKey>,
136 catch: (cause) => dpopError("Could not import DPoP private key.", cause),
137 });
138 return {
139 privateKey,
140 publicJwk,
141 thumbprint: computeDpopJwkThumbprint(publicJwk),
142 };
143});
147144
148145export function createBrowserDpopProof(input: {
149146 readonly method: string;
apps/web/src/connection/runtime.ts+7-11
......@@ -5,24 +5,20 @@ import { Atom } from "effect/unstable/reactivity";
55import { runtimeContextLayer } from "../lib/runtime";
66import { connectionPlatformLayer } from "./platform";
77
8const providedConnectionPlatformLayer: Layer.Layer<
9 Layer.Success<typeof connectionPlatformLayer>,
10 Layer.Error<typeof connectionPlatformLayer>
11> = connectionPlatformLayer.pipe(Layer.provide(runtimeContextLayer));
8const providedConnectionPlatformLayer = connectionPlatformLayer.pipe(
9 Layer.provide(runtimeContextLayer),
10);
1211
1312type ConnectionLayerSource =
1413 | typeof Connection.layer
1514 | typeof runtimeContextLayer
16 | typeof providedConnectionPlatformLayer;
15 | typeof connectionPlatformLayer;
1716
18export const connectionLayer: Layer.Layer<
19 Layer.Success<ConnectionLayerSource>,
20 Layer.Error<ConnectionLayerSource>
21> = Connection.layer.pipe(
17const connectionLayer = Connection.layer.pipe(
2218 Layer.provideMerge(Layer.mergeAll(runtimeContextLayer, providedConnectionPlatformLayer)),
2319);
2420
2521export const connectionAtomRuntime: Atom.AtomRuntime<
26 Layer.Success<typeof connectionLayer>,
27 Layer.Error<typeof connectionLayer>
22 Layer.Success<ConnectionLayerSource>,
23 Layer.Error<ConnectionLayerSource>
2824> = Atom.runtime(connectionLayer);
apps/web/src/lib/runtime.ts+5-8
......@@ -54,10 +54,7 @@ export function __setPrimaryHttpRunnerForTests(runner?: PrimaryHttpEffectRunner)
5454 primaryHttpRunner = runner ?? livePrimaryHttpRunner;
5555}
5656
57export const runtimeLayer: Layer.Layer<
58 Layer.Success<RuntimeLayerSource>,
59 Layer.Error<RuntimeLayerSource>
60> = Layer.mergeAll(
57const runtimeLayer = Layer.mergeAll(
6158 httpClientLayer,
6259 browserCryptoLayer,
6360 Socket.layerWebSocketConstructorGlobal,
......@@ -68,11 +65,11 @@ export const runtimeLayer: Layer.Layer<
6865);
6966
7067export const runtime: ManagedRuntime.ManagedRuntime<
71 Layer.Success<typeof runtimeLayer>,
72 Layer.Error<typeof runtimeLayer>
68 Layer.Success<RuntimeLayerSource>,
69 Layer.Error<RuntimeLayerSource>
7370> = ManagedRuntime.make(runtimeLayer);
7471
7572export const runtimeContextLayer: Layer.Layer<
76 Layer.Success<typeof runtimeLayer>,
77 Layer.Error<typeof runtimeLayer>
73 Layer.Success<RuntimeLayerSource>,
74 Layer.Error<RuntimeLayerSource>
7875> = Layer.effectContext(runtime.contextEffect);
packages/client-runtime/src/rpc/client.ts+2-7
......@@ -1,4 +1,4 @@
1import { ORCHESTRATION_WS_METHODS, type ServerConfig, WS_METHODS } from "@t3tools/contracts";
1import { ORCHESTRATION_WS_METHODS, WS_METHODS } from "@t3tools/contracts";
22import * as Cause from "effect/Cause";
33import * as Context from "effect/Context";
44import type * as Duration from "effect/Duration";
......@@ -9,7 +9,6 @@ import * as Stream from "effect/Stream";
99import * as SubscriptionRef from "effect/SubscriptionRef";
1010import { RpcClientError } from "effect/unstable/rpc";
1111
12import type { ConnectionAttemptError } from "../connection/model.ts";
1312import { EnvironmentSupervisor } from "../connection/supervisor.ts";
1413import type { WsRpcProtocolClient } from "../rpc/protocol.ts";
1514
......@@ -237,11 +236,7 @@ export function subscribe<TTag extends EnvironmentSubscriptionRpcTag>(
237236 );
238237}
239238
240export const config: Effect.Effect<
241 ServerConfig,
242 EnvironmentRpcUnavailableError | ConnectionAttemptError,
243 EnvironmentSupervisor
244> = Effect.gen(function* () {
239export const config = Effect.gen(function* () {
245240 const session = yield* currentSession();
246241 return yield* session.initialConfig;
247242}).pipe(Effect.withSpan("EnvironmentRpc.config"));
packages/tailscale/src/tailscale.ts+1-5
......@@ -135,11 +135,7 @@ export const parseTailscaleStatus = (
135135 }),
136136 );
137137
138export const readTailscaleStatus: Effect.Effect<
139 TailscaleStatus,
140 TailscaleCommandError | TailscaleStatusParseError,
141 ChildProcessSpawner.ChildProcessSpawner
142> = Effect.gen(function* () {
138export const readTailscaleStatus = Effect.gen(function* () {
143139 const args = ["status", "--json"];
144140 const spawner = yield* ChildProcessSpawner.ChildProcessSpawner;
145141 const hostPlatform = yield* HostProcessPlatform;