feat: wire Docker sandboxing and agent routing into daemon
This commit is contained in:
@@ -0,0 +1,38 @@
|
||||
import { describe, it, expect } from 'vitest';
|
||||
import { AgentRouter } from '../agents/router.js';
|
||||
import { AgentConfigRegistry } from '../agents/registry.js';
|
||||
|
||||
describe('daemon agent routing integration', () => {
|
||||
it('resolves agent config for channel messages', () => {
|
||||
const registry = new AgentConfigRegistry();
|
||||
registry.loadFromConfig({
|
||||
assistant: { system_prompt: 'Be helpful.', model_tier: 'default', tool_profile: 'messaging', sandbox: false },
|
||||
coder: { system_prompt: 'Write code.', model_tier: 'complex', tool_profile: 'coding', sandbox: true },
|
||||
});
|
||||
|
||||
const router = new AgentRouter({
|
||||
default_agent: 'assistant',
|
||||
channels: { discord: 'coder' },
|
||||
senders: { 'telegram:admin': 'coder' },
|
||||
});
|
||||
|
||||
// Discord user gets coder
|
||||
const discordAgent = router.resolve('discord', 'user123');
|
||||
expect(discordAgent).toBe('coder');
|
||||
expect(registry.get(discordAgent!)!.systemPrompt).toBe('Write code.');
|
||||
|
||||
// Telegram admin gets coder
|
||||
const telegramAdmin = router.resolve('telegram', 'admin');
|
||||
expect(telegramAdmin).toBe('coder');
|
||||
|
||||
// Random telegram user gets assistant
|
||||
const telegramUser = router.resolve('telegram', 'random');
|
||||
expect(telegramUser).toBe('assistant');
|
||||
expect(registry.get(telegramUser!)!.systemPrompt).toBe('Be helpful.');
|
||||
});
|
||||
|
||||
it('uses default agent when no routing configured', () => {
|
||||
const router = new AgentRouter({ channels: {}, senders: {} });
|
||||
expect(router.resolve('telegram', '123')).toBeUndefined();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user