badgerclaw 0.1.9 → 0.1.11

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;
@@ -4,6 +4,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.autopairCommand = void 0;
7
+ exports.redeemAndWrite = redeemAndWrite;
7
8
  exports.runAutoPair = runAutoPair;
8
9
  const commander_1 = require("commander");
9
10
  const chalk_1 = __importDefault(require("chalk"));
@@ -15,6 +16,37 @@ const auth_1 = require("../lib/auth");
15
16
  const api_1 = require("../lib/api");
16
17
  const OPENCLAW_CONFIG = path_1.default.join(os_1.default.homedir(), '.openclaw', 'openclaw.json');
17
18
  const API_BASE = 'https://api.badgerclaw.ai';
19
+ async function redeemAndWrite(pairCode, botName, botUserId, silent) {
20
+ const auth = (0, auth_1.readAuth)();
21
+ if (!auth)
22
+ return;
23
+ const spinner = silent ? null : (0, ora_1.default)(`Pairing bot: ${botName} (${botUserId})`).start();
24
+ try {
25
+ const redeemResp = await fetch(`${API_BASE}/api/v1/pairing/redeem`, {
26
+ method: 'POST',
27
+ headers: { 'Content-Type': 'application/json' },
28
+ body: JSON.stringify({ code: pairCode }),
29
+ });
30
+ if (!redeemResp.ok) {
31
+ const err = await redeemResp.json().catch(() => ({ detail: redeemResp.statusText }));
32
+ spinner?.fail(chalk_1.default.red(`Failed to redeem ${botName}: ${err.detail}`));
33
+ return;
34
+ }
35
+ const bot = await redeemResp.json();
36
+ writeToOpenClawConfig(bot);
37
+ await fetch(`${API_BASE}/api/v1/openclaw/pending-pairs/${pairCode}/claim`, {
38
+ method: 'POST',
39
+ headers: { Authorization: `Bearer ${auth.access_token}` },
40
+ });
41
+ spinner?.succeed(chalk_1.default.green(`✅ Paired ${bot.bot_name} (${bot.user_id})`));
42
+ if (!silent) {
43
+ console.log(chalk_1.default.yellow(`\n⚡ Bot paired. Run: openclaw gateway restart`));
44
+ }
45
+ }
46
+ catch (e) {
47
+ spinner?.fail(chalk_1.default.red(`Error pairing ${botName}: ${e}`));
48
+ }
49
+ }
18
50
  async function runAutoPair(silent = false) {
19
51
  const auth = (0, auth_1.readAuth)();
20
52
  if (!auth)
@@ -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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"}
@@ -71,6 +71,15 @@ exports.setupCommand = new commander_1.Command('setup')
71
71
  process.exit(1);
72
72
  }
73
73
  console.log(chalk_1.default.green('\n✅ BadgerClaw plugin installed successfully!'));
74
+ // Restart gateway to load the new plugin code
75
+ console.log(chalk_1.default.dim('\n Restarting OpenClaw gateway to load plugin...'));
76
+ const restart = (0, child_process_1.spawnSync)('openclaw', ['gateway', 'restart'], { stdio: 'inherit', shell: true });
77
+ if (restart.status === 0) {
78
+ console.log(chalk_1.default.green(' Gateway restarted.'));
79
+ }
80
+ else {
81
+ console.log(chalk_1.default.yellow(' Gateway restart failed or not running — start it manually: openclaw gateway start'));
82
+ }
74
83
  console.log(chalk_1.default.dim('\nNext: run `badgerclaw login` to authenticate.'));
75
84
  });
76
85
  //# sourceMappingURL=setup.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.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;
@@ -1,4 +1,37 @@
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
  };
@@ -8,22 +41,34 @@ const commander_1 = require("commander");
8
41
  const chalk_1 = __importDefault(require("chalk"));
9
42
  const auth_1 = require("../lib/auth");
10
43
  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)')
44
+ const API_BASE = "https://api.badgerclaw.ai";
45
+ exports.watchCommand = new commander_1.Command("watch")
46
+ .description("Watch for bot pair events in real-time (no polling)")
14
47
  .action(async () => {
15
48
  const auth = (0, auth_1.readAuth)();
16
49
  if (!auth) {
17
- console.log(chalk_1.default.yellow('Not logged in. Run `badgerclaw login` first.'));
50
+ console.log(chalk_1.default.yellow("Not logged in."));
18
51
  process.exit(1);
19
52
  }
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
53
  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);
54
+ console.log(chalk_1.default.green("🔴 Listening for pair events... (Ctrl+C to stop)"));
55
+ const { default: EventSource } = await Promise.resolve().then(() => __importStar(require("eventsource")));
56
+ const es = new EventSource(`${API_BASE}/api/v1/openclaw/events`, {
57
+ headers: { Authorization: `Bearer ${auth.access_token}` },
58
+ });
59
+ es.onmessage = async (event) => {
60
+ try {
61
+ const data = JSON.parse(event.data);
62
+ if (data.type === "pair") {
63
+ console.log(chalk_1.default.cyan(`\n📱 Pair event received: ${data.bot_name}`));
64
+ await (0, autopair_1.redeemAndWrite)(data.pair_code, data.bot_name, data.bot_user_id, false);
65
+ }
66
+ }
67
+ catch { }
68
+ };
69
+ es.onerror = () => {
70
+ console.log(chalk_1.default.dim(" Reconnecting..."));
71
+ };
72
+ await new Promise(() => { });
28
73
  });
29
74
  //# 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,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,wDAAa,aAAa,GAAC,CAAC;IAC7D,MAAM,EAAE,GAAG,IAAK,WAAmB,CAAC,GAAG,QAAQ,yBAAyB,EAAE;QACxE,OAAO,EAAE,EAAE,aAAa,EAAE,UAAU,IAAI,CAAC,YAAY,EAAE,EAAE;KAC1D,CAAC,CAAC;IACH,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,7 +1,7 @@
1
1
  {
2
2
  "name": "badgerclaw",
3
- "version": "0.1.9",
4
- "description": "BadgerClaw CLI \u2014 one-click bot provisioning",
3
+ "version": "0.1.11",
4
+ "description": "BadgerClaw CLI one-click bot provisioning",
5
5
  "main": "dist/index.js",
6
6
  "bin": {
7
7
  "badgerclaw": "./dist/index.js"
@@ -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": "^4.1.0",
32
34
  "open": "^8.4.2",
33
35
  "ora": "^5.4.1"
34
36
  },
@@ -36,4 +38,4 @@
36
38
  "@types/node": "^20.0.0",
37
39
  "typescript": "^5.3.0"
38
40
  }
39
- }
41
+ }