badgerclaw 0.1.10 → 0.1.12

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,3 +1,4 @@
1
1
  import { Command } from 'commander';
2
+ export declare function redeemAndWrite(pairCode: string, botName: string, botUserId: string, silent: boolean): Promise<void>;
2
3
  export declare function runAutoPair(silent?: boolean): Promise<number>;
3
4
  export declare const autopairCommand: Command;
@@ -1,9 +1,43 @@
1
1
  "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
2
35
  var __importDefault = (this && this.__importDefault) || function (mod) {
3
36
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
37
  };
5
38
  Object.defineProperty(exports, "__esModule", { value: true });
6
39
  exports.autopairCommand = void 0;
40
+ exports.redeemAndWrite = redeemAndWrite;
7
41
  exports.runAutoPair = runAutoPair;
8
42
  const commander_1 = require("commander");
9
43
  const chalk_1 = __importDefault(require("chalk"));
@@ -15,6 +49,34 @@ const auth_1 = require("../lib/auth");
15
49
  const api_1 = require("../lib/api");
16
50
  const OPENCLAW_CONFIG = path_1.default.join(os_1.default.homedir(), '.openclaw', 'openclaw.json');
17
51
  const API_BASE = 'https://api.badgerclaw.ai';
52
+ async function redeemAndWrite(pairCode, botName, botUserId, silent) {
53
+ const auth = (0, auth_1.readAuth)();
54
+ if (!auth)
55
+ return;
56
+ const spinner = silent ? null : (0, ora_1.default)(`Pairing bot: ${botName}...`).start();
57
+ try {
58
+ // Use `openclaw badgerclaw connect <code>` — this writes to openclaw.json via the SDK's
59
+ // writeConfigFile() which triggers the gateway file watcher and hot-reloads startAccount.
60
+ // Direct fs.writeFileSync bypasses the watcher and the bot never comes online.
61
+ const { execSync } = await Promise.resolve().then(() => __importStar(require('child_process')));
62
+ const output = execSync(`openclaw badgerclaw connect ${pairCode}`, {
63
+ encoding: 'utf-8',
64
+ timeout: 30000,
65
+ });
66
+ // Mark as claimed
67
+ await fetch(`${API_BASE}/api/v1/openclaw/pending-pairs/${pairCode}/claim`, {
68
+ method: 'POST',
69
+ headers: { Authorization: `Bearer ${auth.access_token}` },
70
+ }).catch(() => { });
71
+ spinner?.succeed(chalk_1.default.green(`✅ Paired ${botName} (${botUserId}) — bot is live`));
72
+ if (!silent) {
73
+ console.log(chalk_1.default.dim(output.trim()));
74
+ }
75
+ }
76
+ catch (e) {
77
+ spinner?.fail(chalk_1.default.red(`Failed to pair ${botName}: ${e.message}`));
78
+ }
79
+ }
18
80
  async function runAutoPair(silent = false) {
19
81
  const auth = (0, auth_1.readAuth)();
20
82
  if (!auth)
@@ -28,23 +90,16 @@ async function runAutoPair(silent = false) {
28
90
  for (const pair of pending) {
29
91
  const spinner = silent ? null : (0, ora_1.default)(`Pairing bot: ${pair.bot_name} (${pair.bot_user_id})`).start();
30
92
  try {
31
- // Redeem the pair code
32
- const redeemResp = await fetch(`${API_BASE}/api/v1/pairing/redeem`, {
33
- method: 'POST',
34
- headers: { 'Content-Type': 'application/json' },
35
- body: JSON.stringify({ code: pair.pair_code }),
93
+ // Use openclaw badgerclaw connect — redeems + writes via SDK writeConfigFile
94
+ // which triggers gateway file watcher and hot-reloads startAccount immediately
95
+ const { execSync } = await Promise.resolve().then(() => __importStar(require('child_process')));
96
+ execSync(`openclaw badgerclaw connect ${pair.pair_code}`, {
97
+ encoding: 'utf-8',
98
+ timeout: 30000,
36
99
  });
37
- if (!redeemResp.ok) {
38
- const err = await redeemResp.json().catch(() => ({ detail: redeemResp.statusText }));
39
- spinner?.fail(chalk_1.default.red(`Failed to redeem ${pair.bot_name}: ${err.detail}`));
40
- continue;
41
- }
42
- const bot = await redeemResp.json();
43
- // Write to OpenClaw config
44
- writeToOpenClawConfig(bot);
45
- // Mark as claimed so it won't be returned again
100
+ // Mark as claimed
46
101
  await client.post(`/api/v1/openclaw/pending-pairs/${pair.pair_code}/claim`);
47
- spinner?.succeed(chalk_1.default.green(`✅ Paired ${bot.bot_name} (${bot.user_id})`));
102
+ spinner?.succeed(chalk_1.default.green(`✅ Paired ${pair.bot_name} (${pair.bot_user_id}) — bot is live`));
48
103
  paired++;
49
104
  }
50
105
  catch (e) {
@@ -1 +1 @@
1
- {"version":3,"file":"autopair.js","sourceRoot":"","sources":["../../src/commands/autopair.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"autopair.js","sourceRoot":"","sources":["../../src/commands/autopair.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import { Command } from 'commander';
1
+ import { Command } from "commander";
2
2
  export declare const watchCommand: Command;
@@ -8,22 +8,36 @@ const commander_1 = require("commander");
8
8
  const chalk_1 = __importDefault(require("chalk"));
9
9
  const auth_1 = require("../lib/auth");
10
10
  const autopair_1 = require("./autopair");
11
- const POLL_INTERVAL_MS = 10000;
12
- exports.watchCommand = new commander_1.Command('watch')
13
- .description('Watch for pending bot pairs and connect them automatically (runs until stopped)')
11
+ const API_BASE = "https://api.badgerclaw.ai";
12
+ exports.watchCommand = new commander_1.Command("watch")
13
+ .description("Watch for bot pair events in real-time (no polling)")
14
14
  .action(async () => {
15
15
  const auth = (0, auth_1.readAuth)();
16
16
  if (!auth) {
17
- console.log(chalk_1.default.yellow('Not logged in. Run `badgerclaw login` first.'));
17
+ console.log(chalk_1.default.yellow("Not logged in."));
18
18
  process.exit(1);
19
19
  }
20
- console.log(chalk_1.default.green('👀 Watching for pending bot pairs... (Ctrl+C to stop)'));
21
- console.log(chalk_1.default.dim(`Polling every ${POLL_INTERVAL_MS / 1000}s`));
22
- // Run once immediately
23
20
  await (0, autopair_1.runAutoPair)(false);
24
- // Then poll on interval
25
- setInterval(async () => {
26
- await (0, autopair_1.runAutoPair)(false);
27
- }, POLL_INTERVAL_MS);
21
+ console.log(chalk_1.default.green("🔴 Listening for pair events... (Ctrl+C to stop)"));
22
+ // Use require() for eventsource v1 (CJS compatible)
23
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
24
+ const EventSource = require("eventsource");
25
+ const es = new EventSource(`${API_BASE}/api/v1/openclaw/events`, {
26
+ headers: { Authorization: `Bearer ${auth.access_token}` },
27
+ });
28
+ es.onmessage = async (event) => {
29
+ try {
30
+ const data = JSON.parse(event.data);
31
+ if (data.type === "pair") {
32
+ console.log(chalk_1.default.cyan(`\n📱 Pair event received: ${data.bot_name}`));
33
+ await (0, autopair_1.redeemAndWrite)(data.pair_code, data.bot_name, data.bot_user_id, false);
34
+ }
35
+ }
36
+ catch { }
37
+ };
38
+ es.onerror = () => {
39
+ console.log(chalk_1.default.dim(" Reconnecting..."));
40
+ };
41
+ await new Promise(() => { });
28
42
  });
29
43
  //# sourceMappingURL=watch.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,sCAAuC;AACvC,yCAAyC;AAEzC,MAAM,gBAAgB,GAAG,KAAM,CAAC;AAEnB,QAAA,YAAY,GAAG,IAAI,mBAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,iFAAiF,CAAC;KAC9F,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAI,GAAG,IAAA,eAAQ,GAAE,CAAC;IACxB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,8CAA8C,CAAC,CAAC,CAAC;QAC1E,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,uDAAuD,CAAC,CAAC,CAAC;IAClF,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,iBAAiB,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,CAAC;IAEpE,uBAAuB;IACvB,MAAM,IAAA,sBAAW,EAAC,KAAK,CAAC,CAAC;IAEzB,wBAAwB;IACxB,WAAW,CAAC,KAAK,IAAI,EAAE;QACrB,MAAM,IAAA,sBAAW,EAAC,KAAK,CAAC,CAAC;IAC3B,CAAC,EAAE,gBAAgB,CAAC,CAAC;AACvB,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,sCAAuC;AACvC,yCAAyD;AAEzD,MAAM,QAAQ,GAAG,2BAA2B,CAAC;AAEhC,QAAA,YAAY,GAAG,IAAI,mBAAO,CAAC,OAAO,CAAC;KAC7C,WAAW,CAAC,qDAAqD,CAAC;KAClE,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,IAAI,GAAG,IAAA,eAAQ,GAAE,CAAC;IACxB,IAAI,CAAC,IAAI,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC5C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,MAAM,IAAA,sBAAW,EAAC,KAAK,CAAC,CAAC;IACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,kDAAkD,CAAC,CAAC,CAAC;IAC7E,oDAAoD;IACpD,8DAA8D;IAC9D,MAAM,WAAW,GAAG,OAAO,CAAC,aAAa,CAAiC,CAAC;IAC3E,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,GAAG,QAAQ,yBAAyB,EAAE;QAC/D,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,YAAY,EAAE,EAAE;KACnD,CAAC,CAAC;IACV,EAAE,CAAC,SAAS,GAAG,KAAK,EAAE,KAAU,EAAE,EAAE;QAClC,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YACpC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBACzB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,6BAA6B,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;gBACtE,MAAM,IAAA,yBAAc,EAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;QAAC,MAAM,CAAC,CAAA,CAAC;IACZ,CAAC,CAAC;IACF,EAAE,CAAC,OAAO,GAAG,GAAG,EAAE;QAChB,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,mBAAmB,CAAC,CAAC,CAAC;IAC9C,CAAC,CAAC;IACF,MAAM,IAAI,OAAO,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "badgerclaw",
3
- "version": "0.1.10",
3
+ "version": "0.1.12",
4
4
  "description": "BadgerClaw CLI \u2014 one-click bot provisioning",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
@@ -26,9 +26,11 @@
26
26
  },
27
27
  "homepage": "https://github.com/darkstaar4/badgerclaw-cli#readme",
28
28
  "dependencies": {
29
+ "@types/eventsource": "^1.1.15",
29
30
  "axios": "^1.6.0",
30
31
  "chalk": "^4.1.2",
31
32
  "commander": "^12.0.0",
33
+ "eventsource": "^1.1.2",
32
34
  "open": "^8.4.2",
33
35
  "ora": "^5.4.1"
34
36
  },