@cozeloop/openclaw-cozeloop-trace-onboard-cli 0.1.0

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 ADDED
@@ -0,0 +1,16 @@
1
+ ## 一键安装(Onboard)
2
+
3
+ 在安装过程中无需跳转登录,会在命令行交互中要求输入 SAT Token 和 CozeLoop Workspace ID,并自动写入 OpenClaw 配置与启用插件。
4
+
5
+ ```bash
6
+ npm i -g openclaw-cozeloop-trace-onboard-cli
7
+ openclaw-cozeloop-trace-onboard-cli install
8
+ ```
9
+
10
+ 默认会写入 `~/.openclaw/openclaw.json`(或由 `OPENCLAW_STATE_DIR` 指定目录):
11
+ - `plugins.allow` 追加 `openclaw-cozeloop-trace`
12
+ - `plugins.entries["openclaw-cozeloop-trace"].enabled = true`
13
+ - `plugins.entries["openclaw-cozeloop-trace"].config.authorization`(自动补全为 `Bearer ...`)
14
+ - `plugins.entries["openclaw-cozeloop-trace"].config.workspaceId`
15
+
16
+ 安装后会尝试执行 `openclaw gateway restart`。
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,190 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from "commander";
3
+ import inquirer from "inquirer";
4
+ import { execSync } from "node:child_process";
5
+ import fs from "node:fs/promises";
6
+ import os from "node:os";
7
+ import path from "node:path";
8
+ const PLUGIN_NAME = "openclaw-cozeloop-trace";
9
+ const PACKAGE_PATH = "@cozeloop/openclaw-cozeloop-trace";
10
+ const COZELOOP_ENDPOINT = "https://api.coze.cn/v1/loop/opentelemetry";
11
+ function getOpenClawDir() {
12
+ return process.env.OPENCLAW_STATE_DIR || path.join(os.homedir(), ".openclaw");
13
+ }
14
+ function getConfigPath() {
15
+ return path.join(getOpenClawDir(), "openclaw.json");
16
+ }
17
+ function getExtensionsDir() {
18
+ return path.join(getOpenClawDir(), "extensions");
19
+ }
20
+ async function readConfig() {
21
+ try {
22
+ const raw = await fs.readFile(getConfigPath(), "utf8");
23
+ return JSON.parse(raw);
24
+ }
25
+ catch (error) {
26
+ const err = error;
27
+ if (err.code === "ENOENT") {
28
+ return {};
29
+ }
30
+ throw error;
31
+ }
32
+ }
33
+ async function writeConfig(config) {
34
+ const configPath = getConfigPath();
35
+ await fs.mkdir(path.dirname(configPath), { recursive: true });
36
+ await fs.writeFile(configPath, JSON.stringify(config, null, 2), "utf8");
37
+ }
38
+ function getPlatformCommand(command) {
39
+ if (process.platform === "win32" && (command === "openclaw" || command === "npm")) {
40
+ return `${command}.cmd`;
41
+ }
42
+ return command;
43
+ }
44
+ function runCommand(command) {
45
+ execSync(command, { stdio: "inherit" });
46
+ }
47
+ function runCommandQuiet(command) {
48
+ return execSync(command, { encoding: "utf8" }).trim();
49
+ }
50
+ function normalizeAuthorization(token) {
51
+ const trimmed = token.trim();
52
+ if (!trimmed)
53
+ return "";
54
+ const cleaned = trimmed.replace(/^(bearer|sat)\s+/i, "");
55
+ return `Bearer ${cleaned}`;
56
+ }
57
+ async function collectPluginConfig() {
58
+ const config = await readConfig();
59
+ const existingEntry = config.plugins?.entries?.[PLUGIN_NAME];
60
+ const existingConfig = existingEntry?.config || {};
61
+ const existingAuthorization = typeof existingConfig.authorization === "string" ? existingConfig.authorization : "";
62
+ const existingWorkspaceId = typeof existingConfig.workspaceId === "string" ? existingConfig.workspaceId : "";
63
+ const answers = await inquirer.prompt([
64
+ {
65
+ name: "satToken",
66
+ type: "password",
67
+ message: "请输入服务访问令牌(sat_xxx)。服务访问令牌获取方式可参考:https://loop.coze.cn/open/docs/cozeloop/authentication-for-sdk#83f924a1",
68
+ mask: "*",
69
+ validate: (input) => {
70
+ if (input && input.trim())
71
+ return true;
72
+ if (existingAuthorization)
73
+ return true;
74
+ return "服务访问令牌不能为空";
75
+ },
76
+ },
77
+ {
78
+ name: "workspaceId",
79
+ type: "input",
80
+ message: "请输入扣子罗盘空间id。空间id获取方式可参考:https://loop.coze.cn/open/docs/cozeloop/get_workspace_id_and_token",
81
+ default: existingWorkspaceId || undefined,
82
+ validate: (input) => {
83
+ if (input && input.trim())
84
+ return true;
85
+ if (existingWorkspaceId)
86
+ return true;
87
+ return "空间id不能为空";
88
+ },
89
+ },
90
+ ]);
91
+ const rawToken = String(answers.satToken || "").trim();
92
+ const authorization = rawToken ? normalizeAuthorization(rawToken) : normalizeAuthorization(existingAuthorization);
93
+ const workspaceId = String(answers.workspaceId || existingWorkspaceId || "").trim();
94
+ if (!authorization || !workspaceId) {
95
+ throw new Error("服务访问令牌 或 空间id缺失");
96
+ }
97
+ return { authorization, workspaceId };
98
+ }
99
+ async function updateOpenClawConfig(pluginConfig) {
100
+ const config = await readConfig();
101
+ if (!config.plugins)
102
+ config.plugins = {};
103
+ if (!config.plugins.allow)
104
+ config.plugins.allow = [];
105
+ if (!config.plugins.allow.includes(PLUGIN_NAME)) {
106
+ config.plugins.allow.push(PLUGIN_NAME);
107
+ }
108
+ if (!config.plugins.entries)
109
+ config.plugins.entries = {};
110
+ if (!config.plugins.entries[PLUGIN_NAME]) {
111
+ config.plugins.entries[PLUGIN_NAME] = { enabled: true };
112
+ }
113
+ const entry = config.plugins.entries[PLUGIN_NAME];
114
+ entry.enabled = true;
115
+ const existing = entry.config && typeof entry.config === "object" ? entry.config : {};
116
+ entry.config = {
117
+ ...existing,
118
+ authorization: pluginConfig.authorization,
119
+ endpoint: COZELOOP_ENDPOINT,
120
+ workspaceId: pluginConfig.workspaceId,
121
+ };
122
+ await writeConfig(config);
123
+ }
124
+ async function clearPluginConfig() {
125
+ const config = await readConfig();
126
+ if (!config.plugins)
127
+ return;
128
+ if (config.plugins.entries && config.plugins.entries[PLUGIN_NAME]) {
129
+ delete config.plugins.entries[PLUGIN_NAME];
130
+ }
131
+ if (config.plugins.allow) {
132
+ config.plugins.allow = config.plugins.allow.filter((name) => name !== PLUGIN_NAME);
133
+ }
134
+ await writeConfig(config);
135
+ }
136
+ async function clearInstalledPlugin() {
137
+ const config = await readConfig();
138
+ const installPath = config.installs?.[PLUGIN_NAME]?.installPath;
139
+ if (installPath) {
140
+ await fs.rm(installPath, { recursive: true, force: true });
141
+ return;
142
+ }
143
+ const fallbackPath = path.join(getExtensionsDir(), PLUGIN_NAME);
144
+ await fs.rm(fallbackPath, { recursive: true, force: true });
145
+ }
146
+ async function installPlugin() {
147
+ const openclawCmd = getPlatformCommand("openclaw");
148
+ try {
149
+ runCommandQuiet(`${openclawCmd} --version`);
150
+ }
151
+ catch {
152
+ throw new Error("未检测到 OpenClaw CLI,请先安装 openclaw");
153
+ }
154
+ runCommand(`${openclawCmd} plugins install ${PACKAGE_PATH}`);
155
+ }
156
+ async function restartGateway() {
157
+ const openclawCmd = getPlatformCommand("openclaw");
158
+ try {
159
+ runCommand(`${openclawCmd} gateway restart`);
160
+ }
161
+ catch {
162
+ console.log("网关重启失败,可稍后手动执行 openclaw gateway restart");
163
+ }
164
+ }
165
+ async function handleInstall() {
166
+ const pluginConfig = await collectPluginConfig();
167
+ await clearPluginConfig();
168
+ await clearInstalledPlugin();
169
+ await installPlugin();
170
+ await updateOpenClawConfig(pluginConfig);
171
+ await restartGateway();
172
+ console.log("安装完成,openclaw-cozeloop-trace 已启用");
173
+ }
174
+ const program = new Command();
175
+ program.name("openclaw-cozeloop-trace-onboard-cli").version("0.1.0");
176
+ program
177
+ .command("install", { isDefault: true })
178
+ .description("一键安装 openclaw-cozeloop-trace 插件")
179
+ .action(async () => {
180
+ try {
181
+ await handleInstall();
182
+ }
183
+ catch (error) {
184
+ const message = error instanceof Error ? error.message : String(error);
185
+ console.error(`安装失败: ${message}`);
186
+ process.exit(1);
187
+ }
188
+ });
189
+ program.parse(process.argv);
190
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json ADDED
@@ -0,0 +1,29 @@
1
+ {
2
+ "name": "@cozeloop/openclaw-cozeloop-trace-onboard-cli",
3
+ "version": "0.1.0",
4
+ "description": "One-click installer for openclaw-cozeloop-trace plugin",
5
+ "type": "module",
6
+ "main": "dist/index.js",
7
+ "files": [
8
+ "dist"
9
+ ],
10
+ "bin": {
11
+ "openclaw-cozeloop-trace-onboard-cli": "./dist/index.js"
12
+ },
13
+ "scripts": {
14
+ "build": "tsc",
15
+ "dev": "tsc --watch",
16
+ "clean": "rm -rf dist",
17
+ "prepublishOnly": "npm run build"
18
+ },
19
+ "license": "MIT",
20
+ "devDependencies": {
21
+ "@types/inquirer": "^9.0.9",
22
+ "@types/node": "^20.0.0",
23
+ "typescript": "^5.0.0"
24
+ },
25
+ "dependencies": {
26
+ "commander": "^14.0.3",
27
+ "inquirer": "^8.2.7"
28
+ }
29
+ }