UNPKG

@gguf/claw

Version:

Multi-channel AI gateway with extensible messaging integrations

56 lines (55 loc) 2.18 kB
import fs from "node:fs"; import JSON5 from "json5"; import type { OpenClawConfig, ConfigFileSnapshot } from "./types.js"; export { CircularIncludeError, ConfigIncludeError } from "./includes.js"; export { MissingEnvVarError } from "./env-substitution.js"; export type ParseConfigJson5Result = { ok: true; parsed: unknown; } | { ok: false; error: string; }; export type ConfigWriteOptions = { /** * Read-time env snapshot used to validate `${VAR}` restoration decisions. * If omitted, write falls back to current process env. */ envSnapshotForRestore?: Record<string, string | undefined>; /** * Optional safety check: only use envSnapshotForRestore when writing the * same config file path that produced the snapshot. */ expectedConfigPath?: string; }; export type ReadConfigFileSnapshotForWriteResult = { snapshot: ConfigFileSnapshot; writeOptions: ConfigWriteOptions; }; export declare function resolveConfigSnapshotHash(snapshot: { hash?: string; raw?: string | null; }): string | null; export type ConfigIoDeps = { fs?: typeof fs; json5?: typeof JSON5; env?: NodeJS.ProcessEnv; homedir?: () => string; configPath?: string; logger?: Pick<typeof console, "error" | "warn">; }; export declare function parseConfigJson5(raw: string, json5?: { parse: (value: string) => unknown; }): ParseConfigJson5Result; export declare function createConfigIO(overrides?: ConfigIoDeps): { configPath: string; loadConfig: () => OpenClawConfig; readConfigFileSnapshot: () => Promise<ConfigFileSnapshot>; readConfigFileSnapshotForWrite: () => Promise<ReadConfigFileSnapshotForWriteResult>; writeConfigFile: (cfg: OpenClawConfig, options?: ConfigWriteOptions) => Promise<void>; }; export declare function clearConfigCache(): void; export declare function loadConfig(): OpenClawConfig; export declare function readConfigFileSnapshot(): Promise<ConfigFileSnapshot>; export declare function readConfigFileSnapshotForWrite(): Promise<ReadConfigFileSnapshotForWriteResult>; export declare function writeConfigFile(cfg: OpenClawConfig, options?: ConfigWriteOptions): Promise<void>;