@wecom/wecom-openclaw-cli 1.0.7 → 1.0.9

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.
package/README.md CHANGED
@@ -41,40 +41,66 @@ wecom-openclaw-cli --help
41
41
 
42
42
  ### `install` — 安装插件
43
43
 
44
- 安装并配置企业微信官方 OpenClaw 插件。安装过程中会交互式提示输入机器人ID(Bot ID)和机器人密钥(Secret)。
44
+ 安装并配置企业微信官方 OpenClaw 插件。安装过程中会自动检测并禁用冲突插件,并交互式提示输入机器人 ID(Bot ID)和机器人密钥(Secret)。
45
+
46
+ > **提示**:如果插件已安装,`install` 会自动进入更新流程,无需手动调用 `update`。
45
47
 
46
48
  ```bash
47
49
  wecom-openclaw-cli install
48
50
 
49
51
  # 指定版本安装
50
52
  wecom-openclaw-cli install --version 1.2.0
53
+
54
+ # 强制重新安装(清除已有插件和配置后全量重装)
55
+ wecom-openclaw-cli install --force
56
+
57
+ # 指定 npm 包名(适用于私有源或自定义包名场景)
58
+ wecom-openclaw-cli install --package-name @my-scope/my-plugin
51
59
  ```
52
60
 
61
+ | 参数 | 说明 |
62
+ |------|------|
63
+ | `--version <version>` | 安装指定版本的插件 |
64
+ | `--package-name <packageName>` | 指定 npm 包名(默认 `@wecom/wecom-openclaw-plugin`) |
65
+ | `--force` | 强制重新安装,清除已有插件目录和配置 |
66
+
53
67
  ### `update` — 更新插件
54
68
 
55
- 将已安装的企业微信插件更新到最新版本或指定版本。
69
+ 将已安装的企业微信插件更新到最新版本或指定版本。更新完成后会自动运行 `doctor` 诊断检查。
56
70
 
57
71
  ```bash
58
72
  wecom-openclaw-cli update
59
73
 
60
74
  # 更新到指定版本
61
75
  wecom-openclaw-cli update --version 1.3.0
76
+
77
+ # 指定 npm 包名
78
+ wecom-openclaw-cli update --package-name @my-scope/my-plugin
62
79
  ```
63
80
 
81
+ | 参数 | 说明 |
82
+ |------|------|
83
+ | `--version <version>` | 更新到指定版本的插件 |
84
+ | `--package-name <packageName>` | 指定 npm 包名(默认 `@wecom/wecom-openclaw-plugin`) |
85
+
64
86
  ### `info` — 查看信息
65
87
 
66
- 显示 CLI 版本、OpenClaw 版本和插件版本等信息。
88
+ 显示 CLI 版本、OpenClaw 版本、插件版本和环境信息。
67
89
 
68
90
  ```bash
69
91
  wecom-openclaw-cli info
70
92
 
71
- # 显示完整配置详情
93
+ # 显示完整详情(含配置状态、冲突插件检测、npm 源连通性及脱敏后的配置内容)
72
94
  wecom-openclaw-cli info --all
73
95
  ```
74
96
 
97
+ | 参数 | 说明 |
98
+ |------|------|
99
+ | `--all` | 显示所有详细信息,包括配置状态、冲突插件、npm 源连通性和脱敏配置 |
100
+
75
101
  ### `doctor` — 诊断问题
76
102
 
77
- 检查插件安装状态、依赖完整性和配置正确性。
103
+ 全面检查插件安装状态,包括:插件目录、依赖完整性、配置正确性、冲突插件检测和 channel 配置。
78
104
 
79
105
  ```bash
80
106
  wecom-openclaw-cli doctor
@@ -83,6 +109,20 @@ wecom-openclaw-cli doctor
83
109
  wecom-openclaw-cli doctor --fix
84
110
  ```
85
111
 
112
+ | 参数 | 说明 |
113
+ |------|------|
114
+ | `--fix` | 尝试自动修复检测到的问题(如安装依赖、移除冲突插件、补全配置等) |
115
+
116
+ ## 其他
117
+
118
+ ### 版本查看
119
+
120
+ ```bash
121
+ wecom-openclaw-cli -V
122
+ # 或
123
+ wecom-openclaw-cli --cli-version
124
+ ```
125
+
86
126
  ## License
87
127
 
88
128
  ISC
@@ -1 +1 @@
1
- {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAuGhF"}
1
+ {"version":3,"file":"info.d.ts","sourceRoot":"","sources":["../../src/commands/info.ts"],"names":[],"mappings":"AASA;;GAEG;AACH,wBAAsB,WAAW,CAAC,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CA8GhF"}
@@ -50,12 +50,17 @@ async function infoCommand(options = {}) {
50
50
  (openClawVersion !== '未安装'
51
51
  ? chalk.green(openClawVersion)
52
52
  : chalk.red(openClawVersion)));
53
- // 2. 获取插件版本
53
+ // 2. 获取插件包名和版本
54
+ const pluginPackageName = (await plugin.getPluginPackageName()) ?? '未安装';
54
55
  const pluginVersion = (await plugin.getPluginVersion()) ?? '未安装';
55
56
  console.log(chalk.bold('wecom-openclaw-plugin: ') +
56
57
  (pluginVersion !== '未安装'
57
58
  ? chalk.green(pluginVersion)
58
59
  : chalk.red(pluginVersion)));
60
+ console.log(chalk.bold('plugin package: ') +
61
+ (pluginPackageName !== '未安装'
62
+ ? chalk.green(pluginPackageName)
63
+ : chalk.red(pluginPackageName)));
59
64
  // 3. 环境信息
60
65
  console.log('');
61
66
  console.log(chalk.bold.underline('环境信息:'));
@@ -115,7 +120,7 @@ async function infoCommand(options = {}) {
115
120
  }
116
121
  }
117
122
  catch (error) {
118
- console.error(chalk.red('获取信息失败。'));
123
+ console.error(chalk.red('获取信息失败:'), error instanceof Error ? error.message : error);
119
124
  }
120
125
  }
121
126
 
@@ -1 +1 @@
1
- {"version":3,"file":"info.js","sources":["../../src/commands/info.ts"],"sourcesContent":[null],"names":["pkg","getPlatformCommand","runCommandQuiet","getPluginVersion","os","getConfigPath","fs","config","readConfig","PLUGIN_NAME","CONFLICT_PLUGINS","NPM_REGISTRIES"],"mappings":"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"}
1
+ {"version":3,"file":"info.js","sources":["../../src/commands/info.ts"],"sourcesContent":[null],"names":["pkg","getPlatformCommand","runCommandQuiet","getPluginPackageName","getPluginVersion","os","getConfigPath","fs","config","readConfig","PLUGIN_NAME","CONFLICT_PLUGINS","NPM_REGISTRIES"],"mappings":"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"}
@@ -3,5 +3,7 @@
3
3
  */
4
4
  export declare function installCommand(options: {
5
5
  version?: string;
6
+ packageName?: string;
7
+ force?: boolean;
6
8
  }): Promise<void>;
7
9
  //# sourceMappingURL=install.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AA4DA;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyFjF"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/commands/install.ts"],"names":[],"mappings":"AAuDA;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAoHxH"}
@@ -63,10 +63,6 @@ async function ensureChannelConfig() {
63
63
  if (!newConfig.channels.wecom.secret) {
64
64
  newConfig.channels.wecom.secret = await prompts.promptSecret();
65
65
  }
66
- // // 确保 dmPolicy 设置正确
67
- // if (!newConfig.channels.wecom.dmPolicy) {
68
- // newConfig.channels.wecom.dmPolicy = 'pairing';
69
- // }
70
66
  // 更新 plugins.allow
71
67
  if (!newConfig.plugins)
72
68
  newConfig.plugins = {};
@@ -82,8 +78,33 @@ async function ensureChannelConfig() {
82
78
  */
83
79
  async function installCommand(options) {
84
80
  console.log(chalk.blue('开始安装...'));
85
- // 1. 检查已有安装
86
- if (await fs__namespace.pathExists(constants.PLUGIN_PATH)) {
81
+ // 0. force 模式:清理所有已有安装和配置,重新全量安装
82
+ if (options.force) {
83
+ console.log(chalk.yellow('强制安装模式,正在清理已有安装...'));
84
+ // 禁用冲突插件并清除 channels.wecom 配置(合并为一次读写)
85
+ console.log(chalk.blue('正在禁用冲突插件并清理配置...'));
86
+ const currentConfig = await config.readConfig();
87
+ const cleanedConfig = await plugin.disableConflictPlugins(currentConfig);
88
+ if (cleanedConfig.channels?.wecom) {
89
+ delete cleanedConfig.channels.wecom;
90
+ console.log(chalk.blue('已清除 channels.wecom 配置。'));
91
+ }
92
+ await config.writeConfig(cleanedConfig);
93
+ // 移除所有冲突目录
94
+ for (const conflictPath of constants.CONFLICT_PLUGIN_PATHS) {
95
+ if (await fs__namespace.pathExists(conflictPath)) {
96
+ console.log(chalk.blue(`正在移除冲突的插件目录: ${conflictPath}...`));
97
+ await fs__namespace.remove(conflictPath);
98
+ }
99
+ }
100
+ // 移除 wecom-openclaw-plugin 目录
101
+ if (await fs__namespace.pathExists(constants.PLUGIN_PATH)) {
102
+ console.log(chalk.blue(`正在移除插件目录: ${constants.PLUGIN_PATH}...`));
103
+ await fs__namespace.remove(constants.PLUGIN_PATH);
104
+ }
105
+ }
106
+ else if (await fs__namespace.pathExists(constants.PLUGIN_PATH)) {
107
+ // 1. 非 force 模式下检查已有安装,走更新流程
87
108
  console.log(chalk.yellow('插件已安装,开始更新流程...'));
88
109
  const newVersion = await update.updateCommand(options, true);
89
110
  // 更新后验证配置
@@ -106,33 +127,33 @@ async function installCommand(options) {
106
127
  const openclawCmd = system.getPlatformCommand('openclaw');
107
128
  const version = system.runCommandQuiet(`${openclawCmd} --version`);
108
129
  if (plugin.compareVersions(version, '2026.2.13') < 0) {
109
- console.error(chalk.red(`错误: OpenClaw 版本不匹配,需要 >= 2026.2.13,当前版本 ${version},请升级。`));
130
+ console.error(chalk.red(`错误: OpenClaw 版本不匹配,需要 >= 2026.2.13,当前版本 ${version},请升级: openclaw update。`));
110
131
  process.exit(1);
111
132
  }
112
133
  }
113
134
  catch (error) {
114
135
  const isWin = process.platform === 'win32';
115
- console.error(chalk.red('错误: OpenClaw 未安装或未添加到 PATH 环境变量。'));
136
+ console.error(chalk.red('错误: OpenClaw 未安装或未添加到 PATH 环境变量。 https://openclaw.ai/'));
116
137
  if (isWin) {
117
138
  console.error(chalk.yellow('提示: Windows 用户请确认已将 OpenClaw 安装目录添加到系统 PATH 中,安装后可能需要重启终端。'));
118
139
  }
119
140
  process.exit(1);
120
141
  }
121
- // 4. 禁用冲突插件
122
- console.log(chalk.blue('正在禁用冲突插件...'));
123
- await plugin.disableConflictPlugins();
124
- // 5. 移除冲突目录
125
- // 确保 cwd 不在即将被删除的目录内,防止 uv_cwd 错误
126
- system.ensureSafeCwd(constants.CONFLICT_PLUGIN_PATHS, constants.EXTENSIONS_DIR);
127
- for (const conflictPath of constants.CONFLICT_PLUGIN_PATHS) {
128
- if (await fs__namespace.pathExists(conflictPath)) {
129
- console.log(chalk.blue(`正在移除冲突的插件目录: ${conflictPath}...`));
130
- await fs__namespace.remove(conflictPath);
142
+ // 4. 禁用冲突插件(force 模式下已在前面执行过,跳过)
143
+ if (!options.force) {
144
+ console.log(chalk.blue('正在禁用冲突插件...'));
145
+ await plugin.disableConflictPlugins();
146
+ // 5. 移除冲突目录
147
+ for (const conflictPath of constants.CONFLICT_PLUGIN_PATHS) {
148
+ if (await fs__namespace.pathExists(conflictPath)) {
149
+ console.log(chalk.blue(`正在移除冲突的插件目录: ${conflictPath}...`));
150
+ await fs__namespace.remove(conflictPath);
151
+ }
131
152
  }
132
153
  }
133
154
  // 6. 安装官方插件
134
155
  console.log(chalk.blue('正在安装官方 WeCom 插件...'));
135
- const installed = plugin.installPluginFromRegistry(options.version);
156
+ const installed = plugin.installPluginFromRegistry(options.version, options.packageName);
136
157
  if (!installed) {
137
158
  process.exit(1);
138
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"install.js","sources":["../../src/commands/install.ts"],"sourcesContent":[null],"names":["readConfig","promptConfirmBotId","promptBotId","promptSecret","PLUGIN_NAME","writeConfig","fs","PLUGIN_PATH","updateCommand","validateVersion","getPlatformCommand","runCommandQuiet","compareVersions","disableConflictPlugins","ensureSafeCwd","CONFLICT_PLUGIN_PATHS","EXTENSIONS_DIR","installPluginFromRegistry","path"],"mappings":"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"}
1
+ {"version":3,"file":"install.js","sources":["../../src/commands/install.ts"],"sourcesContent":[null],"names":["readConfig","promptConfirmBotId","promptBotId","promptSecret","PLUGIN_NAME","writeConfig","disableConflictPlugins","CONFLICT_PLUGIN_PATHS","fs","PLUGIN_PATH","updateCommand","validateVersion","getPlatformCommand","runCommandQuiet","compareVersions","installPluginFromRegistry","path"],"mappings":"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"}
@@ -3,5 +3,6 @@
3
3
  */
4
4
  export declare function updateCommand(options: {
5
5
  version?: string;
6
+ packageName?: string;
6
7
  }, silent?: boolean): Promise<string | undefined>;
7
8
  //# sourceMappingURL=update.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAQA;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,EAC7B,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CA+E7B"}
1
+ {"version":3,"file":"update.d.ts","sourceRoot":"","sources":["../../src/commands/update.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,wBAAsB,aAAa,CACjC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAC;IAAC,WAAW,CAAC,EAAE,MAAM,CAAA;CAAE,EACnD,MAAM,GAAE,OAAe,GACtB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAoC7B"}
@@ -1,32 +1,10 @@
1
1
  'use strict';
2
2
 
3
- var fs = require('fs-extra');
4
3
  var chalk = require('chalk');
5
- var config = require('../utils/config.js');
6
4
  var system = require('../utils/system.js');
7
5
  var doctor = require('./doctor.js');
8
- var constants = require('../utils/constants.js');
9
6
  var plugin = require('../utils/plugin.js');
10
7
 
11
- function _interopNamespaceDefault(e) {
12
- var n = Object.create(null);
13
- if (e) {
14
- Object.keys(e).forEach(function (k) {
15
- if (k !== 'default') {
16
- var d = Object.getOwnPropertyDescriptor(e, k);
17
- Object.defineProperty(n, k, d.get ? d : {
18
- enumerable: true,
19
- get: function () { return e[k]; }
20
- });
21
- }
22
- });
23
- }
24
- n.default = e;
25
- return Object.freeze(n);
26
- }
27
-
28
- var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
29
-
30
8
  /**
31
9
  * update 命令
32
10
  */
@@ -37,51 +15,15 @@ async function updateCommand(options, silent = false) {
37
15
  console.error(chalk.red('错误: 版本号格式不合法,只允许数字、点、连字符和字母。'));
38
16
  process.exit(1);
39
17
  }
40
- // 2. 备份配置,以便安装失败时回滚
41
- console.log(chalk.blue('正在清理配置...'));
42
- const config$1 = await config.readConfig();
43
- const configBackup = JSON.parse(JSON.stringify(config$1));
44
- // 移除 plugins.entries 中的插件配置
45
- if (config$1.plugins?.entries?.[constants.PLUGIN_NAME]) {
46
- delete config$1.plugins.entries[constants.PLUGIN_NAME];
47
- }
48
- // 从 plugins.allow 中移除当前插件和冲突插件
49
- if (config$1.plugins?.allow) {
50
- config$1.plugins.allow = config$1.plugins.allow.filter((name) => name !== constants.PLUGIN_NAME && !constants.CONFLICT_PLUGINS.includes(name));
51
- }
52
- await config.writeConfig(config$1);
53
- // 3. 删除旧文件
54
- // 确保 cwd 不在即将被删除的目录内,防止 uv_cwd 错误
55
- system.ensureSafeCwd([constants.PLUGIN_PATH], constants.EXTENSIONS_DIR);
56
- console.log(chalk.blue('正在移除旧版插件文件...'));
57
- if (await fs__namespace.pathExists(constants.PLUGIN_PATH)) {
58
- await fs__namespace.remove(constants.PLUGIN_PATH);
59
- }
60
- // 4. 安装新版本
61
- console.log(chalk.blue('正在安装新版本...'));
62
- const installed = plugin.installPluginFromRegistry(options.version);
18
+ // 2. 更新插件
19
+ console.log(chalk.blue('正在更新插件...'));
20
+ const installed = plugin.updatePluginFromRegistry(options.version, options.packageName);
63
21
  if (!installed) {
64
- // 安装失败时回滚配置
65
- console.log(chalk.yellow('正在回滚配置...'));
66
- await config.writeConfig(configBackup);
67
22
  process.exit(1);
68
23
  }
69
- // 5. 更新配置
70
- console.log(chalk.blue('正在更新配置...'));
71
- const newConfig = await config.readConfig();
72
- if (!newConfig.plugins)
73
- newConfig.plugins = {};
74
- if (!newConfig.plugins.allow)
75
- newConfig.plugins.allow = [];
76
- if (!newConfig.plugins.allow.includes(constants.PLUGIN_NAME)) {
77
- newConfig.plugins.allow.push(constants.PLUGIN_NAME);
78
- }
79
- // 禁用冲突插件并从 allow 列表移除
80
- await plugin.disableConflictPlugins(newConfig);
81
- await config.writeConfig(newConfig);
82
- // 6. 运行 Doctor 检查
24
+ // 3. 运行 Doctor 检查(仅诊断,doctor 内部会输出检查结果)
83
25
  await doctor.doctorCommand();
84
- // 7. 报告结果和版本
26
+ // 4. 报告结果和版本
85
27
  const version = await plugin.getPluginVersion();
86
28
  if (version) {
87
29
  if (!silent) {
@@ -1 +1 @@
1
- {"version":3,"file":"update.js","sources":["../../src/commands/update.ts"],"sourcesContent":[null],"names":["validateVersion","config","readConfig","PLUGIN_NAME","CONFLICT_PLUGINS","writeConfig","ensureSafeCwd","PLUGIN_PATH","EXTENSIONS_DIR","fs","installPluginFromRegistry","disableConflictPlugins","doctorCommand","getPluginVersion"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAQA;;AAEG;AACI,eAAe,aAAa,CACjC,OAA6B,EAC7B,SAAkB,KAAK,EAAA;IAEvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;AAGpC,IAAA,IAAI,OAAO,CAAC,OAAO,IAAI,CAACA,sBAAe,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACxD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;AACxD,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB;;IAGA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpC,IAAA,MAAMC,QAAM,GAAG,MAAMC,iBAAU,EAAE;AACjC,IAAA,MAAM,YAAY,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAACD,QAAM,CAAC,CAAC;;IAGvD,IAAIA,QAAM,CAAC,OAAO,EAAE,OAAO,GAAGE,qBAAW,CAAC,EAAE;QAC1C,OAAOF,QAAM,CAAC,OAAO,CAAC,OAAO,CAACE,qBAAW,CAAC;IAC5C;;AAGA,IAAA,IAAIF,QAAM,CAAC,OAAO,EAAE,KAAK,EAAE;AACzB,QAAAA,QAAM,CAAC,OAAO,CAAC,KAAK,GAAGA,QAAM,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAChD,CAAC,IAAY,KAAK,IAAI,KAAKE,qBAAW,IAAI,CAACC,0BAAgB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAC3E;IACH;AAEA,IAAA,MAAMC,kBAAW,CAACJ,QAAM,CAAC;;;AAIzB,IAAAK,oBAAa,CAAC,CAACC,qBAAW,CAAC,EAAEC,wBAAc,CAAC;IAC5C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACxC,IAAI,MAAMC,aAAE,CAAC,UAAU,CAACF,qBAAW,CAAC,EAAE;AACpC,QAAA,MAAME,aAAE,CAAC,MAAM,CAACF,qBAAW,CAAC;IAC9B;;IAGA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACrC,MAAM,SAAS,GAAGG,gCAAyB,CAAC,OAAO,CAAC,OAAO,CAAC;IAC5D,IAAI,CAAC,SAAS,EAAE;;QAEd,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AACtC,QAAA,MAAML,kBAAW,CAAC,YAAY,CAAC;AAC/B,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB;;IAGA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpC,IAAA,MAAM,SAAS,GAAG,MAAMH,iBAAU,EAAE;IACpC,IAAI,CAAC,SAAS,CAAC,OAAO;AAAE,QAAA,SAAS,CAAC,OAAO,GAAG,EAAE;AAC9C,IAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK;AAAE,QAAA,SAAS,CAAC,OAAO,CAAC,KAAK,GAAG,EAAE;AAC1D,IAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,QAAQ,CAACC,qBAAW,CAAC,EAAE;QAClD,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,CAACA,qBAAW,CAAC;IAC3C;;AAGA,IAAA,MAAMQ,6BAAsB,CAAC,SAAS,CAAC;AACvC,IAAA,MAAMN,kBAAW,CAAC,SAAS,CAAC;;IAG5B,MAAMO,oBAAa,EAAE;;AAGrB,IAAA,MAAM,OAAO,GAAG,MAAMC,uBAAgB,EAAE;IACxC,IAAI,OAAO,EAAE;QACX,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA,UAAA,EAAa,OAAO,CAAA,CAAE,CAAC,CAAC;QAClD;IACF;SAAO;QACL,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,sCAAsC,CACvC,CACF;QACH;IACF;AAEA,IAAA,OAAO,OAAO;AAChB;;;;"}
1
+ {"version":3,"file":"update.js","sources":["../../src/commands/update.ts"],"sourcesContent":[null],"names":["validateVersion","updatePluginFromRegistry","doctorCommand","getPluginVersion"],"mappings":";;;;;;;AAKA;;AAEG;AACI,eAAe,aAAa,CACjC,OAAmD,EACnD,SAAkB,KAAK,EAAA;IAEvB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;AAGpC,IAAA,IAAI,OAAO,CAAC,OAAO,IAAI,CAACA,sBAAe,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE;QACxD,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAC;AACxD,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB;;IAGA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACpC,IAAA,MAAM,SAAS,GAAGC,+BAAwB,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,WAAW,CAAC;IAChF,IAAI,CAAC,SAAS,EAAE;AACd,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB;;IAGA,MAAMC,oBAAa,EAAE;;AAGrB,IAAA,MAAM,OAAO,GAAG,MAAMC,uBAAgB,EAAE;IACxC,IAAI,OAAO,EAAE;QACX,IAAI,CAAC,MAAM,EAAE;AACX,YAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAA,UAAA,EAAa,OAAO,CAAA,CAAE,CAAC,CAAC;QAClD;IACF;SAAO;QACL,IAAI,CAAC,MAAM,EAAE;YACX,OAAO,CAAC,IAAI,CACV,KAAK,CAAC,MAAM,CACV,sCAAsC,CACvC,CACF;QACH;IACF;AAEA,IAAA,OAAO,OAAO;AAChB;;;;"}
package/dist/index.js CHANGED
@@ -22,6 +22,8 @@ program
22
22
  .command('install')
23
23
  .description('安装并配置企业微信官方插件')
24
24
  .option('--version <version>', '安装指定版本的插件')
25
+ .option('--package-name <packageName>', '指定 npm 包名(默认 @wecom/wecom-openclaw-plugin)')
26
+ .option('--force', '强制重新安装,清除已有插件和配置')
25
27
  .action(async (options) => {
26
28
  await install.installCommand(options);
27
29
  });
@@ -46,6 +48,7 @@ program
46
48
  .command('update')
47
49
  .description('更新企业微信官方插件')
48
50
  .option('--version <version>', '更新到指定版本的插件')
51
+ .option('--package-name <packageName>', '指定 npm 包名(默认 @wecom/wecom-openclaw-plugin)')
49
52
  .action(async (options) => {
50
53
  await update.updateCommand(options);
51
54
  });
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":["Command","pkg","installCommand","infoCommand","doctorCommand","updateCommand"],"mappings":";;;;;;;;;;AAOA;AACA,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,KAAI;AACvC,IAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC;AAC7B,IAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,IAAIA,iBAAO,EAAE;AAE7B;KACG,IAAI,CAAC,oBAAoB;KACzB,WAAW,CAAC,sBAAsB;AAClC,KAAA,OAAO,CAACC,gBAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAE5C;KACG,OAAO,CAAC,SAAS;KACjB,WAAW,CAAC,eAAe;AAC3B,KAAA,MAAM,CAAC,qBAAqB,EAAE,WAAW;AACzC,KAAA,MAAM,CAAC,OAAO,OAAO,KAAI;AACxB,IAAA,MAAMC,sBAAc,CAAC,OAAO,CAAC;AAC/B,CAAC,CAAC;AAEJ;KACG,OAAO,CAAC,MAAM;KACd,WAAW,CAAC,QAAQ;AACpB,KAAA,MAAM,CAAC,OAAO,EAAE,eAAe;AAC/B,KAAA,MAAM,CAAC,OAAO,OAAO,KAAI;AACxB,IAAA,MAAMC,gBAAW,CAAC,OAAO,CAAC;AAC5B,CAAC,CAAC;AAEJ;KACG,OAAO,CAAC,QAAQ;KAChB,WAAW,CAAC,QAAQ;AACpB,KAAA,MAAM,CAAC,OAAO,EAAE,UAAU;AAC1B,KAAA,MAAM,CAAC,OAAO,OAAO,KAAI;AACxB,IAAA,MAAM,MAAM,GAAG,MAAMC,oBAAa,CAAC,OAAO,CAAC;IAC3C,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AAC3B,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB;AACF,CAAC,CAAC;AAEJ;KACG,OAAO,CAAC,QAAQ;KAChB,WAAW,CAAC,YAAY;AACxB,KAAA,MAAM,CAAC,qBAAqB,EAAE,YAAY;AAC1C,KAAA,MAAM,CAAC,OAAO,OAAO,KAAI;AACxB,IAAA,MAAMC,oBAAa,CAAC,OAAO,CAAC;AAC9B,CAAC,CAAC;AAEJ,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;;"}
1
+ {"version":3,"file":"index.js","sources":["../src/index.ts"],"sourcesContent":[null],"names":["Command","pkg","installCommand","infoCommand","doctorCommand","updateCommand"],"mappings":";;;;;;;;;;AAOA;AACA,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,GAAG,KAAI;AACvC,IAAA,OAAO,CAAC,KAAK,CAAC,SAAS,EAAE,GAAG,CAAC;AAC7B,IAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;AACjB,CAAC,CAAC;AAEF,MAAM,OAAO,GAAG,IAAIA,iBAAO,EAAE;AAE7B;KACG,IAAI,CAAC,oBAAoB;KACzB,WAAW,CAAC,sBAAsB;AAClC,KAAA,OAAO,CAACC,gBAAG,CAAC,OAAO,EAAE,mBAAmB,CAAC;AAE5C;KACG,OAAO,CAAC,SAAS;KACjB,WAAW,CAAC,eAAe;AAC3B,KAAA,MAAM,CAAC,qBAAqB,EAAE,WAAW;AACzC,KAAA,MAAM,CAAC,8BAA8B,EAAE,4CAA4C;AACnF,KAAA,MAAM,CAAC,SAAS,EAAE,kBAAkB;AACpC,KAAA,MAAM,CAAC,OAAO,OAAO,KAAI;AACxB,IAAA,MAAMC,sBAAc,CAAC,OAAO,CAAC;AAC/B,CAAC,CAAC;AAEJ;KACG,OAAO,CAAC,MAAM;KACd,WAAW,CAAC,QAAQ;AACpB,KAAA,MAAM,CAAC,OAAO,EAAE,eAAe;AAC/B,KAAA,MAAM,CAAC,OAAO,OAAO,KAAI;AACxB,IAAA,MAAMC,gBAAW,CAAC,OAAO,CAAC;AAC5B,CAAC,CAAC;AAEJ;KACG,OAAO,CAAC,QAAQ;KAChB,WAAW,CAAC,QAAQ;AACpB,KAAA,MAAM,CAAC,OAAO,EAAE,UAAU;AAC1B,KAAA,MAAM,CAAC,OAAO,OAAO,KAAI;AACxB,IAAA,MAAM,MAAM,GAAG,MAAMC,oBAAa,CAAC,OAAO,CAAC;IAC3C,IAAI,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;AAC3B,QAAA,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;IACjB;AACF,CAAC,CAAC;AAEJ;KACG,OAAO,CAAC,QAAQ;KAChB,WAAW,CAAC,YAAY;AACxB,KAAA,MAAM,CAAC,qBAAqB,EAAE,YAAY;AAC1C,KAAA,MAAM,CAAC,8BAA8B,EAAE,4CAA4C;AACnF,KAAA,MAAM,CAAC,OAAO,OAAO,KAAI;AACxB,IAAA,MAAMC,oBAAa,CAAC,OAAO,CAAC;AAC9B,CAAC,CAAC;AAEJ,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;;"}
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var name = "@wecom/wecom-openclaw-cli";
6
- var version = "1.0.7";
6
+ var version = "1.0.9";
7
7
  var description = "CLI for managing WeCom official plugin for OpenClaw";
8
8
  var main = "dist/index.js";
9
9
  var type = "commonjs";
@@ -4,8 +4,8 @@ export declare const EXTENSIONS_DIR: string;
4
4
  export declare const PLUGIN_NAME = "wecom-openclaw-plugin";
5
5
  /** 插件安装路径 */
6
6
  export declare const PLUGIN_PATH: string;
7
- /** npm 包名 */
8
- export declare const PACKAGE_NAME = "@wecom/wecom-openclaw-plugin";
7
+ /** 默认 npm 包名 */
8
+ export declare const DEFAULT_PACKAGE_NAME = "@wecom/wecom-openclaw-plugin";
9
9
  /** 冲突的插件名称列表 */
10
10
  export declare const CONFLICT_PLUGINS: string[];
11
11
  /** 冲突的插件路径列表 */
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAGA,aAAa;AACb,eAAO,MAAM,cAAc,QAAqB,CAAC;AAEjD,WAAW;AACX,eAAO,MAAM,WAAW,0BAA0B,CAAC;AAEnD,aAAa;AACb,eAAO,MAAM,WAAW,QAAyC,CAAC;AAElE,aAAa;AACb,eAAO,MAAM,YAAY,iCAAiC,CAAC;AAE3D,gBAAgB;AAChB,eAAO,MAAM,gBAAgB,UAAgD,CAAC;AAE9E,gBAAgB;AAChB,eAAO,MAAM,qBAAqB,UAAgE,CAAC;AAEnG,oCAAoC;AACpC,eAAO,MAAM,cAAc,UAG1B,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/utils/constants.ts"],"names":[],"mappings":"AAGA,aAAa;AACb,eAAO,MAAM,cAAc,QAAqB,CAAC;AAEjD,WAAW;AACX,eAAO,MAAM,WAAW,0BAA0B,CAAC;AAEnD,aAAa;AACb,eAAO,MAAM,WAAW,QAAyC,CAAC;AAElE,gBAAgB;AAChB,eAAO,MAAM,oBAAoB,iCAAiC,CAAC;AAEnE,gBAAgB;AAChB,eAAO,MAAM,gBAAgB,UAAgD,CAAC;AAE9E,gBAAgB;AAChB,eAAO,MAAM,qBAAqB,UAAgE,CAAC;AAEnG,oCAAoC;AACpC,eAAO,MAAM,cAAc,UAG1B,CAAC"}
@@ -28,8 +28,8 @@ const EXTENSIONS_DIR = config.getExtensionsDir();
28
28
  const PLUGIN_NAME = 'wecom-openclaw-plugin';
29
29
  /** 插件安装路径 */
30
30
  const PLUGIN_PATH = path__namespace.join(EXTENSIONS_DIR, PLUGIN_NAME);
31
- /** npm 包名 */
32
- const PACKAGE_NAME = '@wecom/wecom-openclaw-plugin';
31
+ /** 默认 npm 包名 */
32
+ const DEFAULT_PACKAGE_NAME = '@wecom/wecom-openclaw-plugin';
33
33
  /** 冲突的插件名称列表 */
34
34
  const CONFLICT_PLUGINS = ['wecom', 'openclaw-wecom', 'wecom-openclaw'];
35
35
  /** 冲突的插件路径列表 */
@@ -42,9 +42,9 @@ const NPM_REGISTRIES = [
42
42
 
43
43
  exports.CONFLICT_PLUGINS = CONFLICT_PLUGINS;
44
44
  exports.CONFLICT_PLUGIN_PATHS = CONFLICT_PLUGIN_PATHS;
45
+ exports.DEFAULT_PACKAGE_NAME = DEFAULT_PACKAGE_NAME;
45
46
  exports.EXTENSIONS_DIR = EXTENSIONS_DIR;
46
47
  exports.NPM_REGISTRIES = NPM_REGISTRIES;
47
- exports.PACKAGE_NAME = PACKAGE_NAME;
48
48
  exports.PLUGIN_NAME = PLUGIN_NAME;
49
49
  exports.PLUGIN_PATH = PLUGIN_PATH;
50
50
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../src/utils/constants.ts"],"sourcesContent":[null],"names":["getExtensionsDir","path"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACO,MAAM,cAAc,GAAGA,uBAAgB;AAE9C;AACO,MAAM,WAAW,GAAG;AAE3B;AACO,MAAM,WAAW,GAAGC,eAAI,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW;AAEhE;AACO,MAAM,YAAY,GAAG;AAE5B;AACO,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB;AAE5E;MACa,qBAAqB,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,IAAIA,eAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC;AAEjG;AACO,MAAM,cAAc,GAAG;IAC5B,uCAAuC;IACvC,6BAA6B;;;;;;;;;;;"}
1
+ {"version":3,"file":"constants.js","sources":["../../src/utils/constants.ts"],"sourcesContent":[null],"names":["getExtensionsDir","path"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA;AACO,MAAM,cAAc,GAAGA,uBAAgB;AAE9C;AACO,MAAM,WAAW,GAAG;AAE3B;AACO,MAAM,WAAW,GAAGC,eAAI,CAAC,IAAI,CAAC,cAAc,EAAE,WAAW;AAEhE;AACO,MAAM,oBAAoB,GAAG;AAEpC;AACO,MAAM,gBAAgB,GAAG,CAAC,OAAO,EAAE,gBAAgB,EAAE,gBAAgB;AAE5E;MACa,qBAAqB,GAAG,gBAAgB,CAAC,GAAG,CAAC,IAAI,IAAIA,eAAI,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC;AAEjG;AACO,MAAM,cAAc,GAAG;IAC5B,uCAAuC;IACvC,6BAA6B;;;;;;;;;;;"}
@@ -7,12 +7,21 @@ export declare function compareVersions(v1: string, v2: string): number;
7
7
  * 从多个 npm 源尝试安装插件
8
8
  * @returns 是否安装成功
9
9
  */
10
- export declare function installPluginFromRegistry(version?: string): boolean;
10
+ export declare function installPluginFromRegistry(version?: string, packageName?: string): boolean;
11
+ /**
12
+ * 从多个 npm 源尝试更新插件(插件已安装时使用)
13
+ * @returns 是否更新成功
14
+ */
15
+ export declare function updatePluginFromRegistry(version?: string, packageName?: string): boolean;
11
16
  /**
12
17
  * 获取已安装插件的版本号
13
18
  * @returns 版本号字符串,未安装或读取失败时返回 undefined
14
19
  */
15
20
  export declare function getPluginVersion(): Promise<string | undefined>;
21
+ /**
22
+ * 获取插件 package.json 中的 name 字段
23
+ */
24
+ export declare function getPluginPackageName(): Promise<string | undefined>;
16
25
  /**
17
26
  * 移除冲突插件配置
18
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/utils/plugin.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAU9D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CA0BnE;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAWpE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAkCvE"}
1
+ {"version":3,"file":"plugin.d.ts","sourceRoot":"","sources":["../../src/utils/plugin.ts"],"names":[],"mappings":"AAgBA;;;GAGG;AACH,wBAAgB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAU9D;AAED;;;GAGG;AACH,wBAAgB,yBAAyB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CA2BzF;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CA0BxF;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAWpE;AAED;;GAEG;AACH,wBAAsB,oBAAoB,IAAI,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAWxE;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAAC,MAAM,CAAC,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAkCvE"}
@@ -56,10 +56,11 @@ function compareVersions(v1, v2) {
56
56
  * 从多个 npm 源尝试安装插件
57
57
  * @returns 是否安装成功
58
58
  */
59
- function installPluginFromRegistry(version) {
59
+ function installPluginFromRegistry(version, packageName) {
60
+ const resolvedPackageName = packageName || constants.DEFAULT_PACKAGE_NAME;
60
61
  const packageIdentifier = version
61
- ? `${constants.PACKAGE_NAME}@${version}`
62
- : constants.PACKAGE_NAME;
62
+ ? `${resolvedPackageName}@${version}`
63
+ : resolvedPackageName;
63
64
  const openclawCmd = system.getPlatformCommand('openclaw');
64
65
  for (let i = 0; i < constants.NPM_REGISTRIES.length; i++) {
65
66
  const registry = constants.NPM_REGISTRIES[i];
@@ -81,6 +82,35 @@ function installPluginFromRegistry(version) {
81
82
  }
82
83
  return false;
83
84
  }
85
+ /**
86
+ * 从多个 npm 源尝试更新插件(插件已安装时使用)
87
+ * @returns 是否更新成功
88
+ */
89
+ function updatePluginFromRegistry(version, packageName) {
90
+ const resolvedPackageName = packageName || constants.DEFAULT_PACKAGE_NAME;
91
+ const packageIdentifier = version
92
+ ? `${resolvedPackageName}@${version}`
93
+ : resolvedPackageName;
94
+ const openclawCmd = system.getPlatformCommand('openclaw');
95
+ for (let i = 0; i < constants.NPM_REGISTRIES.length; i++) {
96
+ const registry = constants.NPM_REGISTRIES[i];
97
+ try {
98
+ console.log(chalk.blue(`正在从 ${registry} 更新插件 ${packageIdentifier}...`));
99
+ system.runCommandWithEnv(`${openclawCmd} plugins update ${packageIdentifier}`, { npm_config_registry: registry });
100
+ return true;
101
+ }
102
+ catch (error) {
103
+ if (i < constants.NPM_REGISTRIES.length - 1) {
104
+ console.warn(chalk.yellow(`从 ${registry} 更新失败,正在切换到备用源重试...`));
105
+ }
106
+ else {
107
+ console.error(chalk.red('所有 npm 源均更新失败。'));
108
+ console.error(error);
109
+ }
110
+ }
111
+ }
112
+ return false;
113
+ }
84
114
  /**
85
115
  * 获取已安装插件的版本号
86
116
  * @returns 版本号字符串,未安装或读取失败时返回 undefined
@@ -98,6 +128,22 @@ async function getPluginVersion() {
98
128
  }
99
129
  return undefined;
100
130
  }
131
+ /**
132
+ * 获取插件 package.json 中的 name 字段
133
+ */
134
+ async function getPluginPackageName() {
135
+ const packageJsonPath = path__namespace.join(constants.PLUGIN_PATH, 'package.json');
136
+ if (await fs__namespace.pathExists(packageJsonPath)) {
137
+ try {
138
+ const pkgJson = await fs__namespace.readJSON(packageJsonPath);
139
+ return pkgJson.name;
140
+ }
141
+ catch {
142
+ // 读取失败
143
+ }
144
+ }
145
+ return undefined;
146
+ }
101
147
  /**
102
148
  * 移除冲突插件配置
103
149
  */
@@ -134,6 +180,8 @@ async function disableConflictPlugins(config$1) {
134
180
 
135
181
  exports.compareVersions = compareVersions;
136
182
  exports.disableConflictPlugins = disableConflictPlugins;
183
+ exports.getPluginPackageName = getPluginPackageName;
137
184
  exports.getPluginVersion = getPluginVersion;
138
185
  exports.installPluginFromRegistry = installPluginFromRegistry;
186
+ exports.updatePluginFromRegistry = updatePluginFromRegistry;
139
187
  //# sourceMappingURL=plugin.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["../../src/utils/plugin.ts"],"sourcesContent":[null],"names":["PACKAGE_NAME","getPlatformCommand","NPM_REGISTRIES","runCommandWithEnv","path","PLUGIN_PATH","fs","config","readConfig","CONFLICT_PLUGINS","writeConfig"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sources":["../../src/utils/plugin.ts"],"sourcesContent":[null],"names":["DEFAULT_PACKAGE_NAME","getPlatformCommand","NPM_REGISTRIES","runCommandWithEnv","path","PLUGIN_PATH","fs","config","readConfig","CONFLICT_PLUGINS","writeConfig"],"mappings":"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"}
@@ -34,13 +34,4 @@ export declare function runCommandQuiet(command: string, options?: {
34
34
  * 只允许数字、点、连字符和字母(如 1.0.0、1.0.0-beta.1)
35
35
  */
36
36
  export declare function validateVersion(version: string): boolean;
37
- /**
38
- * 确保当前工作目录(cwd)不在即将被删除的目录内。
39
- * 如果 cwd 位于待删除的目录下,或者 cwd 已经失效,则切换到指定的安全目录。
40
- * 解决:用户在插件目录下执行命令,目录被删除后 Node.js 报 uv_cwd 错误的问题。
41
- *
42
- * @param pathsToRemove 即将被删除的目录路径列表
43
- * @param safeDir 安全的回退目录
44
- */
45
- export declare function ensureSafeCwd(pathsToRemove: string[], safeDir: string): void;
46
37
  //# sourceMappingURL=system.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/utils/system.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAUD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,IAAI,CAUhF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,IAAI,CAWN;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAUvF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,aAAa,EAAE,MAAM,EAAE,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAa5E"}
1
+ {"version":3,"file":"system.d.ts","sourceRoot":"","sources":["../../src/utils/system.ts"],"names":[],"mappings":"AAGA;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAUD;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE1D;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,IAAI,CAUhF;AAED;;;GAGG;AACH,wBAAgB,iBAAiB,CAC/B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAC7B,IAAI,CAWN;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;IAAE,GAAG,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,MAAM,CAUvF;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAExD"}
@@ -99,30 +99,7 @@ function runCommandQuiet(command, options = {}) {
99
99
  function validateVersion(version) {
100
100
  return /^[a-zA-Z0-9.\-]+$/.test(version);
101
101
  }
102
- /**
103
- * 确保当前工作目录(cwd)不在即将被删除的目录内。
104
- * 如果 cwd 位于待删除的目录下,或者 cwd 已经失效,则切换到指定的安全目录。
105
- * 解决:用户在插件目录下执行命令,目录被删除后 Node.js 报 uv_cwd 错误的问题。
106
- *
107
- * @param pathsToRemove 即将被删除的目录路径列表
108
- * @param safeDir 安全的回退目录
109
- */
110
- function ensureSafeCwd(pathsToRemove, safeDir) {
111
- let cwd;
112
- try {
113
- cwd = process.cwd();
114
- }
115
- catch {
116
- // cwd 已经失效(目录已被删除),直接切换到安全目录
117
- process.chdir(safeDir);
118
- return;
119
- }
120
- if (pathsToRemove.some(p => cwd === p || cwd.startsWith(p + '/'))) {
121
- process.chdir(safeDir);
122
- }
123
- }
124
102
 
125
- exports.ensureSafeCwd = ensureSafeCwd;
126
103
  exports.getPlatformCommand = getPlatformCommand;
127
104
  exports.isWindows = isWindows;
128
105
  exports.runCommand = runCommand;
@@ -1 +1 @@
1
- {"version":3,"file":"system.js","sources":["../../src/utils/system.ts"],"sourcesContent":[null],"names":["os","execSync"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA;;AAEG;SACa,SAAS,GAAA;AACvB,IAAA,OAAOA,aAAE,CAAC,QAAQ,EAAE,KAAK,OAAO;AAClC;AAEA;;;AAGG;AACH,SAAS,QAAQ,GAAA;IACf,OAAO,SAAS,EAAE,GAAG,SAAS,GAAG,SAAS;AAC5C;AAEA;;;;AAIG;AACG,SAAU,kBAAkB,CAAC,OAAe,EAAA;AAChD,IAAA,OAAO,OAAO;AAChB;AAEA;;;AAGG;SACa,UAAU,CAAC,OAAe,EAAE,UAA4B,EAAE,EAAA;AACxE,IAAA,IAAI;QACFC,sBAAQ,CAAC,OAAO,EAAE;AAChB,YAAA,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,QAAQ,EAAE;AAClB,SAAA,CAAC;IACJ;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;IACvC;AACF;AAEA;;;AAGG;AACG,SAAU,iBAAiB,CAC/B,OAAe,EACf,QAAgC,EAChC,UAA4B,EAAE,EAAA;AAE9B,IAAA,IAAI;QACFA,sBAAQ,CAAC,OAAO,EAAE;AAChB,YAAA,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,QAAQ,EAAE;YACjB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE;AACrC,SAAA,CAAC;IACJ;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;IACvC;AACF;AAEA;;;AAGG;SACa,eAAe,CAAC,OAAe,EAAE,UAA4B,EAAE,EAAA;AAC7E,IAAA,IAAI;QACF,OAAOA,sBAAQ,CAAC,OAAO,EAAE;AACvB,YAAA,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,QAAQ,EAAE;SAClB,CAAC,CAAC,IAAI,EAAE;IACX;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;IACvC;AACF;AAEA;;;AAGG;AACG,SAAU,eAAe,CAAC,OAAe,EAAA;AAC7C,IAAA,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1C;AAEA;;;;;;;AAOG;AACG,SAAU,aAAa,CAAC,aAAuB,EAAE,OAAe,EAAA;AACpE,IAAA,IAAI,GAAW;AACf,IAAA,IAAI;AACF,QAAA,GAAG,GAAG,OAAO,CAAC,GAAG,EAAE;IACrB;AAAE,IAAA,MAAM;;AAEN,QAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;QACtB;IACF;IAEA,IAAI,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,EAAE;AACjE,QAAA,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC;IACxB;AACF;;;;;;;;;;"}
1
+ {"version":3,"file":"system.js","sources":["../../src/utils/system.ts"],"sourcesContent":[null],"names":["os","execSync"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAGA;;AAEG;SACa,SAAS,GAAA;AACvB,IAAA,OAAOA,aAAE,CAAC,QAAQ,EAAE,KAAK,OAAO;AAClC;AAEA;;;AAGG;AACH,SAAS,QAAQ,GAAA;IACf,OAAO,SAAS,EAAE,GAAG,SAAS,GAAG,SAAS;AAC5C;AAEA;;;;AAIG;AACG,SAAU,kBAAkB,CAAC,OAAe,EAAA;AAChD,IAAA,OAAO,OAAO;AAChB;AAEA;;;AAGG;SACa,UAAU,CAAC,OAAe,EAAE,UAA4B,EAAE,EAAA;AACxE,IAAA,IAAI;QACFC,sBAAQ,CAAC,OAAO,EAAE;AAChB,YAAA,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,QAAQ,EAAE;AAClB,SAAA,CAAC;IACJ;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;IACvC;AACF;AAEA;;;AAGG;AACG,SAAU,iBAAiB,CAC/B,OAAe,EACf,QAAgC,EAChC,UAA4B,EAAE,EAAA;AAE9B,IAAA,IAAI;QACFA,sBAAQ,CAAC,OAAO,EAAE;AAChB,YAAA,KAAK,EAAE,SAAS;YAChB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,QAAQ,EAAE;YACjB,GAAG,EAAE,EAAE,GAAG,OAAO,CAAC,GAAG,EAAE,GAAG,QAAQ,EAAE;AACrC,SAAA,CAAC;IACJ;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;IACvC;AACF;AAEA;;;AAGG;SACa,eAAe,CAAC,OAAe,EAAE,UAA4B,EAAE,EAAA;AAC7E,IAAA,IAAI;QACF,OAAOA,sBAAQ,CAAC,OAAO,EAAE;AACvB,YAAA,QAAQ,EAAE,OAAO;YACjB,GAAG,EAAE,OAAO,CAAC,GAAG;YAChB,KAAK,EAAE,QAAQ,EAAE;SAClB,CAAC,CAAC,IAAI,EAAE;IACX;IAAE,OAAO,KAAK,EAAE;AACd,QAAA,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,CAAA,CAAE,CAAC;IACvC;AACF;AAEA;;;AAGG;AACG,SAAU,eAAe,CAAC,OAAe,EAAA;AAC7C,IAAA,OAAO,mBAAmB,CAAC,IAAI,CAAC,OAAO,CAAC;AAC1C;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wecom/wecom-openclaw-cli",
3
- "version": "1.0.7",
3
+ "version": "1.0.9",
4
4
  "description": "CLI for managing WeCom official plugin for OpenClaw",
5
5
  "main": "dist/index.js",
6
6
  "type": "commonjs",