From 2da6d860e0e2c5309a0030a5591c8218fffd6a99 Mon Sep 17 00:00:00 2001 From: Kit Langton Date: Tue, 21 Apr 2026 17:49:24 -0400 Subject: [PATCH] refactor(core): derive provider schema .zod via effect-zod walker (#23753) --- packages/opencode/specs/effect/schema.md | 2 +- packages/opencode/src/provider/schema.ts | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/packages/opencode/specs/effect/schema.md b/packages/opencode/specs/effect/schema.md index df3cc0881d..3ed0b825d5 100644 --- a/packages/opencode/specs/effect/schema.md +++ b/packages/opencode/specs/effect/schema.md @@ -162,7 +162,7 @@ schema module with a clear domain. - [ ] `src/control-plane/schema.ts` - [ ] `src/permission/schema.ts` - [ ] `src/project/schema.ts` -- [ ] `src/provider/schema.ts` +- [x] `src/provider/schema.ts` - [ ] `src/pty/schema.ts` - [ ] `src/question/schema.ts` - [ ] `src/session/schema.ts` diff --git a/packages/opencode/src/provider/schema.ts b/packages/opencode/src/provider/schema.ts index 702616018a..ea3cac3424 100644 --- a/packages/opencode/src/provider/schema.ts +++ b/packages/opencode/src/provider/schema.ts @@ -1,6 +1,6 @@ import { Schema } from "effect" -import z from "zod" +import { zod } from "@/util/effect-zod" import { withStatics } from "@/util/schema" const providerIdSchema = Schema.String.pipe(Schema.brand("ProviderID")) @@ -9,7 +9,7 @@ export type ProviderID = typeof providerIdSchema.Type export const ProviderID = providerIdSchema.pipe( withStatics((schema: typeof providerIdSchema) => ({ - zod: z.string().pipe(z.custom()), + zod: zod(schema), // Well-known providers opencode: schema.make("opencode"), anthropic: schema.make("anthropic"), @@ -30,7 +30,7 @@ const modelIdSchema = Schema.String.pipe(Schema.brand("ModelID")) export type ModelID = typeof modelIdSchema.Type export const ModelID = modelIdSchema.pipe( - withStatics((_schema: typeof modelIdSchema) => ({ - zod: z.string().pipe(z.custom()), + withStatics((schema: typeof modelIdSchema) => ({ + zod: zod(schema), })), )