diff --git a/src/agents/athena/types.ts b/src/agents/athena/types.ts new file mode 100644 index 000000000..13a3f7483 --- /dev/null +++ b/src/agents/athena/types.ts @@ -0,0 +1,19 @@ +export interface CouncilMemberConfig { + model: string + temperature?: number + variant?: string + name?: string +} + +export interface CouncilConfig { + members: CouncilMemberConfig[] +} + +export interface AthenaConfig { + model?: string + council: CouncilConfig +} + +export type CouncilMemberStatus = "completed" | "timeout" | "error" + +export type AgreementLevel = "unanimous" | "majority" | "minority" | "solo" diff --git a/src/config/schema/athena.ts b/src/config/schema/athena.ts new file mode 100644 index 000000000..5a552a41f --- /dev/null +++ b/src/config/schema/athena.ts @@ -0,0 +1,21 @@ +import { z } from "zod" + +export const CouncilMemberSchema = z.object({ + model: z.string(), + temperature: z.number().min(0).max(2).optional(), + variant: z.string().optional(), + name: z.string().optional(), +}) + +export const CouncilConfigSchema = z.object({ + members: z.array(CouncilMemberSchema).min(2), +}) + +export const AthenaConfigSchema = z.object({ + model: z.string().optional(), + council: CouncilConfigSchema, +}) + +export type CouncilMemberSchemaType = z.infer +export type CouncilConfigSchemaType = z.infer +export type AthenaConfigSchemaType = z.infer