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 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 (email, github, calendar, etc.)
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 (mode === 'full') {
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 (scan QR code when daemon starts)\n');
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 (mode === 'quick') {
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 calendar schedule meetings');
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 (email, calendar, github, notion, drive, web, database)')
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);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "beecork",
3
- "version": "1.3.2",
3
+ "version": "1.3.4",
4
4
  "description": "Claude Code always-on infrastructure — a phone number, a memory, and an alarm clock",
5
5
  "type": "module",
6
6
  "bin": {