authorgravatar for julius0216@outlook.comJulius Marminge <julius0216@outlook.com> 2026-04-01 08:58:04-07:00
committergravatar for noreply@github.comGitHub <noreply@github.com> 2026-04-01 08:58:04-07:00
loga9e5a84c03fbec2934777a0c718bcabec161863e
tree47dbbe12b2c22f7e43c13f5bde96f67a25049167
parent67ca528fea4a90638811105929248fe565d0a27e
signature Signed by PGP key B5690EEEBB952194

[codex] migrate Effect.fn in apps/server/src/provider/Layers/ProviderAdapterRegistry.ts (#1637)

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

1 files changed, 22 insertions(+), 21 deletions(-)

apps/server/src/provider/Layers/ProviderAdapterRegistry.ts+22-21
...@@ -22,30 +22,31 @@ export interface ProviderAdapterRegistryLiveOptions {...@@ -22,30 +22,31 @@ export interface ProviderAdapterRegistryLiveOptions {
22 readonly adapters?: ReadonlyArray<ProviderAdapterShape<ProviderAdapterError>>;22 readonly adapters?: ReadonlyArray<ProviderAdapterShape<ProviderAdapterError>>;
23}23}
2424
25const makeProviderAdapterRegistry = (options?: ProviderAdapterRegistryLiveOptions) =>25const makeProviderAdapterRegistry = Effect.fn("makeProviderAdapterRegistry")(function* (
26 Effect.gen(function* () {26 options?: ProviderAdapterRegistryLiveOptions,
27 const adapters =27) {
28 options?.adapters !== undefined28 const adapters =
29 ? options.adapters29 options?.adapters !== undefined
30 : [yield* CodexAdapter, yield* ClaudeAdapter];30 ? options.adapters
31 const byProvider = new Map(adapters.map((adapter) => [adapter.provider, adapter]));31 : [yield* CodexAdapter, yield* ClaudeAdapter];
32 const byProvider = new Map(adapters.map((adapter) => [adapter.provider, adapter]));
3233
33 const getByProvider: ProviderAdapterRegistryShape["getByProvider"] = (provider) => {34 const getByProvider: ProviderAdapterRegistryShape["getByProvider"] = (provider) => {
34 const adapter = byProvider.get(provider);35 const adapter = byProvider.get(provider);
35 if (!adapter) {36 if (!adapter) {
36 return Effect.fail(new ProviderUnsupportedError({ provider }));37 return Effect.fail(new ProviderUnsupportedError({ provider }));
37 }38 }
38 return Effect.succeed(adapter);39 return Effect.succeed(adapter);
39 };40 };
4041
41 const listProviders: ProviderAdapterRegistryShape["listProviders"] = () =>42 const listProviders: ProviderAdapterRegistryShape["listProviders"] = () =>
42 Effect.sync(() => Array.from(byProvider.keys()));43 Effect.sync(() => Array.from(byProvider.keys()));
4344
44 return {45 return {
45 getByProvider,46 getByProvider,
46 listProviders,47 listProviders,
47 } satisfies ProviderAdapterRegistryShape;48 } satisfies ProviderAdapterRegistryShape;
48 });49});
4950
50export const ProviderAdapterRegistryLive = Layer.effect(51export const ProviderAdapterRegistryLive = Layer.effect(
51 ProviderAdapterRegistry,52 ProviderAdapterRegistry,