@yemi33/minions 0.1.583 → 0.1.585
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/CHANGELOG.md +6 -0
- package/bin/minions.js +19 -1
- package/engine/playbook.js +6 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/bin/minions.js
CHANGED
|
@@ -703,7 +703,25 @@ if (!cmd || cmd === 'help' || cmd === '--help' || cmd === '-h') {
|
|
|
703
703
|
const { doctor } = require(path.join(MINIONS_HOME, 'engine', 'preflight'));
|
|
704
704
|
doctor(MINIONS_HOME).then(ok => process.exit(ok ? 0 : 1));
|
|
705
705
|
} else if (cmd === 'dash' || cmd === 'dashboard') {
|
|
706
|
-
|
|
706
|
+
ensureInstalled();
|
|
707
|
+
// If dashboard is already running, just open the browser
|
|
708
|
+
const http = require('http');
|
|
709
|
+
const dashPort = 7331;
|
|
710
|
+
const probe = http.get(`http://localhost:${dashPort}/api/status`, (res) => {
|
|
711
|
+
res.resume();
|
|
712
|
+
// Dashboard is running — open browser
|
|
713
|
+
const url = `http://localhost:${dashPort}`;
|
|
714
|
+
console.log(`\n Dashboard already running: ${url}\n`);
|
|
715
|
+
try {
|
|
716
|
+
const openCmd = process.platform === 'win32' ? `start ${url}` : process.platform === 'darwin' ? `open ${url}` : `xdg-open ${url}`;
|
|
717
|
+
execSync(openCmd, { stdio: 'ignore', windowsHide: true });
|
|
718
|
+
} catch {}
|
|
719
|
+
});
|
|
720
|
+
probe.on('error', () => {
|
|
721
|
+
// Dashboard not running — start it
|
|
722
|
+
delegate('dashboard.js', rest);
|
|
723
|
+
});
|
|
724
|
+
probe.setTimeout(2000, () => { probe.destroy(); delegate('dashboard.js', rest); });
|
|
707
725
|
} else if (engineCmds.has(cmd)) {
|
|
708
726
|
delegate('engine.js', [cmd, ...rest]);
|
|
709
727
|
} else {
|
package/engine/playbook.js
CHANGED
|
@@ -283,6 +283,12 @@ function renderPlaybook(type, vars) {
|
|
|
283
283
|
};
|
|
284
284
|
const allVars = { ...projectVars, ...vars };
|
|
285
285
|
|
|
286
|
+
// Process conditional blocks: {{#key}}...{{/key}} — include block only if key is truthy
|
|
287
|
+
content = content.replace(/\{\{#(\w+)\}\}([\s\S]*?)\{\{\/\1\}\}/g, (_, key, block) => {
|
|
288
|
+
const val = allVars[key];
|
|
289
|
+
return (val && String(val).trim()) ? block : '';
|
|
290
|
+
});
|
|
291
|
+
|
|
286
292
|
// Substitute variables
|
|
287
293
|
for (const [key, val] of Object.entries(allVars)) {
|
|
288
294
|
content = content.replace(new RegExp(`\\{\\{${key}\\}\\}`, 'g'), String(val));
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.585",
|
|
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"
|