@arinova-ai/cli 0.0.6 → 0.0.7
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.
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-openclaw.d.ts","sourceRoot":"","sources":["../../src/commands/setup-openclaw.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsCpC,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA4M5D"}
|
|
@@ -0,0 +1,186 @@
|
|
|
1
|
+
import { readFileSync, writeFileSync, copyFileSync, existsSync } from "node:fs";
|
|
2
|
+
import { join } from "node:path";
|
|
3
|
+
import { homedir } from "node:os";
|
|
4
|
+
import { get, post } from "../client.js";
|
|
5
|
+
import { getApiKey, getEndpoint } from "../config.js";
|
|
6
|
+
import { printSuccess, printError } from "../output.js";
|
|
7
|
+
export function registerSetupOpenclaw(program) {
|
|
8
|
+
program
|
|
9
|
+
.command("setup-openclaw")
|
|
10
|
+
.description("One-click setup for OpenClaw workspace Arinova integration")
|
|
11
|
+
.option("--workspace <path>", "Path to specific openclaw.json (default: ~/.openclaw/openclaw.json)")
|
|
12
|
+
.option("--force", "Force reconfigure existing channel settings")
|
|
13
|
+
.option("--api-url <url>", "Arinova API URL for channel config")
|
|
14
|
+
.action(async (opts) => {
|
|
15
|
+
try {
|
|
16
|
+
// 1. Check auth
|
|
17
|
+
const apiKey = getApiKey();
|
|
18
|
+
if (!apiKey) {
|
|
19
|
+
printError("No API key configured. Please run `arinova auth set-key <key>` first");
|
|
20
|
+
return; // printError exits, but for clarity
|
|
21
|
+
}
|
|
22
|
+
// 2. Find openclaw.json
|
|
23
|
+
const configPath = opts.workspace ?? join(homedir(), ".openclaw", "openclaw.json");
|
|
24
|
+
if (!existsSync(configPath)) {
|
|
25
|
+
printError(`openclaw.json not found at: ${configPath}`);
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
// 3. Read and parse
|
|
29
|
+
let config;
|
|
30
|
+
try {
|
|
31
|
+
config = JSON.parse(readFileSync(configPath, "utf-8"));
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
printError(`Failed to parse openclaw.json at: ${configPath}`);
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
// 4. Check plugin
|
|
38
|
+
const hasPluginEntry = config.plugins?.entries?.["openclaw-arinova-ai"];
|
|
39
|
+
const hasPluginInstall = config.plugins?.installs?.["openclaw-arinova-ai"];
|
|
40
|
+
if (!hasPluginEntry && !hasPluginInstall) {
|
|
41
|
+
printError("Arinova plugin not installed. Please run:\n openclaw plugin install @arinova-ai/openclaw-arinova-ai");
|
|
42
|
+
return;
|
|
43
|
+
}
|
|
44
|
+
// 5. Get agents from openclaw config
|
|
45
|
+
const agents = config.agents?.list ?? [];
|
|
46
|
+
if (agents.length === 0) {
|
|
47
|
+
printError("No agents found in openclaw.json agents.list");
|
|
48
|
+
return;
|
|
49
|
+
}
|
|
50
|
+
console.log(`Found ${agents.length} agent(s) in openclaw.json: ${agents.map((a) => a.name).join(", ")}`);
|
|
51
|
+
// 6. Get existing bots from Arinova
|
|
52
|
+
let remoteBots = [];
|
|
53
|
+
try {
|
|
54
|
+
const data = await get("/api/creator/agents");
|
|
55
|
+
const raw = data;
|
|
56
|
+
const list = raw.listings ?? raw.agents ?? data;
|
|
57
|
+
if (Array.isArray(list)) {
|
|
58
|
+
remoteBots = list;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
catch (err) {
|
|
62
|
+
console.log("Warning: Could not fetch existing bots from Arinova. Will create new bots.");
|
|
63
|
+
}
|
|
64
|
+
console.log(`Found ${remoteBots.length} existing bot(s) on Arinova`);
|
|
65
|
+
// 7. Match agents to bots and collect tokens
|
|
66
|
+
const channelApiUrl = opts.apiUrl ?? (() => {
|
|
67
|
+
const endpoint = getEndpoint();
|
|
68
|
+
// Convert chat.arinova.ai -> api.chat.arinova.ai
|
|
69
|
+
// Convert chat-staging.arinova.ai -> api.chat-staging.arinova.ai
|
|
70
|
+
try {
|
|
71
|
+
const u = new URL(endpoint);
|
|
72
|
+
if (!u.hostname.startsWith("api.")) {
|
|
73
|
+
u.hostname = `api.${u.hostname}`;
|
|
74
|
+
}
|
|
75
|
+
return u.origin;
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return "https://api.chat.arinova.ai";
|
|
79
|
+
}
|
|
80
|
+
})();
|
|
81
|
+
// Read existing channel config to check for already-configured agents
|
|
82
|
+
const existingChannel = (config.channels?.["openclaw-arinova-ai"] ?? {});
|
|
83
|
+
const existingAccounts = (existingChannel.accounts ?? {});
|
|
84
|
+
const accountsConfig = {};
|
|
85
|
+
const summary = [];
|
|
86
|
+
for (const agent of agents) {
|
|
87
|
+
// Skip if already configured (unless --force)
|
|
88
|
+
if (!opts.force && existingAccounts[agent.id]?.botToken) {
|
|
89
|
+
accountsConfig[agent.id] = existingAccounts[agent.id];
|
|
90
|
+
summary.push({ agent: agent.name, action: "skipped (already configured)" });
|
|
91
|
+
continue;
|
|
92
|
+
}
|
|
93
|
+
// Try to match by name (case-insensitive)
|
|
94
|
+
const match = remoteBots.find((b) => b.agent_name.toLowerCase() === agent.name.toLowerCase());
|
|
95
|
+
let token;
|
|
96
|
+
if (match) {
|
|
97
|
+
token = match.botToken ?? match.secret_token;
|
|
98
|
+
if (token) {
|
|
99
|
+
summary.push({ agent: agent.name, action: `matched existing bot "${match.agent_name}"` });
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
if (!token) {
|
|
103
|
+
// Create a new bot
|
|
104
|
+
console.log(`Creating bot for agent "${agent.name}"...`);
|
|
105
|
+
try {
|
|
106
|
+
const created = (await post("/api/creator/agents/create", {
|
|
107
|
+
agent_name: agent.name,
|
|
108
|
+
description: "OpenClaw agent",
|
|
109
|
+
category: "assistant",
|
|
110
|
+
model: "claude-sonnet-4-6",
|
|
111
|
+
}));
|
|
112
|
+
token = created.botToken ?? created.secret_token;
|
|
113
|
+
if (!token) {
|
|
114
|
+
// The token might be nested in agent/data
|
|
115
|
+
const nested = created.agent ?? created.data;
|
|
116
|
+
if (nested && typeof nested === "object") {
|
|
117
|
+
const n = nested;
|
|
118
|
+
token = n.botToken ?? n.secret_token;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
if (!token) {
|
|
122
|
+
console.log(`Warning: Bot created for "${agent.name}" but no token in response. You may need to retrieve it manually.`);
|
|
123
|
+
console.log(" Response:", JSON.stringify(created, null, 2));
|
|
124
|
+
summary.push({ agent: agent.name, action: "created bot (token not found in response)" });
|
|
125
|
+
continue;
|
|
126
|
+
}
|
|
127
|
+
summary.push({ agent: agent.name, action: "created new bot" });
|
|
128
|
+
}
|
|
129
|
+
catch (err) {
|
|
130
|
+
const msg = err instanceof Error ? err.message : String(err);
|
|
131
|
+
console.log(`Warning: Failed to create bot for "${agent.name}": ${msg}`);
|
|
132
|
+
summary.push({ agent: agent.name, action: `failed: ${msg}` });
|
|
133
|
+
continue;
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
accountsConfig[agent.id] = { enabled: true, botToken: token };
|
|
137
|
+
}
|
|
138
|
+
// 8. Backup
|
|
139
|
+
const backupPath = configPath + ".bak";
|
|
140
|
+
copyFileSync(configPath, backupPath);
|
|
141
|
+
console.log(`Backup saved to: ${backupPath}`);
|
|
142
|
+
// 9. Write channels config
|
|
143
|
+
if (!config.channels) {
|
|
144
|
+
config.channels = {};
|
|
145
|
+
}
|
|
146
|
+
config.channels["openclaw-arinova-ai"] = {
|
|
147
|
+
enabled: true,
|
|
148
|
+
apiUrl: channelApiUrl,
|
|
149
|
+
accounts: accountsConfig,
|
|
150
|
+
};
|
|
151
|
+
// 10. Write bindings — ensure each agent has a binding
|
|
152
|
+
if (!config.bindings) {
|
|
153
|
+
config.bindings = [];
|
|
154
|
+
}
|
|
155
|
+
for (const agent of agents) {
|
|
156
|
+
// Only add binding if the agent has an account configured
|
|
157
|
+
if (!accountsConfig[agent.id])
|
|
158
|
+
continue;
|
|
159
|
+
const exists = config.bindings.some((b) => b.agentId === agent.id &&
|
|
160
|
+
b.match.channel === "openclaw-arinova-ai" &&
|
|
161
|
+
b.match.accountId === agent.id);
|
|
162
|
+
if (!exists) {
|
|
163
|
+
config.bindings.push({
|
|
164
|
+
agentId: agent.id,
|
|
165
|
+
match: { channel: "openclaw-arinova-ai", accountId: agent.id },
|
|
166
|
+
});
|
|
167
|
+
summary.push({ agent: agent.name, action: "added binding" });
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
// 11. Write back
|
|
171
|
+
writeFileSync(configPath, JSON.stringify(config, null, 2) + "\n", "utf-8");
|
|
172
|
+
// 12. Print summary
|
|
173
|
+
console.log("\n--- Setup Summary ---");
|
|
174
|
+
for (const s of summary) {
|
|
175
|
+
console.log(` ${s.agent}: ${s.action}`);
|
|
176
|
+
}
|
|
177
|
+
console.log(`\nChannel API URL: ${channelApiUrl}`);
|
|
178
|
+
console.log(`Agents configured: ${Object.keys(accountsConfig).length}/${agents.length}`);
|
|
179
|
+
printSuccess("OpenClaw Arinova integration setup complete!");
|
|
180
|
+
}
|
|
181
|
+
catch (err) {
|
|
182
|
+
printError(err);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
//# sourceMappingURL=setup-openclaw.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup-openclaw.js","sourceRoot":"","sources":["../../src/commands/setup-openclaw.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -16,6 +16,7 @@ import { registerSpace } from "./commands/space.js";
|
|
|
16
16
|
import { registerStats } from "./commands/stats.js";
|
|
17
17
|
import { registerList } from "./commands/list.js";
|
|
18
18
|
import { registerApp } from "./commands/app.js";
|
|
19
|
+
import { registerSetupOpenclaw } from "./commands/setup-openclaw.js";
|
|
19
20
|
const program = new Command();
|
|
20
21
|
program
|
|
21
22
|
.name("arinova")
|
|
@@ -53,6 +54,7 @@ registerSpace(program);
|
|
|
53
54
|
registerStats(program);
|
|
54
55
|
registerList(program);
|
|
55
56
|
registerApp(program);
|
|
57
|
+
registerSetupOpenclaw(program);
|
|
56
58
|
program.parseAsync().then(() => {
|
|
57
59
|
// Force exit after async commands complete — Node's fetch keep-alive prevents natural exit
|
|
58
60
|
setTimeout(() => process.exit(0), 100);
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAChE,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,sBAAsB,EAAE,MAAM,sBAAsB,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|