Skip to content

Conversation

@echoVic
Copy link
Owner

@echoVic echoVic commented Sep 29, 2025

Note

Introduce a full UI theming system, new performance/memory/security utilities, secure helpers, and extensive unit/integration/e2e tests with Vitest and TS config updates.

  • UI:
    • Add Ink entry exports (src/ui/ink/index.ts) and useMemoryCleanup hook.
    • Implement full theme system (src/ui/themes/*): presets, semantic colors, theme manager, utilities; update UIStyles to use themeManager.
  • Core/Security Utilities:
    • Add PerformanceMonitor, SmartMemoryManager, secure CommandExecutor, ConfigEncryptor, deep-merge, error handling, package info, path/prompt security, secure HTTP client, security monitor/policy, and security index exports.
  • Tests/Tooling:
    • Introduce extensive unit/integration/e2e tests and helpers; add Vitest config and TS test config; update tsconfig settings.
  • Misc:
    • Minor formatter/validator tweaks and supportive exports.

Written by Cursor Bugbot for commit 9d5681e. This will update automatically on new commits. Configure here.

echoVic and others added 30 commits August 29, 2025 10:52
- 新增分层配置架构:默认值 < 用户配置 < 项目配置 < 环境变量 < CLI参数
- 新增 ConfigManager 统一管理所有配置源
- 支持 BLADE_* 前缀的环境变量配置
- 新增用户向导:blade config init/wizard
- 新增配置验证和版本迁移
- 向后兼容现有 AgentConfig 接口
- 新增完整配置文档

分层配置优先级:
1. CLI参数 (--model, --api-key)
2. 环境变量 (BLADE_API_KEY)
3. 项目配置 (.blade.json)
4. 用户配置 (~/.blade/config.json)
5. 系统默认配置

参见 docs/CONFIGURATION.md 完整文档

🤖 Generated with [Claude Code](https://claude.ai/code)
- 添加index.html作为Docsify入口文件
- 创建_sidebar.md导航结构
- 添加_coverpage.md封面页
- 完善各模块文档内容
- 删除无用的Jekyll _layouts目录
- 实现主题管理器核心功能,支持动态切换主题
- 添加13种流行配色方案的内置主题
- 支持通过配置文件、环境变量和CLI参数设置主题
- 更新UI样式系统以支持主题化
- 添加主题系统文档和API参考
refactor(agent): 简化 LLMManager 实现,移除 Qwen 和 VolcEngine 依赖

style(themes): 调整语义颜色文件格式

chore: 更新 CLAUDE.md 文档,添加 pnpm 支持

build: 添加 React 和 Ink 相关依赖

ci: 更新测试命令配置
- 将项目重构为monorepo结构,包含core/cli/types三个子包
- 实现核心Agent类,支持基础聊天和多轮对话功能
- 添加LLM管理器,支持平铺配置(apiKey/baseUrl/modelName)
- 实现配置管理系统,支持多级配置加载
- 添加工具系统,包含文件系统/Git/智能工具等内置工具
- 完善类型定义,提供共享类型包
- 添加测试脚本验证核心功能
- 更新README文档说明新架构
refactor: 重构组件管理器和上下文管理器使用LoggerComponent
feat: 添加JSON配置加载器和持久化器实现
feat: 实现深度合并策略和Zod验证器
docs: 添加安全配置指南和重构工具包文档
test: 添加错误处理系统单元测试
build: 新增UI组件库package.json配置
重构配置管理器为统一配置系统,新增React上下文和hooks支持
添加配置合并、验证工具函数和测试用例
实现向后兼容的配置管理器封装
提供细粒度的配置访问和响应式更新能力
## 主要变更

### 1. 项目架构重构
- ✅ 重构为标准的 pnpm monorepo 结构
- ✅ 添加 `packages/core`、`packages/ui` 等子包
- ✅ 统一配置管理系统和主题系统
- ✅ 实现组件化架构设计

### 2. 安全系统升级
- ✅ 实现配置文件加密存储 (AES-256-GCM)
- ✅ 添加路径遍历防护和白名单机制
- ✅ 实现命令执行安全验证
- ✅ 添加提示词注入防护系统
- ✅ 网络安全增强 (TLS 1.2+ 强制)

### 3. 测试框架完善
- ✅ 添加 Jest 测试框架配置
- ✅ 实现单元测试、集成测试、E2E测试
- ✅ 添加代码覆盖率报告 (Codecov)
- ✅ 安全测试自动化脚本

### 4. 监控和运维
- ✅ 实时安全事件监控
- ✅ 性能监控和内存管理
- ✅ 错误处理统一系统
- ✅ 日志审计和合规报告

### 5. 文档和规范
- ✅ 更新配置文档和最佳实践
- ✅ 添加安全配置详细指南
- ✅ 代码规范和安全审计报告

## 影响评估

### 兼容性
- ✅ 保持与现有 CLI 接口完全兼容
- ✅ 向后兼容配置文件格式
- ✅ 支持现有工具链和工作流

### 性能优化
- ⚡ 模块化加载减少启动时间
- ⚡ 智能缓存和内存优化
- ⚡ 并行处理和性能监控

### 安全加固
- 🛡️ 多层次安全防护机制
- 🛡️ 实时威胁检测和防护
- 🛡️ 合规性支持 (GDPR/CCPA)

## 技术细节

### Monorepo 结构
```
packages/
├── core/          # 核心功能和配置管理
├── ui/            # UI组件和主题系统
└── cli/           # CLI相关功能
src/              # 保持现有结构
tests/            # 统一测试套件
security/         # 安全工具和脚本
```

### 新增依赖
- Jest 测试框架和生态
- ESLint 安全插件
- 配置管理安全性增强
- 网络安全组件

## 测试状态
- ✅ 单元测试: 80% 覆盖率目标
- ⚠️ 集成测试: 需要进一步验证
- ⚠️ E2E测试: 需要环境配置
- ✅ 安全测试: 基础验证通过

## 下一步计划
- [ ] 修复 TypeScript 类型错误
- [ ] 完善测试用例和覆盖率
- [ ] 性能优化和调优
- [ ] 文档完善和示例更新
- [ ] CI/CD 流水线集成

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
- 添加PR_CREATION_GUIDE.md指导如何手动创建PR
- 包含完整的PR标题和描述内容
- 提供审查指南和后续计划

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
…ty-audit: Monorepo结构重构和安全审计系统\n- feature/unified-configuration-system: 统一配置管理系统\n\n新分支 refactor/merged-features 现在包含:\n✅ 完整的 Monorepo 项目结构\n✅ 安全审计和监控系统\n✅ 统一配置管理系统\n✅ UI 组件库和主题系统\n✅ 完整的测试套件\n✅ 文档和指南
重构项目为Monorepo分层架构,分离CLI和Core包
新增完整的终端UI组件系统、配置管理系统和命令服务层
实现核心业务引擎、IDE集成、MCP协议支持和遥测系统
添加文件系统、Git、聊天记录等核心服务
完善单元测试和集成测试覆盖
更新文档说明新架构和功能
- 删除所有jest相关配置文件
- 更新package.json中的测试脚本
- 替换测试文件中的jest为vitest API
- 添加vitest配置文件和tsconfig.test.json
- 更新测试setup文件以支持vitest
1. 实现Monorepo分层架构 (packages/core + packages/cli)
2. 重构配置系统为纯函数式设计
3. 建立清晰的API边界和分层职责
4. 实现会话式REPL界面
5. 完成端到端测试和文档更新
6. 删除旧的单体架构代码

项目现在具备:
✅ 独立的@blade-ai/core业务包
✅ 纯应用层的CLI包
✅ 完整的测试体系
✅ 详尽的技术文档
✅ 可持续的开发流程

详细信息请查看:
- REFACTORING_FINAL_SUMMARY.md
- docs/architecture.md
- docs/API.md
- 为 ErrorHandler、PathSecurity 和 SecureHttpClient 添加默认实例导出
- 简化 SecureHttpClient 的安全实现,移除冗余代码
- 修复 git-status 和 file-system 的导入路径错误
- 更新 tsup 配置,禁用 dts 并添加外部依赖
- 优化 deep-merge 工具函数,重命名 set 为 setPath
- 清理 pnpm-lock.yaml 中的未使用依赖
将bin/blade.js的入口文件从'../dist/index.js'改为'../packages/cli/dist/cli.js',并更新package.json中的bin配置,使cli包能够直接引用自己的dist文件
删除UI组件库及其相关代码,包括主题系统、配置管理、测试用例和示例组件。同时更新vitest配置,移除UI包的别名映射。

此次重构移除了不再需要的UI组件库,简化了项目结构,专注于核心功能的开发。删除内容包括:
- UI组件库源代码
- 主题系统和配置管理相关代码
- 测试用例和示例组件
- 相关构建配置和依赖
将@blade-ai/types包合并到core包中,统一管理共享类型定义
移除pnpm-workspace.yaml中的overrides配置
更新相关tsconfig.json和导入路径
在core包中新增shared.ts文件存放迁移的类型
- 将文档按功能模块重新组织到子目录中
- 更新快速开始指南、命令参考和架构文档内容
- 删除过时的文档文件
- 修改侧边栏以匹配新的文档结构
- 更新文档主题样式为github.css
删除不再使用的配置文件(.nycrc.json, coverage.config.json)和脚本(verify-security-setup.sh, refactoring-toolkit.js, tsup.optimized.config.ts)
refactor(cli): 迁移CLI入口和配置管理

fix(core): 修复类型导入路径和错误处理

style: 统一代码格式和文件扩展名

chore: 更新依赖和构建配置

feat(core): 添加新类型定义和工具函数

perf: 优化内存管理和性能

docs: 更新注释和文档

test: 更新测试配置

ci: 调整CI配置

build: 更新构建脚本和TS配置
添加了核心模块的错误处理组件(ErrorBoundary, ErrorMonitor等)的单元测试
添加了CLI模块的UI组件(Text, Button, Input等)的单元测试
更新了vitest配置以支持新的测试目录结构
添加了测试用的配置文件和测试工具函数
重构整个项目的构建系统,使用 tsc --build 进行开发阶段编译,esbuild 进行打包阶段
- 添加新的 build-bundle.js 脚本处理打包流程
- 更新所有包的 package.json 构建脚本
- 添加 BUILD_MIGRATION.md 文档说明迁移细节
- 更新 tsconfig 配置支持项目引用
- 迁移测试工具从 jest 到 vitest
重构动画、旋转器和文本组件样式,移除冗余样式属性
更新Box组件类型定义,添加事件处理和间距转换
调整主题适配器,使用临时类型定义替代外部依赖
优化输入管理器状态更新逻辑
更新依赖项,添加lodash-es和uuid
This file should be ignored as it's a TypeScript build cache file
that gets regenerated automatically during builds.
- 将构建系统从 tsc 迁移到 esbuild,提升构建性能
- 删除旧的 simple-cli.ts 文件,使用新的构建配置
- 更新 package.json 脚本和 tsconfig.json 配置
- 升级 @modelcontextprotocol/sdk 依赖版本
- 更新 MCP 相关代码以适配新版 SDK
- 添加新的权限配置到 settings.local.json
The bin/ directory contains build artifacts (blade.js and blade.js.map)
generated by esbuild. These files should not be tracked in version
control as they are automatically generated during the build process.
添加init()和destroy()方法用于Agent生命周期管理
新增getLLMManager()、getContextComponent()和getToolComponent()方法
修复CommandOrchestrator中对组件方法的类型检查
refactor(LLMManager): 使用标准OpenAI兼容接口路径
feat(ConfigService): 统一LLM配置参数到auth下
style(SessionContext): 优化消息ID生成方式
feat(blade.tsx): 添加API密钥检查及初始化逻辑
refactor(EnhancedReplInterface): 优化UI风格类似Claude Code
chore: 添加ahooks依赖并更新pnpm-lock
添加API密钥状态检查功能,在界面底部显示未配置密钥的警告
更新初始化流程中的提示信息,使其更加简洁实用
添加统一命令执行入口方法 executeCommand,支持斜杠命令和自然语言处理
重构 blade.tsx 的命令行参数处理逻辑,优化交互式UI启动条件
在 App.tsx 中实现完整的交互式输入处理,包括命令历史、快捷键和状态显示
将主题类型定义和工具函数拆分到单独文件
重命名主题预设文件并添加详细文档
更新主题管理器导入路径和导出结构
优化App组件中的主题相关样式逻辑
添加lowlight依赖实现代码语法高亮功能
新增CodeHighlighter组件支持多种编程语言高亮
添加TableRenderer组件实现Markdown表格渲染
创建MessageRenderer组件整合所有Markdown元素
扩展主题系统支持语法高亮颜色配置
优化终端宽度自适应处理
- 实现新Agent架构,支持多Agent协作和智能上下文管理
- 新增MainAgent、SubAgentRegistry、TaskPlanner等核心组件
- 引入上下文压缩器和模型路由器,优化对话历史管理
- 提供Agent迁移工具,支持从旧架构迁移到新架构
- 更新相关文档,提供使用示例和最佳实践指导
- 新增CLAUDE.md文件,提供项目架构、核心组件及开发工作流程的详细说明
- 删除过时的CHANGELOG.md文件,优化项目文件结构
- 更新核心组件的导出方式,简化Agent系统的使用
- 移除不再使用的LLMManager和相关测试文件,精简代码库
- 在Agent中集成ContextCompressionManager、EnhancedSteeringController、ParallelSubAgentExecutor和ComponentManager,提升功能扩展性
- 实现智能上下文压缩和并行任务执行,优化资源管理
- 更新Agent的构造函数,初始化新组件并提供状态监控
- 增强测试用例,确保新功能的稳定性和可靠性
- 更新文档,提供新组件的使用示例和最佳实践指导
重构核心模块架构,移除冗余代码和过时功能,简化类型定义和配置管理。主要变更包括:
- 移除旧版配置加载器、持久化器和验证器
- 重构工具系统使用Anthropic格式
- 简化服务导出和类型定义
- 新增ExecutionEngine统一执行逻辑
- 优化测试结构和覆盖率

重构UI组件状态管理和错误提示,移除llm命令并整合到agent-llm中。更新文档反映最新架构。
重构CLI应用界面,移除SplashScreen和CommandPalette组件,新增Header、InputArea、ChatStatusBar等组件
优化消息显示区域,改进命令历史管理和键盘输入处理
添加useCommandHandler和useKeyboardInput等hooks以处理命令执行和输入逻辑
调整文件导入路径和组件结构,提升代码可维护性
- 将分散的类型定义统一到core包的config/types.ts
- 删除旧的types目录及分散的类型文件
- 更新相关模块的导入路径
- 修改默认模型为Qwen3-Coder
- 重构ChatService以支持OpenAI兼容API
更新本地设置文件添加新的权限配置,包括WebFetch和WebSearch权限
删除core模块中过时的测试配置文件
- 重构工具系统架构,引入新的类型定义和基础类
- 实现工具注册表、发现服务和执行管道
- 添加内置工具模块和工具工厂函数
- 更新测试用例以适应新架构
- 改进工具参数验证和执行流程
- 添加安全类型和执行上下文管理
- 移除旧版工具实现和类型定义
- 更新核心模块导出和初始化逻辑
新增文件读写、编辑、批量编辑工具和文件搜索工具
重构工具调用基类以支持更丰富的功能
添加工具分类和类型获取功能
新增Shell工具模块,包括ShellTool、BashTool和ScriptTool,支持命令执行、持久化会话和脚本运行
新增Web工具模块,包括WebFetchTool和ApiCallTool,支持HTTP请求和API调用
新增Task工具模块,包括TaskTool和TaskManager,支持任务创建和管理
更新内置工具索引文件,整合第二、三阶段工具功能
重构MCP协议实现,将原有客户端和服务端代码合并为统一架构,新增McpRegistry用于管理MCP服务器连接和工具发现。实现McpToolAdapter将MCP工具转换为声明式工具,支持在builtin工具中动态加载MCP工具。添加类型定义文件统一管理MCP协议相关类型。

添加lint和eslint命令到CI配置,优化类型定义文件结构,移除旧版mcp类型文件。新增McpToolInvocation处理MCP工具调用逻辑,包括确认和执行流程。实现McpClient与MCP服务器的通信基础功能。

重构后的MCP架构支持动态加载外部工具,提供更好的扩展性和维护性。工具调用流程增加安全确认机制,确保外部工具调用的安全性。统一类型定义简化了代码结构,提高类型安全性。
重构整个工具系统架构,采用声明式工具模式,支持工具调用功能。主要变更包括:
- 新增工具注册表和执行管道
- 实现6阶段执行流程(发现、验证、权限、确认、执行、格式化)
- 添加内置工具集(文件操作、搜索、命令执行等)
- 支持MCP协议集成
- 增强Agent工具调用能力
- 添加安全控制机制

新增文档说明工具系统改进规划
feat(core): 添加核心工具系统模块和类型定义
feat(cli): 实现新的CLI UI组件和命令系统
style: 统一代码格式并移除prettier配置
chore: 更新vscode配置使用biome替代eslint
build: 调整tsconfig配置简化项目结构
test: 添加核心模块的单元测试和集成测试
重构项目目录结构,将核心功能模块化并统一导出入口
新增工具系统、UI组件和配置管理功能
优化测试配置和类型定义,提升代码可维护性
添加错误处理系统和内存管理工具
更新构建脚本和依赖配置
移除ConfigService、AgentFactory、CommandOrchestrator等单例类
将agent创建逻辑重构为独立的createAgent函数
更新相关模块以使用新的agent创建方式
移除不再使用的ErrorFactory及相关错误处理
- 将命令模块重构为独立的文件并通过index.ts统一导出
- 新增doctor、setup-token、update和install命令
- 改进config命令支持嵌套配置操作
- 重构mcp命令实现更简洁的服务器管理
- 增强BladeInterface和AppWrapper的props类型定义
- 添加print命令支持管道输出模式
- 移除废弃的agent-llm和tools命令
新增系统提示模块,支持从配置文件、CLI参数和默认值加载提示内容
扩展 ChatService 支持系统消息角色,自动将系统提示注入到消息列表
添加 slash commands 支持,包括 /init 创建项目配置和 /help 查看命令
优化 UI 组件显示命令建议和更新使用指南
重构 Agent 初始化流程以支持系统提示加载
添加相关单元测试和集成测试确保功能稳定性
重构 CLI 框架,使用 yargs 替代 commander,提供更好的类型支持和更灵活的配置选项
更新所有命令模块以适应新的 yargs 结构
添加全局选项和中间件处理
改进命令提示和错误处理
重命名项目名称及相关引用,包括包名、描述、UI显示等
更新文档和配置文件以反映新名称
添加package-info工具类统一管理包信息
cursor[bot]

This comment was marked as outdated.

合并ci.yml和ci-tests.yml文件,简化测试流程
更新pnpm和Node.js版本
移除冗余的测试步骤和报告生成
添加跨平台测试支持
cursor[bot]

This comment was marked as outdated.

重构文档结构,新增安装指南、常见问题、核心组件和测试指南等章节。优化快速开始指南内容,更新封面页设计和侧边栏导航。改进文档网站布局和搜索功能,提升整体可读性和易用性。

- 重构文档目录结构,按功能模块组织内容
- 新增详细的安装使用指南和常见问题解答
- 添加核心组件架构说明和测试指南
- 优化快速开始流程,简化配置步骤
- 更新封面页设计,突出产品定位和特性
- 改进文档网站布局和搜索体验
- 统一代码示例风格和命令行用法
@echoVic echoVic merged commit cfa4dd1 into main Sep 29, 2025
1 of 7 checks passed
function mergeConfigLayers(layers: any): any {
// 导入DEFAULT_CONFIG
import('./config/defaults.js').then((module) => module.DEFAULT_CONFIG);

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Bug: Config Merge Fails Due to Unawaited Import

The mergeConfigLayers function includes a dynamic import for DEFAULT_CONFIG that isn't awaited or used. As a result, the default configuration is never loaded or applied, which means merged configurations might be incomplete or incorrect.

Fix in Cursor Fix in Web

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants