feat: add per-cron-job model tier selection
Allow cron jobs to specify a `model_tier` field that controls which LLM tier handles the job, without needing separate agent configs. Precedence: cron job model_tier > agent config > global primary_tier > 'default'. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -121,6 +121,32 @@ describe('CronScheduler', () => {
|
||||
warnSpy.mockRestore();
|
||||
});
|
||||
|
||||
it('triggerJob includes model_tier in metadata when configured', () => {
|
||||
const jobs = [makeCronJob({ model_tier: 'fast' })];
|
||||
scheduler = new CronScheduler(jobs, mockChannelRegistry as any);
|
||||
|
||||
const messages: InboundMessage[] = [];
|
||||
scheduler.onMessage((msg: InboundMessage) => messages.push(msg));
|
||||
|
||||
scheduler.triggerJob('test-job');
|
||||
|
||||
expect(messages).toHaveLength(1);
|
||||
expect(messages[0].metadata?.modelTier).toBe('fast');
|
||||
});
|
||||
|
||||
it('triggerJob metadata.modelTier is undefined when not configured', () => {
|
||||
const jobs = [makeCronJob()];
|
||||
scheduler = new CronScheduler(jobs, mockChannelRegistry as any);
|
||||
|
||||
const messages: InboundMessage[] = [];
|
||||
scheduler.onMessage((msg: InboundMessage) => messages.push(msg));
|
||||
|
||||
scheduler.triggerJob('test-job');
|
||||
|
||||
expect(messages).toHaveLength(1);
|
||||
expect(messages[0].metadata?.modelTier).toBeUndefined();
|
||||
});
|
||||
|
||||
it('lists registered job names', () => {
|
||||
const jobs = [
|
||||
makeCronJob({ name: 'job-a' }),
|
||||
|
||||
Reference in New Issue
Block a user