@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,3 @@
1
+ import { Command } from "commander";
2
+ export declare function registerSetupOpenclaw(program: Command): void;
3
+ //# sourceMappingURL=setup-openclaw.d.ts.map
@@ -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;AAEhD,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,+EAA+E,CAAC;KAC5F,OAAO,CAAC,OAAO,CAAC;KAChB,MAAM,CAAC,oBAAoB,EAAE,yBAAyB,CAAC;KACvD,MAAM,CAAC,iBAAiB,EAAE,qDAAqD,CAAC;KAChF,MAAM,CAAC,WAAW,EAAE,yBAAyB,CAAC;KAC9C,MAAM,CAAC,QAAQ,EAAE,uBAAuB,CAAC;KACzC,IAAI,CAAC,WAAW,EAAE,CAAC,WAAW,EAAE,EAAE;IACjC,MAAM,IAAI,GAAG,WAAW,CAAC,eAAe,EAAE,CAAC;IAC3C,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,WAAW,CAAC,IAAI,CAAC,CAAC;IACpB,CAAC;IACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;QACjB,8DAA8D;QAC9D,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,WAAW,CAAC,cAAc,CAAC,QAAQ,EAAE,kBAAkB,EAAE,CAAC,CAAC;QAC7D,CAAC;IACH,CAAC;AACH,CAAC,CAAC,CAAC;AAEL,4CAA4C;AAC5C,uBAAuB,CAAC,OAAO,CAAC,CAAC;AACjC,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAC9B,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAChC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAEhC,uCAAuC;AACvC,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,eAAe,CAAC,OAAO,CAAC,CAAC;AACzB,cAAc,CAAC,OAAO,CAAC,CAAC;AACxB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,iBAAiB,CAAC,OAAO,CAAC,CAAC;AAC3B,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,aAAa,CAAC,OAAO,CAAC,CAAC;AACvB,YAAY,CAAC,OAAO,CAAC,CAAC;AACtB,WAAW,CAAC,OAAO,CAAC,CAAC;AAErB,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE;IAC7B,2FAA2F;IAC3F,UAAU,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;AACzC,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@arinova-ai/cli",
3
- "version": "0.0.6",
3
+ "version": "0.0.7",
4
4
  "description": "Arinova CLI — manage messages, notes, kanban, memory, creator tools, and more",
5
5
  "type": "module",
6
6
  "bin": {