feat(01-01): add Athena council type and schema contracts

- Add Athena council config interfaces and execution status types

- Add standalone Zod schemas for council member, council, and top-level Athena config

- Enforce 2-member minimum and bounded optional temperature validation
This commit is contained in:
ismeth
2026-02-12 12:03:36 +01:00
committed by YeonGyu-Kim
parent 6d10e77afd
commit 87e47d74e8
2 changed files with 40 additions and 0 deletions

View File

@@ -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"

View File

@@ -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<typeof CouncilMemberSchema>
export type CouncilConfigSchemaType = z.infer<typeof CouncilConfigSchema>
export type AthenaConfigSchemaType = z.infer<typeof AthenaConfigSchema>