Initial commit
This commit is contained in:
139
skills/toolkit/external/README.md
vendored
Normal file
139
skills/toolkit/external/README.md
vendored
Normal file
@@ -0,0 +1,139 @@
|
||||
# 外部工具装备目录 (External Toolkit)
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
external/
|
||||
├── search/ # 搜索工具
|
||||
│ └── fzf.meta.yml # 模糊查找器
|
||||
├── navigation/ # 导航工具
|
||||
│ └── zoxide.meta.yml # 智能目录跳转
|
||||
├── file-search/ # 文件搜索工具
|
||||
│ └── fd.meta.yml # find替代品
|
||||
├── code-search/ # 代码搜索工具
|
||||
│ └── ripgrep.meta.yml # 极速代码搜索
|
||||
├── file-listing/ # 文件列表工具
|
||||
│ └── eza.meta.yml # 现代化ls
|
||||
├── file-viewer/ # 文件查看工具
|
||||
│ └── bat.meta.yml # 语法高亮cat
|
||||
├── data-processing/ # 数据处理工具
|
||||
│ └── jq.meta.yml # JSON处理器
|
||||
├── api-testing/ # API测试工具
|
||||
│ └── xh.meta.yml # HTTP客户端
|
||||
├── git-tools/ # Git工具
|
||||
│ └── delta.meta.yml # diff美化
|
||||
└── shell-enhancement/ # Shell增强工具
|
||||
└── starship.meta.yml # Shell提示符
|
||||
```
|
||||
|
||||
## 设计理念
|
||||
|
||||
### 简化元数据
|
||||
|
||||
外部工具(如fzf, ripgrep, bat等)是广为人知的CLI工具,它们:
|
||||
|
||||
1. **已预训练** - 大语言模型通常已了解这些常用工具,无需详细文档
|
||||
2. **动态帮助** - 可使用 `command --help` 或 `man command` 获取最新信息
|
||||
3. **避免重复** - 不重复官方文档,保持元数据简洁
|
||||
|
||||
### 元数据结构
|
||||
|
||||
每个外部工具仅需一个 `.meta.yml` 文件,包含:
|
||||
|
||||
```yaml
|
||||
tool_id: EXT-FZF-001
|
||||
tool_name: "fzf (Fuzzy Finder)"
|
||||
|
||||
基本信息:
|
||||
类型: external
|
||||
命令: fzf
|
||||
类别: search
|
||||
|
||||
功能描述:
|
||||
简介: "命令行模糊查找器,用于交互式选择"
|
||||
详细: "常用工具,支持交互式模糊搜索。使用 'fzf --help' 获取详细信息。"
|
||||
|
||||
使用场景:
|
||||
- 文件名模糊查找
|
||||
- 历史命令搜索
|
||||
|
||||
快速开始:
|
||||
安装: "brew install fzf"
|
||||
帮助命令: "fzf --help"
|
||||
常用示例:
|
||||
- "find . -type f | fzf"
|
||||
|
||||
检测状态:
|
||||
已安装: true
|
||||
```
|
||||
|
||||
## 与内部工具的区别
|
||||
|
||||
| 特性 | 内部工具 (Internal) | 外部工具 (External) |
|
||||
|------|-------------------|-------------------|
|
||||
| 位置 | `bash/`, `python/`, `node/` | `external/` |
|
||||
| 实现 | AI Runtime创建的工具脚本 | 系统级CLI工具 |
|
||||
| 元数据 | 详细(包含完整描述、参数、示例) | 简化(模型已知工具) |
|
||||
| 检测 | 检查工具文件exists | 使用 `shutil.which()` |
|
||||
| 示例 | `dependency-analyzer.py` | `fzf`, `ripgrep`, `bat` |
|
||||
|
||||
## 检测机制
|
||||
|
||||
`ExternalToolDetector` 扫描 `external/` 目录:
|
||||
|
||||
1. **递归扫描** - 查找所有 `.meta.yml` 文件
|
||||
2. **类型过滤** - 只处理 `基本信息.类型 == "external"`
|
||||
3. **安装检测** - 使用 `shutil.which()` 检查命令是否可用
|
||||
4. **运行时检测** - 每次运行都重新检测,获取最新状态
|
||||
|
||||
## 使用方式
|
||||
|
||||
```bash
|
||||
cd .ai-runtime/toolkit
|
||||
|
||||
# 列出所有外部工具
|
||||
python3 discover-toolkit.py list --external
|
||||
|
||||
# 显示外部工具详情
|
||||
python3 discover-toolkit.py show fzf
|
||||
|
||||
# 搜索包含'search'的外部工具
|
||||
python3 discover-toolkit.py search search --external
|
||||
|
||||
# 查看所有工具(内部 + 外部)
|
||||
python3 discover-toolkit.py list
|
||||
```
|
||||
|
||||
## 新增外部工具
|
||||
|
||||
添加新外部工具只需:
|
||||
|
||||
1. 在 `external/<category>/` 创建 `tool-name.meta.yml`
|
||||
2. 填写基本信息(ID、名称、命令、类别)
|
||||
3. 提供使用场景和快速开始
|
||||
4. (可选)添加检测状态占位符
|
||||
|
||||
无需修改代码,自动检测加载。
|
||||
|
||||
## 已安装的外部工具
|
||||
|
||||
当前检测到的外部CLI工具(9个):
|
||||
|
||||
- ✅ **fzf** - 模糊查找
|
||||
- ✅ **eza** - 现代化ls
|
||||
- ✅ **zoxide** - 智能cd
|
||||
- ✅ **fd** - 文件搜索
|
||||
- ✅ **ripgrep (rg)** - 代码搜索
|
||||
- ✅ **bat** - 语法高亮查看器
|
||||
- ✅ **jq** - JSON处理器
|
||||
- ✅ **xh** - HTTP客户端
|
||||
- ✅ **delta** - Git diff美化
|
||||
- ❌ **starship** - Shell提示符(未安装)
|
||||
|
||||
## 优势
|
||||
|
||||
✅ **统一结构** - 内部/外部工具都使用 `.meta.yml` 文件
|
||||
✅ **简化维护** - 外部工具不重复文档
|
||||
✅ **动态检测** - 实时检测安装状态
|
||||
✅ **分类清晰** - 按功能分类,便于查找
|
||||
✅ **易于扩展** - 添加新工具只需创建元文件
|
||||
26
skills/toolkit/external/api-testing/xh.meta.yml
vendored
Normal file
26
skills/toolkit/external/api-testing/xh.meta.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
tool_id: EXT-XH-001
|
||||
tool_name: "xh (HTTP client)"
|
||||
|
||||
基本信息:
|
||||
类型: external
|
||||
命令: xh
|
||||
类别: api-testing
|
||||
|
||||
功能描述:
|
||||
简介: "友好的HTTP客户端,替代curl"
|
||||
详细: "现代HTTP客户端,语法友好且输出美观。使用 'xh --help' 获取详细信息。"
|
||||
|
||||
使用场景:
|
||||
- 发送HTTP请求
|
||||
- API测试
|
||||
- 文件下载
|
||||
|
||||
快速开始:
|
||||
安装: "brew install xh"
|
||||
帮助命令: "xh --help"
|
||||
常用示例:
|
||||
- "xh http://api.example.com"
|
||||
- "xh post http://api.example.com/data name=test"
|
||||
|
||||
检测状态:
|
||||
已安装: true
|
||||
28
skills/toolkit/external/code-search/ripgrep.meta.yml
vendored
Normal file
28
skills/toolkit/external/code-search/ripgrep.meta.yml
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
tool_id: EXT-RG-001
|
||||
tool_name: "ripgrep (rg)"
|
||||
|
||||
基本信息:
|
||||
类型: external
|
||||
命令: rg
|
||||
类别: code-search
|
||||
|
||||
功能描述:
|
||||
简介: "极速代码搜索工具"
|
||||
详细: "默认递归搜索且遵守.gitignore的快速搜索工具。使用 'rg --help' 获取详细信息。"
|
||||
|
||||
使用场景:
|
||||
- 搜索代码
|
||||
- 显示上下文
|
||||
- 统计匹配数
|
||||
- 正则表达式搜索
|
||||
|
||||
快速开始:
|
||||
安装: "brew install ripgrep"
|
||||
帮助命令: "rg --help"
|
||||
常用示例:
|
||||
- "rg 'TODO'"
|
||||
- "rg -n 'function'"
|
||||
- "rg -C 3 'error'"
|
||||
|
||||
检测状态:
|
||||
已安装: true
|
||||
27
skills/toolkit/external/data-processing/jq.meta.yml
vendored
Normal file
27
skills/toolkit/external/data-processing/jq.meta.yml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
tool_id: EXT-JQ-001
|
||||
tool_name: "jq (JSON processor)"
|
||||
|
||||
基本信息:
|
||||
类型: external
|
||||
命令: jq
|
||||
类别: data-processing
|
||||
|
||||
功能描述:
|
||||
简介: "JSON数据的命令行处理器"
|
||||
详细: "解析、过滤、转换JSON数据。使用 'jq --help' 获取详细信息。"
|
||||
|
||||
使用场景:
|
||||
- JSON美化
|
||||
- 字段提取
|
||||
- 数据过滤
|
||||
- 格式转换
|
||||
|
||||
快速开始:
|
||||
安装: "brew install jq"
|
||||
帮助命令: "jq --help"
|
||||
常用示例:
|
||||
- 'cat data.json | jq "."'
|
||||
- 'jq ".name" data.json'
|
||||
|
||||
检测状态:
|
||||
已 installed: true
|
||||
28
skills/toolkit/external/file-listing/eza.meta.yml
vendored
Normal file
28
skills/toolkit/external/file-listing/eza.meta.yml
vendored
Normal file
@@ -0,0 +1,28 @@
|
||||
tool_id: EXT-EZA-001
|
||||
tool_name: "eza (Modern ls)"
|
||||
|
||||
基本信息:
|
||||
类型: external
|
||||
命令: eza
|
||||
类别: file-listing
|
||||
|
||||
功能描述:
|
||||
简介: "现代化的ls替代品,带彩色输出和图标"
|
||||
详细: "增强的文件列表工具,支持Git集成。使用 'eza --help' 获取详细信息。"
|
||||
|
||||
使用场景:
|
||||
- 查看文件列表
|
||||
- 树形结构显示
|
||||
- Git状态查看
|
||||
- 文件图标显示
|
||||
|
||||
快速开始:
|
||||
安装: "brew install eza"
|
||||
帮助命令: "eza --help"
|
||||
常用示例:
|
||||
- "eza --long --git"
|
||||
- "eza --tree --level=2"
|
||||
|
||||
检测状态:
|
||||
已安装: true
|
||||
版本: "0.18"
|
||||
26
skills/toolkit/external/file-search/fd.meta.yml
vendored
Normal file
26
skills/toolkit/external/file-search/fd.meta.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
tool_id: EXT-FD-001
|
||||
tool_name: "fd (Simple find)"
|
||||
|
||||
基本信息:
|
||||
类型: external
|
||||
命令: fd
|
||||
类别: file-search
|
||||
|
||||
功能描述:
|
||||
简介: "简单友好的find替代品"
|
||||
详细: "忽略.gitignore的快速文件搜索工具。使用 'fd --help' 获取详细信息。"
|
||||
|
||||
使用场景:
|
||||
- 查找文件
|
||||
- 忽略.gitignore搜索
|
||||
- 执行操作
|
||||
|
||||
快速开始:
|
||||
安装: "brew install fd"
|
||||
帮助命令: "fd --help"
|
||||
常用示例:
|
||||
- "fd '.py$'"
|
||||
- "fd test"
|
||||
|
||||
检测状态:
|
||||
已安装: true
|
||||
26
skills/toolkit/external/file-viewer/bat.meta.yml
vendored
Normal file
26
skills/toolkit/external/file-viewer/bat.meta.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
tool_id: EXT-BAT-001
|
||||
tool_name: "bat (cat with syntax)"
|
||||
|
||||
基本信息:
|
||||
类型: external
|
||||
命令: bat
|
||||
类别: file-viewer
|
||||
|
||||
功能描述:
|
||||
简介: "带语法高亮的cat替代品"
|
||||
详细: "支持语法高亮和Git集成的文件查看工具。使用 'bat --help' 获取详细信息。"
|
||||
|
||||
使用场景:
|
||||
- 查看代码文件
|
||||
- 分页查看
|
||||
- Git修改查看
|
||||
|
||||
快速开始:
|
||||
安装: "brew install bat"
|
||||
帮助命令: "bat --help"
|
||||
常用示例:
|
||||
- "bat file.py"
|
||||
- "bat -p file.txt" # 纯文本模式(无分页)
|
||||
|
||||
检测状态:
|
||||
已安装: true
|
||||
26
skills/toolkit/external/git-tools/delta.meta.yml
vendored
Normal file
26
skills/toolkit/external/git-tools/delta.meta.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
tool_id: EXT-DELTA-001
|
||||
tool_name: "delta (Git diff美化)"
|
||||
|
||||
基本信息:
|
||||
类型: external
|
||||
命令: delta
|
||||
类别: git-tools
|
||||
|
||||
功能描述:
|
||||
简介: "Git diff的美化工具"
|
||||
详细: "为Git diff提供语法高亮和行号显示。使用 'delta --help' 获取详细信息。"
|
||||
|
||||
使用场景:
|
||||
- 查看Git diff
|
||||
- 语法高亮
|
||||
- 行号显示
|
||||
|
||||
快速开始:
|
||||
安装: "brew install git-delta"
|
||||
帮助命令: "delta --help"
|
||||
常用示例:
|
||||
- 配置到git: "git config --global pager.diff delta"
|
||||
- "git diff"
|
||||
|
||||
检测状态:
|
||||
已安装: true
|
||||
26
skills/toolkit/external/navigation/zoxide.meta.yml
vendored
Normal file
26
skills/toolkit/external/navigation/zoxide.meta.yml
vendored
Normal file
@@ -0,0 +1,26 @@
|
||||
tool_id: EXT-ZOXIDE-001
|
||||
tool_name: "zoxide (Smart cd)"
|
||||
|
||||
基本信息:
|
||||
类型: external
|
||||
命令: zoxide
|
||||
类别: navigation
|
||||
|
||||
功能描述:
|
||||
简介: "智能目录跳转工具,学习访问习惯"
|
||||
详细: "AI驱动的cd命令替代品。使用 'zoxide --help' 获取详细信息。"
|
||||
|
||||
使用场景:
|
||||
- 快速跳转目录
|
||||
- 访问频率学习
|
||||
- 路径自动补全
|
||||
|
||||
快速开始:
|
||||
安装: "curl -sSfL https://raw.githubusercontent.com/ajeetdsouza/zoxide/main/install.sh | sh"
|
||||
帮助命令: "zoxide --help"
|
||||
常用示例:
|
||||
- "z myproject"
|
||||
- "z foo bar" # 匹配包含foo和bar的路径
|
||||
|
||||
检测状态:
|
||||
已安装: true
|
||||
30
skills/toolkit/external/search/fzf.meta.yml
vendored
Normal file
30
skills/toolkit/external/search/fzf.meta.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
tool_id: EXT-FZF-001
|
||||
tool_name: "fzf (Fuzzy Finder)"
|
||||
|
||||
基本信息:
|
||||
类型: external
|
||||
命令: fzf
|
||||
类别: search
|
||||
|
||||
功能描述:
|
||||
简介: "命令行模糊查找器,用于交互式选择"
|
||||
详细: "常用工具,支持交互式模糊搜索。使用 'fzf --help' 获取详细信息。"
|
||||
|
||||
使用场景:
|
||||
- 文件名模糊查找
|
||||
- 历史命令搜索
|
||||
- Git分支切换
|
||||
- 交互式选择
|
||||
|
||||
快速开始:
|
||||
安装: "brew install fzf (macOS) / apt-get install fzf (Ubuntu)"
|
||||
帮助命令: "fzf --help"
|
||||
常用示例:
|
||||
- "find . -type f | fzf"
|
||||
- "history | fzf"
|
||||
- "git branch | fzf"
|
||||
|
||||
检测状态:
|
||||
已安装: true # 根据discover-toolkit.py检测结果
|
||||
版本: "0.45"
|
||||
路径: "/opt/homebrew/bin/fzf"
|
||||
27
skills/toolkit/external/shell-enhancement/starship.meta.yml
vendored
Normal file
27
skills/toolkit/external/shell-enhancement/starship.meta.yml
vendored
Normal file
@@ -0,0 +1,27 @@
|
||||
tool_id: EXT-STEAMSHIP-001
|
||||
tool_name: "starship (Shell提示符)"
|
||||
|
||||
基本信息:
|
||||
类型: external
|
||||
命令: starship
|
||||
类别: shell-enhancement
|
||||
|
||||
功能描述:
|
||||
简介: "快速、可定制、智能的Shell提示符"
|
||||
详细: "跨Shell的提示符增强工具。使用 'starship --help' 获取详细信息。"
|
||||
|
||||
使用场景:
|
||||
- 显示Git状态
|
||||
- 显示Python版本
|
||||
- 显示目录
|
||||
- Shell美化
|
||||
|
||||
快速开始:
|
||||
安装: "curl -sS https://starship.rs/install.sh | sh"
|
||||
帮助命令: "starship --help"
|
||||
常用示例:
|
||||
- "starship prompt"
|
||||
- 配置到Shell配置文件
|
||||
|
||||
检测状态:
|
||||
已安装: true
|
||||
Reference in New Issue
Block a user