From 559fe61168b6700843e7aa6ddd4f641ff0f3a2e2 Mon Sep 17 00:00:00 2001 From: William Valentin Date: Mon, 23 Feb 2026 21:54:57 -0800 Subject: [PATCH] fix(daemon): wire external backends into router deps --- src/daemon/index.test.ts | 25 +++++++++++++++++++++++++ src/daemon/index.ts | 6 +++--- 2 files changed, 28 insertions(+), 3 deletions(-) create mode 100644 src/daemon/index.test.ts diff --git a/src/daemon/index.test.ts b/src/daemon/index.test.ts new file mode 100644 index 0000000..c0c8f0a --- /dev/null +++ b/src/daemon/index.test.ts @@ -0,0 +1,25 @@ +import { describe, expect, it } from 'vitest'; +import { configSchema } from '../config/schema.js'; +import { createConfiguredExternalBackends } from './index.js'; + +describe('createConfiguredExternalBackends', () => { + it('returns externalBackends under the routing key expected by createMessageRouter', () => { + const config = configSchema.parse({ + telegram: { bot_token: 'test-token', allowed_chat_ids: [1] }, + models: { default: { provider: 'anthropic', model: 'claude-3-5-sonnet-latest' } }, + backends: { + default: 'pi_embedded', + pi_embedded: { + enabled: true, + module: '@mariozechner/pi-agent-core', + }, + }, + }); + + const resolved = createConfiguredExternalBackends(config); + + expect(resolved.defaultName).toBe('pi_embedded'); + expect(resolved.externalBackends.pi_embedded?.name).toBe('pi_embedded'); + expect((resolved as unknown as { backends?: unknown }).backends).toBeUndefined(); + }); +}); diff --git a/src/daemon/index.ts b/src/daemon/index.ts index 47ed9c1..648a8ca 100644 --- a/src/daemon/index.ts +++ b/src/daemon/index.ts @@ -44,8 +44,8 @@ import { type ExternalBackendName, } from '../backends/index.js'; -function createConfiguredExternalBackends(config: Config): { - backends: Partial>; +export function createConfiguredExternalBackends(config: Config): { + externalBackends: Partial>; defaultName?: ExternalBackendName; } { const backends: Partial> = {}; @@ -92,7 +92,7 @@ function createConfiguredExternalBackends(config: Config): { ? selectedDefault : (Object.keys(backends)[0] as ExternalBackendName | undefined); - return { backends, defaultName }; + return { externalBackends: backends, defaultName }; } export interface DaemonContext {