import type { Step } from "./steps.js"; export interface DaemonConfig { readonly listen: { readonly host: string; readonly port: number; }; /** * Publicly reachable HTTPS URL of this bridge host. Used by `add` to * tell Harmonic where to send webhook deliveries * (${public_url}/webhook/). Optional in the schema so the * daemon can run without it; `add` enforces presence at call time. */ readonly publicUrl?: string; readonly logDir: string; readonly secretResolvers: Readonly>; /** Where `add` writes minted credentials. */ readonly secrets: SecretsConfig; /** Default after-add steps applied to every agent unless the agent overrides. */ readonly afterAdd: readonly Step[]; /** * Hold an open connection to ${public_url}/hold while wake commands run. * For hibernating hosts (e.g. Fly Sprites) that freeze the machine the * moment no connection is open, pausing in-flight wakes. Requires * public_url. Defaults to false. */ readonly holdAwakeDuringWake: boolean; } export interface SecretsConfig { /** v0.1: only "file". Future versions add backends like "1password", "vault", etc. */ readonly backend: "file"; /** Where the file backend writes secrets. Defaults to ~/.harmonic-bridge/secrets. */ readonly baseDir: string; } export interface AgentConfig { readonly harmonicMcpEndpoint: string; readonly harmonicToken: string; readonly webhookSecret: string; readonly workingDir: string; readonly wakeCommand: string; /** * Optional LLM gateway credential trio, written by `add` when the setup * opted in and Harmonic minted the token. The daemon exports them into * the wake env as HARMONIC_BRIDGE_LLM_{ENDPOINT,MODEL,TOKEN}; llmToken * is a secret reference resolved like harmonicToken. */ readonly llmEndpoint?: string; readonly llmToken?: string; readonly llmModel?: string; readonly events?: readonly string[]; readonly timeoutSeconds?: number; readonly env?: Readonly>; /** * Override for the daemon's default after-add steps. `undefined` means * inherit; an explicit empty list overrides to no steps. */ readonly afterAdd?: readonly Step[]; } export declare class ConfigError extends Error { readonly name = "ConfigError"; } export declare const BUILTIN_RESOLVERS: Readonly>; export declare function parseDaemonConfig(raw: unknown): DaemonConfig; export declare function parseAgentConfig(raw: unknown): AgentConfig; //# sourceMappingURL=config.d.ts.map