@wecom/wecom-openclaw-cli 1.0.6 → 1.0.8

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.
@@ -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":"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"}
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.6";
6
+ var version = "1.0.8";
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":"AAOA;;;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"}
@@ -27,13 +27,21 @@ function _interopNamespaceDefault(e) {
27
27
  var path__namespace = /*#__PURE__*/_interopNamespaceDefault(path);
28
28
  var fs__namespace = /*#__PURE__*/_interopNamespaceDefault(fs);
29
29
 
30
+ /**
31
+ * 从版本字符串中提取纯版本号
32
+ * 例如: "OpenClaw 2026.3.8 (3caab92)" => "2026.3.8"
33
+ */
34
+ function extractVersion(versionStr) {
35
+ const match = versionStr.match(/(\d+\.\d+(?:\.\d+)*)/);
36
+ return match ? match[1] : versionStr;
37
+ }
30
38
  /**
31
39
  * 版本比较
32
40
  * @returns 1 表示 v1 > v2,-1 表示 v1 < v2,0 表示相等
33
41
  */
34
42
  function compareVersions(v1, v2) {
35
- const parts1 = v1.split('.').map(Number);
36
- const parts2 = v2.split('.').map(Number);
43
+ const parts1 = extractVersion(v1).split('.').map(Number);
44
+ const parts2 = extractVersion(v2).split('.').map(Number);
37
45
  for (let i = 0; i < Math.max(parts1.length, parts2.length); i++) {
38
46
  const p1 = parts1[i] || 0;
39
47
  const p2 = parts2[i] || 0;
@@ -48,10 +56,11 @@ function compareVersions(v1, v2) {
48
56
  * 从多个 npm 源尝试安装插件
49
57
  * @returns 是否安装成功
50
58
  */
51
- function installPluginFromRegistry(version) {
59
+ function installPluginFromRegistry(version, packageName) {
60
+ const resolvedPackageName = packageName || constants.DEFAULT_PACKAGE_NAME;
52
61
  const packageIdentifier = version
53
- ? `${constants.PACKAGE_NAME}@${version}`
54
- : constants.PACKAGE_NAME;
62
+ ? `${resolvedPackageName}@${version}`
63
+ : resolvedPackageName;
55
64
  const openclawCmd = system.getPlatformCommand('openclaw');
56
65
  for (let i = 0; i < constants.NPM_REGISTRIES.length; i++) {
57
66
  const registry = constants.NPM_REGISTRIES[i];
@@ -73,6 +82,35 @@ function installPluginFromRegistry(version) {
73
82
  }
74
83
  return false;
75
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
+ }
76
114
  /**
77
115
  * 获取已安装插件的版本号
78
116
  * @returns 版本号字符串,未安装或读取失败时返回 undefined
@@ -90,6 +128,22 @@ async function getPluginVersion() {
90
128
  }
91
129
  return undefined;
92
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
+ }
93
147
  /**
94
148
  * 移除冲突插件配置
95
149
  */
@@ -126,6 +180,8 @@ async function disableConflictPlugins(config$1) {
126
180
 
127
181
  exports.compareVersions = compareVersions;
128
182
  exports.disableConflictPlugins = disableConflictPlugins;
183
+ exports.getPluginPackageName = getPluginPackageName;
129
184
  exports.getPluginVersion = getPluginVersion;
130
185
  exports.installPluginFromRegistry = installPluginFromRegistry;
186
+ exports.updatePluginFromRegistry = updatePluginFromRegistry;
131
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.6",
3
+ "version": "1.0.8",
4
4
  "description": "CLI for managing WeCom official plugin for OpenClaw",
5
5
  "main": "dist/index.js",
6
6
  "type": "commonjs",