mirror of
https://github.com/openclaw/openclaw.git
synced 2026-04-12 17:51:22 +00:00
47 lines
1.4 KiB
TypeScript
47 lines
1.4 KiB
TypeScript
import { applyPluginAutoEnable } from "../config/plugin-auto-enable.js";
|
|
import type { OpenClawConfig } from "../config/types.js";
|
|
import type { RuntimeEnv } from "../runtime.js";
|
|
import {
|
|
type CommandSecretResolutionMode,
|
|
resolveCommandSecretRefsViaGateway,
|
|
} from "./command-secret-gateway.js";
|
|
|
|
export async function resolveCommandConfigWithSecrets<TConfig extends OpenClawConfig>(params: {
|
|
config: TConfig;
|
|
commandName: string;
|
|
targetIds: Set<string>;
|
|
mode?: CommandSecretResolutionMode;
|
|
allowedPaths?: Set<string>;
|
|
runtime?: RuntimeEnv;
|
|
autoEnable?: boolean;
|
|
env?: NodeJS.ProcessEnv;
|
|
}): Promise<{
|
|
resolvedConfig: TConfig;
|
|
effectiveConfig: TConfig;
|
|
diagnostics: string[];
|
|
}> {
|
|
const { resolvedConfig, diagnostics } = await resolveCommandSecretRefsViaGateway({
|
|
config: params.config,
|
|
commandName: params.commandName,
|
|
targetIds: params.targetIds,
|
|
...(params.mode ? { mode: params.mode } : {}),
|
|
...(params.allowedPaths ? { allowedPaths: params.allowedPaths } : {}),
|
|
});
|
|
if (params.runtime) {
|
|
for (const entry of diagnostics) {
|
|
params.runtime.log(`[secrets] ${entry}`);
|
|
}
|
|
}
|
|
const effectiveConfig = params.autoEnable
|
|
? applyPluginAutoEnable({
|
|
config: resolvedConfig,
|
|
env: params.env ?? process.env,
|
|
}).config
|
|
: resolvedConfig;
|
|
return {
|
|
resolvedConfig: resolvedConfig as TConfig,
|
|
effectiveConfig: effectiveConfig as TConfig,
|
|
diagnostics,
|
|
};
|
|
}
|