refactor(core): 统一配置系统,移除 config.json
- 移除 config.json,所有配置统一从 agents.json 和 providers.json 读取 - config-loader.ts 从全局目录 ~/.ai-terminal-assistant/ 加载配置 - loadConfig() 从 agentRegistry.getGlobalConfig() 获取 defaults.model - 添加 loadVisionConfig() 支持 Vision 模型配置 - Tavily API Key 仅从环境变量读取 - UI AgentDefaultsEditor 添加 Vision 模型配置界面 - 更新相关测试
This commit is contained in:
@@ -8,12 +8,8 @@ vi.mock('@tavily/core', () => ({
|
||||
})),
|
||||
}));
|
||||
|
||||
// Mock config
|
||||
vi.mock('../../../../src/utils/config.js', () => ({
|
||||
getConfig: vi.fn(() => ({
|
||||
tavilyApiKey: 'test-api-key',
|
||||
})),
|
||||
}));
|
||||
// Mock environment variable for Tavily API Key
|
||||
vi.stubEnv('TAVILY_API_KEY', 'test-api-key');
|
||||
|
||||
// Mock permission manager
|
||||
vi.mock('../../../../src/permission/index.js', () => ({
|
||||
@@ -32,7 +28,6 @@ vi.mock('../../../../src/tools/load_description.js', () => ({
|
||||
|
||||
import { webExtractTool } from '../../../../src/tools/web/web_extract.js';
|
||||
import { getPermissionManager } from '../../../../src/permission/index.js';
|
||||
import { getConfig } from '../../../../src/utils/config.js';
|
||||
|
||||
describe('webExtractTool - 网页内容提取工具', () => {
|
||||
beforeEach(() => {
|
||||
@@ -198,9 +193,7 @@ describe('webExtractTool - 网页内容提取工具', () => {
|
||||
});
|
||||
|
||||
it('无 API Key 返回错误', async () => {
|
||||
vi.mocked(getConfig).mockReturnValue({} as any);
|
||||
const originalEnv = process.env.TAVILY_API_KEY;
|
||||
delete process.env.TAVILY_API_KEY;
|
||||
vi.unstubAllEnvs();
|
||||
|
||||
const result = await webExtractTool.execute({
|
||||
urls: ['https://example.com'],
|
||||
@@ -209,7 +202,7 @@ describe('webExtractTool - 网页内容提取工具', () => {
|
||||
expect(result.success).toBe(false);
|
||||
expect(result.error).toContain('未配置 Tavily API Key');
|
||||
|
||||
process.env.TAVILY_API_KEY = originalEnv;
|
||||
vi.stubEnv('TAVILY_API_KEY', 'test-api-key');
|
||||
});
|
||||
|
||||
it('权限被拒绝时返回错误', async () => {
|
||||
|
||||
@@ -8,12 +8,8 @@ vi.mock('@tavily/core', () => ({
|
||||
})),
|
||||
}));
|
||||
|
||||
// Mock config
|
||||
vi.mock('../../../../src/utils/config.js', () => ({
|
||||
getConfig: vi.fn(() => ({
|
||||
tavilyApiKey: 'test-api-key',
|
||||
})),
|
||||
}));
|
||||
// Mock environment variable for Tavily API Key
|
||||
vi.stubEnv('TAVILY_API_KEY', 'test-api-key');
|
||||
|
||||
// Mock permission manager
|
||||
vi.mock('../../../../src/permission/index.js', () => ({
|
||||
@@ -32,7 +28,6 @@ vi.mock('../../../../src/tools/load_description.js', () => ({
|
||||
|
||||
import { webSearchTool } from '../../../../src/tools/web/web_search.js';
|
||||
import { getPermissionManager } from '../../../../src/permission/index.js';
|
||||
import { getConfig } from '../../../../src/utils/config.js';
|
||||
|
||||
describe('webSearchTool - 网络搜索工具', () => {
|
||||
beforeEach(() => {
|
||||
@@ -131,16 +126,14 @@ describe('webSearchTool - 网络搜索工具', () => {
|
||||
});
|
||||
|
||||
it('无 API Key 返回错误', async () => {
|
||||
vi.mocked(getConfig).mockReturnValue({} as any);
|
||||
const originalEnv = process.env.TAVILY_API_KEY;
|
||||
delete process.env.TAVILY_API_KEY;
|
||||
vi.unstubAllEnvs();
|
||||
|
||||
const result = await webSearchTool.execute({ query: 'test' });
|
||||
|
||||
expect(result.success).toBe(false);
|
||||
expect(result.error).toContain('未配置 Tavily API Key');
|
||||
|
||||
process.env.TAVILY_API_KEY = originalEnv;
|
||||
vi.stubEnv('TAVILY_API_KEY', 'test-api-key');
|
||||
});
|
||||
|
||||
it('权限被拒绝时返回错误', async () => {
|
||||
|
||||
Reference in New Issue
Block a user