mirror of https://github.com/openclaw/openclaw.git
29 lines
1012 B
TypeScript
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);
|
|
}
|