repositories
loading repo index
repositories
loading repo index
repository
loading code, commits, and activity
public Clawd ADK gateway launch mirror
stars
latest
clone command
git clone gitlawb://did:key:z6Mkq5mY...iFZ5/my-project-publ...git clone gitlawb://did:key:z6Mkq5mY.../my-project-publ...2fa351d6docs: add automaton and perps launch sources15d ago| #1 | # Scripts 目录结构说明 |
| #2 | |
| #3 | 本目录包含了 CLAWD Agents 项目的所有脚本工具,经过重新组织和优化,使功能更加清晰,更容易维护。 |
| #4 | |
| #5 | ## 📁 目录结构 |
| #6 | |
| #7 | ``` |
| #8 | scripts/ |
| #9 | ├── core/ # 核心配置和模型 |
| #10 | │ ├── constants.ts # 项目常量配置 |
| #11 | │ └── model.ts # AI 模型配置 |
| #12 | ├── utils/ # 工具函数 |
| #13 | │ ├── file.ts # 文件操作工具 |
| #14 | │ ├── common.ts # 通用工具函数 |
| #15 | │ └── logger.ts # 自定义日志系统 |
| #16 | ├── parsers/ # 解析器模块 |
| #17 | │ └── agent-parser.ts # Agent 文件解析器 |
| #18 | ├── processors/ # 处理器模块 |
| #19 | │ ├── category-processor.ts # 分类处理器 |
| #20 | │ └── i18n-processor.ts # 国际化处理器 |
| #21 | ├── validators/ # 验证器模块 |
| #22 | │ ├── agent-validator.ts # Agent 验证器 |
| #23 | │ └── language-validator.ts # 语言验证器 |
| #24 | ├── builders/ # 构建器模块 |
| #25 | │ └── agent-builder.ts # Agent 构建器 |
| #26 | ├── formatters/ # 格式化器模块 |
| #27 | │ └── agent-formatter.ts # Agent 格式化器 |
| #28 | ├── commands/ # 命令行工具 |
| #29 | │ ├── build.ts # 构建命令 |
| #30 | │ ├── format.ts # 格式化命令 |
| #31 | │ ├── test.ts # 测试命令 |
| #32 | │ ├── test-locale.ts # 本地化测试命令 |
| #33 | │ ├── validate-language.ts # 语言验证命令 |
| #34 | │ ├── update-awesome.ts # 更新 README 命令 |
| #35 | │ └── auto-submit.ts # 自动提交命令 |
| #36 | ├── schema/ # 数据结构定义 |
| #37 | │ ├── agentMeta.ts # Agent 元数据 Schema |
| #38 | │ └── llm.ts # LLM 相关 Schema |
| #39 | └── README.md # 本说明文件 |
| #40 | ``` |
| #41 | |
| #42 | ## 🚀 主要功能模块 |
| #43 | |
| #44 | ### 核心模块 (core/) |
| #45 | |
| #46 | - **constants.ts**: 包含所有项目常量,如路径配置、分类列表、翻译字段选择器等 |
| #47 | - **model.ts**: OpenAI 模型配置和初始化 |
| #48 | |
| #49 | ### 工具模块 (utils/) |
| #50 | |
| #51 | - **file.ts**: 文件操作相关工具函数,如文件读写、目录管理等 |
| #52 | - **common.ts**: 通用工具函数,如字符串处理、数组操作等 |
| #53 | - **logger.ts**: 自定义日志系统,提供结构化、彩色输出,支持进度条、统计信息等 |
| #54 | |
| #55 | ### 解析器模块 (parsers/) |
| #56 | |
| #57 | - **agent-parser.ts**: 解析 Agent 配置文件,提取 ID、语言代码和内容 |
| #58 | |
| #59 | ### 处理器模块 (processors/) |
| #60 | |
| #61 | - **category-processor.ts**: 使用 AI 自动为 Agent 分配分类 |
| #62 | - **i18n-processor.ts**: 处理多语言翻译,支持 OpenAI API 调用 |
| #63 | |
| #64 | ### 验证器模块 (validators/) |
| #65 | |
| #66 | - **agent-validator.ts**: 验证 Agent 配置格式和数据完整性 |
| #67 | - **language-validator.ts**: 使用 @yutengjing/eld 库验证翻译文件的语言准确性 |
| #68 | |
| #69 | ### 构建器模块 (builders/) |
| #70 | |
| #71 | - **agent-builder.ts**: 构建所有语言版本的 Agent 文件和索引 |
| #72 | |
| #73 | ### 格式化器模块 (formatters/) |
| #74 | |
| #75 | - **agent-formatter.ts**: 格式化 Agent 配置文件并生成多语言版本,支持增量翻译检测 |
| #76 | |
| #77 | ### 命令行工具 (commands/) |
| #78 | |
| #79 | - **build.ts**: 构建所有 Agent 文件和 Schema |
| #80 | - **format.ts**: 格式化 Agent 配置文件,触发翻译流程 |
| #81 | - **test.ts**: 验证 Agent 配置文件格式 |
| #82 | - **test-locale.ts**: 验证多语言文件完整性 |
| #83 | - **validate-language.ts**: 验证翻译文件语言准确性,支持批量验证和清理 |
| #84 | - **update-awesome.ts**: 更新 README 中的 Agent 列表 |
| #85 | - **auto-submit.ts**: 自动处理 GitHub Issue 并创建 PR |
| #86 | |
| #87 | ## 📋 使用方法 |
| #88 | |
| #89 | ### 构建项目 |
| #90 | |
| #91 | ```bash |
| #92 | pnpm run build |
| #93 | ``` |
| #94 | |
| #95 | ### 格式化 Agent 文件(包含翻译) |
| #96 | |
| #97 | ```bash |
| #98 | pnpm run format |
| #99 | ``` |
| #100 | |
| #101 | ### 运行测试 |
| #102 | |
| #103 | ```bash |
| #104 | pnpm run test |
| #105 | pnpm run test:locale # 测试多语言文件 |
| #106 | pnpm run type-check # TypeScript 类型检查 |
| #107 | ``` |
| #108 | |
| #109 | ### 语言验证 |
| #110 | |
| #111 | ```bash |
| #112 | pnpm run validate:lang # 验证所有翻译文件 |
| #113 | pnpm run validate:lang --delete # 验证并删除失败的文件 |
| #114 | pnpm run validate:lang <file_path> # 验证单个文件 |
| #115 | pnpm run clean:lang # 清理验证失败的翻译文件 |
| #116 | ``` |
| #117 | |
| #118 | ### 更新 README |
| #119 | |
| #120 | ```bash |
| #121 | pnpm run update:awesome |
| #122 | ``` |
| #123 | |
| #124 | ## 🌟 核心特性 |
| #125 | |
| #126 | ### 🔄 增量翻译系统 |
| #127 | |
| #128 | - **智能检测**: 自动比较源文件与现有翻译,仅翻译新增或修改的内容 |
| #129 | - **内容合并**: 使用 lodash.merge 将新翻译与现有翻译智能合并 |
| #130 | - **性能优化**: 避免重复翻译,节省 API 调用成本 |
| #131 | |
| #132 | ### 🛡️ 语言验证系统 |
| #133 | |
| #134 | - **自动检测**: 使用 @yutengjing/eld 库检测翻译文件的实际语言 |
| #135 | - **准确性验证**: 确保翻译结果与预期语言代码匹配 |
| #136 | - **批量处理**: 支持批量验证和自动清理无效文件 |
| #137 | - **详细报告**: 提供置信度、问题详情等详细信息 |
| #138 | |
| #139 | ### 📊 日志系统 |
| #140 | |
| #141 | - **结构化输出**: 统一的日志格式,支持不同级别和颜色 |
| #142 | - **进度追踪**: 实时显示处理进度和统计信息 |
| #143 | - **文件操作日志**: 详细记录文件读写、创建、删除操作 |
| #144 | - **翻译流程日志**: 专门的翻译过程日志记录 |
| #145 | |
| #146 | ### 🎯 翻译字段配置 |
| #147 | |
| #148 | 支持的翻译字段(在 constants.ts 中配置): |
| #149 | |
| #150 | - `meta.title` - Agent 标题 |
| #151 | - `meta.description` - Agent 描述 |
| #152 | - `meta.tags` - 标签 |
| #153 | - `config.systemRole` - 系统角色 |
| #154 | - `summary` - 摘要 |
| #155 | - `examples` - 示例对话 |
| #156 | - `config.openingMessage` - 开场消息 |
| #157 | - `config.openingQuestions` - 开场问题 |
| #158 | |
| #159 | ## 🔧 优化特性 |
| #160 | |
| #161 | 1. **模块化设计**: 按功能将代码分离到不同模块,提高可维护性 |
| #162 | 2. **中文注释**: 为所有函数和重要代码添加了详细的中文注释 |
| #163 | 3. **类型安全**: 使用 TypeScript 提供完整的类型定义 |
| #164 | 4. **智能翻译**: 增量检测避免重复翻译,提高效率 |
| #165 | 5. **质量保证**: 自动语言验证确保翻译质量 |
| #166 | 6. **并发处理**: 使用 p-map 进行并发处理,提高性能 |
| #167 | 7. **清晰的职责分离**: 每个模块都有明确的职责范围 |
| #168 | 8. **结构化日志**: 统一的日志系统提供更好的开发体验 |
| #169 | |
| #170 | ## 🛠️ 开发指南 |
| #171 | |
| #172 | ### 添加新功能 |
| #173 | |
| #174 | 1. **核心逻辑**: 添加到 `processors/`、`validators/` 或 `builders/` 目录 |
| #175 | 2. **工具函数**: 添加到 `utils/file.ts` 或 `utils/common.ts` |
| #176 | 3. **命令行工具**: 在 `commands/` 目录创建新命令 |
| #177 | 4. **类型定义**: 在 `schema/` 目录更新类型定义 |
| #178 | |
| #179 | ### 使用日志系统 |
| #180 | |
| #181 | ```typescript |
| #182 | import { Logger } from '../utils/logger'; |
| #183 | |
| #184 | // 基本日志 |
| #185 | Logger.info('处理文件', fileName); |
| #186 | Logger.success('操作完成', target, details); |
| #187 | Logger.warn('警告信息', reason); |
| #188 | Logger.error('错误信息', error); |
| #189 | |
| #190 | // 流程日志 |
| #191 | Logger.start('开始操作', target); |
| #192 | Logger.split('分隔线标题'); |
| #193 | |
| #194 | // 文件操作 |
| #195 | Logger.file('read', filePath, 'success'); |
| #196 | Logger.translate(agentId, 'zh-CN', 'en-US', 'success'); |
| #197 | |
| #198 | // 统计信息 |
| #199 | Logger.stats({ |
| #200 | 总文件数: totalCount, |
| #201 | 成功数量: successCount, |
| #202 | }); |
| #203 | ``` |
| #204 | |
| #205 | ### 调试技巧 |
| #206 | |
| #207 | ```bash |
| #208 | # 启用调试模式 |
| #209 | DEBUG=true pnpm run validate:lang |
| #210 | |
| #211 | # 类型检查 |
| #212 | pnpm run type-check |
| #213 | |
| #214 | # 单个文件测试 |
| #215 | pnpm run validate:lang path/to/file.json |
| #216 | ``` |
| #217 | |
| #218 | |
| #219 |