feat(councils-ui): add on-demand council conversations panel and model config controls

This commit is contained in:
William Valentin
2026-02-21 11:26:04 -08:00
parent cfd7fa6fd0
commit 7c121b82c6
11 changed files with 481 additions and 4 deletions
+18
View File
@@ -170,6 +170,22 @@ export const councilTraceEventSchema = z.object({
validation_failure: validationFailureReasonSchema.optional(),
}).strict();
export const councilConversationTurnSchema = z.object({
schema_version: schemaVersionField,
phase_index: z.number().int().min(1),
call_id: z.string().min(1),
agent: z.string().min(1),
tier: z.enum(['fast', 'default', 'complex', 'local']),
group: councilGroupSchema.optional(),
round: z.number().int().min(1).optional(),
prompt_payload: z.record(z.string(), z.unknown()),
response: z.string(),
usage: z.object({
inputTokens: z.number().int().min(0),
outputTokens: z.number().int().min(0),
}).strict(),
}).strict();
export const stopSnapshotSchema = z.object({
stop_reason: stopReasonSchema,
round_reached: z.number().int().min(1),
@@ -193,6 +209,7 @@ export const councilRunResultSchema = z.object({
meta: metaSelectionSchema,
stop_snapshot: stopSnapshotSchema,
trace: z.array(councilTraceEventSchema),
conversations: z.array(councilConversationTurnSchema),
}).strict();
export const councilRunInputSchema = z.object({
@@ -246,4 +263,5 @@ export type CouncilDiff = z.infer<typeof councilDiffSchema>;
export type CouncilRunInput = z.infer<typeof councilRunInputSchema>;
export type CouncilRunResult = z.infer<typeof councilRunResultSchema>;
export type CouncilTraceEvent = z.infer<typeof councilTraceEventSchema>;
export type CouncilConversationTurn = z.infer<typeof councilConversationTurnSchema>;
export type MetaSelection = z.infer<typeof metaSelectionSchema>;