@yemi33/minions 0.1.1892 → 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.
- package/docs/index.html +20 -21
- package/engine/preflight.js +20 -20
- package/package.json +1 -1
package/docs/index.html
CHANGED
|
@@ -247,31 +247,30 @@ minions update</pre>
|
|
|
247
247
|
<div class="arch">
|
|
248
248
|
<h2>Architecture</h2>
|
|
249
249
|
<pre>
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
250
|
+
+-----------------------------------------------------+
|
|
251
|
+
| ~/.minions/ (central hub) |
|
|
252
|
+
| |
|
|
253
|
+
| engine.js ---- 60s tick loop ----+ |
|
|
254
|
+
| | | |
|
|
255
|
+
| discover work spawn agents poll PRs/comments|
|
|
256
|
+
| | | | |
|
|
257
|
+
| +-------+ +-------------+ +--------+ |
|
|
258
|
+
| | Plans | | Worktrees | | ADO / | |
|
|
259
|
+
| | PRDs | | isolated | | GitHub | |
|
|
260
|
+
| | Items | | per agent | +--------+ |
|
|
261
|
+
| +-------+ +-------------+ |
|
|
262
|
+
| |
|
|
263
|
+
| dashboard.js -- port 7331 -- mission control |
|
|
264
|
+
| runtimes/ -- Claude Code or GitHub Copilot CLI |
|
|
265
|
+
| meetings/ -- multi-agent discussions |
|
|
266
|
+
| pipelines/ -- multi-stage workflows |
|
|
267
|
+
| schedules + watches -- recurring/conditional work |
|
|
268
|
+
| notes.md + knowledge/ -- team memory and KB |
|
|
269
|
+
+-----------------------------------------------------+
|
|
270
270
|
</pre>
|
|
271
271
|
</div>
|
|
272
272
|
|
|
273
273
|
</div>
|
|
274
|
-
|
|
275
274
|
<footer>
|
|
276
275
|
<p>Minions — built by <a href="https://github.com/yemi33">yemi33</a> — <a href="https://www.npmjs.com/package/@yemi33/minions">npm</a> — <a href="https://yemi33.github.io/minions/">Public site</a> — MIT License — Claude Code or GitHub Copilot CLI runtime</p>
|
|
277
276
|
</footer>
|
package/engine/preflight.js
CHANGED
|
@@ -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.
|
|
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"
|