import type { AgentPersona } from "./workflow/workflow-apis.js"; import type { SdkConfig } from "./config/types.js"; /** * SDK agent 定义(配置驱动)。由 SdkConfig.agents 或 AgentPluginDeclaration 喂入 AgentRegistry。 * 对齐五上游(wave-agent/codex/claudecode/opencode/MiMoCode)的配置驱动 agent。 */ export interface AgentDefinition { name: string; /** 角色 system prompt(persona 核心) */ systemPrompt: string; /** 工具名白名单(收窄 ToolManager 可见工具;运行期由 buildPersona 转 ChatCompletionFunctionTool[]) */ toolNames?: string[]; /** 模型覆盖("provider/model" 或 group 名) */ model?: string; /** 描述(list/log 用) */ description?: string; } /** * AgentRegistry:SDK agent 配置注册表。被 SdkConfig.agents + AgentPluginDeclaration 共同喂入。 * runWorkflow 默认 resolvePersona 兜底用(host 不传 resolvePersona 时)。 * 热插拔:replaceAll 替换式重建(ConfigLoader.watch 触发)。 * * 避免三轨:host agent 表(host 专属,不动)+ SDK AgentRegistry(SdkConfig.agents + plugin 共喂) * + AgentPersona(已有形状,复用)。三者各司其职,无重叠。 */ export declare class AgentRegistry { private agents; private version; register(def: AgentDefinition): void; unregister(name: string): boolean; get(name: string): AgentDefinition | undefined; list(): AgentDefinition[]; /** * 替换式重建(热插拔用)。从 SdkConfig.agents 批量重建。 * 替换非追加——避免与旧定义冲突。disable 的跳过。 */ replaceAll(config: Pick): void; getVersion(): number; } /** * 把 AgentDefinition 转 AgentPersona(resolvePersona 用)。 * M1:只 systemPrompt。tools 收窄(toolNames → ChatCompletionFunctionTool[])留 M3/M5 * (需 ToolManager schema 装配,复用主 runLoop toBridgeTools)。 */ export declare function buildPersona(def: AgentDefinition | undefined): AgentPersona | undefined; /** * 从 SdkConfig 构造 AgentRegistry(M4 便捷工厂,热插拔用)。 * 消费者侧 wiring:`new ConfigLoader({ onChange: (cfg) => registry.replaceAll(cfg) })` * ——ConfigLoader.watch 触发 onChange → replaceAll → 下一个 runWorkflow 拿到新 persona。 */ export declare function createAgentRegistryFromConfig(config: SdkConfig): AgentRegistry;