@yemi33/minions 0.1.184 → 0.1.186

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,17 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.186 (2026-04-02)
4
+
5
+ ### Dashboard
6
+ - dashboard.js
7
+ - dashboard/js/settings.js
8
+
9
+ ## 0.1.185 (2026-04-02)
10
+
11
+ ### Dashboard
12
+ - dashboard.js
13
+ - dashboard/js/settings.js
14
+
3
15
  ## 0.1.184 (2026-04-02)
4
16
 
5
17
  ### 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
 
@@ -43,6 +44,10 @@ async function openSettings() {
43
44
  settingsToggle('Auto-decompose', 'set-autoDecompose', e.autoDecompose !== false, 'Large implement items are auto-split into sub-tasks') +
44
45
  settingsToggle('Allow Temp Agents', 'set-allowTempAgents', !!e.allowTempAgents, 'Spawn ephemeral agents when all permanent agents are busy') +
45
46
  '</div>' +
47
+ '<div style="display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px">' +
48
+ settingsField('Eval Max Iterations', 'set-evalMaxIterations', e.evalMaxIterations || 3, '', 'Max review→fix cycles before escalating (1-10)') +
49
+ settingsField('Eval Max Cost', 'set-evalMaxCost', e.evalMaxCost === null || e.evalMaxCost === undefined ? '' : e.evalMaxCost, '$', 'USD ceiling per work item across all eval iterations (blank = no limit)') +
50
+ '</div>' +
46
51
 
47
52
  '<h3 style="font-size:13px;color:var(--blue);margin-bottom:8px">Claude CLI</h3>' +
48
53
  '<div style="display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px">' +
@@ -52,7 +57,7 @@ async function openSettings() {
52
57
 
53
58
  '<h3 style="font-size:13px;color:var(--blue);margin-bottom:8px">Agents</h3>' +
54
59
  '<table style="width:100%;border-collapse:collapse;margin-bottom:16px;font-size:11px">' +
55
- '<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>' +
56
61
  agentRows +
57
62
  '</table>' +
58
63
 
@@ -126,6 +131,8 @@ async function saveSettings() {
126
131
  evalLoop: document.getElementById('set-evalLoop').checked,
127
132
  autoDecompose: document.getElementById('set-autoDecompose').checked,
128
133
  allowTempAgents: document.getElementById('set-allowTempAgents').checked,
134
+ evalMaxIterations: document.getElementById('set-evalMaxIterations').value,
135
+ evalMaxCost: document.getElementById('set-evalMaxCost').value || null,
129
136
  };
130
137
 
131
138
  const claudePayload = {
package/dashboard.js CHANGED
@@ -2973,6 +2973,8 @@ What would you like to discuss or change? When you're happy, say "approve" and I
2973
2973
  for (const key of ['autoApprovePlans', 'evalLoop', 'autoDecompose', 'allowTempAgents']) {
2974
2974
  if (e[key] !== undefined) config.engine[key] = !!e[key];
2975
2975
  }
2976
+ if (e.evalMaxIterations !== undefined) config.engine.evalMaxIterations = Math.max(1, Math.min(10, Number(e.evalMaxIterations) || D.evalMaxIterations));
2977
+ if (e.evalMaxCost !== undefined) config.engine.evalMaxCost = e.evalMaxCost === null || e.evalMaxCost === '' ? null : Math.max(0, Number(e.evalMaxCost) || 0);
2976
2978
  }
2977
2979
 
2978
2980
  if (body.claude) {
@@ -2986,6 +2988,11 @@ What would you like to discuss or change? When you're happy, say "approve" and I
2986
2988
  if (!config.agents[id]) continue;
2987
2989
  if (updates.role !== undefined) config.agents[id].role = String(updates.role);
2988
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
+ }
2989
2996
  }
2990
2997
  }
2991
2998
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.184",
3
+ "version": "0.1.186",
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"