badgerclaw 0.1.7 → 1.4.0
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.
Potentially problematic release.
This version of badgerclaw might be problematic. Click here for more details.
- package/CHANGELOG.md +104 -0
- package/SETUP.md +291 -0
- package/index.ts +47 -0
- package/openclaw.plugin.json +1 -0
- package/package.json +32 -34
- package/scripts/postinstall.js +34 -0
- package/src/actions.ts +195 -0
- package/src/channel.ts +461 -0
- package/src/config-schema.ts +62 -0
- package/src/connect.ts +17 -0
- package/src/directory-live.ts +209 -0
- package/src/group-mentions.ts +103 -0
- package/src/matrix/accounts.ts +114 -0
- package/src/matrix/actions/client.ts +47 -0
- package/src/matrix/actions/limits.ts +6 -0
- package/src/matrix/actions/messages.ts +126 -0
- package/src/matrix/actions/pins.ts +84 -0
- package/src/matrix/actions/reactions.ts +102 -0
- package/src/matrix/actions/room.ts +85 -0
- package/src/matrix/actions/summary.ts +75 -0
- package/src/matrix/actions/types.ts +85 -0
- package/src/matrix/actions.ts +15 -0
- package/src/matrix/active-client.ts +32 -0
- package/src/matrix/client/backup.ts +91 -0
- package/src/matrix/client/config.ts +274 -0
- package/src/matrix/client/create-client.ts +125 -0
- package/src/matrix/client/logging.ts +46 -0
- package/src/matrix/client/runtime.ts +4 -0
- package/src/matrix/client/shared.ts +223 -0
- package/src/matrix/client/startup.ts +29 -0
- package/src/matrix/client/storage.ts +131 -0
- package/src/matrix/client/types.ts +34 -0
- package/src/matrix/client-bootstrap.ts +47 -0
- package/src/matrix/client.ts +14 -0
- package/src/matrix/credentials.ts +125 -0
- package/src/matrix/deps.ts +126 -0
- package/src/matrix/format.ts +22 -0
- package/src/matrix/index.ts +11 -0
- package/src/matrix/monitor/access-policy.ts +126 -0
- package/src/matrix/monitor/allowlist.ts +94 -0
- package/src/matrix/monitor/auto-join.ts +126 -0
- package/src/matrix/monitor/bot-commands.ts +431 -0
- package/src/matrix/monitor/chat-history.ts +75 -0
- package/src/matrix/monitor/direct.ts +152 -0
- package/src/matrix/monitor/events.ts +250 -0
- package/src/matrix/monitor/handler.ts +847 -0
- package/src/matrix/monitor/inbound-body.ts +28 -0
- package/src/matrix/monitor/index.ts +414 -0
- package/src/matrix/monitor/location.ts +100 -0
- package/src/matrix/monitor/media.ts +118 -0
- package/src/matrix/monitor/mentions.ts +62 -0
- package/src/matrix/monitor/replies.ts +124 -0
- package/src/matrix/monitor/room-info.ts +55 -0
- package/src/matrix/monitor/rooms.ts +47 -0
- package/src/matrix/monitor/threads.ts +68 -0
- package/src/matrix/monitor/types.ts +39 -0
- package/src/matrix/poll-types.ts +167 -0
- package/src/matrix/probe.ts +69 -0
- package/src/matrix/sdk-runtime.ts +18 -0
- package/src/matrix/send/client.ts +99 -0
- package/src/matrix/send/formatting.ts +93 -0
- package/src/matrix/send/media.ts +230 -0
- package/src/matrix/send/targets.ts +150 -0
- package/src/matrix/send/types.ts +110 -0
- package/src/matrix/send-queue.ts +28 -0
- package/src/matrix/send.ts +267 -0
- package/src/onboarding.ts +350 -0
- package/src/outbound.ts +58 -0
- package/src/resolve-targets.ts +125 -0
- package/src/runtime.ts +6 -0
- package/src/secret-input.ts +13 -0
- package/src/test-mocks.ts +53 -0
- package/src/tool-actions.ts +164 -0
- package/src/types.ts +121 -0
- package/README.md +0 -32
- package/dist/commands/autopair.d.ts +0 -3
- package/dist/commands/autopair.js +0 -102
- package/dist/commands/autopair.js.map +0 -1
- package/dist/commands/bot.d.ts +0 -2
- package/dist/commands/bot.js +0 -94
- package/dist/commands/bot.js.map +0 -1
- package/dist/commands/login.d.ts +0 -2
- package/dist/commands/login.js +0 -88
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/logout.d.ts +0 -2
- package/dist/commands/logout.js +0 -36
- package/dist/commands/logout.js.map +0 -1
- package/dist/commands/status.d.ts +0 -2
- package/dist/commands/status.js +0 -23
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/watch.d.ts +0 -2
- package/dist/commands/watch.js +0 -29
- package/dist/commands/watch.js.map +0 -1
- package/dist/index.d.ts +0 -2
- package/dist/index.js +0 -23
- package/dist/index.js.map +0 -1
- package/dist/lib/api.d.ts +0 -4
- package/dist/lib/api.js +0 -37
- package/dist/lib/api.js.map +0 -1
- package/dist/lib/auth.d.ts +0 -11
- package/dist/lib/auth.js +0 -48
- package/dist/lib/auth.js.map +0 -1
- package/dist/lib/pkce.d.ts +0 -2
- package/dist/lib/pkce.js +0 -15
- package/dist/lib/pkce.js.map +0 -1
package/dist/commands/bot.js
DELETED
|
@@ -1,94 +0,0 @@
|
|
|
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.botCommand = void 0;
|
|
7
|
-
const commander_1 = require("commander");
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const ora_1 = __importDefault(require("ora"));
|
|
10
|
-
const auth_1 = require("../lib/auth");
|
|
11
|
-
const api_1 = require("../lib/api");
|
|
12
|
-
function requireAuth() {
|
|
13
|
-
if (!(0, auth_1.isAuthenticated)()) {
|
|
14
|
-
console.log(chalk_1.default.red('Not logged in. Run `badgerclaw login` to authenticate.'));
|
|
15
|
-
process.exit(1);
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
function validateBotName(name) {
|
|
19
|
-
return /^[a-z0-9_]{4,20}$/.test(name);
|
|
20
|
-
}
|
|
21
|
-
function stripBotSuffix(name) {
|
|
22
|
-
return name.replace(/_bot$/, '');
|
|
23
|
-
}
|
|
24
|
-
const botCreate = new commander_1.Command('create')
|
|
25
|
-
.description('Create a new bot')
|
|
26
|
-
.argument('<name>', 'Bot name (4-20 chars, lowercase alphanumeric + underscores)')
|
|
27
|
-
.action(async (name) => {
|
|
28
|
-
requireAuth();
|
|
29
|
-
if (!validateBotName(name)) {
|
|
30
|
-
console.log(chalk_1.default.red('Invalid bot name. Must be 4-20 characters, lowercase alphanumeric and underscores only.'));
|
|
31
|
-
process.exit(1);
|
|
32
|
-
}
|
|
33
|
-
const spinner = (0, ora_1.default)(`Creating bot "${name}"...`).start();
|
|
34
|
-
try {
|
|
35
|
-
const client = (0, api_1.getClient)();
|
|
36
|
-
await client.post('/api/v1/openclaw/bots', { username: name });
|
|
37
|
-
spinner.succeed(chalk_1.default.green(`Bot "${name}" created successfully!`));
|
|
38
|
-
}
|
|
39
|
-
catch (err) {
|
|
40
|
-
const msg = err.response?.data?.error || err.message;
|
|
41
|
-
spinner.fail(chalk_1.default.red(`Failed to create bot: ${msg}`));
|
|
42
|
-
process.exit(1);
|
|
43
|
-
}
|
|
44
|
-
});
|
|
45
|
-
const botList = new commander_1.Command('list')
|
|
46
|
-
.description('List your bots')
|
|
47
|
-
.action(async () => {
|
|
48
|
-
requireAuth();
|
|
49
|
-
const spinner = (0, ora_1.default)('Fetching bots...').start();
|
|
50
|
-
try {
|
|
51
|
-
const client = (0, api_1.getClient)();
|
|
52
|
-
const response = await client.get('/api/v1/openclaw/bots');
|
|
53
|
-
const bots = response.data?.bots || [];
|
|
54
|
-
spinner.stop();
|
|
55
|
-
if (bots.length === 0) {
|
|
56
|
-
console.log(chalk_1.default.yellow('No bots found. Create one with `badgerclaw bot create <name>`.'));
|
|
57
|
-
return;
|
|
58
|
-
}
|
|
59
|
-
console.log(chalk_1.default.green(`Your bots (${bots.length}):\n`));
|
|
60
|
-
for (const bot of bots) {
|
|
61
|
-
const displayName = stripBotSuffix(bot.username || bot.name);
|
|
62
|
-
const status = bot.active !== false ? chalk_1.default.green('active') : chalk_1.default.dim('inactive');
|
|
63
|
-
console.log(` ${chalk_1.default.bold(displayName)} ${status}`);
|
|
64
|
-
}
|
|
65
|
-
}
|
|
66
|
-
catch (err) {
|
|
67
|
-
const msg = err.response?.data?.error || err.message;
|
|
68
|
-
spinner.fail(chalk_1.default.red(`Failed to list bots: ${msg}`));
|
|
69
|
-
process.exit(1);
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
const botDelete = new commander_1.Command('delete')
|
|
73
|
-
.description('Deactivate a bot')
|
|
74
|
-
.argument('<name>', 'Bot name to deactivate')
|
|
75
|
-
.action(async (name) => {
|
|
76
|
-
requireAuth();
|
|
77
|
-
const spinner = (0, ora_1.default)(`Deactivating bot "${name}"...`).start();
|
|
78
|
-
try {
|
|
79
|
-
const client = (0, api_1.getClient)();
|
|
80
|
-
await client.delete(`/api/v1/openclaw/bots/${name}`);
|
|
81
|
-
spinner.succeed(chalk_1.default.green(`Bot "${name}" deactivated.`));
|
|
82
|
-
}
|
|
83
|
-
catch (err) {
|
|
84
|
-
const msg = err.response?.data?.error || err.message;
|
|
85
|
-
spinner.fail(chalk_1.default.red(`Failed to deactivate bot: ${msg}`));
|
|
86
|
-
process.exit(1);
|
|
87
|
-
}
|
|
88
|
-
});
|
|
89
|
-
exports.botCommand = new commander_1.Command('bot')
|
|
90
|
-
.description('Manage bots')
|
|
91
|
-
.addCommand(botCreate)
|
|
92
|
-
.addCommand(botList)
|
|
93
|
-
.addCommand(botDelete);
|
|
94
|
-
//# sourceMappingURL=bot.js.map
|
package/dist/commands/bot.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"bot.js","sourceRoot":"","sources":["../../src/commands/bot.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/login.d.ts
DELETED
package/dist/commands/login.js
DELETED
|
@@ -1,88 +0,0 @@
|
|
|
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.loginCommand = void 0;
|
|
7
|
-
const commander_1 = require("commander");
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const ora_1 = __importDefault(require("ora"));
|
|
10
|
-
const open_1 = __importDefault(require("open"));
|
|
11
|
-
const os_1 = __importDefault(require("os"));
|
|
12
|
-
const crypto_1 = __importDefault(require("crypto"));
|
|
13
|
-
const pkce_1 = require("../lib/pkce");
|
|
14
|
-
const auth_1 = require("../lib/auth");
|
|
15
|
-
const api_1 = require("../lib/api");
|
|
16
|
-
const autopair_1 = require("./autopair");
|
|
17
|
-
const child_process_1 = require("child_process");
|
|
18
|
-
const POLL_INTERVAL_MS = 2000;
|
|
19
|
-
const POLL_TIMEOUT_MS = 120000;
|
|
20
|
-
exports.loginCommand = new commander_1.Command('login')
|
|
21
|
-
.description('Log in to BadgerClaw via browser')
|
|
22
|
-
.action(async () => {
|
|
23
|
-
const verifier = (0, pkce_1.generateCodeVerifier)();
|
|
24
|
-
const challenge = (0, pkce_1.generateCodeChallenge)(verifier);
|
|
25
|
-
const authUrl = `https://badgerclaw.ai/cli-auth?code=${challenge}`;
|
|
26
|
-
console.log(chalk_1.default.yellow('Opening browser for authentication...'));
|
|
27
|
-
console.log(chalk_1.default.dim(`If the browser doesn't open, visit: ${authUrl}`));
|
|
28
|
-
await (0, open_1.default)(authUrl);
|
|
29
|
-
const spinner = (0, ora_1.default)('Waiting for authentication...').start();
|
|
30
|
-
const client = (0, api_1.getUnauthenticatedClient)();
|
|
31
|
-
const startTime = Date.now();
|
|
32
|
-
while (Date.now() - startTime < POLL_TIMEOUT_MS) {
|
|
33
|
-
try {
|
|
34
|
-
const response = await client.post(`/api/v1/openclaw/cli/auth/poll/${challenge}`, {
|
|
35
|
-
code_verifier: verifier,
|
|
36
|
-
code_challenge: challenge,
|
|
37
|
-
});
|
|
38
|
-
if (response.data?.access_token) {
|
|
39
|
-
const { access_token, user_id, expires_at } = response.data;
|
|
40
|
-
// Generate a stable instance_id from hostname + a machine fingerprint
|
|
41
|
-
const machineId = crypto_1.default
|
|
42
|
-
.createHash('sha256')
|
|
43
|
-
.update(`${os_1.default.hostname()}-${os_1.default.platform()}-${os_1.default.arch()}`)
|
|
44
|
-
.digest('hex')
|
|
45
|
-
.slice(0, 16);
|
|
46
|
-
const instance_id = `openclaw-${os_1.default.hostname().toLowerCase().replace(/[^a-z0-9]/g, '-')}-${machineId}`;
|
|
47
|
-
(0, auth_1.writeAuth)({ access_token, user_id, instance_id, expires_at });
|
|
48
|
-
// Register instance with backend so dashboard shows connected
|
|
49
|
-
try {
|
|
50
|
-
const { version } = require('../../package.json');
|
|
51
|
-
await client.post('/api/v1/openclaw/register', {
|
|
52
|
-
instance_id,
|
|
53
|
-
label: os_1.default.hostname(),
|
|
54
|
-
version,
|
|
55
|
-
}, {
|
|
56
|
-
headers: { Authorization: `Bearer ${access_token}` },
|
|
57
|
-
});
|
|
58
|
-
}
|
|
59
|
-
catch {
|
|
60
|
-
// Non-fatal: registration may fail but login succeeded
|
|
61
|
-
}
|
|
62
|
-
spinner.succeed(chalk_1.default.green(`Logged in as ${(0, auth_1.extractUsername)(user_id)}`));
|
|
63
|
-
// Auto-pair any bots pending right now
|
|
64
|
-
const paired = await (0, autopair_1.runAutoPair)(true);
|
|
65
|
-
if (paired > 0) {
|
|
66
|
-
console.log(chalk_1.default.green(`✅ ${paired} bot(s) automatically paired to OpenClaw.`));
|
|
67
|
-
console.log(chalk_1.default.yellow('Run: openclaw gateway restart to activate.'));
|
|
68
|
-
}
|
|
69
|
-
// Start background watch daemon so future pairs from the app are picked up automatically
|
|
70
|
-
const self = process.argv[1];
|
|
71
|
-
const watcher = (0, child_process_1.spawn)(process.execPath, [self, 'watch'], {
|
|
72
|
-
detached: true,
|
|
73
|
-
stdio: 'ignore',
|
|
74
|
-
});
|
|
75
|
-
watcher.unref();
|
|
76
|
-
console.log(chalk_1.default.dim('Background pair-watcher started (picks up new pairs from the iOS app automatically).'));
|
|
77
|
-
return;
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
catch {
|
|
81
|
-
// Not ready yet, keep polling
|
|
82
|
-
}
|
|
83
|
-
await new Promise((resolve) => setTimeout(resolve, POLL_INTERVAL_MS));
|
|
84
|
-
}
|
|
85
|
-
spinner.fail(chalk_1.default.red('Authentication timed out. Please try again.'));
|
|
86
|
-
process.exit(1);
|
|
87
|
-
});
|
|
88
|
-
//# sourceMappingURL=login.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/logout.js
DELETED
|
@@ -1,36 +0,0 @@
|
|
|
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.logoutCommand = void 0;
|
|
7
|
-
const commander_1 = require("commander");
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const auth_1 = require("../lib/auth");
|
|
10
|
-
const api_1 = require("../lib/api");
|
|
11
|
-
exports.logoutCommand = new commander_1.Command('logout')
|
|
12
|
-
.description('Disconnect this machine and log out of BadgerClaw')
|
|
13
|
-
.action(async () => {
|
|
14
|
-
const auth = (0, auth_1.readAuth)();
|
|
15
|
-
if (!auth) {
|
|
16
|
-
console.log(chalk_1.default.yellow('Not logged in.'));
|
|
17
|
-
return;
|
|
18
|
-
}
|
|
19
|
-
// Mark instance offline on backend
|
|
20
|
-
try {
|
|
21
|
-
const client = (0, api_1.getAuthenticatedClient)(auth.access_token);
|
|
22
|
-
const { version } = require('../../package.json');
|
|
23
|
-
await client.post('/api/v1/openclaw/register', {
|
|
24
|
-
instance_id: auth.instance_id,
|
|
25
|
-
label: require('os').hostname(),
|
|
26
|
-
version,
|
|
27
|
-
online: false,
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
catch {
|
|
31
|
-
// Non-fatal
|
|
32
|
-
}
|
|
33
|
-
(0, auth_1.clearAuth)();
|
|
34
|
-
console.log(chalk_1.default.green(`Logged out — this machine is now disconnected.`));
|
|
35
|
-
});
|
|
36
|
-
//# sourceMappingURL=logout.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../src/commands/logout.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,sCAAmE;AACnE,oCAAoD;AAEvC,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,mDAAmD,CAAC;KAChE,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;IACT,CAAC;IAED,mCAAmC;IACnC,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAA,4BAAsB,EAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACzD,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;QAClD,MAAM,MAAM,CAAC,IAAI,CAAC,2BAA2B,EAAE;YAC7C,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE;YAC/B,OAAO;YACP,MAAM,EAAE,KAAK;SACd,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,YAAY;IACd,CAAC;IAED,IAAA,gBAAS,GAAE,CAAC;IACZ,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,gDAAgD,CAAC,CAAC,CAAC;AAC7E,CAAC,CAAC,CAAC"}
|
package/dist/commands/status.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
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.statusCommand = void 0;
|
|
7
|
-
const commander_1 = require("commander");
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const auth_1 = require("../lib/auth");
|
|
10
|
-
exports.statusCommand = new commander_1.Command('status')
|
|
11
|
-
.description('Show connected instance info')
|
|
12
|
-
.action(() => {
|
|
13
|
-
const auth = (0, auth_1.readAuth)();
|
|
14
|
-
if (!auth || !(0, auth_1.isAuthenticated)()) {
|
|
15
|
-
console.log(chalk_1.default.red('Not logged in. Run `badgerclaw login` to authenticate.'));
|
|
16
|
-
process.exit(1);
|
|
17
|
-
}
|
|
18
|
-
console.log(chalk_1.default.green('Authenticated'));
|
|
19
|
-
console.log(` User: ${(0, auth_1.extractUsername)(auth.user_id)}`);
|
|
20
|
-
console.log(` Instance: ${auth.instance_id}`);
|
|
21
|
-
console.log(` Expires: ${new Date(auth.expires_at).toLocaleDateString()}`);
|
|
22
|
-
});
|
|
23
|
-
//# sourceMappingURL=status.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":";;;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,sCAAyE;AAE5D,QAAA,aAAa,GAAG,IAAI,mBAAO,CAAC,QAAQ,CAAC;KAC/C,WAAW,CAAC,8BAA8B,CAAC;KAC3C,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,IAAI,GAAG,IAAA,eAAQ,GAAE,CAAC;IAExB,IAAI,CAAC,IAAI,IAAI,CAAC,IAAA,sBAAe,GAAE,EAAE,CAAC;QAChC,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,wDAAwD,CAAC,CAAC,CAAC;QACjF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IAED,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,eAAe,IAAA,sBAAe,EAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;IAC5D,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,CAAC,WAAW,EAAE,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,eAAe,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,kBAAkB,EAAE,EAAE,CAAC,CAAC;AAC/E,CAAC,CAAC,CAAC"}
|
package/dist/commands/watch.d.ts
DELETED
package/dist/commands/watch.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
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.watchCommand = void 0;
|
|
7
|
-
const commander_1 = require("commander");
|
|
8
|
-
const chalk_1 = __importDefault(require("chalk"));
|
|
9
|
-
const auth_1 = require("../lib/auth");
|
|
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)')
|
|
14
|
-
.action(async () => {
|
|
15
|
-
const auth = (0, auth_1.readAuth)();
|
|
16
|
-
if (!auth) {
|
|
17
|
-
console.log(chalk_1.default.yellow('Not logged in. Run `badgerclaw login` first.'));
|
|
18
|
-
process.exit(1);
|
|
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
|
-
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);
|
|
28
|
-
});
|
|
29
|
-
//# sourceMappingURL=watch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/index.d.ts
DELETED
package/dist/index.js
DELETED
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env node
|
|
2
|
-
"use strict";
|
|
3
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
-
const commander_1 = require("commander");
|
|
5
|
-
const login_1 = require("./commands/login");
|
|
6
|
-
const logout_1 = require("./commands/logout");
|
|
7
|
-
const status_1 = require("./commands/status");
|
|
8
|
-
const bot_1 = require("./commands/bot");
|
|
9
|
-
const autopair_1 = require("./commands/autopair");
|
|
10
|
-
const watch_1 = require("./commands/watch");
|
|
11
|
-
const program = new commander_1.Command();
|
|
12
|
-
program
|
|
13
|
-
.name('badgerclaw')
|
|
14
|
-
.description('BadgerClaw CLI — one-click bot provisioning')
|
|
15
|
-
.version(require('../package.json').version);
|
|
16
|
-
program.addCommand(login_1.loginCommand);
|
|
17
|
-
program.addCommand(logout_1.logoutCommand);
|
|
18
|
-
program.addCommand(status_1.statusCommand);
|
|
19
|
-
program.addCommand(bot_1.botCommand);
|
|
20
|
-
program.addCommand(autopair_1.autopairCommand);
|
|
21
|
-
program.addCommand(watch_1.watchCommand);
|
|
22
|
-
program.parse(process.argv);
|
|
23
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
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"}
|
package/dist/lib/api.d.ts
DELETED
package/dist/lib/api.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
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.getClient = getClient;
|
|
7
|
-
exports.getUnauthenticatedClient = getUnauthenticatedClient;
|
|
8
|
-
exports.getAuthenticatedClient = getAuthenticatedClient;
|
|
9
|
-
const axios_1 = __importDefault(require("axios"));
|
|
10
|
-
const auth_1 = require("./auth");
|
|
11
|
-
const BASE_URL = 'https://api.badgerclaw.ai';
|
|
12
|
-
function getClient() {
|
|
13
|
-
const auth = (0, auth_1.readAuth)();
|
|
14
|
-
const headers = {
|
|
15
|
-
'Content-Type': 'application/json',
|
|
16
|
-
};
|
|
17
|
-
if (auth) {
|
|
18
|
-
headers['Authorization'] = `Bearer ${auth.access_token}`;
|
|
19
|
-
}
|
|
20
|
-
return axios_1.default.create({ baseURL: BASE_URL, headers });
|
|
21
|
-
}
|
|
22
|
-
function getUnauthenticatedClient() {
|
|
23
|
-
return axios_1.default.create({
|
|
24
|
-
baseURL: BASE_URL,
|
|
25
|
-
headers: { 'Content-Type': 'application/json' },
|
|
26
|
-
});
|
|
27
|
-
}
|
|
28
|
-
function getAuthenticatedClient(token) {
|
|
29
|
-
return axios_1.default.create({
|
|
30
|
-
baseURL: BASE_URL,
|
|
31
|
-
headers: {
|
|
32
|
-
'Content-Type': 'application/json',
|
|
33
|
-
Authorization: `Bearer ${token}`,
|
|
34
|
-
},
|
|
35
|
-
});
|
|
36
|
-
}
|
|
37
|
-
//# sourceMappingURL=api.js.map
|
package/dist/lib/api.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"api.js","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":";;;;;AAKA,8BASC;AAED,4DAKC;AAED,wDAQC;AA/BD,kDAA6C;AAC7C,iCAAkC;AAElC,MAAM,QAAQ,GAAG,2BAA2B,CAAC;AAE7C,SAAgB,SAAS;IACvB,MAAM,IAAI,GAAG,IAAA,eAAQ,GAAE,CAAC;IACxB,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IACF,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,IAAI,CAAC,YAAY,EAAE,CAAC;IAC3D,CAAC;IACD,OAAO,eAAK,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,wBAAwB;IACtC,OAAO,eAAK,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE,EAAE,cAAc,EAAE,kBAAkB,EAAE;KAChD,CAAC,CAAC;AACL,CAAC;AAED,SAAgB,sBAAsB,CAAC,KAAa;IAClD,OAAO,eAAK,CAAC,MAAM,CAAC;QAClB,OAAO,EAAE,QAAQ;QACjB,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,KAAK,EAAE;SACjC;KACF,CAAC,CAAC;AACL,CAAC"}
|
package/dist/lib/auth.d.ts
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export interface AuthData {
|
|
2
|
-
access_token: string;
|
|
3
|
-
user_id: string;
|
|
4
|
-
instance_id: string;
|
|
5
|
-
expires_at: string;
|
|
6
|
-
}
|
|
7
|
-
export declare function readAuth(): AuthData | null;
|
|
8
|
-
export declare function writeAuth(auth: AuthData): void;
|
|
9
|
-
export declare function clearAuth(): void;
|
|
10
|
-
export declare function isAuthenticated(): boolean;
|
|
11
|
-
export declare function extractUsername(userId: string): string;
|
package/dist/lib/auth.js
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
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.readAuth = readAuth;
|
|
7
|
-
exports.writeAuth = writeAuth;
|
|
8
|
-
exports.clearAuth = clearAuth;
|
|
9
|
-
exports.isAuthenticated = isAuthenticated;
|
|
10
|
-
exports.extractUsername = extractUsername;
|
|
11
|
-
const fs_1 = __importDefault(require("fs"));
|
|
12
|
-
const path_1 = __importDefault(require("path"));
|
|
13
|
-
const os_1 = __importDefault(require("os"));
|
|
14
|
-
const AUTH_DIR = path_1.default.join(os_1.default.homedir(), '.badgerclaw');
|
|
15
|
-
const AUTH_FILE = path_1.default.join(AUTH_DIR, 'auth.json');
|
|
16
|
-
function readAuth() {
|
|
17
|
-
try {
|
|
18
|
-
const data = fs_1.default.readFileSync(AUTH_FILE, 'utf-8');
|
|
19
|
-
return JSON.parse(data);
|
|
20
|
-
}
|
|
21
|
-
catch {
|
|
22
|
-
return null;
|
|
23
|
-
}
|
|
24
|
-
}
|
|
25
|
-
function writeAuth(auth) {
|
|
26
|
-
fs_1.default.mkdirSync(AUTH_DIR, { recursive: true });
|
|
27
|
-
fs_1.default.writeFileSync(AUTH_FILE, JSON.stringify(auth, null, 2), { mode: 0o600 });
|
|
28
|
-
}
|
|
29
|
-
function clearAuth() {
|
|
30
|
-
try {
|
|
31
|
-
fs_1.default.unlinkSync(AUTH_FILE);
|
|
32
|
-
}
|
|
33
|
-
catch {
|
|
34
|
-
// ignore
|
|
35
|
-
}
|
|
36
|
-
}
|
|
37
|
-
function isAuthenticated() {
|
|
38
|
-
const auth = readAuth();
|
|
39
|
-
if (!auth)
|
|
40
|
-
return false;
|
|
41
|
-
return new Date(auth.expires_at) > new Date();
|
|
42
|
-
}
|
|
43
|
-
function extractUsername(userId) {
|
|
44
|
-
// Strip @user:homeserver to just "user"
|
|
45
|
-
const match = userId.match(/^@?([^:]+)/);
|
|
46
|
-
return match ? match[1] : userId;
|
|
47
|
-
}
|
|
48
|
-
//# sourceMappingURL=auth.js.map
|
package/dist/lib/auth.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"auth.js","sourceRoot":"","sources":["../../src/lib/auth.ts"],"names":[],"mappings":";;;;;AAcA,4BAOC;AAED,8BAGC;AAED,8BAMC;AAED,0CAIC;AAED,0CAIC;AA9CD,4CAAoB;AACpB,gDAAwB;AACxB,4CAAoB;AASpB,MAAM,QAAQ,GAAG,cAAI,CAAC,IAAI,CAAC,YAAE,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC;AACxD,MAAM,SAAS,GAAG,cAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAC;AAEnD,SAAgB,QAAQ;IACtB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,YAAE,CAAC,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QACjD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAa,CAAC;IACtC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,SAAS,CAAC,IAAc;IACtC,YAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC5C,YAAE,CAAC,aAAa,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC9E,CAAC;AAED,SAAgB,SAAS;IACvB,IAAI,CAAC;QACH,YAAE,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAAC,MAAM,CAAC;QACP,SAAS;IACX,CAAC;AACH,CAAC;AAED,SAAgB,eAAe;IAC7B,MAAM,IAAI,GAAG,QAAQ,EAAE,CAAC;IACxB,IAAI,CAAC,IAAI;QAAE,OAAO,KAAK,CAAC;IACxB,OAAO,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;AAChD,CAAC;AAED,SAAgB,eAAe,CAAC,MAAc;IAC5C,wCAAwC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IACzC,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;AACnC,CAAC"}
|
package/dist/lib/pkce.d.ts
DELETED
package/dist/lib/pkce.js
DELETED
|
@@ -1,15 +0,0 @@
|
|
|
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.generateCodeVerifier = generateCodeVerifier;
|
|
7
|
-
exports.generateCodeChallenge = generateCodeChallenge;
|
|
8
|
-
const crypto_1 = __importDefault(require("crypto"));
|
|
9
|
-
function generateCodeVerifier() {
|
|
10
|
-
return crypto_1.default.randomBytes(32).toString('base64url');
|
|
11
|
-
}
|
|
12
|
-
function generateCodeChallenge(verifier) {
|
|
13
|
-
return crypto_1.default.createHash('sha256').update(verifier).digest('base64url');
|
|
14
|
-
}
|
|
15
|
-
//# sourceMappingURL=pkce.js.map
|
package/dist/lib/pkce.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pkce.js","sourceRoot":"","sources":["../../src/lib/pkce.ts"],"names":[],"mappings":";;;;;AAEA,oDAEC;AAED,sDAEC;AARD,oDAA4B;AAE5B,SAAgB,oBAAoB;IAClC,OAAO,gBAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AACtD,CAAC;AAED,SAAgB,qBAAqB,CAAC,QAAgB;IACpD,OAAO,gBAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC1E,CAAC"}
|