fix(init): 确保 Registry 在服务启动时正确初始化
- AgentRegistry: 在构造函数中同步初始化预设 Agent - AgentRegistry: 添加 isInitialized() 方法 - initCore(): 添加 ProviderRegistry.init() 调用 - initCore(): 添加 AgentRegistry.init() 调用 修复用户配置(Provider、Agent)重启后丢失的问题
This commit is contained in:
@@ -76,6 +76,22 @@ interface PermissionManager {
|
||||
setAskCallback(callback: (ctx: unknown) => Promise<{ allow: boolean; remember?: boolean }>): void;
|
||||
}
|
||||
|
||||
/**
|
||||
* Provider Registry 接口
|
||||
*/
|
||||
interface ProviderRegistryInterface {
|
||||
init(workdir?: string): Promise<void>;
|
||||
isInitialized(): boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* Agent Registry 接口
|
||||
*/
|
||||
interface AgentRegistryInterface {
|
||||
init(workdir: string): Promise<void>;
|
||||
isInitialized(): boolean;
|
||||
}
|
||||
|
||||
/**
|
||||
* Core 模块接口
|
||||
*/
|
||||
@@ -85,6 +101,8 @@ interface CoreModule {
|
||||
loadConfig: () => unknown;
|
||||
saveConfig: (config: Record<string, unknown>) => void;
|
||||
getPermissionManager: (projectRoot?: string) => PermissionManager;
|
||||
getProviderRegistry: () => ProviderRegistryInterface;
|
||||
agentRegistry: AgentRegistryInterface;
|
||||
}
|
||||
|
||||
// ============================================================================
|
||||
@@ -120,6 +138,20 @@ export async function initCore(): Promise<boolean> {
|
||||
return false;
|
||||
}
|
||||
|
||||
// 初始化 ProviderRegistry(加载用户配置)
|
||||
const providerRegistry = core.getProviderRegistry();
|
||||
if (!providerRegistry.isInitialized()) {
|
||||
await providerRegistry.init();
|
||||
console.log('[Agent] ProviderRegistry initialized');
|
||||
}
|
||||
|
||||
// 初始化 AgentRegistry(加载用户自定义 Agent 配置)
|
||||
const agentRegistry = core.agentRegistry;
|
||||
if (!agentRegistry.isInitialized()) {
|
||||
await agentRegistry.init(process.cwd());
|
||||
console.log('[Agent] AgentRegistry initialized');
|
||||
}
|
||||
|
||||
coreModule = core;
|
||||
console.log('[Agent] Core module loaded');
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user