openclaw
Version:
Multi-channel AI gateway with extensible messaging integrations
154 lines • 6.06 kB
TypeScript
import { r as OpenClawConfig } from "../types.openclaw-BdCLfP4c.js";
import { a as SecretProviderConfig, l as coerceSecretRef, n as SecretInput, o as SecretRef, t as PluginIntegrationSecretProviderConfig } from "../types.secrets-BrR1WS-r.js";
import { n as PluginManifestRegistry } from "../manifest-registry.types-DU8vtPoi.js";
import "../manifest-registry-CGQXX9hG.js";
import { a as createResolverContext, d as SecretRefResolveCache, r as applyResolvedAssignments } from "../runtime-shared-DN7nL3Sa.js";
//#region src/secrets/plan.d.ts
/** Registry target id accepted by a secrets apply plan. */
type SecretsPlanTargetType = string;
/** One planned SecretRef mutation against config or auth-profile storage. */
type SecretsPlanTarget = {
type: SecretsPlanTargetType;
/**
* Dot path in the target config surface for operator readability.
* Examples:
* - "models.providers.openai.apiKey"
* - "profiles.openai.key"
*/
path: string;
/**
* Canonical path segments used for safe mutation.
* Examples:
* - ["models", "providers", "openai", "apiKey"]
* - ["profiles", "openai", "key"]
*/
pathSegments?: string[];
ref: SecretRef;
/**
* Required for auth-profiles targets so apply can resolve the correct agent store.
*/
agentId?: string;
/**
* For provider targets, used to scrub auth-profile/static residues.
*/
providerId?: string;
/** For account-scoped channel targets. */
accountId?: string;
/**
* Optional auth-profile provider value used when creating new auth profile mappings.
*/
authProfileProvider?: string;
};
/** Serialized plan produced by `openclaw secrets configure` or supplied manually. */
type SecretsApplyPlan = {
version: 1;
protocolVersion: 1;
generatedAt: string;
generatedBy: "openclaw secrets configure" | "manual";
providerUpserts?: Record<string, SecretProviderConfig>;
providerDeletes?: string[];
targets: SecretsPlanTarget[];
options?: {
scrubEnv?: boolean;
scrubAuthProfilesForProviderTargets?: boolean;
scrubLegacyAuthJson?: boolean;
};
};
//#endregion
//#region src/secrets/plugin-setup-plan.d.ts
type PluginSecretRefProviderMapping = {
providerId: string;
secretId: string;
};
type PluginSecretRefConfigTargetMapping = {
path: string;
agentId?: string;
secretId: string;
};
declare function assertValidPluginSecretProviderAlias(value: string): void;
declare function assertValidPluginModelProviderId(label: string, value: string): void;
declare function parsePluginSecretTargetSpecifier(productName: string, value: string): {
path: string;
agentId?: string;
};
declare function buildPluginSecretRefSetupPlan(params: {
productName: string;
providerAlias: string;
providerConfig: PluginIntegrationSecretProviderConfig;
providerSecrets: PluginSecretRefProviderMapping[];
configTargetSecrets?: PluginSecretRefConfigTargetMapping[];
generatedAt?: string;
}): SecretsApplyPlan & {
providerUpserts: Record<string, PluginIntegrationSecretProviderConfig>;
};
//#endregion
//#region src/secrets/trusted-plan-path.d.ts
declare function resolveTrustedExecutablePath(targetPath: string): Promise<string>;
declare function resolveTrustedPlanDirectoryPath(targetPath: string): Promise<string>;
//#endregion
//#region src/secrets/resolve.d.ts
type ResolveSecretRefOptions = {
config: OpenClawConfig;
env?: NodeJS.ProcessEnv;
cache?: SecretRefResolveCache;
manifestRegistry?: Pick<PluginManifestRegistry, "plugins">;
};
/** Resolves a batch of SecretRefs, grouped by provider for bounded provider concurrency. */
export declare function resolveSecretRefValues(refs: SecretRef[], options: ResolveSecretRefOptions): Promise<Map<string, unknown>>;
//#endregion
//#region src/plugin-sdk/secret-ref-runtime.d.ts
type SecretRefSetupCommand = {
command(name: string): SecretRefSetupCommand;
description(value: string): SecretRefSetupCommand;
option(flags: string, description: string, defaultValueOrParser?: string | ((value: string, previous?: string[]) => string[]), defaultValue?: string[]): SecretRefSetupCommand;
action<TOptions>(fn: (options: TOptions) => void | Promise<void>): SecretRefSetupCommand;
};
type SecretRefProviderStatus = {
configured: boolean;
source?: string;
command?: string;
pluginIntegration?: {
pluginId: string;
integrationId: string;
};
};
type PluginSecretRefSetupCliParams = {
productName: string;
secretIdLabel: string;
secretIdPlaceholder: string;
defaultProviderAlias: string;
pluginIntegration: {
pluginId: string;
integrationId: string;
};
normalizeSecretId: (label: string, value: string) => string;
defaultPlanPath: () => string;
beforeApplyCommands?: readonly string[];
};
declare function writeSecretPlanFile(params: {
planPath: string;
content: string;
platform?: NodeJS.Platform;
createPrivateWindowsFile?: (filePath: string, content: string) => Promise<void>;
}): Promise<void>;
/** Build the canonical setup/status adapter shared by plugin-owned SecretRef CLIs. */
export declare function createPluginSecretRefSetupCli(params: PluginSecretRefSetupCliParams): {
inspectProvider: (config: OpenClawConfig, requestedAlias?: string) => {
providerAlias: string;
provider: SecretRefProviderStatus;
providerReady: boolean;
};
registerSetupCommand: (command: SecretRefSetupCommand) => void;
};
/** Shared validation and apply-plan construction for plugin-owned SecretRef setup CLIs. */
export declare const pluginSecretRefSetup: {
assertValidModelProviderId: typeof assertValidPluginModelProviderId;
assertValidProviderAlias: typeof assertValidPluginSecretProviderAlias;
buildPlan: typeof buildPluginSecretRefSetupPlan;
parseTargetSpecifier: typeof parsePluginSecretTargetSpecifier;
resolveTrustedDirectoryPath: typeof resolveTrustedPlanDirectoryPath;
resolveTrustedExecutablePath: typeof resolveTrustedExecutablePath;
writePlanFile: typeof writeSecretPlanFile;
};
//#endregion
export { type SecretInput, type SecretRef, applyResolvedAssignments, coerceSecretRef, createResolverContext };