openclaw/src/config/bindings.ts

29 lines
1012 B
TypeScript

import type { OpenClawConfig } from "./config.js";
import type { AgentAcpBinding, AgentBinding, AgentRouteBinding } from "./types.agents.js";
export type ConfiguredBindingRule = AgentBinding;
function normalizeBindingType(binding: AgentBinding): "route" | "acp" {
return binding.type === "acp" ? "acp" : "route";
}
export function isRouteBinding(binding: AgentBinding): binding is AgentRouteBinding {
return normalizeBindingType(binding) === "route";
}
export function isAcpBinding(binding: AgentBinding): binding is AgentAcpBinding {
return normalizeBindingType(binding) === "acp";
}
export function listConfiguredBindings(cfg: OpenClawConfig): AgentBinding[] {
return Array.isArray(cfg.bindings) ? cfg.bindings : [];
}
export function listRouteBindings(cfg: OpenClawConfig): AgentRouteBinding[] {
return listConfiguredBindings(cfg).filter(isRouteBinding);
}
export function listAcpBindings(cfg: OpenClawConfig): AgentAcpBinding[] {
return listConfiguredBindings(cfg).filter(isAcpBinding);
}