feat(councils-ui): add on-demand council conversations panel and model config controls
This commit is contained in:
@@ -424,6 +424,9 @@ describe('configSchema — councils', () => {
|
||||
expect(result.councils.defaults.max_rounds).toBe(2);
|
||||
expect(result.councils.defaults.top_ideas_for_bridge).toBe(3);
|
||||
expect(result.councils.defaults.bridge_packet_max_chars).toBe(2500);
|
||||
expect(result.councils.groups.D.model_tier).toBe('complex');
|
||||
expect(result.councils.groups.P.model_tier).toBe('complex');
|
||||
expect(result.councils.meta_model_tier).toBe('complex');
|
||||
expect(result.councils.groups.D.novelty_bias).toBe('low');
|
||||
expect(result.councils.groups.P.novelty_bias).toBe('high');
|
||||
expect(result.councils.meta_arbiter_agent).toBe('council_meta_arbiter');
|
||||
@@ -450,6 +453,7 @@ describe('configSchema — councils', () => {
|
||||
D: {
|
||||
arbiter_agent: 'd_arb',
|
||||
freethinker_agent: 'd_ft',
|
||||
model_tier: 'default',
|
||||
group_prompt_prefix: 'd',
|
||||
novelty_bias: 'low',
|
||||
risk_tolerance: 'medium',
|
||||
@@ -458,6 +462,7 @@ describe('configSchema — councils', () => {
|
||||
P: {
|
||||
arbiter_agent: 'p_arb',
|
||||
freethinker_agent: 'p_ft',
|
||||
model_tier: 'fast',
|
||||
group_prompt_prefix: 'p',
|
||||
novelty_bias: 'high',
|
||||
risk_tolerance: 'high',
|
||||
@@ -465,6 +470,7 @@ describe('configSchema — councils', () => {
|
||||
},
|
||||
},
|
||||
meta_arbiter_agent: 'meta',
|
||||
meta_model_tier: 'local',
|
||||
},
|
||||
});
|
||||
|
||||
@@ -472,6 +478,8 @@ describe('configSchema — councils', () => {
|
||||
expect(result.councils.defaults.max_rounds).toBe(3);
|
||||
expect(result.councils.groups.D.arbiter_agent).toBe('d_arb');
|
||||
expect(result.councils.groups.P.freethinker_agent).toBe('p_ft');
|
||||
expect(result.councils.groups.D.model_tier).toBe('default');
|
||||
expect(result.councils.meta_model_tier).toBe('local');
|
||||
expect(result.councils.strict_grounding).toBe(true);
|
||||
expect(result.councils.meta_arbiter_agent).toBe('meta');
|
||||
});
|
||||
|
||||
@@ -865,6 +865,7 @@ const councilsGroupConfigSchema = z.object({
|
||||
freethinker_agent: z.string().min(1),
|
||||
grounder_agent: z.string().min(1).optional(),
|
||||
writer_agent: z.string().min(1).optional(),
|
||||
model_tier: modelTierEnum.default('complex'),
|
||||
group_prompt_prefix: z.string().min(1),
|
||||
novelty_bias: z.enum(['low', 'medium', 'high']).default('medium'),
|
||||
risk_tolerance: z.enum(['low', 'medium', 'high']).default('medium'),
|
||||
@@ -890,6 +891,7 @@ const councilsSchema = z.object({
|
||||
D: councilsGroupConfigSchema.default({
|
||||
arbiter_agent: 'council_d_arbiter',
|
||||
freethinker_agent: 'council_d_freethinker',
|
||||
model_tier: 'complex',
|
||||
group_prompt_prefix: 'Optimize for feasibility and speed-to-test. Prefer boring-but-true.',
|
||||
novelty_bias: 'low',
|
||||
risk_tolerance: 'low',
|
||||
@@ -902,6 +904,7 @@ const councilsSchema = z.object({
|
||||
P: councilsGroupConfigSchema.default({
|
||||
arbiter_agent: 'council_p_arbiter',
|
||||
freethinker_agent: 'council_p_freethinker',
|
||||
model_tier: 'complex',
|
||||
group_prompt_prefix: 'Optimize for reframing and non-obvious leverage. Weird is fine; label speculation.',
|
||||
novelty_bias: 'high',
|
||||
risk_tolerance: 'high',
|
||||
@@ -913,6 +916,7 @@ const councilsSchema = z.object({
|
||||
}),
|
||||
}).default({}),
|
||||
meta_arbiter_agent: z.string().min(1).default('council_meta_arbiter'),
|
||||
meta_model_tier: modelTierEnum.default('complex'),
|
||||
meta_writer_agent: z.string().min(1).optional(),
|
||||
}).default({});
|
||||
|
||||
|
||||
Reference in New Issue
Block a user