fix: resolve strict typecheck fallout in setup, routing, and tests

This commit is contained in:
William Valentin
2026-02-15 23:22:05 -08:00
parent 948d4ac6d8
commit ae70818ec1
18 changed files with 182 additions and 134 deletions
+38 -6
View File
@@ -14,8 +14,40 @@ interface EmbeddingConfig {
endpoint?: string;
}
export interface SetupConfig {
log_level?: string;
models: Record<string, ProviderConfig & Record<string, unknown>>;
server: {
port?: number;
localhost?: boolean;
token?: string;
lock?: boolean;
tailscale?: { serve?: boolean };
} & Record<string, unknown>;
hooks?: Record<string, unknown>;
telegram?: { bot_token: string; allowed_chat_ids: number[] };
discord?: { bot_token: string; allowed_guild_ids: string[] };
slack?: { bot_token: string; app_token: string; signing_secret: string; allowed_channel_ids: string[] };
whatsapp?: { allowed_numbers: string[] };
memory?: { embedding?: { enabled?: boolean; provider?: string; api_key?: string; endpoint?: string } };
sandbox?: { enabled?: boolean };
pairing?: { enabled?: boolean };
tools?: { profile?: string };
automation?: {
cron?: Array<Record<string, unknown>>;
webhooks?: Array<Record<string, unknown>>;
gmail?: { enabled?: boolean };
gcal?: { enabled?: boolean };
gdocs?: { enabled?: boolean };
gdrive?: { enabled?: boolean };
gtasks?: { enabled?: boolean };
heartbeat?: { enabled?: boolean };
} & Record<string, unknown>;
[key: string]: unknown;
}
export class ConfigBuilder {
private config: Record<string, unknown>;
private config: SetupConfig;
constructor() {
this.config = {
@@ -32,13 +64,13 @@ export class ConfigBuilder {
static fromObject(obj: Record<string, unknown>): ConfigBuilder {
const builder = new ConfigBuilder();
builder.config = structuredClone(obj);
builder.config = structuredClone(obj) as SetupConfig;
return builder;
}
setProvider(tier: 'default' | 'fast' | 'complex' | 'local', cfg: ProviderConfig): void {
const models = (this.config.models ?? {}) as Record<string, unknown>;
const entry: Record<string, unknown> = { provider: cfg.provider, model: cfg.model };
const models = (this.config.models ?? {}) as SetupConfig['models'];
const entry: ProviderConfig & Record<string, unknown> = { provider: cfg.provider, model: cfg.model };
if (cfg.api_key) {entry.api_key = cfg.api_key;}
if (cfg.auth_token) {entry.auth_token = cfg.auth_token;}
if (cfg.endpoint) {entry.endpoint = cfg.endpoint;}
@@ -155,8 +187,8 @@ export class ConfigBuilder {
this.config.automation = automation;
}
build(): Record<string, unknown> {
return structuredClone(this.config) as Record<string, unknown>;
build(): SetupConfig {
return structuredClone(this.config) as SetupConfig;
}
toYaml(): string {