@yemi33/minions 0.1.185 → 0.1.187

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 CHANGED
@@ -1,5 +1,16 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.187 (2026-04-02)
4
+
5
+ ### Engine
6
+ - engine/playbook.js
7
+
8
+ ## 0.1.186 (2026-04-02)
9
+
10
+ ### Dashboard
11
+ - dashboard.js
12
+ - dashboard/js/settings.js
13
+
3
14
  ## 0.1.185 (2026-04-02)
4
15
 
5
16
  ### Dashboard
@@ -16,6 +16,7 @@ async function openSettings() {
16
16
  '<td style="font-weight:600">' + escHtml(a.emoji || '') + ' ' + escHtml(a.name || id) + '</td>' +
17
17
  '<td><input data-agent="' + escHtml(id) + '" data-field="role" value="' + escHtml(a.role || '') + '" style="width:100%;padding:4px 6px;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:11px"></td>' +
18
18
  '<td><input data-agent="' + escHtml(id) + '" data-field="skills" value="' + escHtml((a.skills || []).join(', ')) + '" style="width:100%;padding:4px 6px;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:11px"></td>' +
19
+ '<td><input data-agent="' + escHtml(id) + '" data-field="monthlyBudgetUsd" value="' + escHtml(a.monthlyBudgetUsd != null ? String(a.monthlyBudgetUsd) : '') + '" placeholder="unlimited" style="width:70px;padding:4px 6px;background:var(--surface);border:1px solid var(--border);border-radius:4px;color:var(--text);font-size:11px;text-align:right"></td>' +
19
20
  '</tr>';
20
21
  }).join('');
21
22
 
@@ -56,7 +57,7 @@ async function openSettings() {
56
57
 
57
58
  '<h3 style="font-size:13px;color:var(--blue);margin-bottom:8px">Agents</h3>' +
58
59
  '<table style="width:100%;border-collapse:collapse;margin-bottom:16px;font-size:11px">' +
59
- '<tr style="text-align:left;color:var(--muted)"><th style="padding:4px">Agent</th><th style="padding:4px">Role</th><th style="padding:4px">Skills</th></tr>' +
60
+ '<tr style="text-align:left;color:var(--muted)"><th style="padding:4px">Agent</th><th style="padding:4px">Role</th><th style="padding:4px">Skills</th><th style="padding:4px">Budget $/mo</th></tr>' +
60
61
  agentRows +
61
62
  '</table>' +
62
63
 
package/dashboard.js CHANGED
@@ -2988,6 +2988,11 @@ What would you like to discuss or change? When you're happy, say "approve" and I
2988
2988
  if (!config.agents[id]) continue;
2989
2989
  if (updates.role !== undefined) config.agents[id].role = String(updates.role);
2990
2990
  if (updates.skills !== undefined) config.agents[id].skills = Array.isArray(updates.skills) ? updates.skills : String(updates.skills).split(',').map(s => s.trim()).filter(Boolean);
2991
+ if (updates.monthlyBudgetUsd !== undefined) {
2992
+ const val = updates.monthlyBudgetUsd === '' || updates.monthlyBudgetUsd === null ? undefined : Number(updates.monthlyBudgetUsd);
2993
+ if (val === undefined || isNaN(val)) delete config.agents[id].monthlyBudgetUsd;
2994
+ else config.agents[id].monthlyBudgetUsd = Math.max(0, val);
2995
+ }
2991
2996
  }
2992
2997
  }
2993
2998
 
@@ -296,9 +296,12 @@ function renderPlaybook(type, vars) {
296
296
  };
297
297
  const allVars = { ...projectVars, ...vars };
298
298
 
299
- // Substitute variables
300
- for (const [key, val] of Object.entries(allVars)) {
301
- content = content.replace(new RegExp(`\\{\\{${key}\\}\\}`, 'g'), String(val));
299
+ // Substitute variables — two passes to resolve nested templates
300
+ // (e.g. pr_section contains {{pr_create_instructions}}, {{branch_name}}, etc.)
301
+ for (let pass = 0; pass < 2; pass++) {
302
+ for (const [key, val] of Object.entries(allVars)) {
303
+ content = content.replace(new RegExp(`\\{\\{${key}\\}\\}`, 'g'), String(val));
304
+ }
302
305
  }
303
306
 
304
307
  // Warn on variables that resolved to empty string
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.185",
3
+ "version": "0.1.187",
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"