Commit Graph

4 Commits

Author SHA1 Message Date
e1bd961ff1 🔧 修复工具依赖分析问题:新增分析阶段mock require
## 🎯 解决的问题
- 修复工具代码在分析阶段因require失败导致getDependencies()无法调用的问题
- 工具的第一行require('axios')失败时,整个脚本执行中断,module.exports未被设置

## 🔧 实现方案
- 新增createAnalysisRequire()方法,为分析阶段提供mock require
- 内置模块(path、fs等)使用真实require,第三方模块返回Proxy mock对象
- 执行阶段继续使用createSmartRequire()进行真实依赖解析

##  修复效果
-  分析阶段:axios/cheerio被正确mock,脚本完整执行
-  依赖提取:getDependencies()正常调用,返回['axios@^1.6.0', 'cheerio@^1.0.0-rc.12']
-  工具实例化:module.exports正确设置,工具对象创建成功

## 🧪 测试验证
-  heywhale-activity-scraper工具依赖分析成功
-  mock require日志正常输出
-  后续依赖安装准备完成

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-05 14:45:51 +08:00
487f02ef03 🔧 ToolSandbox统一重构:修复process API缺失和代码重复问题
## 🎯 核心改进
- **统一沙箱创建**:合并createBasicSandbox()和createSmartSandbox()为单一createSandbox()方法
- **完整process mock**:新增createProcessMock()提供完整的process API支持
- **智能require抽取**:独立createSmartRequire()方法处理依赖解析
- **消除代码重复**:删除~150行重复代码,净减少70行

##  修复的问题
-  process.cwd()在所有沙箱中可用
-  process.version/platform/arch完整支持
-  统一的沙箱行为和API
-  参数化配置,易于维护和测试

## 🔄 API变更
- 新增:createSandbox(options) - 统一沙箱创建入口
- 新增:createProcessMock(sandboxPath) - 完整process对象mock
- 新增:createSmartRequire(sandboxPath) - 智能依赖解析
- 删除:createBasicSandbox() - 已合并到createSandbox
- 删除:createSmartSandbox() - 已合并到createSandbox

## 🧪 测试状态
-  语法检查通过
-  基础沙箱功能正常
-  智能沙箱功能正常
-  process API完整性验证通过

Fixes #107

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-05 14:07:29 +08:00
d1d38e046b fix: 鲁班工具开发体验优化 - 五组件架构升级与智能错误处理 (#116)
* feat: 为promptx_tool增加forceReinstall选项支持

解决工具沙箱缓存机制问题,允许强制重新安装工具依赖。

## 修改内容

### 1. 工具定义更新 (toolDefinitions.js)
- 增加 context.options.forceReinstall 参数支持
- 增加 context.options.timeout 参数支持
- 完善参数描述,说明context用途
- 移除暂时不需要的role_id和session_id参数

### 2. 执行逻辑优化 (ToolCommand.js)
- 支持从context.options提取执行选项
- 将选项传递给ToolSandbox构造函数
- 增加调试日志输出沙箱选项
- 完善JSDoc注释

## 解决的问题

- Issue #107: PromptX工具沙箱缓存机制不支持工具集更新
- 鲁班等AI角色在调试工具时遇到的缓存问题
- 工具依赖更新后无法自动重新安装的问题

## 使用方式

```javascript
// 强制重新安装依赖
{
  tool_resource: "@tool://tool-name",
  parameters: { /* 工具参数 */ },
  context: {
    options: {
      forceReinstall: true
    }
  }
}
```

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

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: 简化context参数,移除暂时不需要的role_id和session_id

按照奥卡姆剃刀原则,移除当前没有实际用途的参数:
- 移除 context.role_id
- 移除 context.session_id
- 保留 context.options 用于执行配置
- 简化API接口,降低复杂度

未来如需要可重新添加这些参数。

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

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor: 简化promptx_tool参数结构,移除context层级

## 主要改进

### 1. 扁平化参数结构
- 移除复杂的context嵌套,直接使用顶级参数
- forceReinstall 和 timeout 作为可选的顶级参数
- 遵循MCP协议惯例,降低AI理解成本

### 2. 参数说明优化
- forceReinstall: 明确默认值为false
- 详细说明使用场景:工具开发和调试中的缓存问题
- timeout: 明确默认值为30000ms

### 3. 防止盲目调用
- 增加重要提醒:要求AI先了解工具说明再调用
- 避免大模型在不了解工具的情况下盲目执行

## 新的调用方式

## 优势
- 符合MCP预训练共识,降低AI学习成本
- 参数结构简洁直观
- 保持向后兼容性

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

Co-Authored-By: Claude <noreply@anthropic.com>

* fix: 修正鲁班工具开发提示词 - 更新为五组件架构并增加AI引导机制

- 更新DPML工具标签知识:从四组件升级到五组件架构(增加identity标签)
- 在工具开发工作流中增加.tool.md说明书创建步骤
- 添加AI使用提醒机制,强化工具使用前必读原则
- 完善工具标签编写模板,包含完整的五标签结构
- 更新质量检查标准,适配新的标签体系

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

Co-Authored-By: Claude <noreply@anthropic.com>

* feat: 添加智能require错误过滤机制到ToolSandbox

解决工具开发中的常见问题:analyze阶段require依赖导致的错误

核心改进:
- 添加_filterRequireError()私有方法,智能识别MODULE_NOT_FOUND错误
- 通过静态分析提取getDependencies()声明的依赖列表
- 对比缺失模块与声明依赖,区分合法缺失和代码错误
- 支持版本号格式的依赖声明(如axios@^1.6.0)

开发者体验提升:
- 可以自然地在文件顶部写require()语句
- 忘记声明依赖时仍会得到明确错误提示
- 降低工具开发的认知负担和学习成本
- 遵循奥卡姆剃刀原则:用技术解决技术问题

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

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Co-authored-by: Claude <noreply@anthropic.com>
2025-07-05 09:10:43 +08:00
eea46a8ee1 feat: 优化鲁班角色并完善ToolSandbox工具开发体系
## 鲁班角色优化
- 新增tool-best-practices知识模块:工具设计最佳实践、性能优化、安全防护
- 新增dpml-tool-tagging知识模块:DPML工具标签四组件架构精通
- 增强craftsmanship思维模式:现代工具特征完善
- 资源迁移到包级别:支持跨项目共享

## ToolSandbox架构完善
- 实现ToolSandbox类:支持@tool://协议的三阶段执行流程
- 优化依赖管理:getDependencies()接口标准化
- 完善UserProtocol:支持@user://沙箱目录访问
- 增强工具发现:FilePatternDiscovery支持多种文件模式

## 工具生态建设
- 添加tool.tag.md:DPML工具标签框架完整定义
- 重构ToolInterface:统一getDependencies()接口规范
- 优化ToolExecutor:集成ToolSandbox执行流程
- 更新注册表:29个资源完整注册发现

## 技术架构改进
- pnpm依赖集成:自动化沙箱环境管理
- 协议系统完善:@tool://和@user://协议标准化
- 资源结构统一:包级别和项目级别一致性
- 开发流程标准化:从需求分析到质量保证的完整工作流

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

Co-Authored-By: Claude <noreply@anthropic.com>
2025-06-28 19:42:16 +08:00