@gguf/claw
Version:
Multi-channel AI gateway with extensible messaging integrations
56 lines (55 loc) • 2.18 kB
TypeScript
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>;