| // βββ Runtime Factory βββββββββββββββββββββββββββββββββββββββββββββββββββββββββ | |
| import { EventBus } from '../../core/events/index.js'; | |
| import type { ProviderAdapter } from '../../core/provider/index.js'; | |
| import { resolveProvider } from './provider-resolver.js'; | |
| export interface CreateRuntimeOpts { | |
| provider: string; | |
| model?: string; | |
| skills: string[]; | |
| verbose?: boolean; | |
| compact?: boolean; | |
| } | |
| export async function createRuntime(opts: CreateRuntimeOpts) { | |
| const eventBus = new EventBus(); | |
| const provider = resolveProvider(opts.provider); | |
| const model = opts.model ?? (await provider.listModels())[0]?.id ?? 'unknown'; | |
| return { | |
| runtime: null, // Chat mode doesn't use full runtime | |
| eventBus, | |
| provider, | |
| model, | |
| }; | |
| } | |