Skip to content

Commit 905875d

Browse files
kitlangtonleohenon
authored andcommitted
agent: use Effect schema for generated agent object (anomalyco#26973)
1 parent c5c29fe commit 905875d

1 file changed

Lines changed: 10 additions & 6 deletions

File tree

packages/opencode/src/agent/agent.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import { Config } from "@/config/config"
2-
import z from "zod"
32
import { Provider } from "@/provider/provider"
43
import { ModelID, ProviderID } from "../provider/schema"
54
import { generateObject, streamObject, type ModelMessage } from "ai"
@@ -49,6 +48,12 @@ export const Info = Schema.Struct({
4948
}).annotate({ identifier: "Agent" })
5049
export type Info = DeepMutable<Schema.Schema.Type<typeof Info>>
5150

51+
const GeneratedAgent = Schema.Struct({
52+
identifier: Schema.String,
53+
whenToUse: Schema.String,
54+
systemPrompt: Schema.String,
55+
})
56+
5257
export interface Interface {
5358
readonly get: (agent: string) => Effect.Effect<Info>
5459
readonly list: () => Effect.Effect<Info[]>
@@ -405,11 +410,10 @@ export const layer = Layer.effect(
405410
},
406411
],
407412
model: language,
408-
schema: z.object({
409-
identifier: z.string(),
410-
whenToUse: z.string(),
411-
systemPrompt: z.string(),
412-
}),
413+
schema: Object.assign(
414+
Schema.toStandardSchemaV1(GeneratedAgent),
415+
Schema.toStandardJSONSchemaV1(GeneratedAgent),
416+
),
413417
} satisfies Parameters<typeof generateObject>[0]
414418

415419
if (isOpenaiOauth) {

0 commit comments

Comments
 (0)