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.

Files changed (105) hide show
  1. package/CHANGELOG.md +104 -0
  2. package/SETUP.md +291 -0
  3. package/index.ts +47 -0
  4. package/openclaw.plugin.json +1 -0
  5. package/package.json +32 -34
  6. package/scripts/postinstall.js +34 -0
  7. package/src/actions.ts +195 -0
  8. package/src/channel.ts +461 -0
  9. package/src/config-schema.ts +62 -0
  10. package/src/connect.ts +17 -0
  11. package/src/directory-live.ts +209 -0
  12. package/src/group-mentions.ts +103 -0
  13. package/src/matrix/accounts.ts +114 -0
  14. package/src/matrix/actions/client.ts +47 -0
  15. package/src/matrix/actions/limits.ts +6 -0
  16. package/src/matrix/actions/messages.ts +126 -0
  17. package/src/matrix/actions/pins.ts +84 -0
  18. package/src/matrix/actions/reactions.ts +102 -0
  19. package/src/matrix/actions/room.ts +85 -0
  20. package/src/matrix/actions/summary.ts +75 -0
  21. package/src/matrix/actions/types.ts +85 -0
  22. package/src/matrix/actions.ts +15 -0
  23. package/src/matrix/active-client.ts +32 -0
  24. package/src/matrix/client/backup.ts +91 -0
  25. package/src/matrix/client/config.ts +274 -0
  26. package/src/matrix/client/create-client.ts +125 -0
  27. package/src/matrix/client/logging.ts +46 -0
  28. package/src/matrix/client/runtime.ts +4 -0
  29. package/src/matrix/client/shared.ts +223 -0
  30. package/src/matrix/client/startup.ts +29 -0
  31. package/src/matrix/client/storage.ts +131 -0
  32. package/src/matrix/client/types.ts +34 -0
  33. package/src/matrix/client-bootstrap.ts +47 -0
  34. package/src/matrix/client.ts +14 -0
  35. package/src/matrix/credentials.ts +125 -0
  36. package/src/matrix/deps.ts +126 -0
  37. package/src/matrix/format.ts +22 -0
  38. package/src/matrix/index.ts +11 -0
  39. package/src/matrix/monitor/access-policy.ts +126 -0
  40. package/src/matrix/monitor/allowlist.ts +94 -0
  41. package/src/matrix/monitor/auto-join.ts +126 -0
  42. package/src/matrix/monitor/bot-commands.ts +431 -0
  43. package/src/matrix/monitor/chat-history.ts +75 -0
  44. package/src/matrix/monitor/direct.ts +152 -0
  45. package/src/matrix/monitor/events.ts +250 -0
  46. package/src/matrix/monitor/handler.ts +847 -0
  47. package/src/matrix/monitor/inbound-body.ts +28 -0
  48. package/src/matrix/monitor/index.ts +414 -0
  49. package/src/matrix/monitor/location.ts +100 -0
  50. package/src/matrix/monitor/media.ts +118 -0
  51. package/src/matrix/monitor/mentions.ts +62 -0
  52. package/src/matrix/monitor/replies.ts +124 -0
  53. package/src/matrix/monitor/room-info.ts +55 -0
  54. package/src/matrix/monitor/rooms.ts +47 -0
  55. package/src/matrix/monitor/threads.ts +68 -0
  56. package/src/matrix/monitor/types.ts +39 -0
  57. package/src/matrix/poll-types.ts +167 -0
  58. package/src/matrix/probe.ts +69 -0
  59. package/src/matrix/sdk-runtime.ts +18 -0
  60. package/src/matrix/send/client.ts +99 -0
  61. package/src/matrix/send/formatting.ts +93 -0
  62. package/src/matrix/send/media.ts +230 -0
  63. package/src/matrix/send/targets.ts +150 -0
  64. package/src/matrix/send/types.ts +110 -0
  65. package/src/matrix/send-queue.ts +28 -0
  66. package/src/matrix/send.ts +267 -0
  67. package/src/onboarding.ts +350 -0
  68. package/src/outbound.ts +58 -0
  69. package/src/resolve-targets.ts +125 -0
  70. package/src/runtime.ts +6 -0
  71. package/src/secret-input.ts +13 -0
  72. package/src/test-mocks.ts +53 -0
  73. package/src/tool-actions.ts +164 -0
  74. package/src/types.ts +121 -0
  75. package/README.md +0 -32
  76. package/dist/commands/autopair.d.ts +0 -3
  77. package/dist/commands/autopair.js +0 -102
  78. package/dist/commands/autopair.js.map +0 -1
  79. package/dist/commands/bot.d.ts +0 -2
  80. package/dist/commands/bot.js +0 -94
  81. package/dist/commands/bot.js.map +0 -1
  82. package/dist/commands/login.d.ts +0 -2
  83. package/dist/commands/login.js +0 -88
  84. package/dist/commands/login.js.map +0 -1
  85. package/dist/commands/logout.d.ts +0 -2
  86. package/dist/commands/logout.js +0 -36
  87. package/dist/commands/logout.js.map +0 -1
  88. package/dist/commands/status.d.ts +0 -2
  89. package/dist/commands/status.js +0 -23
  90. package/dist/commands/status.js.map +0 -1
  91. package/dist/commands/watch.d.ts +0 -2
  92. package/dist/commands/watch.js +0 -29
  93. package/dist/commands/watch.js.map +0 -1
  94. package/dist/index.d.ts +0 -2
  95. package/dist/index.js +0 -23
  96. package/dist/index.js.map +0 -1
  97. package/dist/lib/api.d.ts +0 -4
  98. package/dist/lib/api.js +0 -37
  99. package/dist/lib/api.js.map +0 -1
  100. package/dist/lib/auth.d.ts +0 -11
  101. package/dist/lib/auth.js +0 -48
  102. package/dist/lib/auth.js.map +0 -1
  103. package/dist/lib/pkce.d.ts +0 -2
  104. package/dist/lib/pkce.js +0 -15
  105. package/dist/lib/pkce.js.map +0 -1
@@ -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
@@ -1 +0,0 @@
1
- {"version":3,"file":"bot.js","sourceRoot":"","sources":["../../src/commands/bot.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const loginCommand: Command;
@@ -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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"}
@@ -1,2 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const logoutCommand: Command;
@@ -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"}
@@ -1,2 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const statusCommand: Command;
@@ -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"}
@@ -1,2 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const watchCommand: Command;
@@ -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
@@ -1,2 +0,0 @@
1
- #!/usr/bin/env node
2
- export {};
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
@@ -1,4 +0,0 @@
1
- import { AxiosInstance } from 'axios';
2
- export declare function getClient(): AxiosInstance;
3
- export declare function getUnauthenticatedClient(): AxiosInstance;
4
- export declare function getAuthenticatedClient(token: string): AxiosInstance;
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
@@ -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"}
@@ -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
@@ -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"}
@@ -1,2 +0,0 @@
1
- export declare function generateCodeVerifier(): string;
2
- export declare function generateCodeChallenge(verifier: string): string;
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
@@ -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"}