Files
PromptX/scripts/generate-package-registry.js
sean 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

49 lines
1.7 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env node
const path = require('path');
const PackageDiscovery = require('../src/lib/core/resource/discovery/PackageDiscovery');
async function generatePackageRegistry() {
try {
console.log('🏗️ 开始生成Package级别注册表...');
// 获取项目根目录PromptX子项目
const projectRoot = process.cwd();
console.log(`📁 项目根目录: ${projectRoot}`);
// 获取包级资源目录上级目录的resource
const packageResourceRoot = path.dirname(path.dirname(projectRoot));
console.log(`📦 包级资源根目录: ${packageResourceRoot}`);
// 创建PackageDiscovery实例并设置注册表路径保存到项目下
const discovery = new PackageDiscovery();
discovery.registryPath = path.join(projectRoot, 'resource', 'package.registry.json');
console.log(`📋 注册表路径: ${discovery.registryPath}`);
// 生成注册表(扫描包级资源目录)
const registryData = await discovery.generateRegistry(packageResourceRoot);
console.log('✅ Package注册表生成完成');
console.log(`📊 总资源数: ${registryData.size}`);
console.log(`📂 保存位置: ${path.relative(projectRoot, discovery.registryPath)}`);
// 显示统计信息
const stats = registryData.getStats();
console.log(`📋 资源分类:`);
Object.entries(stats.byProtocol).forEach(([protocol, count]) => {
console.log(` ${protocol}: ${count}`);
});
} catch (error) {
console.error('❌ 生成Package注册表失败:', error.message);
process.exit(1);
}
}
// 如果直接运行此脚本
if (require.main === module) {
generatePackageRegistry();
}
module.exports = generatePackageRegistry;