-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstall.js
More file actions
73 lines (59 loc) · 2.6 KB
/
install.js
File metadata and controls
73 lines (59 loc) · 2.6 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
// install.js - Seeed 商详架构师 Skill 一键安装挂载脚本 (通用版)
const fs = require('fs');
const path = require('path');
const os = require('os');
console.log('🚀 开始安装 [Seeed 商详架构师] Skill...\n');
// 1. 跨平台定位 OpenClaw 配置文件
const openclawDir = path.join(os.homedir(), '.openclaw');
const configFile = path.join(openclawDir, 'openclaw.json');
if (!fs.existsSync(configFile)) {
console.error(`❌ 致命错误:未找到 OpenClaw 配置文件!`);
console.error(`请确认您已安装 OpenClaw 并运行过 'openclaw onboard'。\n预期路径: ${configFile}`);
process.exit(1);
}
// 2. 动态获取当前解压的绝对路径
const currentDir = __dirname;
const skillId = 'seeed-listing-architect';
const skillFullName = '@seeed/listing-architect';
try {
let cfg = JSON.parse(fs.readFileSync(configFile, 'utf8'));
// --- 暴力修改注册表 ---
// 注册 Installs
if (!cfg.plugins) cfg.plugins = {};
if (!cfg.plugins.installs) cfg.plugins.installs = {};
cfg.plugins.installs[skillId] = {
source: 'local',
installPath: currentDir, // 无论解压到哪,动态吸附绝对路径
version: '1.0.0',
resolvedName: skillFullName
};
// 启用 Entries
if (!cfg.plugins.entries) cfg.plugins.entries = {};
cfg.plugins.entries[skillId] = { enabled: true };
// --- 智能挂载:无差别注入所有 Agent ---
let mountedAgents = [];
if (cfg.agents && Array.isArray(cfg.agents.list) && cfg.agents.list.length > 0) {
cfg.agents.list.forEach(agent => {
if (!agent.skills) agent.skills = [];
if (!agent.skills.includes(skillFullName)) {
agent.skills.push(skillFullName);
}
mountedAgents.push(agent.id);
});
}
// 覆写配置
fs.writeFileSync(configFile, JSON.stringify(cfg, null, 2), 'utf8');
// 打印战报
console.log('✅ 注册表修改成功!');
console.log(`📂 技能物理路径: ${currentDir}`);
if (mountedAgents.length > 0) {
console.log(`🤖 神经元对接成功!已自动挂载至以下 Agent: [ ${mountedAgents.join(', ')} ]`);
} else {
console.log(`⚠️ 注意: 未在配置中找到任何存活的 Agent,技能已安装但未挂载。`);
}
console.log('\n🔥 安装全过程完毕!');
console.log('⚡ 终极行动:请在终端输入并运行以下命令重启网关使配置生效:');
console.log('👉 openclaw gateway restart');
} catch (e) {
console.error('❌ 写入配置时发生系统异常: ', e.message);
}