mirror of
https://github.com/openclaw/openclaw.git
synced 2026-05-07 13:30:43 +00:00
27 lines
845 B
TypeScript
27 lines
845 B
TypeScript
import type { PluginManifestContracts } from "./manifest.js";
|
|
|
|
export function normalizePluginToolContractNames(
|
|
contracts: Pick<PluginManifestContracts, "tools"> | undefined,
|
|
): string[] {
|
|
return normalizePluginToolNames(contracts?.tools);
|
|
}
|
|
|
|
export function normalizePluginToolNames(names: readonly string[] | undefined): string[] {
|
|
const normalized = new Set<string>();
|
|
for (const name of names ?? []) {
|
|
const trimmed = name.trim();
|
|
if (trimmed) {
|
|
normalized.add(trimmed);
|
|
}
|
|
}
|
|
return [...normalized];
|
|
}
|
|
|
|
export function findUndeclaredPluginToolNames(params: {
|
|
declaredNames: readonly string[];
|
|
toolNames: readonly string[];
|
|
}): string[] {
|
|
const declared = new Set(normalizePluginToolNames(params.declaredNames));
|
|
return normalizePluginToolNames(params.toolNames).filter((name) => !declared.has(name));
|
|
}
|