51 lines
1.2 KiB
TypeScript
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",
|
|
];
|
|
}
|
|
}
|
|
|