# Nova SDK Tools 这个目录包含了从 Remix 迁移的工具相关组件,用于管理自定义工具(SKILL、MCP、API)。 ## 目录结构 ``` tools/ ├── components/ # 主要组件 │ ├── api-form.tsx # API 工具表单 │ ├── custom-list-view.tsx # 自定义工具列表视图 │ ├── message-mcp.tsx # MCP 消息组件 │ ├── mcp-json-editor.tsx # MCP JSON 编辑器 │ ├── skill-form.tsx # SKILL 工具表单 │ ├── tool-item.tsx # 工具项组件 │ └── tool-type-badge.tsx # 工具类型徽章 ├── settings/ # 设置相关组件 │ ├── ai-parse-config.tsx # AI 解析配置 │ ├── example-popover.tsx # 示例弹出框 │ ├── mcp-editor-modal.tsx # MCP 编辑模态框 │ └── mcp-store-popover.tsx # MCP 商店弹出框 ├── hooks/ # React Hooks │ └── useExampleList.ts # 获取示例列表 ├── form-components/ # 表单组件 │ ├── path-form-item.tsx # 路径表单项 │ ├── form-header-item.tsx # 表单头项 │ ├── nest-form-request-form-item/ # 嵌套表单请求项 │ ├── env-manage/ # 环境管理 │ └── parse-curl/ # 解析 curl └── index.ts # 主导出文件 ``` ## 主要功能 ### 1. SKILL 工具管理 - `SkillForm`: 创建和编辑 SKILL 工具的表单组件 ### 2. MCP 工具管理 - `MCPEditorModal`: MCP 服务编辑模态框 - `MCPJsonEditor`: JSON 格式的 MCP 配置编辑器 - `MessageMCP`: MCP 工具消息展示组件 - `ExamplePopover`: MCP 示例选择器 - `AiParseConfig`: AI 辅助解析 MCP 配置 - `McpStorePopover`: MCP 市场链接 ### 3. API 工具管理 - `ApiForm`: 创建和编辑 API 工具的表单组件 - 各种表单组件支持 API 参数配置 ### 4. 工具列表视图 - `MCPListView`: 自定义工具列表视图,包含 SKILL、MCP、API 三种类型 ## 使用示例 ### 导入组件 ```typescript // 导入所有工具组件 import { SkillForm, MCPEditorModal, MCPListView } from '@/nova-sdk/tools' // 或者按需导入 import { SkillForm } from '@/nova-sdk/tools/components/skill-form' import { MCPEditorModal } from '@/nova-sdk/tools/settings/mcp-editor-modal' import { MCPListView } from '@/nova-sdk/tools/components/custom-list-view' ``` ### 使用 SKILL 表单 ```typescript import { SkillForm } from '@/nova-sdk/tools' import type { SkillFormState } from '@/nova-sdk/tools' function MyComponent() { const handleSave = async (values: SkillFormState) => { // 处理保存逻辑 console.log(values) } return ( console.log('back')} onSave={handleSave} /> ) } ``` ### 使用 MCP 编辑器 ```typescript import { MCPEditorModal } from '@/nova-sdk/tools' function MyComponent() { const handleFinish = async (values: any) => { // 保存 MCP 配置 console.log(values) } return ( ) } ``` ### 使用工具列表视图 ```typescript import { MCPListView } from '@/nova-sdk/tools' function MyComponent() { const handleViewChange = (view: ViewType) => { console.log('View changed:', view) } return ( console.log('close')} /> ) } ``` ## 依赖说明 这些组件依赖于以下外部库: - `antd`: UI 组件库 - `ahooks`: React Hooks 工具库 - `@ebay/nice-modal-react`: 模态框管理 以及内部依赖: - `@/store/tool`: 工具状态管理 - `@/store/mcp`: MCP 状态管理 - `@/components/icon`: 图标组件 - `@/components/modal`: 模态框组件 - `@apis/mindnote/*`: API 接口 ## 注意事项 1. 迁移的组件保留了原有的功能和接口 2. 所有组件都使用 TypeScript 类型定义 3. 表单验证和错误处理逻辑保持不变 4. 确保在使用前正确配置相关 Store 和 API