beecork 1.3.2 → 1.3.4
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/README.md +1 -1
- package/dist/capabilities/packs.js +0 -59
- package/dist/cli/setup.js +16 -35
- package/dist/index.js +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -80,7 +80,7 @@ beecork knowledge # View stored knowledge
|
|
|
80
80
|
beecork discord # Set up Discord bot
|
|
81
81
|
beecork whatsapp # Set up WhatsApp
|
|
82
82
|
beecork webhook # Set up webhook endpoint
|
|
83
|
-
beecork enable <cap> # Enable a capability (
|
|
83
|
+
beecork enable <cap> # Enable a capability (github, notion, database)
|
|
84
84
|
beecork disable <cap> # Disable a capability
|
|
85
85
|
beecork capabilities # List available capabilities
|
|
86
86
|
|
|
@@ -1,35 +1,5 @@
|
|
|
1
1
|
export const CAPABILITY_PACKS = [
|
|
2
2
|
// Productivity
|
|
3
|
-
{
|
|
4
|
-
id: 'email',
|
|
5
|
-
name: 'Email (Gmail)',
|
|
6
|
-
description: 'Read, send, and manage emails via Gmail',
|
|
7
|
-
category: 'productivity',
|
|
8
|
-
mcpServer: {
|
|
9
|
-
package: '@anthropic/gmail-mcp',
|
|
10
|
-
command: 'npx',
|
|
11
|
-
args: ['-y', '@anthropic/gmail-mcp'],
|
|
12
|
-
},
|
|
13
|
-
requiresApiKey: true,
|
|
14
|
-
apiKeyHint: 'Google OAuth credentials (follow the setup guide)',
|
|
15
|
-
apiKeyEnvVar: 'GOOGLE_OAUTH_CREDENTIALS',
|
|
16
|
-
setupUrl: 'https://github.com/beecork/beecork/blob/main/docs/use-cases.md',
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
id: 'calendar',
|
|
20
|
-
name: 'Calendar (Google)',
|
|
21
|
-
description: 'Schedule meetings, check availability, manage events',
|
|
22
|
-
category: 'productivity',
|
|
23
|
-
mcpServer: {
|
|
24
|
-
package: '@anthropic/google-calendar-mcp',
|
|
25
|
-
command: 'npx',
|
|
26
|
-
args: ['-y', '@anthropic/google-calendar-mcp'],
|
|
27
|
-
},
|
|
28
|
-
requiresApiKey: true,
|
|
29
|
-
apiKeyHint: 'Google OAuth credentials (same as email if already set up)',
|
|
30
|
-
apiKeyEnvVar: 'GOOGLE_OAUTH_CREDENTIALS',
|
|
31
|
-
setupUrl: 'https://github.com/beecork/beecork/blob/main/docs/use-cases.md',
|
|
32
|
-
},
|
|
33
3
|
{
|
|
34
4
|
id: 'notion',
|
|
35
5
|
name: 'Notion',
|
|
@@ -46,21 +16,6 @@ export const CAPABILITY_PACKS = [
|
|
|
46
16
|
apiKeyEnvVar: 'NOTION_API_KEY',
|
|
47
17
|
setupUrl: 'https://github.com/beecork/beecork/blob/main/docs/use-cases.md',
|
|
48
18
|
},
|
|
49
|
-
{
|
|
50
|
-
id: 'drive',
|
|
51
|
-
name: 'Google Drive',
|
|
52
|
-
description: 'Search, read, and organize files in Google Drive',
|
|
53
|
-
category: 'productivity',
|
|
54
|
-
mcpServer: {
|
|
55
|
-
package: '@anthropic/gdrive-mcp',
|
|
56
|
-
command: 'npx',
|
|
57
|
-
args: ['-y', '@anthropic/gdrive-mcp'],
|
|
58
|
-
},
|
|
59
|
-
requiresApiKey: true,
|
|
60
|
-
apiKeyHint: 'Google OAuth credentials',
|
|
61
|
-
apiKeyEnvVar: 'GOOGLE_OAUTH_CREDENTIALS',
|
|
62
|
-
setupUrl: 'https://github.com/beecork/beecork/blob/main/docs/use-cases.md',
|
|
63
|
-
},
|
|
64
19
|
// Development
|
|
65
20
|
{
|
|
66
21
|
id: 'github',
|
|
@@ -94,18 +49,4 @@ export const CAPABILITY_PACKS = [
|
|
|
94
49
|
apiKeyEnvVar: 'DATABASE_URL',
|
|
95
50
|
setupUrl: 'https://github.com/beecork/beecork/blob/main/docs/use-cases.md',
|
|
96
51
|
},
|
|
97
|
-
// Web
|
|
98
|
-
{
|
|
99
|
-
id: 'web',
|
|
100
|
-
name: 'Web Browsing',
|
|
101
|
-
description: 'Search the web, fetch and read web pages',
|
|
102
|
-
category: 'web',
|
|
103
|
-
mcpServer: {
|
|
104
|
-
package: '@anthropic/web-search-mcp',
|
|
105
|
-
command: 'npx',
|
|
106
|
-
args: ['-y', '@anthropic/web-search-mcp'],
|
|
107
|
-
},
|
|
108
|
-
requiresApiKey: false,
|
|
109
|
-
setupUrl: 'https://github.com/beecork/beecork/blob/main/docs/use-cases.md',
|
|
110
|
-
},
|
|
111
52
|
];
|
package/dist/cli/setup.js
CHANGED
|
@@ -8,7 +8,6 @@ import { saveConfig, getConfig } from '../config.js';
|
|
|
8
8
|
import { ensureBeecorkDirs, getMcpConfigPath, getBeecorkHome } from '../util/paths.js';
|
|
9
9
|
import { installService } from '../service/install.js';
|
|
10
10
|
import { getDb, closeDb } from '../db/index.js';
|
|
11
|
-
import { CAPABILITY_PACKS } from '../capabilities/packs.js';
|
|
12
11
|
function ask(rl, question, defaultValue) {
|
|
13
12
|
const prompt = defaultValue ? `${question} [${defaultValue}]: ` : `${question}: `;
|
|
14
13
|
return new Promise((resolve) => {
|
|
@@ -142,6 +141,15 @@ export async function setupWizard(mode = 'quick') {
|
|
|
142
141
|
const installServiceAnswer = await ask(rl, 'Install as background service? (y/n)', 'y');
|
|
143
142
|
shouldInstallService = installServiceAnswer.toLowerCase() === 'y';
|
|
144
143
|
}
|
|
144
|
+
// Offer full setup at end of quick mode
|
|
145
|
+
let showExtras = mode === 'full';
|
|
146
|
+
if (mode === 'quick') {
|
|
147
|
+
console.log('\n ✓ Telegram is ready!\n');
|
|
148
|
+
const wantMore = await ask(rl, 'Configure additional features? (Discord, WhatsApp, media, capabilities) (y/n)', 'n');
|
|
149
|
+
if (wantMore.toLowerCase() === 'y') {
|
|
150
|
+
showExtras = true;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
145
153
|
// Build config
|
|
146
154
|
const config = {
|
|
147
155
|
...getConfig(),
|
|
@@ -177,7 +185,7 @@ export async function setupWizard(mode = 'quick') {
|
|
|
177
185
|
},
|
|
178
186
|
deployment: 'local',
|
|
179
187
|
};
|
|
180
|
-
if (
|
|
188
|
+
if (showExtras) {
|
|
181
189
|
// Optional: Additional channels
|
|
182
190
|
console.log('\nOptional: Add more channels\n');
|
|
183
191
|
console.log('You can also connect via WhatsApp, Discord, or Webhooks.');
|
|
@@ -222,7 +230,9 @@ export async function setupWizard(mode = 'quick') {
|
|
|
222
230
|
sessionPath: `${getBeecorkHome()}/whatsapp-session`,
|
|
223
231
|
allowedNumbers: [waNumber],
|
|
224
232
|
};
|
|
225
|
-
console.log(' ✓ WhatsApp configured
|
|
233
|
+
console.log(' ✓ WhatsApp configured');
|
|
234
|
+
console.log(' ⚠ After starting the daemon, run: beecork logs');
|
|
235
|
+
console.log(' The QR code will appear in the logs — scan it with your phone.\n');
|
|
226
236
|
}
|
|
227
237
|
}
|
|
228
238
|
const addWebhook = await ask(rl, 'Enable Webhook API? (y/n)', 'n');
|
|
@@ -307,38 +317,10 @@ export async function setupWizard(mode = 'quick') {
|
|
|
307
317
|
console.log(`\n ✓ ${mediaGenerators.length} media provider(s) configured`);
|
|
308
318
|
}
|
|
309
319
|
}
|
|
310
|
-
// Capabilities
|
|
311
|
-
console.log('\nOptional: Capabilities\n');
|
|
312
|
-
console.log('Pre-configured integrations for common tasks.');
|
|
313
|
-
console.log('You can add these later with: beecork enable <name>\n');
|
|
314
|
-
const capPacks = ['email', 'calendar', 'github', 'notion', 'drive', 'web', 'database'];
|
|
315
|
-
const capNames = {
|
|
316
|
-
email: 'Email (Gmail)',
|
|
317
|
-
calendar: 'Calendar (Google)',
|
|
318
|
-
github: 'GitHub',
|
|
319
|
-
notion: 'Notion',
|
|
320
|
-
drive: 'Google Drive',
|
|
321
|
-
web: 'Web Browsing',
|
|
322
|
-
database: 'Database (PostgreSQL)',
|
|
323
|
-
};
|
|
324
|
-
for (const packId of capPacks) {
|
|
325
|
-
const pack = CAPABILITY_PACKS.find(p => p.id === packId);
|
|
326
|
-
if (!pack)
|
|
327
|
-
continue;
|
|
328
|
-
const answer = await ask(rl, `Enable ${capNames[packId]}? (y/n)`, 'n');
|
|
329
|
-
if (answer.toLowerCase() === 'y' && pack.requiresApiKey) {
|
|
330
|
-
const key = await ask(rl, ` ${pack.apiKeyHint}`);
|
|
331
|
-
if (key) {
|
|
332
|
-
enabledCaps.push({ packId, apiKey: key });
|
|
333
|
-
}
|
|
334
|
-
}
|
|
335
|
-
else if (answer.toLowerCase() === 'y') {
|
|
336
|
-
enabledCaps.push({ packId });
|
|
337
|
-
}
|
|
338
|
-
}
|
|
339
320
|
console.log('You can add or change channels later with:');
|
|
340
321
|
console.log(' beecork discord — add/reconfigure Discord');
|
|
341
322
|
console.log(' beecork whatsapp — add/reconfigure WhatsApp');
|
|
323
|
+
console.log(' beecork enable — add integrations (GitHub, Notion, PostgreSQL)');
|
|
342
324
|
console.log(' beecork dashboard — manage everything from the web UI\n');
|
|
343
325
|
}
|
|
344
326
|
// Write everything
|
|
@@ -412,11 +394,10 @@ export async function setupWizard(mode = 'quick') {
|
|
|
412
394
|
console.log(' beecork dashboard — open web control panel');
|
|
413
395
|
console.log(' beecork quickstart — full getting-started checklist');
|
|
414
396
|
console.log('');
|
|
415
|
-
if (
|
|
397
|
+
if (!showExtras) {
|
|
416
398
|
console.log(' Add more features anytime:');
|
|
417
|
-
console.log(' beecork enable email — manage your inbox');
|
|
418
399
|
console.log(' beecork enable github — repos, PRs, issues');
|
|
419
|
-
console.log(' beecork enable
|
|
400
|
+
console.log(' beecork enable notion — pages, databases, notes');
|
|
420
401
|
console.log(' beecork capabilities — see all options');
|
|
421
402
|
console.log(' beecork setup --full — full guided setup');
|
|
422
403
|
console.log('');
|
package/dist/index.js
CHANGED
|
@@ -436,7 +436,7 @@ mediaCmd.action(async () => {
|
|
|
436
436
|
});
|
|
437
437
|
program
|
|
438
438
|
.command('enable <capability>')
|
|
439
|
-
.description('Enable a capability (
|
|
439
|
+
.description('Enable a capability (github, notion, database)')
|
|
440
440
|
.action(async (capability) => {
|
|
441
441
|
const { enableCapability } = await import('./cli/capabilities.js');
|
|
442
442
|
await enableCapability(capability);
|