import { listSecretTargetRegistryEntries } from "../secrets/target-registry.js"; function idsByPrefix(prefixes: readonly string[]): string[] { return listSecretTargetRegistryEntries() .map((entry) => entry.id) .filter((id) => prefixes.some((prefix) => id.startsWith(prefix))) .toSorted(); } const COMMAND_SECRET_TARGETS = { memory: [ "agents.defaults.memorySearch.remote.apiKey", "agents.list[].memorySearch.remote.apiKey", ], qrRemote: ["gateway.remote.token", "gateway.remote.password"], channels: idsByPrefix(["channels."]), models: idsByPrefix(["models.providers."]), agentRuntime: idsByPrefix([ "channels.", "models.providers.", "agents.defaults.memorySearch.remote.", "agents.list[].memorySearch.remote.", "skills.entries.", "messages.tts.", "tools.web.search", "tools.web.fetch.firecrawl.", ]), status: idsByPrefix([ "channels.", "agents.defaults.memorySearch.remote.", "agents.list[].memorySearch.remote.", ]), } as const; function toTargetIdSet(values: readonly string[]): Set { return new Set(values); } export function getMemoryCommandSecretTargetIds(): Set { return toTargetIdSet(COMMAND_SECRET_TARGETS.memory); } export function getQrRemoteCommandSecretTargetIds(): Set { return toTargetIdSet(COMMAND_SECRET_TARGETS.qrRemote); } export function getChannelsCommandSecretTargetIds(): Set { return toTargetIdSet(COMMAND_SECRET_TARGETS.channels); } export function getModelsCommandSecretTargetIds(): Set { return toTargetIdSet(COMMAND_SECRET_TARGETS.models); } export function getAgentRuntimeCommandSecretTargetIds(): Set { return toTargetIdSet(COMMAND_SECRET_TARGETS.agentRuntime); } export function getStatusCommandSecretTargetIds(): Set { return toTargetIdSet(COMMAND_SECRET_TARGETS.status); }