/** * Plugin config overlay. Plugin config (from `openclaw config set`) wins over * env vars; env vars provide the fallback so the standalone CLI keeps working * unchanged. */ import type { DBConfig } from "../config.js"; /** * Plugin config shape. Mirrors `openclaw.plugin.json` configSchema. * * NOTE: secret fields (`mariadb.password`, `linear.apiKey`) are intentionally * NOT part of this type — the configSchema rejects them so they cannot leak * into `openclaw.json` as plaintext. They MUST come via the gateway env * (`MARIADB_PASSWORD`, `LINEAR_API_KEY`) and are resolved by the fallback in * `resolveDBConfig` / `resolveLinearApiKey`. */ export interface HawkinsPluginConfig { mariadb?: { url?: string; user?: string; ssl?: "disabled" | "preferred" | "required"; }; autoRecovery?: boolean; vecna?: { enabled?: boolean; dedupWindowMinutes?: number; }; } /** * Build a synthetic env object that overlays plugin config on top of * `process.env`, then feed it to {@link loadDBConfig}. Plugin config wins. */ export declare function resolveDBConfig(pluginConfig: HawkinsPluginConfig, env?: NodeJS.ProcessEnv): DBConfig; export declare function resolveLinearApiKey(_pluginConfig: HawkinsPluginConfig, env?: NodeJS.ProcessEnv): string | null; export declare function resolveDedupWindow(pluginConfig: HawkinsPluginConfig): number; export declare function isAutoRecoveryEnabled(pluginConfig: HawkinsPluginConfig): boolean; /** * VECNA (shared-memory Hive) is **off by default and enforced**: unless the * operator explicitly sets `vecna.enabled = true`, the plugin does not register * the `vecna_*` tools at all — so an agent cannot read from or write to the * shared store even if prompted to. This is hard enforcement, not just prompt * guidance. */ export declare function isVecnaEnabled(pluginConfig: HawkinsPluginConfig): boolean; //# sourceMappingURL=config.d.ts.map