@yemi33/minions 0.1.1893 → 0.1.1894

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.
Files changed (2) hide show
  1. package/engine/preflight.js +20 -20
  2. package/package.json +1 -1
@@ -123,7 +123,7 @@ function _checkRuntimeBinary(runtimeName, { optional = false } = {}) {
123
123
  return {
124
124
  name: `Runtime: ${runtimeName}`,
125
125
  ok: false,
126
- message: `unknown runtime — ${e.message}`,
126
+ message: `unknown runtime — ${e.message} (see docs/copilot-cli-schema.md)`,
127
127
  };
128
128
  }
129
129
  let resolved = null;
@@ -146,8 +146,8 @@ function _checkRuntimeBinary(runtimeName, { optional = false } = {}) {
146
146
  name: `Runtime: ${runtimeName}`,
147
147
  ok: optional ? 'warn' : false,
148
148
  message: optional
149
- ? `not installed (optional) — ${hint}`
150
- : `not found — ${hint}`,
149
+ ? `not installed (optional) — ${hint} (see docs/copilot-cli-schema.md)`
150
+ : `not found — ${hint} (see docs/copilot-cli-schema.md)`,
151
151
  };
152
152
  }
153
153
 
@@ -400,11 +400,11 @@ async function _modelDiscoveryResults(config) {
400
400
  catch { continue; /* unknown-cli warning was already emitted by runtimeConfigWarnings */ }
401
401
 
402
402
  if (fleetDisabled) {
403
- results.push({ name: `Models: ${runtimeName}`, ok: 'warn', message: 'discovery disabled (engine.disableModelDiscovery)' });
403
+ results.push({ name: `Models: ${runtimeName}`, ok: 'warn', message: 'discovery disabled (engine.disableModelDiscovery) — see docs/copilot-cli-schema.md' });
404
404
  continue;
405
405
  }
406
406
  if (!adapter.capabilities || adapter.capabilities.modelDiscovery !== true) {
407
- results.push({ name: `Models: ${runtimeName}`, ok: 'warn', message: 'discovery unavailable (no enumeration mechanism)' });
407
+ results.push({ name: `Models: ${runtimeName}`, ok: 'warn', message: 'discovery unavailable (no enumeration mechanism) — see docs/copilot-cli-schema.md' });
408
408
  continue;
409
409
  }
410
410
  try {
@@ -412,10 +412,10 @@ async function _modelDiscoveryResults(config) {
412
412
  if (Array.isArray(out.models) && out.models.length > 0) {
413
413
  results.push({ name: `Models: ${runtimeName}`, ok: true, message: `${out.models.length} models cached` });
414
414
  } else {
415
- results.push({ name: `Models: ${runtimeName}`, ok: 'warn', message: 'discovery unavailable (API returned no models — check token)' });
415
+ results.push({ name: `Models: ${runtimeName}`, ok: 'warn', message: 'discovery unavailable (API returned no models — check token) — see docs/copilot-cli-schema.md' });
416
416
  }
417
417
  } catch (e) {
418
- results.push({ name: `Models: ${runtimeName}`, ok: 'warn', message: `discovery error — ${e && e.message ? e.message : 'unknown'}` });
418
+ results.push({ name: `Models: ${runtimeName}`, ok: 'warn', message: `discovery error — ${e && e.message ? e.message : 'unknown'} (see docs/copilot-cli-schema.md)` });
419
419
  }
420
420
  }
421
421
  return results;
@@ -442,7 +442,7 @@ function doctor(minionsHome) {
442
442
  if (fs.existsSync(engineJs)) {
443
443
  runtimeResults.push({ name: 'Minions installed', ok: true, message: minionsHome });
444
444
  } else {
445
- runtimeResults.push({ name: 'Minions installed', ok: false, message: `not found at ${minionsHome} — run: minions init` });
445
+ runtimeResults.push({ name: 'Minions installed', ok: false, message: `not found at ${minionsHome} — run: minions init (see docs/distribution.md)` });
446
446
  }
447
447
 
448
448
  // Check config.json
@@ -454,13 +454,13 @@ function doctor(minionsHome) {
454
454
  if (real.length > 0) {
455
455
  runtimeResults.push({ name: 'Projects configured', ok: true, message: `${real.length} project(s)` });
456
456
  } else {
457
- runtimeResults.push({ name: 'Projects configured', ok: false, message: 'no projects — run: minions add <dir>' });
457
+ runtimeResults.push({ name: 'Projects configured', ok: false, message: 'no projects — run: minions add <dir> (see docs/auto-discovery.md)' });
458
458
  }
459
459
 
460
460
  // Check project paths exist
461
461
  for (const p of real) {
462
462
  if (p.localPath && !fs.existsSync(p.localPath)) {
463
- runtimeResults.push({ name: `Project "${p.name}"`, ok: false, message: `path not found: ${p.localPath}` });
463
+ runtimeResults.push({ name: `Project "${p.name}"`, ok: false, message: `path not found: ${p.localPath} — fix config.json or re-run: minions add <dir> (see docs/auto-discovery.md)` });
464
464
  }
465
465
  }
466
466
 
@@ -469,7 +469,7 @@ function doctor(minionsHome) {
469
469
  if (Object.keys(agents).length > 0) {
470
470
  runtimeResults.push({ name: 'Agents configured', ok: true, message: `${Object.keys(agents).length} agent(s)` });
471
471
  } else {
472
- runtimeResults.push({ name: 'Agents configured', ok: false, message: 'no agents in config.json' });
472
+ runtimeResults.push({ name: 'Agents configured', ok: false, message: 'no agents in config.json — re-run: minions init (see docs/auto-discovery.md)' });
473
473
  }
474
474
 
475
475
  // Check Teams integration — supports client secret OR certificate auth
@@ -482,7 +482,7 @@ function doctor(minionsHome) {
482
482
  !teams.appId && 'appId',
483
483
  !teams.appPassword && !teams.certPath && 'appPassword or certPath+privateKeyPath+tenantId',
484
484
  ].filter(Boolean).join(', ');
485
- runtimeResults.push({ name: 'Teams integration', ok: 'warn', message: `enabled but missing: ${missing}` });
485
+ runtimeResults.push({ name: 'Teams integration', ok: 'warn', message: `enabled but missing: ${missing} — see docs/teams-setup.md` });
486
486
  } else {
487
487
  const authMode = hasCert ? 'certificate' : 'client secret';
488
488
  runtimeResults.push({ name: 'Teams integration', ok: true, message: `configured (${authMode})` });
@@ -491,7 +491,7 @@ function doctor(minionsHome) {
491
491
  runtimeResults.push({ name: 'Teams integration', ok: 'warn', message: 'disabled — see docs/teams-setup.md' });
492
492
  }
493
493
  } catch {
494
- runtimeResults.push({ name: 'Config', ok: false, message: `missing or invalid — run: minions init` });
494
+ runtimeResults.push({ name: 'Config', ok: false, message: `missing or invalid — run: minions init (see docs/distribution.md)` });
495
495
  }
496
496
 
497
497
  // Check engine status
@@ -509,12 +509,12 @@ function doctor(minionsHome) {
509
509
  alive = true;
510
510
  }
511
511
  } catch { /* process may be dead */ }
512
- runtimeResults.push({ name: 'Engine', ok: alive, message: alive ? `running (PID ${control.pid})` : `stale PID ${control.pid} — run: minions start` });
512
+ runtimeResults.push({ name: 'Engine', ok: alive, message: alive ? `running (PID ${control.pid})` : `stale PID ${control.pid} — run: minions start (see docs/engine-restart.md)` });
513
513
  } else {
514
- runtimeResults.push({ name: 'Engine', ok: 'warn', message: `${control.state || 'stopped'} — run: minions start` });
514
+ runtimeResults.push({ name: 'Engine', ok: 'warn', message: `${control.state || 'stopped'} — run: minions start (see docs/engine-restart.md)` });
515
515
  }
516
516
  } catch {
517
- runtimeResults.push({ name: 'Engine', ok: 'warn', message: 'not started — run: minions start' });
517
+ runtimeResults.push({ name: 'Engine', ok: 'warn', message: 'not started — run: minions start (see docs/engine-restart.md)' });
518
518
  }
519
519
 
520
520
  // Check dashboard (try HTTP)
@@ -523,8 +523,8 @@ function doctor(minionsHome) {
523
523
  const req = http.get('http://localhost:7331/api/health', { timeout: 2000 }, res => {
524
524
  resolve({ name: 'Dashboard', ok: true, message: 'running on http://localhost:7331' });
525
525
  });
526
- req.on('error', () => resolve({ name: 'Dashboard', ok: 'warn', message: 'not reachable on :7331 — run: minions dash' }));
527
- req.on('timeout', () => { req.destroy(); resolve({ name: 'Dashboard', ok: 'warn', message: 'not reachable on :7331 — run: minions dash' }); });
526
+ req.on('error', () => resolve({ name: 'Dashboard', ok: 'warn', message: 'not reachable on :7331 — run: minions dash (see docs/engine-restart.md)' }));
527
+ req.on('timeout', () => { req.destroy(); resolve({ name: 'Dashboard', ok: 'warn', message: 'not reachable on :7331 — run: minions dash (see docs/engine-restart.md)' }); });
528
528
  });
529
529
 
530
530
  return dashCheck.then(async dashResult => {
@@ -537,12 +537,12 @@ function doctor(minionsHome) {
537
537
  if (playbooks.length > 0) {
538
538
  runtimeResults.push({ name: 'Playbooks', ok: true, message: `${playbooks.length} playbooks found` });
539
539
  } else {
540
- runtimeResults.push({ name: 'Playbooks', ok: false, message: 'no playbooks found in playbooks/ — run: minions init --force' });
540
+ runtimeResults.push({ name: 'Playbooks', ok: false, message: 'no playbooks found in playbooks/ — run: minions init --force (see docs/distribution.md)' });
541
541
  }
542
542
 
543
543
  // Check port 7331 availability (only if dashboard isn't running)
544
544
  if (dashResult.ok !== true) {
545
- runtimeResults.push({ name: 'Port 7331', ok: 'warn', message: 'dashboard not running — port status unknown' });
545
+ runtimeResults.push({ name: 'Port 7331', ok: 'warn', message: 'dashboard not running — port status unknown (see docs/engine-restart.md)' });
546
546
  }
547
547
 
548
548
  // Fleet defaults + per-runtime model discovery (P-9e8a3f1d). Both depend
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.1893",
3
+ "version": "0.1.1894",
4
4
  "description": "Multi-agent AI dev team that runs from ~/.minions/ — five autonomous agents share a single engine, dashboard, and knowledge base",
5
5
  "bin": {
6
6
  "minions": "bin/minions.js"