agent: use Effect schema for generated agent object (#26973)

This commit is contained in:
Kit Langton
2026-05-11 21:42:04 -04:00
committed by GitHub
parent 1007630347
commit c43d606f8e
+10 -6
View File
@@ -1,5 +1,4 @@
import { Config } from "@/config/config" import { Config } from "@/config/config"
import z from "zod"
import { Provider } from "@/provider/provider" import { Provider } from "@/provider/provider"
import { ModelID, ProviderID } from "../provider/schema" import { ModelID, ProviderID } from "../provider/schema"
import { generateObject, streamObject, type ModelMessage } from "ai" import { generateObject, streamObject, type ModelMessage } from "ai"
@@ -49,6 +48,12 @@ export const Info = Schema.Struct({
}).annotate({ identifier: "Agent" }) }).annotate({ identifier: "Agent" })
export type Info = DeepMutable<Schema.Schema.Type<typeof Info>> export type Info = DeepMutable<Schema.Schema.Type<typeof Info>>
const GeneratedAgent = Schema.Struct({
identifier: Schema.String,
whenToUse: Schema.String,
systemPrompt: Schema.String,
})
export interface Interface { export interface Interface {
readonly get: (agent: string) => Effect.Effect<Info> readonly get: (agent: string) => Effect.Effect<Info>
readonly list: () => Effect.Effect<Info[]> readonly list: () => Effect.Effect<Info[]>
@@ -405,11 +410,10 @@ export const layer = Layer.effect(
}, },
], ],
model: language, model: language,
schema: z.object({ schema: Object.assign(
identifier: z.string(), Schema.toStandardSchemaV1(GeneratedAgent),
whenToUse: z.string(), Schema.toStandardJSONSchemaV1(GeneratedAgent),
systemPrompt: z.string(), ),
}),
} satisfies Parameters<typeof generateObject>[0] } satisfies Parameters<typeof generateObject>[0]
if (isOpenaiOauth) { if (isOpenaiOauth) {