badgerclaw 0.1.8 → 0.1.9
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/dist/commands/setup.d.ts +2 -0
- package/dist/commands/setup.js +76 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.setupCommand = void 0;
|
|
7
|
+
const commander_1 = require("commander");
|
|
8
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
+
const child_process_1 = require("child_process");
|
|
10
|
+
const fs_1 = __importDefault(require("fs"));
|
|
11
|
+
const os_1 = __importDefault(require("os"));
|
|
12
|
+
const path_1 = __importDefault(require("path"));
|
|
13
|
+
const OPENCLAW_CONFIG = path_1.default.join(os_1.default.homedir(), '.openclaw', 'openclaw.json');
|
|
14
|
+
const STASH_PATH = OPENCLAW_CONFIG + '.badgerclaw-stash';
|
|
15
|
+
function stashBadgerclawConfig() {
|
|
16
|
+
if (!fs_1.default.existsSync(OPENCLAW_CONFIG))
|
|
17
|
+
return null;
|
|
18
|
+
try {
|
|
19
|
+
const config = JSON.parse(fs_1.default.readFileSync(OPENCLAW_CONFIG, 'utf-8'));
|
|
20
|
+
const bc = config.channels?.badgerclaw;
|
|
21
|
+
if (!bc)
|
|
22
|
+
return null;
|
|
23
|
+
// Remove from config temporarily
|
|
24
|
+
delete config.channels.badgerclaw;
|
|
25
|
+
// Also remove stale plugins entry
|
|
26
|
+
if (config.plugins?.entries?.badgerclaw)
|
|
27
|
+
delete config.plugins.entries.badgerclaw;
|
|
28
|
+
fs_1.default.writeFileSync(OPENCLAW_CONFIG, JSON.stringify(config, null, 2));
|
|
29
|
+
fs_1.default.writeFileSync(STASH_PATH, JSON.stringify(bc, null, 2));
|
|
30
|
+
return bc;
|
|
31
|
+
}
|
|
32
|
+
catch {
|
|
33
|
+
return null;
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
function restoreBadgerclawConfig() {
|
|
37
|
+
if (!fs_1.default.existsSync(STASH_PATH))
|
|
38
|
+
return;
|
|
39
|
+
try {
|
|
40
|
+
const stashed = JSON.parse(fs_1.default.readFileSync(STASH_PATH, 'utf-8'));
|
|
41
|
+
const config = JSON.parse(fs_1.default.readFileSync(OPENCLAW_CONFIG, 'utf-8'));
|
|
42
|
+
config.channels = config.channels || {};
|
|
43
|
+
config.channels.badgerclaw = stashed;
|
|
44
|
+
fs_1.default.writeFileSync(OPENCLAW_CONFIG, JSON.stringify(config, null, 2));
|
|
45
|
+
fs_1.default.unlinkSync(STASH_PATH);
|
|
46
|
+
}
|
|
47
|
+
catch (e) {
|
|
48
|
+
console.log(chalk_1.default.yellow(` ⚠️ Could not restore config: ${e.message}`));
|
|
49
|
+
console.log(chalk_1.default.yellow(` Your bot credentials are backed up at: ${STASH_PATH}`));
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
exports.setupCommand = new commander_1.Command('setup')
|
|
53
|
+
.description('Install or update the OpenClaw BadgerClaw plugin safely (handles config automatically)')
|
|
54
|
+
.action(async () => {
|
|
55
|
+
console.log(chalk_1.default.green('\n🦡 BadgerClaw Setup\n'));
|
|
56
|
+
// Step 1: Stash existing badgerclaw config if present
|
|
57
|
+
const stashed = stashBadgerclawConfig();
|
|
58
|
+
if (stashed) {
|
|
59
|
+
console.log(chalk_1.default.dim(' Existing bot config stashed temporarily...'));
|
|
60
|
+
}
|
|
61
|
+
// Step 2: Install plugin
|
|
62
|
+
console.log(chalk_1.default.dim(' Installing @badgerclaw/connect plugin...'));
|
|
63
|
+
const result = (0, child_process_1.spawnSync)('openclaw', ['plugins', 'install', '@badgerclaw/connect'], { stdio: 'inherit', shell: true });
|
|
64
|
+
// Step 3: Always restore config, even if install failed
|
|
65
|
+
if (stashed) {
|
|
66
|
+
restoreBadgerclawConfig();
|
|
67
|
+
console.log(chalk_1.default.dim(' Bot config restored.'));
|
|
68
|
+
}
|
|
69
|
+
if (result.status !== 0) {
|
|
70
|
+
console.log(chalk_1.default.red('\n❌ Plugin install failed. Your bot config has been restored.'));
|
|
71
|
+
process.exit(1);
|
|
72
|
+
}
|
|
73
|
+
console.log(chalk_1.default.green('\n✅ BadgerClaw plugin installed successfully!'));
|
|
74
|
+
console.log(chalk_1.default.dim('\nNext: run `badgerclaw login` to authenticate.'));
|
|
75
|
+
});
|
|
76
|
+
//# sourceMappingURL=setup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -8,6 +8,7 @@ const status_1 = require("./commands/status");
|
|
|
8
8
|
const bot_1 = require("./commands/bot");
|
|
9
9
|
const autopair_1 = require("./commands/autopair");
|
|
10
10
|
const watch_1 = require("./commands/watch");
|
|
11
|
+
const setup_1 = require("./commands/setup");
|
|
11
12
|
const program = new commander_1.Command();
|
|
12
13
|
program
|
|
13
14
|
.name('badgerclaw')
|
|
@@ -19,5 +20,6 @@ program.addCommand(status_1.statusCommand);
|
|
|
19
20
|
program.addCommand(bot_1.botCommand);
|
|
20
21
|
program.addCommand(autopair_1.autopairCommand);
|
|
21
22
|
program.addCommand(watch_1.watchCommand);
|
|
23
|
+
program.addCommand(setup_1.setupCommand);
|
|
22
24
|
program.parse(process.argv);
|
|
23
25
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,4CAAgD;AAChD,8CAAkD;AAClD,8CAAkD;AAClD,wCAA4C;AAC5C,kDAAsD;AACtD,4CAAgD;AAEhD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC;AAE/C,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,gBAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,0BAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AAEjC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,4CAAgD;AAChD,8CAAkD;AAClD,8CAAkD;AAClD,wCAA4C;AAC5C,kDAAsD;AACtD,4CAAgD;AAChD,4CAAgD;AAEhD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,YAAY,CAAC;KAClB,WAAW,CAAC,6CAA6C,CAAC;KAC1D,OAAO,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC,OAAO,CAAC,CAAC;AAE/C,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,gBAAU,CAAC,CAAC;AAC/B,OAAO,CAAC,UAAU,CAAC,0BAAe,CAAC,CAAC;AACpC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AAEjC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC"}
|