slackhive 0.1.27 → 0.1.31

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
@@ -216,7 +216,7 @@ Mount `~/.claude` into the runner container and leave `ANTHROPIC_API_KEY` unset.
216
216
  - [x] Version control with diff view
217
217
  - [x] Encrypted environment variables
218
218
  - [x] Channel restrictions
219
- - [ ] Multi-workspace support
219
+ - [x] Multi-workspace support
220
220
  - [ ] Webhook triggers (GitHub, Jira, PagerDuty → agent actions)
221
221
  - [ ] Agent-to-agent direct messaging
222
222
  - [ ] Analytics dashboard
@@ -307,6 +307,7 @@ async function init(opts) {
307
307
  console.log('');
308
308
  }
309
309
  // ── Step 4: Build & start ─────────────────────────────────────────────────
310
+ let webReady = true;
310
311
  if (!opts.skipStart) {
311
312
  console.log(chalk_1.default.bold.hex('#D97757')(' [4/4]') + chalk_1.default.bold(' Building & starting services'));
312
313
  console.log(chalk_1.default.gray(' This takes 3–5 minutes on first run while Docker builds images.'));
@@ -330,10 +331,15 @@ async function init(opts) {
330
331
  }
331
332
  catch { /* non-fatal */ }
332
333
  await runDockerBuild(dir, opts.dir);
333
- // Wait for web UI
334
+ // If containers didn't come up during build, retry once silently
335
+ try {
336
+ (0, child_process_1.execSync)('docker compose up -d', { cwd: dir, stdio: 'ignore' });
337
+ }
338
+ catch { /* non-fatal */ }
339
+ // Wait for web UI — up to 3 minutes
334
340
  const webSpinner = (0, ora_1.default)(' Waiting for web UI to be ready...').start();
335
341
  let ready = false;
336
- for (let i = 0; i < 40; i++) {
342
+ for (let i = 0; i < 60; i++) {
337
343
  try {
338
344
  (0, child_process_1.execSync)('curl -sf http://localhost:3001/login', { stdio: 'ignore' });
339
345
  ready = true;
@@ -347,14 +353,24 @@ async function init(opts) {
347
353
  webSpinner.succeed('Web UI is ready');
348
354
  }
349
355
  else {
350
- webSpinner.warn('Web UI may still be starting up');
356
+ webReady = false;
357
+ webSpinner.stopAndPersist({ symbol: ' ' });
351
358
  }
352
359
  }
353
360
  // ── Done ──────────────────────────────────────────────────────────────────
354
361
  console.log('');
355
- console.log(' ' + chalk_1.default.bgHex('#D97757').black.bold(' SlackHive is ready! '));
356
- console.log('');
357
- console.log(` ${chalk_1.default.bold('Open:')} ${chalk_1.default.cyan('http://localhost:3001')}`);
362
+ if (webReady) {
363
+ console.log(' ' + chalk_1.default.bgHex('#D97757').black.bold(' SlackHive is ready! '));
364
+ console.log('');
365
+ console.log(` ${chalk_1.default.bold('Open:')} ${chalk_1.default.cyan('http://localhost:3001')}`);
366
+ }
367
+ else {
368
+ console.log(' ' + chalk_1.default.bold('Setup complete!'));
369
+ console.log('');
370
+ console.log(chalk_1.default.gray(' Services are still starting. Once ready:'));
371
+ console.log(` ${chalk_1.default.bold('Run:')} ${chalk_1.default.cyan('slackhive start')}`);
372
+ console.log(` ${chalk_1.default.bold('Open:')} ${chalk_1.default.cyan('http://localhost:3001')}`);
373
+ }
358
374
  console.log(` ${chalk_1.default.bold('Dir:')} ${chalk_1.default.gray(dir)}`);
359
375
  console.log('');
360
376
  console.log(chalk_1.default.gray(' Useful commands:'));
package/dist/index.js CHANGED
@@ -17,11 +17,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
17
17
  const commander_1 = require("commander");
18
18
  const init_1 = require("./commands/init");
19
19
  const manage_1 = require("./commands/manage");
20
+ // eslint-disable-next-line @typescript-eslint/no-require-imports
21
+ const { version } = require('../package.json');
20
22
  const program = new commander_1.Command();
21
23
  program
22
24
  .name('slackhive')
23
25
  .description('CLI to install and manage SlackHive — AI agent teams on Slack')
24
- .version('0.1.0');
26
+ .version(version);
25
27
  program
26
28
  .command('init')
27
29
  .description('Clone SlackHive repo, configure environment, and start services')
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "slackhive",
3
- "version": "0.1.27",
3
+ "version": "0.1.31",
4
4
  "description": "CLI to install and manage SlackHive — AI agent teams on Slack",
5
5
  "bin": {
6
6
  "slackhive": "./dist/index.js"