feat: add AI endpoint manager plugin with configuration and routing capabilities
Some checks failed
Some checks failed
- Introduced `ai_endpoint_mgr` plugin to manage multiple AI provider endpoints. - Added configuration reference documentation for `config.toml`. - Implemented endpoint loading, active endpoint switching, and model mutation. - Included error handling for missing endpoints and configuration failures. - Developed unit tests covering various scenarios including error paths and concurrency.
This commit is contained in:
@@ -4,7 +4,7 @@
|
||||
// 提供所有前端(CLI / GUI / Web)共享的启动逻辑:
|
||||
// - 配置文件发现(argv / 默认路径 / 平台 fopen)
|
||||
// - dstalk_init() 调用
|
||||
// - 常用服务查询(ai, session, file_io, tools, context)
|
||||
// - 常用服务查询(ai / endpoint_mgr / session / file_io / tools / context)
|
||||
// - AI 服务默认配置(从 config 读取,带 fallback)
|
||||
// ============================================================================
|
||||
|
||||
@@ -20,6 +20,7 @@ struct FrontendServices {
|
||||
const dstalk_session_service_t* session = nullptr;
|
||||
const dstalk_file_io_service_t* file_io = nullptr;
|
||||
const dstalk_tools_service_t* tools = nullptr;
|
||||
const dstalk_ai_endpoint_mgr_t* endpoint_mgr = nullptr; // I08: AI endpoint manager(可选)/ optional
|
||||
|
||||
std::string provider; // "ai.deepseek" / "ai.openai" / "ai.anthropic"
|
||||
std::string model; // e.g. "deepseek-v4-pro"
|
||||
@@ -35,8 +36,8 @@ struct FrontendServices {
|
||||
// 功能:
|
||||
// 1. 发现配置文件:优先 argv[1](跳过已知标志),其次 default_config(如 "config.toml")
|
||||
// 2. 调用 dstalk_init(config_path)
|
||||
// 3. 查询常用插件服务(ai / session / file_io / tools)
|
||||
// 4. 用 dstalk_config_get 读取 api.* 键并调用 ai->configure() 设置默认值
|
||||
// 3. 查询常用插件服务(ai / endpoint_mgr / session / file_io / tools)
|
||||
// 4. 用 dstalk_config_get 读取 api.* 键并调用 ai->configure() 设置旧单 provider 默认值
|
||||
//
|
||||
// 参数:
|
||||
// svc - [out] 填入查询到的服务指针和配置信息
|
||||
|
||||
Reference in New Issue
Block a user