lovart3/lib/ai/tools-registry.ts
2025-12-17 20:15:18 +08:00

51 lines
1.2 KiB
TypeScript

import { getAllToolConfigs } from "@/lib/db/queries";
export type ToolRegistry = {
getWeather: boolean;
createDocument: boolean;
updateDocument: boolean;
requestSuggestions: boolean;
generateVideo: boolean;
};
/**
* 获取启用的工具列表
* 从数据库读取工具配置,如果工具未配置则默认启用
*/
export async function getEnabledTools(): Promise<string[]> {
try {
const configs = await getAllToolConfigs();
const enabledTools: string[] = [];
// 默认所有工具都启用
const defaultTools = [
"getWeather",
"createDocument",
"updateDocument",
"requestSuggestions",
"generateVideo",
];
for (const toolName of defaultTools) {
const config = configs.find((c) => c.toolName === toolName);
// 如果未配置或配置为启用,则添加到启用列表
if (!config || config.isEnabled) {
enabledTools.push(toolName);
}
}
return enabledTools;
} catch (error) {
console.error("Failed to get enabled tools, using defaults:", error);
// 出错时返回所有默认工具
return [
"getWeather",
"createDocument",
"updateDocument",
"requestSuggestions",
"generateVideo",
];
}
}