@lotaber_wang/openclaw-dc-plugin 0.1.11 → 0.1.13
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 +30 -14
- package/index.js +15 -4
- package/openclaw.plugin.json +2 -2
- package/package.json +16 -6
- package/scripts/postinstall.js +52 -0
package/README.md
CHANGED
|
@@ -2,6 +2,25 @@
|
|
|
2
2
|
|
|
3
3
|
这是一个面向 OpenClaw 的 TapTap DC 插件,内置原始数据工具与运营简报 skill。
|
|
4
4
|
|
|
5
|
+
## 先看这个
|
|
6
|
+
|
|
7
|
+
这是 **OpenClaw 插件包**,不是普通 npm CLI 包。
|
|
8
|
+
|
|
9
|
+
请这样安装:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
openclaw plugins install @lotaber_wang/openclaw-dc-plugin@0.1.13
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
不要这样安装:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
npm install @lotaber_wang/openclaw-dc-plugin
|
|
19
|
+
npm install -g @lotaber_wang/openclaw-dc-plugin
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
如果误用了 `npm install`,包内的 `postinstall` 会主动输出警告,提醒改用 `openclaw plugins install`。
|
|
23
|
+
|
|
5
24
|
## 插件能力
|
|
6
25
|
|
|
7
26
|
- 以 OpenClaw 原生插件方式安装
|
|
@@ -15,10 +34,6 @@
|
|
|
15
34
|
|
|
16
35
|
## 安装
|
|
17
36
|
|
|
18
|
-
```bash
|
|
19
|
-
openclaw plugins install @lotaber_wang/openclaw-dc-plugin@0.1.11
|
|
20
|
-
```
|
|
21
|
-
|
|
22
37
|
安装完成后,建议立刻执行一次检查:
|
|
23
38
|
|
|
24
39
|
```bash
|
|
@@ -27,19 +42,19 @@ openclaw plugins inspect openclaw-dc-plugin
|
|
|
27
42
|
|
|
28
43
|
## 给 OpenClaw 的安装执行指令
|
|
29
44
|
|
|
30
|
-
如果安装流程判断需要重启 Gateway
|
|
45
|
+
如果安装流程判断需要重启 Gateway,先通过飞书或其他通信插件通知用户,再执行重启。
|
|
31
46
|
|
|
32
47
|
推荐通知文案:
|
|
33
48
|
|
|
34
|
-
`TapTap DC 插件已安装完成。OpenClaw 接下来如需重启 Gateway
|
|
49
|
+
`TapTap DC 插件已安装完成。OpenClaw 接下来如需重启 Gateway,应先通过飞书或其他通信插件通知用户;重启完成后即可使用 taptap_dc_* 工具。`
|
|
35
50
|
|
|
36
51
|
执行顺序要求:
|
|
37
52
|
|
|
38
|
-
1.
|
|
53
|
+
1. 先通过飞书或其他通信插件向用户发送上面的安装完成/即将重启提示
|
|
39
54
|
2. 再执行 `openclaw gateway restart` 或等效的宿主重启动作
|
|
40
55
|
3. 重启完成后,再开始使用 `taptap_dc_*` 工具
|
|
41
56
|
|
|
42
|
-
|
|
57
|
+
不管是手动重启还是宿主自动触发的重启,都应先通过飞书或其他通信插件通知用户,不要静默重启。
|
|
43
58
|
|
|
44
59
|
如果安装成功后仍然看不到 `taptap_dc_*` 工具,再按下面命令手动重启 Gateway:
|
|
45
60
|
|
|
@@ -52,9 +67,9 @@ openclaw gateway restart
|
|
|
52
67
|
## 推荐安装流程
|
|
53
68
|
|
|
54
69
|
```bash
|
|
55
|
-
openclaw plugins install @lotaber_wang/openclaw-dc-plugin@0.1.
|
|
70
|
+
openclaw plugins install @lotaber_wang/openclaw-dc-plugin@0.1.13
|
|
56
71
|
openclaw plugins inspect openclaw-dc-plugin
|
|
57
|
-
echo 'TapTap DC 插件已安装完成。OpenClaw 接下来如需重启 Gateway
|
|
72
|
+
echo 'TapTap DC 插件已安装完成。OpenClaw 接下来如需重启 Gateway,应先通过飞书或其他通信插件通知用户;重启完成后即可使用 taptap_dc_* 工具。'
|
|
58
73
|
openclaw gateway restart
|
|
59
74
|
```
|
|
60
75
|
|
|
@@ -62,7 +77,8 @@ openclaw gateway restart
|
|
|
62
77
|
|
|
63
78
|
- `install` 负责把插件包装进 OpenClaw
|
|
64
79
|
- `inspect` 用来确认插件元信息、skills、tools 是否已被 Gateway 识别
|
|
65
|
-
-
|
|
80
|
+
- 如果有人误用 `npm install` 或 `npm install -g`,插件包会在 `postinstall` 阶段打印醒目的纠正提示
|
|
81
|
+
- 如果宿主判断需要重启 Gateway,必须先通过飞书或其他通信插件通知用户,再重启
|
|
66
82
|
- 如果 10-30 秒后还没生效,再手动执行 `gateway restart`
|
|
67
83
|
- 如果宿主存在“stock 安装失败后再 fallback npm”的行为,优先使用明确版本号安装,必要时改用本地 `.tgz` 安装,避免双安装链路互相打架
|
|
68
84
|
|
|
@@ -130,9 +146,9 @@ openclaw gateway restart
|
|
|
130
146
|
|
|
131
147
|
如果安装后看不到 `taptap_dc_*` 工具,优先按这个顺序排查:
|
|
132
148
|
|
|
133
|
-
1. 确认安装的是 `@lotaber_wang/openclaw-dc-plugin@0.1.
|
|
149
|
+
1. 确认安装的是 `@lotaber_wang/openclaw-dc-plugin@0.1.13` 或更新版本
|
|
134
150
|
2. 执行 `openclaw plugins inspect openclaw-dc-plugin`
|
|
135
|
-
3. 如果宿主要求重启 Gateway
|
|
151
|
+
3. 如果宿主要求重启 Gateway,先通过飞书或其他通信插件向用户发送安装完成提示
|
|
136
152
|
4. 再执行 `openclaw gateway restart`
|
|
137
153
|
5. 重新开启一个新会话,再观察工具列表
|
|
138
154
|
|
|
@@ -158,7 +174,7 @@ openclaw gateway restart
|
|
|
158
174
|
- OpenClaw 进程是否有临时目录写权限
|
|
159
175
|
- OpenClaw 是否已经完成 Gateway 重启
|
|
160
176
|
|
|
161
|
-
从 `0.1.
|
|
177
|
+
从 `0.1.13` 开始,插件安装链路与 bridge 会额外做这些兼容处理:
|
|
162
178
|
|
|
163
179
|
- 在 `package.json` 中补充 `openclaw.install.npmSpec`,让安装链路更稳定
|
|
164
180
|
- 在 `package.json` 的 `openclaw.install` 中补充 `postInstallMessage` / `instructions` / `restartCommand`
|
package/index.js
CHANGED
|
@@ -3,12 +3,18 @@ import process from 'node:process';
|
|
|
3
3
|
import { TapTapMcpBridge } from './lib/mcp-bridge.js';
|
|
4
4
|
|
|
5
5
|
const RESTART_NOTICE =
|
|
6
|
-
'TapTap DC 插件已安装完成。OpenClaw 接下来如需重启 Gateway
|
|
6
|
+
'TapTap DC 插件已安装完成。OpenClaw 接下来如需重启 Gateway,应先通过飞书或其他通信插件通知用户;重启完成后即可使用 taptap_dc_* 工具。';
|
|
7
|
+
const PREFERRED_INSTALL_COMMAND =
|
|
8
|
+
'openclaw plugins install @lotaber_wang/openclaw-dc-plugin@0.1.13';
|
|
9
|
+
const WRONG_INSTALL_HINT =
|
|
10
|
+
'这是 OpenClaw 插件包,不是普通 npm CLI 包。请不要直接用 npm install,改用 openclaw plugins install。';
|
|
7
11
|
|
|
8
12
|
const INSTALLATION_GUIDANCE = [
|
|
9
|
-
'如果安装流程判断需要重启 Gateway
|
|
13
|
+
'如果安装流程判断需要重启 Gateway,先通过飞书或其他通信插件通知用户,再执行重启。',
|
|
14
|
+
`正确安装命令:${PREFERRED_INSTALL_COMMAND}`,
|
|
15
|
+
`错误安装提醒:${WRONG_INSTALL_HINT}`,
|
|
10
16
|
`推荐提示文案:${RESTART_NOTICE}`,
|
|
11
|
-
'
|
|
17
|
+
'执行顺序:先通过飞书或其他通信插件把安装完成与即将重启的消息发给用户 -> 再执行 gateway restart -> 重启完成后再开始使用 taptap_dc_* 工具。',
|
|
12
18
|
];
|
|
13
19
|
|
|
14
20
|
function toolResult(text, details = {}) {
|
|
@@ -822,14 +828,19 @@ const plugin = {
|
|
|
822
828
|
id: 'openclaw-dc-plugin',
|
|
823
829
|
name: 'TapTap DC',
|
|
824
830
|
description:
|
|
825
|
-
'面向 OpenClaw 的 TapTap DC
|
|
831
|
+
'面向 OpenClaw 的 TapTap DC 插件。请使用 openclaw plugins install 安装,不要直接 npm install;如需重启 Gateway,应先通过飞书或其他通信插件通知用户。',
|
|
826
832
|
installation: {
|
|
833
|
+
preferredCommand: PREFERRED_INSTALL_COMMAND,
|
|
834
|
+
doNotUseNpmInstall: true,
|
|
835
|
+
wrongInstallHint: WRONG_INSTALL_HINT,
|
|
827
836
|
restartRequired: true,
|
|
828
837
|
restartCommand: 'openclaw gateway restart',
|
|
829
838
|
postInstallMessage: RESTART_NOTICE,
|
|
830
839
|
instructions: INSTALLATION_GUIDANCE,
|
|
831
840
|
},
|
|
832
841
|
installHints: {
|
|
842
|
+
preferredCommand: PREFERRED_INSTALL_COMMAND,
|
|
843
|
+
wrongInstallHint: WRONG_INSTALL_HINT,
|
|
833
844
|
beforeRestartMessage: RESTART_NOTICE,
|
|
834
845
|
instructions: INSTALLATION_GUIDANCE,
|
|
835
846
|
},
|
package/openclaw.plugin.json
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
{
|
|
2
2
|
"id": "openclaw-dc-plugin",
|
|
3
3
|
"name": "TapTap DC",
|
|
4
|
-
"description": "面向 OpenClaw 的 TapTap DC
|
|
5
|
-
"version": "0.1.
|
|
4
|
+
"description": "面向 OpenClaw 的 TapTap DC 插件。请使用 openclaw plugins install 安装,不要直接 npm install;如需重启 Gateway,应先通过飞书或其他通信插件通知用户。",
|
|
5
|
+
"version": "0.1.13",
|
|
6
6
|
"enabledByDefault": true,
|
|
7
7
|
"skills": ["./skills"],
|
|
8
8
|
"configSchema": {
|
package/package.json
CHANGED
|
@@ -1,22 +1,31 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lotaber_wang/openclaw-dc-plugin",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.13",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"description": "TapTap DC 的 OpenClaw
|
|
5
|
+
"description": "TapTap DC 的 OpenClaw 插件。请使用 openclaw plugins install 安装,不要直接 npm install;如需重启 Gateway,应先通过飞书或其他通信插件通知用户。",
|
|
6
6
|
"main": "index.js",
|
|
7
|
+
"scripts": {
|
|
8
|
+
"postinstall": "node ./scripts/postinstall.js"
|
|
9
|
+
},
|
|
7
10
|
"openclaw": {
|
|
8
11
|
"extensions": [
|
|
9
12
|
"./index.js"
|
|
10
13
|
],
|
|
11
14
|
"install": {
|
|
12
15
|
"npmSpec": "@lotaber_wang/openclaw-dc-plugin",
|
|
13
|
-
"
|
|
16
|
+
"preferredCommand": "openclaw plugins install @lotaber_wang/openclaw-dc-plugin@0.1.13",
|
|
17
|
+
"doNotUseCommands": [
|
|
18
|
+
"npm install @lotaber_wang/openclaw-dc-plugin",
|
|
19
|
+
"npm install -g @lotaber_wang/openclaw-dc-plugin"
|
|
20
|
+
],
|
|
21
|
+
"wrongInstallHint": "这是 OpenClaw 插件包,不是普通 npm CLI 包。请改用 openclaw plugins install @lotaber_wang/openclaw-dc-plugin@0.1.13。",
|
|
22
|
+
"postInstallMessage": "TapTap DC 插件已安装完成。OpenClaw 接下来如需重启 Gateway,应先通过飞书或其他通信插件通知用户;重启完成后即可使用 taptap_dc_* 工具。",
|
|
14
23
|
"restartRequired": true,
|
|
15
24
|
"restartCommand": "openclaw gateway restart",
|
|
16
25
|
"instructions": [
|
|
17
|
-
"如果安装流程判断需要重启 Gateway
|
|
18
|
-
"推荐提示文案:TapTap DC 插件已安装完成。OpenClaw 接下来如需重启 Gateway
|
|
19
|
-
"
|
|
26
|
+
"如果安装流程判断需要重启 Gateway,先通过飞书或其他通信插件通知用户,再执行重启。",
|
|
27
|
+
"推荐提示文案:TapTap DC 插件已安装完成。OpenClaw 接下来如需重启 Gateway,应先通过飞书或其他通信插件通知用户;重启完成后即可使用 taptap_dc_* 工具。",
|
|
28
|
+
"执行顺序:先通过飞书或其他通信插件把安装完成与即将重启的消息发给用户 -> 再执行 gateway restart -> 重启完成后再开始使用 taptap_dc_* 工具。"
|
|
20
29
|
]
|
|
21
30
|
}
|
|
22
31
|
},
|
|
@@ -34,6 +43,7 @@
|
|
|
34
43
|
"index.js",
|
|
35
44
|
"lib/",
|
|
36
45
|
"openclaw.plugin.json",
|
|
46
|
+
"scripts/",
|
|
37
47
|
"skills/",
|
|
38
48
|
"README.md"
|
|
39
49
|
],
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import process from 'node:process';
|
|
2
|
+
|
|
3
|
+
const PACKAGE_NAME = '@lotaber_wang/openclaw-dc-plugin';
|
|
4
|
+
const PACKAGE_VERSION = '0.1.13';
|
|
5
|
+
const PREFERRED_COMMAND = `openclaw plugins install ${PACKAGE_NAME}@${PACKAGE_VERSION}`;
|
|
6
|
+
const DISCOURAGED_COMMANDS = [
|
|
7
|
+
`npm install ${PACKAGE_NAME}`,
|
|
8
|
+
`npm install -g ${PACKAGE_NAME}`,
|
|
9
|
+
];
|
|
10
|
+
|
|
11
|
+
function looksLikeOpenClawInstall(value) {
|
|
12
|
+
return /openclaw/i.test(String(value || ''));
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
function looksLikePluginPath(value) {
|
|
16
|
+
return /(?:^|[/\\])(extensions|plugins|openclaw)(?:[/\\]|$)/i.test(String(value || ''));
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
function emit(lines, writer = console.error) {
|
|
20
|
+
writer('');
|
|
21
|
+
writer('============================================================');
|
|
22
|
+
for (const line of lines) {
|
|
23
|
+
writer(line);
|
|
24
|
+
}
|
|
25
|
+
writer('============================================================');
|
|
26
|
+
writer('');
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
const installPath = process.cwd();
|
|
30
|
+
const initCwd = process.env.INIT_CWD || '';
|
|
31
|
+
const npmExecPath = process.env.npm_execpath || '';
|
|
32
|
+
const userAgent = process.env.npm_config_user_agent || '';
|
|
33
|
+
const isGlobalInstall = process.env.npm_config_global === 'true';
|
|
34
|
+
const isLikelyOpenClawInstall =
|
|
35
|
+
looksLikeOpenClawInstall(userAgent) ||
|
|
36
|
+
looksLikeOpenClawInstall(npmExecPath) ||
|
|
37
|
+
looksLikePluginPath(installPath) ||
|
|
38
|
+
looksLikePluginPath(initCwd);
|
|
39
|
+
|
|
40
|
+
if (isGlobalInstall || !isLikelyOpenClawInstall) {
|
|
41
|
+
emit([
|
|
42
|
+
`[TapTap DC] 检测到当前安装方式更像是直接通过 npm 安装 ${PACKAGE_NAME}。`,
|
|
43
|
+
'[TapTap DC] 这会把它当成普通 npm 包,而不是 OpenClaw 插件,后续通常不会自动注册 tools。',
|
|
44
|
+
`[TapTap DC] 正确安装方式:${PREFERRED_COMMAND}`,
|
|
45
|
+
`[TapTap DC] 不推荐:${DISCOURAGED_COMMANDS.join(' / ')}`,
|
|
46
|
+
]);
|
|
47
|
+
} else {
|
|
48
|
+
emit([
|
|
49
|
+
`[TapTap DC] 已安装插件包 ${PACKAGE_NAME}@${PACKAGE_VERSION}。`,
|
|
50
|
+
`[TapTap DC] 推荐后续检查命令:openclaw plugins inspect openclaw-dc-plugin`,
|
|
51
|
+
], console.log);
|
|
52
|
+
}
|