History

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

Julius Marminge committed 4 months ago

Commit 9a1c4871 parent 7eda6ba14 files · +69 −123Browse files

Unified · Split

14 files
  1. apps/desktop/src/app/DesktopObservability.ts +1 −5
  2. apps/desktop/src/backend/DesktopBackendConfiguration.ts +1 −5
  3. apps/desktop/src/shell/DesktopShellEnvironment.ts +1 −5
  4. apps/desktop/src/window/DesktopApplicationMenu.ts +2 −10
  5. apps/mobile/src/connection/runtime.ts +7 −11
  6. apps/mobile/src/lib/runtime.ts +5 −8
  7. apps/mobile/src/state/relay.ts +1 −1
  8. apps/server/src/mcp/McpSessionRegistry.ts +1 −5
  9. apps/server/src/provider/Layers/ProviderInstanceRegistryHydration.ts +1 −5
  10. apps/web/src/cloud/dpop.ts +34 −37
  11. apps/web/src/connection/runtime.ts +7 −11
  12. apps/web/src/lib/runtime.ts +5 −8
  13. packages/client-runtime/src/rpc/client.ts +2 −7
  14. packages/tailscale/src/tailscale.ts +1 −5
apps/desktop/src/app/DesktopObservability.ts+1−5
@@ -50,11 +50,7 @@ export function makeComponentLogger(component: string): DesktopComponentLogger { · 49 unmodified lines
5050 };
5151 }
5252
53−const readPersistedOtlpTracesUrl: Effect.Effect<
54− Option.Option<string>,
55− never,
56− FileSystem.FileSystem | DesktopEnvironment.DesktopEnvironment
57−> = Effect.gen(function* () {
53+const 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 · 53 unmodified lines
5454 "desktop-backend-configuration",
5555 );
5656
57−const readPersistedBackendObservabilitySettings: Effect.Effect<
58− BackendObservabilitySettings,
59− never,
60− FileSystem.FileSystem | DesktopEnvironment.DesktopEnvironment
61−> = Effect.gen(function* () {
57+const 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 = ( · 210 unmodified lines
211211 timeout: LOGIN_SHELL_TIMEOUT,
212212 }).pipe(Effect.map((output) => extractEnvironment(output, names)));
213213
214−const readLaunchctlPath: Effect.Effect<
215− Option.Option<string>,
216− never,
217− ChildProcessSpawner.ChildProcessSpawner
218−> = runCommandOutput({
214+const 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 · 36 unmodified lines
3737 yield* desktopWindow.dispatchMenuAction(action);
3838 });
3939
40−const checkForUpdatesFromMenu: Effect.Effect<
41− void,
42− never,
43− DesktopUpdates.DesktopUpdates | ElectronDialog.ElectronDialog
44−> = Effect.gen(function* () {
40+const 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< · 17 unmodified lines
6561 }
6662 }).pipe(Effect.withSpan("desktop.menu.checkForUpdates"));
6763
68−const handleCheckForUpdatesMenuClick: Effect.Effect<
69− void,
70− DesktopWindow.DesktopWindowError,
71− DesktopUpdates.DesktopUpdates | ElectronDialog.ElectronDialog | DesktopWindow.DesktopWindow
72−> = Effect.gen(function* () {
64+const 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"; · 4 unmodified lines
55 import { runtimeContextLayer } from "../lib/runtime";
66 import { connectionPlatformLayer } from "./platform";
77
8−const providedConnectionPlatformLayer: Layer.Layer<
9− Layer.Success<typeof connectionPlatformLayer>,
10− Layer.Error<typeof connectionPlatformLayer>
11−> = connectionPlatformLayer.pipe(Layer.provide(runtimeContextLayer));
8+const providedConnectionPlatformLayer = connectionPlatformLayer.pipe(
9+ Layer.provide(runtimeContextLayer),
10+);
1211
1312 type ConnectionLayerSource =
1413 | typeof Connection.layer
1514 | typeof runtimeContextLayer
16− | typeof providedConnectionPlatformLayer;
15+ | typeof connectionPlatformLayer;
1716
18−export const connectionLayer: Layer.Layer<
19− Layer.Success<ConnectionLayerSource>,
20− Layer.Error<ConnectionLayerSource>
21−> = Connection.layer.pipe(
17+const connectionLayer = Connection.layer.pipe(
2218 Layer.provideMerge(Layer.mergeAll(runtimeContextLayer, providedConnectionPlatformLayer)),
2319 );
2420
2521 export 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 = · 21 unmodified lines
2222 | typeof httpClientLayer
2323 | typeof tracingLayer;
2424
25−export const runtimeLayer: Layer.Layer<
26− Layer.Success<RuntimeLayerSource>,
27− Layer.Error<RuntimeLayerSource>
28−> = Layer.merge(
25+const runtimeLayer = Layer.merge(
2926 managedRelayClientLayer(configuredRelayUrl()),
3027 Socket.layerWebSocketConstructorGlobal,
3128 ).pipe(
@@ -35,11 +32,11 @@ export const runtimeLayer: Layer.Layer< · 3 unmodified lines
3532 );
3633
3734 export 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
4239 export 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 · 1 unmodified line
22
33 import { connectionAtomRuntime } from "../connection/runtime";
44
5−export const relayEnvironmentDiscovery: ReturnType<typeof createRelayEnvironmentDiscoveryAtoms> =
5+export const relayEnvironmentDiscovery =
66 createRelayEnvironmentDiscoveryAtoms(connectionAtomRuntime);
apps/server/src/mcp/McpSessionRegistry.ts+1−5
@@ -191,11 +191,7 @@ const make = Effect.acquireRelease( · 190 unmodified lines
191191 }),
192192 );
193193
194−export const layer: Layer.Layer<
195− McpSessionRegistry,
196− never,
197− Crypto.Crypto | ServerEnvironment.ServerEnvironment | HttpServer.HttpServer
198−> = Layer.effect(McpSessionRegistry, make);
194+export const layer = Layer.effect(McpSessionRegistry, make);
199195
200196 export const issueActiveMcpCredential = (
201197 request: McpCredentialRequest,
apps/server/src/provider/Layers/ProviderInstanceRegistryHydration.ts+1−5
@@ -114,11 +114,7 @@ export const deriveProviderInstanceConfigMap = ( · 113 unmodified lines
114114 * configs, so the only way the watcher could fail is a settings stream
115115 * tear-down, which logs and exits cleanly.
116116 */
117−const SettingsWatcherLive: Layer.Layer<
118− never,
119− never,
120− ProviderInstanceRegistryMutator | ServerSettingsService
121−> = Layer.effectDiscard(
117+const 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( · 106 unmodified lines
107107 );
108108 }
109109
110−export 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−);
110+export 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
148145 export 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"; · 4 unmodified lines
55 import { runtimeContextLayer } from "../lib/runtime";
66 import { connectionPlatformLayer } from "./platform";
77
8−const providedConnectionPlatformLayer: Layer.Layer<
9− Layer.Success<typeof connectionPlatformLayer>,
10− Layer.Error<typeof connectionPlatformLayer>
11−> = connectionPlatformLayer.pipe(Layer.provide(runtimeContextLayer));
8+const providedConnectionPlatformLayer = connectionPlatformLayer.pipe(
9+ Layer.provide(runtimeContextLayer),
10+);
1211
1312 type ConnectionLayerSource =
1413 | typeof Connection.layer
1514 | typeof runtimeContextLayer
16− | typeof providedConnectionPlatformLayer;
15+ | typeof connectionPlatformLayer;
1716
18−export const connectionLayer: Layer.Layer<
19− Layer.Success<ConnectionLayerSource>,
20− Layer.Error<ConnectionLayerSource>
21−> = Connection.layer.pipe(
17+const connectionLayer = Connection.layer.pipe(
2218 Layer.provideMerge(Layer.mergeAll(runtimeContextLayer, providedConnectionPlatformLayer)),
2319 );
2420
2521 export 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) · 53 unmodified lines
5454 primaryHttpRunner = runner ?? livePrimaryHttpRunner;
5555 }
5656
57−export const runtimeLayer: Layer.Layer<
58− Layer.Success<RuntimeLayerSource>,
59− Layer.Error<RuntimeLayerSource>
60−> = Layer.mergeAll(
57+const runtimeLayer = Layer.mergeAll(
6158 httpClientLayer,
6259 browserCryptoLayer,
6360 Socket.layerWebSocketConstructorGlobal,
@@ -68,11 +65,11 @@ export const runtimeLayer: Layer.Layer< · 4 unmodified lines
6865 );
6966
7067 export 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
7572 export 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 @@
1−import { ORCHESTRATION_WS_METHODS, type ServerConfig, WS_METHODS } from "@t3tools/contracts";
1+import { ORCHESTRATION_WS_METHODS, WS_METHODS } from "@t3tools/contracts";
22 import * as Cause from "effect/Cause";
33 import * as Context from "effect/Context";
44 import type * as Duration from "effect/Duration";
@@ -9,7 +9,6 @@ import * as Stream from "effect/Stream"; · 4 unmodified lines
99 import * as SubscriptionRef from "effect/SubscriptionRef";
1010 import { RpcClientError } from "effect/unstable/rpc";
1111
12−import type { ConnectionAttemptError } from "../connection/model.ts";
1312 import { EnvironmentSupervisor } from "../connection/supervisor.ts";
1413 import type { WsRpcProtocolClient } from "../rpc/protocol.ts";
1514
@@ -237,11 +236,7 @@ export function subscribe<TTag extends EnvironmentSubscriptionRpcTag>( · 221 unmodified lines
237236 );
238237 }
239238
240−export const config: Effect.Effect<
241− ServerConfig,
242− EnvironmentRpcUnavailableError | ConnectionAttemptError,
243− EnvironmentSupervisor
244−> = Effect.gen(function* () {
239+export 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 = ( · 134 unmodified lines
135135 }),
136136 );
137137
138−export const readTailscaleStatus: Effect.Effect<
139− TailscaleStatus,
140− TailscaleCommandError | TailscaleStatusParseError,
141− ChildProcessSpawner.ChildProcessSpawner
142−> = Effect.gen(function* () {
138+export const readTailscaleStatus = Effect.gen(function* () {
143139 const args = ["status", "--json"];
144140 const spawner = yield* ChildProcessSpawner.ChildProcessSpawner;
145141 const hostPlatform = yield* HostProcessPlatform;