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:
parent
6d10e77afd
commit
87e47d74e8
19
src/agents/athena/types.ts
Normal file
19
src/agents/athena/types.ts
Normal 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"
|
||||||
21
src/config/schema/athena.ts
Normal file
21
src/config/schema/athena.ts
Normal 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>
|
||||||
Loading…
x
Reference in New Issue
Block a user