tolingcode 2026.3.815 → 2026.3.817

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +151 -35
  2. package/bin/tolingcode.js +185 -13
  3. package/package.json +7 -4
package/README.md CHANGED
@@ -1,67 +1,128 @@
1
1
  <p align="center">
2
2
  <img src="https://raw.githubusercontent.com/tolingcode/tolingcode/main/docs/logo.png" width="120" alt="TolingCode Logo">
3
3
  </p>
4
- ![Banner](https://raw.githubusercontent.com/tolingcode/tolingcode/main/docs/banner.png)
5
-
4
+ <p align="center">
5
+ <img src="https://raw.githubusercontent.com/tolingcode/tolingcode/main/docs/banner.png" alt="TolingCode banner">
6
+ </p>
7
+
6
8
  ![npm](https://img.shields.io/npm/v/tolingcode)
7
9
  ![downloads](https://img.shields.io/npm/dm/tolingcode)
8
10
  ![license](https://img.shields.io/badge/license-MIT-green)
9
11
 
10
12
  # TolingCode CLI
11
13
 
12
- **跨境电商私人 AI 助手** - 在个人设备上运行的本地化 AI 自动化工具 , tolingcode Skills完全兼容openclaw。
14
+ **跨境电商私人 AI 助手** - 基于 OpenClaw 的本地化 AI 自动化工具
13
15
 
14
- 为跨境卖家提供订单履约、库存管理、产品刊登、广告管理、数据分析等核心业务能力。
16
+ TolingCode Skills 完全兼容 OpenClaw,为跨境卖家提供订单履约、库存管理、产品刊登、广告管理、数据分析等核心业务能力。
15
17
 
16
18
  ---
17
19
 
18
- ## 安装
20
+ ## 快速开始
21
+
22
+ ### 1. 安装 TolingCode
19
23
 
20
24
  ```bash
21
25
  # 安装最新版本
22
26
  npm install -g tolingcode@latest
27
+ ```
28
+
29
+ ### 2. 安装 OpenClaw
30
+
31
+ ```bash
32
+ # 通过 tolingcode 安装 OpenClaw(推荐)
33
+ tolingcode install openclaw
23
34
 
24
35
  # 安装指定版本
25
- npm install -g tolingcode@2026.03.09
36
+ tolingcode install openclaw -v 2026.3.7
37
+
38
+ # 强制重新安装
39
+ tolingcode install openclaw --force
40
+ ```
41
+
42
+ ### 3. 启动 OpenClaw Gateway
43
+
44
+ ```bash
45
+ openclaw gateway start
26
46
  ```
27
47
 
28
- **当前版本**: 2026.03.09
48
+ ### 4. 安装技能
49
+
50
+ ```bash
51
+ # 安装大健云仓技能(跨境电商 B2B)
52
+ tolingcode install skills gigacloud-warehouse
53
+
54
+ # 安装订单履约管理技能
55
+ tolingcode install skills order-fulfillment
56
+
57
+ # 安装远程 Linux 运维技能
58
+ tolingcode install skills hbj-ai-shell
59
+ ```
29
60
 
30
61
  ---
31
62
 
32
- ## 使用
63
+ ## 命令参考
33
64
 
34
- ### 安装技能 (Skill)
65
+ ### 安装命令
35
66
 
36
67
  ```bash
68
+ # 安装 OpenClaw
69
+ tolingcode install openclaw
70
+
37
71
  # 安装技能
38
- tolingcode install skills weather
72
+ tolingcode install skills <skill-name>
39
73
 
40
- # 安装指定版本
41
- tolingcode install skills weather -v 2026.03.08
42
- ```
74
+ # 安装应用
75
+ tolingcode install apps <app-name>
43
76
 
44
- ### 安装应用 (App)
77
+ # 指定版本安装
78
+ tolingcode install skills <skill-name> -v 2026.3.8
45
79
 
46
- ```bash
47
- # 安装到当前目录
48
- tolingcode install apps myapp
80
+ # 全局安装应用
81
+ tolingcode install apps <app-name> -g
49
82
 
50
- # 全局安装
51
- tolingcode install apps myapp -g
83
+ # 强制重新安装 OpenClaw
84
+ tolingcode install openclaw --force
52
85
  ```
53
86
 
54
87
  ### 查看和搜索
55
88
 
56
89
  ```bash
57
- # 列出所有包
90
+ # 列出所有可用包
58
91
  tolingcode list
59
92
 
60
93
  # 只列出技能
61
94
  tolingcode list skills
62
95
 
96
+ # 只列出应用
97
+ tolingcode list apps
98
+
63
99
  # 搜索技能
64
- tolingcode search weather
100
+ tolingcode search 电商
101
+ tolingcode search gigacloud
102
+ tolingcode search order
103
+ ```
104
+
105
+ ### 发布技能(开发者)
106
+
107
+ ```bash
108
+ tolingcode publish ./my-skill \
109
+ --type skills \
110
+ --name my-skill \
111
+ --version 2026.3.9
112
+ ```
113
+
114
+ ### 其他命令
115
+
116
+ ```bash
117
+ # 查看使用示例
118
+ tolingcode examples
119
+
120
+ # 查看版本
121
+ tolingcode --version
122
+
123
+ # 查看帮助
124
+ tolingcode --help
125
+ tolingcode install --help
65
126
  ```
66
127
 
67
128
  ---
@@ -96,30 +157,52 @@ tolingcode search weather
96
157
 
97
158
  ---
98
159
 
99
- ## 发布技能 (开发者)
160
+ ## 支持平台
100
161
 
101
- ```bash
102
- tolingcode publish ./my-skill \
103
- --type skills \
104
- --name my-skill \
105
- --version 2026.03.09
106
- ```
162
+ **电商平台**: Amazon、eBay、AliExpress、Wish、Shopee、Lazada、Mercado Libre、Etsy、Wayfair、TikTok Shop 等
163
+
164
+ **独立站**: Shopify、WooCommerce、Magento、BigCommerce
107
165
 
108
- ### 版本规范
166
+ **零售平台**: Walmart、Target、Costco、Best Buy 等
109
167
 
110
- 使用日期版本号:`YYYY.MM.DD`
168
+ **海外仓**: 支持 100+ 海外仓系统 (中通国际、Walmart WFS、马士基、RMS 红鼠等)
111
169
 
112
170
  ---
113
171
 
114
- ## 支持平台
172
+ ## 版本规范
115
173
 
116
- **电商平台**: Amazon、eBay、AliExpress、Wish、Shopee、Lazada、Mercado Libre、Etsy、Wayfair、TikTok Shop 等
174
+ 使用日期版本号:`YYYY.M.D`(无前导零)
117
175
 
118
- **独立站**: Shopify、WooCommerce、Magento、BigCommerce
176
+ 示例:
177
+ - ✅ `2026.3.9`
178
+ - ❌ `2026.03.09`
119
179
 
120
- **零售平台**: Walmart、Target、Costco、Best Buy 等
180
+ ---
121
181
 
122
- **海外仓**: 支持 100+ 海外仓系统 (中通国际、Walmart WFS、马士基、RMS 红鼠等)
182
+ ## 私有 Registry
183
+
184
+ TolingCode 支持从私有 Registry 安装技能:
185
+
186
+ ```bash
187
+ # 设置私有 Registry 地址
188
+ set TOLINGCODE_REGISTRY=http://your-registry.com/api/registry
189
+
190
+ # 安装技能
191
+ tolingcode install skills your-skill
192
+ ```
193
+
194
+ ### 部署私有 Registry
195
+
196
+ 参考 `server/registry.js` 部署自己的技能注册中心。
197
+
198
+ ---
199
+
200
+ ## 环境变量
201
+
202
+ | 变量 | 默认值 | 说明 |
203
+ |------|--------|------|
204
+ | `TOLINGCODE_REGISTRY` | `https://toling.me/api/registry` | Registry 服务器地址 |
205
+ | `OPENCLAW_WORKSPACE` | `~/.openclaw/workspace` | OpenClaw 工作目录 |
123
206
 
124
207
  ---
125
208
 
@@ -127,9 +210,42 @@ tolingcode publish ./my-skill \
127
210
 
128
211
  - **Registry**: https://toling.me
129
212
  - **GitHub**: https://github.com/tolingcode/tolingcode
213
+ - **OpenClaw**: https://github.com/openclaw/openclaw
214
+ - **OpenClaw 文档**: https://docs.openclaw.ai
130
215
  - **问题反馈**: GitHub Issues
131
216
 
132
217
  ---
133
218
 
219
+ ## 开发
220
+
221
+ ```bash
222
+ # 克隆仓库
223
+ git clone https://github.com/tolingcode/tolingcode.git
224
+ cd tolingcode
225
+
226
+ # 安装依赖
227
+ npm install
228
+
229
+ # 本地测试
230
+ npm link
231
+
232
+ # 运行命令
233
+ tolingcode --help
234
+ ```
235
+
236
+ ---
237
+
238
+ ## 更新日志
239
+
240
+ ### 2026.3.21
241
+
242
+ - ✨ 新增:支持通过 `tolingcode install openclaw` 安装/更新 OpenClaw
243
+ - ✨ 新增:支持 `--force` 参数强制重装 OpenClaw
244
+ - ✨ 新增:支持 `-v` 参数指定 OpenClaw 版本
245
+ - 🎨 改进:统一命令入口,所有安装通过 `tolingcode` 管理
246
+ - 📝 改进:完善帮助信息和文档
247
+
248
+ ---
249
+
134
250
  **作者**: 韩宝军 (TolingCode)
135
251
  **License**: MIT
package/bin/tolingcode.js CHANGED
@@ -16,18 +16,152 @@ const REGISTRY_URL = process.env.TOLINGCODE_REGISTRY || 'https://toling.me/api/r
16
16
 
17
17
  program
18
18
  .name('tolingcode')
19
- .description('TolingCode CLI - Install skills and apps from toling.me')
20
- .version(pkg.version);
19
+ .description(chalk.hex('#0de900')('TolingCode CLI - 鲸汇跨境电商 AI 助手技能管理工具'))
20
+ .version(pkg.version, '-v, --version', chalk.hex('#FFFFFF')('显示版本号'))
21
+ .addHelpText('after', `
22
+ ${chalk.hex('#0de900').bold('快速开始:')}
23
+ ${chalk.hex('#ff6319')('# 安装 OpenClaw')}
24
+ ${chalk.hex('#0de900')('$ tolingcode install openclaw')} ${chalk.white('# 安装/更新 OpenClaw')}
25
+ ${chalk.hex('#0de900')('$ tolingcode install openclaw -v 2026.3.7')} ${chalk.white('# 安装指定版本')}
26
+
27
+ ${chalk.hex('#ff6319')('# 安装技能')}
28
+ ${chalk.hex('#0de900')('$ tolingcode install skills gigacloud-warehouse')} ${chalk.white('# 大健云仓(跨境电商 B2B)')}
29
+ ${chalk.hex('#0de900')('$ tolingcode install skills order-fulfillment')} ${chalk.white('# 订单履约管理')}
30
+ ${chalk.hex('#0de900')('$ tolingcode install skills hbj-ai-shell')} ${chalk.white('# 远程 Linux 运维')}
31
+
32
+ ${chalk.hex('#ff6319')('# 列出技能')}
33
+ ${chalk.hex('#0de900')('$ tolingcode list skills')}
34
+
35
+ ${chalk.hex('#ff6319')('# 搜索技能')}
36
+ ${chalk.hex('#0de900')('$ tolingcode search 电商')}
37
+ ${chalk.hex('#0de900')('$ tolingcode search gigacloud')}
38
+
39
+ ${chalk.hex('#ff6319')('# 查看更多示例')}
40
+ ${chalk.hex('#0de900')('$ tolingcode examples')}
41
+ `);
21
42
 
22
- // install command
43
+ // Override help output colors - all orange
44
+ const originalHelpInformation = program.helpInformation.bind(program);
45
+ program.helpInformation = function() {
46
+ const help = originalHelpInformation();
47
+ return help
48
+ .replace(/^(Options:)/gm, chalk.hex('#0de900').bold('$1'))
49
+ .replace(/^(Commands:)/gm, chalk.hex('#0de900').bold('$1'))
50
+ .replace(/^ (-v, --version)/gm, chalk.hex('#0de900')('$1'))
51
+ .replace(/^ (-h, --help)/gm, chalk.hex('#0de900')('$1'))
52
+ .replace(/^ (install)/gm, chalk.hex('#0de900')('$1'))
53
+ .replace(/^ (list)/gm, chalk.hex('#0de900')('$1'))
54
+ .replace(/^ (search)/gm, chalk.hex('#0de900')('$1'))
55
+ .replace(/^ (publish)/gm, chalk.hex('#0de900')('$1'))
56
+ .replace(/^ (examples)/gm, chalk.hex('#0de900')('$1'))
57
+ .replace(/^ (help)/gm, chalk.hex('#0de900')('$1'));
58
+ };
59
+
60
+ /**
61
+ * 安装/更新 OpenClaw
62
+ */
63
+ async function installOpenClaw(name, version, force) {
64
+ const versionStr = version === 'latest' ? 'latest' : version;
65
+
66
+ console.log(chalk.blue(`\n📦 准备安装 OpenClaw@${versionStr}...\n`));
67
+
68
+ // 检查当前版本
69
+ let currentVersion = null;
70
+ try {
71
+ currentVersion = execSync('openclaw --version', { encoding: 'utf-8' }).trim();
72
+ console.log(chalk.gray(` 当前版本:${currentVersion}`));
73
+ } catch (e) {
74
+ console.log(chalk.gray(` 当前版本:未安装`));
75
+ }
76
+
77
+ // 获取最新版本
78
+ let latestVersion = null;
79
+ try {
80
+ latestVersion = execSync('npm view openclaw version', { encoding: 'utf-8' }).trim();
81
+ console.log(chalk.gray(` 最新版本:${latestVersion}\n`));
82
+ } catch (e) {
83
+ // 忽略
84
+ }
85
+
86
+ // 检查是否需要更新
87
+ if (!force && currentVersion && latestVersion && currentVersion === latestVersion) {
88
+ console.log(chalk.green(`\n✅ 已是最新版本:${currentVersion}`));
89
+ console.log(chalk.gray(` 如需强制重装,使用 --force 参数\n`));
90
+ return;
91
+ }
92
+
93
+ // 开始安装
94
+ const installVersion = version === 'latest' ? '' : `@${version}`;
95
+ const spinner = ora(`安装 openclaw${installVersion}...`).start();
96
+
97
+ try {
98
+ execSync(`npm install -g openclaw${installVersion}`, {
99
+ encoding: 'utf-8',
100
+ stdio: 'pipe'
101
+ });
102
+
103
+ spinner.stop();
104
+ console.log(chalk.green('\n✅ 安装完成!\n'));
105
+
106
+ // 验证安装
107
+ const newVersion = execSync('openclaw --version', { encoding: 'utf-8' }).trim();
108
+ console.log(chalk.green(`📦 已安装版本:${newVersion}\n`));
109
+
110
+ // 检查 Gateway 状态
111
+ console.log(chalk.gray('🔍 检查 Gateway 状态...'));
112
+ try {
113
+ const status = execSync('openclaw gateway status', { encoding: 'utf-8' });
114
+ if (status.includes('Listening')) {
115
+ console.log(chalk.green('✅ Gateway 运行正常\n'));
116
+ } else {
117
+ console.log(chalk.yellow('⚠️ Gateway 未运行\n'));
118
+ console.log(chalk.gray(' 启动命令:openclaw gateway start\n'));
119
+ }
120
+ } catch (e) {
121
+ console.log(chalk.yellow('⚠️ Gateway 未运行\n'));
122
+ console.log(chalk.gray(' 启动命令:openclaw gateway start\n'));
123
+ }
124
+
125
+ console.log(chalk.cyan('💡 常用命令:'));
126
+ console.log(chalk.gray(' openclaw --version 查看版本'));
127
+ console.log(chalk.gray(' openclaw gateway start 启动 Gateway'));
128
+ console.log(chalk.gray(' tolingcode list skills 查看可用技能\n'));
129
+
130
+ } catch (e) {
131
+ spinner.stop();
132
+ console.log(chalk.red(`\n❌ 安装失败:${e.message}\n`));
133
+ console.log(chalk.gray('请检查:'));
134
+ console.log(chalk.gray(' 1. 网络连接是否正常'));
135
+ console.log(chalk.gray(' 2. npm 是否已安装'));
136
+ console.log(chalk.gray(' 3. 是否有管理员权限\n'));
137
+ process.exit(1);
138
+ }
139
+ }
140
+
141
+ // install command - support both "install openclaw" and "install type name"
23
142
  program
24
- .command('install <type> <name>')
25
- .description('Install a skill or app')
26
- .option('-v, --version <version>', 'Specify version (e.g., 2026.02.26 or latest)')
27
- .option('-g, --global', 'Install globally (for apps)')
143
+ .command('install <type> [name]')
144
+ .description('安装技能、应用或 OpenClaw 本身')
145
+ .option('-v, --version <version>', '指定版本 (默认:latest)')
146
+ .option('-g, --global', '全局安装 ( apps)')
147
+ .option('--force', '强制重新安装 (仅 openclaw)')
28
148
  .action(async (type, name, options) => {
29
149
  const version = options.version || 'latest';
30
150
 
151
+ // 特殊处理:安装 OpenClaw 本身
152
+ if (type === 'openclaw' || name === 'openclaw') {
153
+ await installOpenClaw('openclaw', version, options.force || false);
154
+ return;
155
+ }
156
+
157
+ // 需要 type 和 name
158
+ if (!name) {
159
+ console.log(chalk.red('\n✗ 错误:缺少参数 name'));
160
+ console.log(chalk.gray(' 用法:tolingcode install <type> <name>\n'));
161
+ program.outputHelp();
162
+ process.exit(1);
163
+ }
164
+
31
165
  console.log(chalk.blue(`\n🔍 Searching for ${type}: ${name}@${version}...`));
32
166
 
33
167
  try {
@@ -114,7 +248,7 @@ program
114
248
  // list command - list available skills/apps
115
249
  program
116
250
  .command('list [type]')
117
- .description('List available skills or apps')
251
+ .description('列出可用的技能或应用 (skills | apps | all)')
118
252
  .action(async (type) => {
119
253
  console.log(chalk.blue('\n📦 Available packages:\n'));
120
254
 
@@ -160,7 +294,7 @@ program
160
294
  // search command
161
295
  program
162
296
  .command('search <query>')
163
- .description('Search for skills or apps')
297
+ .description('搜索技能或应用')
164
298
  .action(async (query) => {
165
299
  console.log(chalk.blue(`\n🔍 Searching for: ${query}\n`));
166
300
 
@@ -189,10 +323,10 @@ program
189
323
  // publish command - for publishing skills/apps to registry
190
324
  program
191
325
  .command('publish <path>')
192
- .description('Publish a skill or app to the registry')
193
- .option('--type <type>', 'Package type (skills or apps)', 'skills')
194
- .option('--name <name>', 'Package name')
195
- .option('--version <version>', 'Package version')
326
+ .description('发布技能或应用到 registry')
327
+ .option('--type <type>', '包类型 (skills apps)', 'skills')
328
+ .option('--name <name>', '包名称')
329
+ .option('--version <version>', '包版本号')
196
330
  .action(async (pkgPath, options) => {
197
331
  const absPath = path.resolve(pkgPath);
198
332
 
@@ -228,4 +362,42 @@ program
228
362
  console.log(chalk.gray(' See: docs/PUBLISH.md for details'));
229
363
  });
230
364
 
365
+ // examples command
366
+ program
367
+ .command('examples')
368
+ .description('显示使用示例')
369
+ .action(() => {
370
+ console.log(`
371
+ ${chalk.bold('常用命令示例:')}
372
+
373
+ ${chalk.green('1. 安装技能')}
374
+ $ tolingcode install skills gigacloud-warehouse
375
+ $ tolingcode install skills order-fulfillment
376
+ $ tolingcode install skills weather -v 2026.3.8
377
+
378
+ ${chalk.green('2. 列出技能')}
379
+ $ tolingcode list skills
380
+ $ tolingcode list apps
381
+ $ tolingcode list
382
+
383
+ ${chalk.green('3. 搜索技能')}
384
+ $ tolingcode search 电商
385
+ $ tolingcode search gigacloud
386
+ $ tolingcode search order
387
+
388
+ ${chalk.green('4. 发布技能')}
389
+ $ tolingcode publish ./skills/gigacloud-warehouse --type skills --name gigacloud-warehouse --version 2026.3.8
390
+
391
+ ${chalk.green('5. 查看帮助')}
392
+ $ tolingcode --help
393
+ $ tolingcode install --help
394
+ $ tolingcode search --help
395
+
396
+ ${chalk.green('6. 查看版本')}
397
+ $ tolingcode -v
398
+ $ tolingcode --version
399
+ `);
400
+ });
401
+
231
402
  program.parse();
403
+
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "tolingcode",
3
- "version": "2026.03.815",
4
- "description": "TolingCode CLI - Install skills and apps from toling.me",
3
+ "version": "2026.3.817",
4
+ "description": "TolingCode CLI - 跨境电商 AI 助手技能管理工具 (基于 OpenClaw)",
5
5
  "main": "bin/tolingcode.js",
6
6
  "files": [
7
7
  "bin",
@@ -21,10 +21,13 @@
21
21
  "author": "TolingCode",
22
22
  "license": "MIT",
23
23
  "dependencies": {
24
- "commander": "^11.0.0",
24
+ "axios": "^1.6.0",
25
25
  "chalk": "^4.1.2",
26
+ "commander": "^11.0.0",
27
+ "cors": "^2.8.6",
28
+ "express": "^5.2.1",
29
+ "multer": "^2.1.1",
26
30
  "ora": "^5.4.1",
27
- "axios": "^1.6.0",
28
31
  "tar": "^6.2.0"
29
32
  },
30
33
  "engines": {