@yemi33/minions 0.1.214 → 0.1.216

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,18 @@
1
1
  # Changelog
2
2
 
3
+ ## 0.1.216 (2026-04-02)
4
+
5
+ ### Engine
6
+ - engine/preflight.js
7
+
8
+ ### Other
9
+ - test/unit.test.js
10
+
11
+ ## 0.1.215 (2026-04-02)
12
+
13
+ ### Dashboard
14
+ - dashboard.js
15
+
3
16
  ## 0.1.214 (2026-04-02)
4
17
 
5
18
  ### Other
package/dashboard.js CHANGED
@@ -3103,9 +3103,12 @@ What would you like to discuss or change? When you're happy, say "approve" and I
3103
3103
  // String fields
3104
3104
  if (e.worktreeRoot !== undefined) config.engine.worktreeRoot = String(e.worktreeRoot || D.worktreeRoot);
3105
3105
  // Boolean fields
3106
- for (const key of ['autoApprovePlans', 'autoReview', 'autoDecompose', 'allowTempAgents']) {
3106
+ for (const key of ['autoApprovePlans', 'evalLoop', 'autoDecompose', 'allowTempAgents']) {
3107
3107
  if (e[key] !== undefined) config.engine[key] = !!e[key];
3108
3108
  }
3109
+ // Eval loop settings
3110
+ if (e.evalMaxIterations !== undefined) config.engine.evalMaxIterations = Math.max(1, Math.min(10, Number(e.evalMaxIterations) || D.evalMaxIterations));
3111
+ if (e.evalMaxCost !== undefined) config.engine.evalMaxCost = e.evalMaxCost === null || e.evalMaxCost === '' ? null : Math.max(0, Number(e.evalMaxCost) || 0);
3109
3112
  }
3110
3113
 
3111
3114
  if (body.claude) {
@@ -3123,6 +3126,11 @@ What would you like to discuss or change? When you're happy, say "approve" and I
3123
3126
  if (!config.agents[id]) continue;
3124
3127
  if (updates.role !== undefined) config.agents[id].role = String(updates.role);
3125
3128
  if (updates.skills !== undefined) config.agents[id].skills = Array.isArray(updates.skills) ? updates.skills : String(updates.skills).split(',').map(s => s.trim()).filter(Boolean);
3129
+ if (updates.monthlyBudgetUsd !== undefined) {
3130
+ const val = updates.monthlyBudgetUsd === '' || updates.monthlyBudgetUsd === null ? undefined : Number(updates.monthlyBudgetUsd);
3131
+ if (val === undefined || isNaN(val)) delete config.agents[id].monthlyBudgetUsd;
3132
+ else config.agents[id].monthlyBudgetUsd = Math.max(0, val);
3133
+ }
3126
3134
  }
3127
3135
  }
3128
3136
 
@@ -101,14 +101,7 @@ function runPreflight(opts = {}) {
101
101
  allOk = false;
102
102
  }
103
103
 
104
- // 4. Anthropic API key or Claude Max (best-effort warning)
105
- const hasApiKey = !!process.env.ANTHROPIC_API_KEY;
106
- if (hasApiKey) {
107
- results.push({ name: 'Anthropic auth', ok: true, message: 'ANTHROPIC_API_KEY set' });
108
- } else {
109
- // Not fatal — user may have Claude Max subscription
110
- results.push({ name: 'Anthropic auth', ok: 'warn', message: 'ANTHROPIC_API_KEY not set — agents need an API key or Claude Max subscription' });
111
- }
104
+ // Auth is handled by Claude Code itself (API key, Claude Max, etc.) — no check needed here.
112
105
 
113
106
  return { passed: allOk, results };
114
107
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@yemi33/minions",
3
- "version": "0.1.214",
3
+ "version": "0.1.216",
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"