@yemi33/minions 0.1.595 → 0.1.596
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 +5 -0
- package/dashboard/js/settings.js +23 -0
- package/dashboard.js +9 -0
- package/engine.js +5 -3
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
package/dashboard/js/settings.js
CHANGED
|
@@ -55,6 +55,20 @@ async function openSettings() {
|
|
|
55
55
|
settingsField('Version Check Interval', 'set-versionCheckInterval', e.versionCheckInterval || 3600000, 'ms', 'How often to check npm for updates (default: 1 hour)') +
|
|
56
56
|
'</div>' +
|
|
57
57
|
|
|
58
|
+
'<h3 style="font-size:13px;color:var(--blue);margin-bottom:8px">Max Turns by Task Type</h3>' +
|
|
59
|
+
'<div style="font-size:10px;color:var(--muted);margin-bottom:6px">How many tool-use turns each task type gets before forced stop. Blank = built-in default.</div>' +
|
|
60
|
+
'<div style="display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:16px">' +
|
|
61
|
+
settingsField('Explore', 'set-mt-explore', (e.maxTurnsByType || {}).explore || '', '', 'Default: 30') +
|
|
62
|
+
settingsField('Ask', 'set-mt-ask', (e.maxTurnsByType || {}).ask || '', '', 'Default: 20') +
|
|
63
|
+
settingsField('Review', 'set-mt-review', (e.maxTurnsByType || {}).review || '', '', 'Default: 30') +
|
|
64
|
+
settingsField('Implement', 'set-mt-implement', (e.maxTurnsByType || {}).implement || '', '', 'Default: 75') +
|
|
65
|
+
settingsField('Fix', 'set-mt-fix', (e.maxTurnsByType || {}).fix || '', '', 'Default: 75') +
|
|
66
|
+
settingsField('Test', 'set-mt-test', (e.maxTurnsByType || {}).test || '', '', 'Default: 50') +
|
|
67
|
+
settingsField('Verify', 'set-mt-verify', (e.maxTurnsByType || {}).verify || '', '', 'Default: 100') +
|
|
68
|
+
settingsField('Plan', 'set-mt-plan', (e.maxTurnsByType || {}).plan || '', '', 'Default: 30') +
|
|
69
|
+
settingsField('Decompose', 'set-mt-decompose', (e.maxTurnsByType || {}).decompose || '', '', 'Default: 15') +
|
|
70
|
+
'</div>' +
|
|
71
|
+
|
|
58
72
|
'<h3 style="font-size:13px;color:var(--blue);margin-bottom:8px">Command Center / Doc Chat</h3>' +
|
|
59
73
|
'<div style="display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-bottom:16px">' +
|
|
60
74
|
'<div>' +
|
|
@@ -197,6 +211,15 @@ async function saveSettings() {
|
|
|
197
211
|
versionCheckInterval: document.getElementById('set-versionCheckInterval').value,
|
|
198
212
|
ccModel: document.getElementById('set-ccModel').value,
|
|
199
213
|
ccEffort: document.getElementById('set-ccEffort').value || null,
|
|
214
|
+
maxTurnsByType: (function() {
|
|
215
|
+
var mbt = {};
|
|
216
|
+
var types = ['explore', 'ask', 'review', 'implement', 'fix', 'test', 'verify', 'plan', 'decompose'];
|
|
217
|
+
for (var i = 0; i < types.length; i++) {
|
|
218
|
+
var v = document.getElementById('set-mt-' + types[i])?.value?.trim();
|
|
219
|
+
if (v) mbt[types[i]] = Number(v);
|
|
220
|
+
}
|
|
221
|
+
return mbt;
|
|
222
|
+
})(),
|
|
200
223
|
};
|
|
201
224
|
|
|
202
225
|
const claudePayload = {
|
package/dashboard.js
CHANGED
|
@@ -3470,6 +3470,15 @@ What would you like to discuss or change? When you're happy, say "approve" and I
|
|
|
3470
3470
|
const valid = [null, 'low', 'medium', 'high'];
|
|
3471
3471
|
config.engine.ccEffort = valid.includes(e.ccEffort) ? e.ccEffort : null;
|
|
3472
3472
|
}
|
|
3473
|
+
// Per-type max turns
|
|
3474
|
+
if (e.maxTurnsByType !== undefined && typeof e.maxTurnsByType === 'object') {
|
|
3475
|
+
const mbt = {};
|
|
3476
|
+
for (const [type, val] of Object.entries(e.maxTurnsByType)) {
|
|
3477
|
+
const n = Number(val);
|
|
3478
|
+
if (n && n >= 5 && n <= 500) mbt[type] = n;
|
|
3479
|
+
}
|
|
3480
|
+
config.engine.maxTurnsByType = mbt;
|
|
3481
|
+
}
|
|
3473
3482
|
// Boolean fields
|
|
3474
3483
|
for (const key of ['autoApprovePlans', 'evalLoop', 'autoDecompose', 'allowTempAgents']) {
|
|
3475
3484
|
if (e[key] !== undefined) config.engine[key] = !!e[key];
|
package/engine.js
CHANGED
|
@@ -155,9 +155,11 @@ const _MAX_TURNS_BY_TYPE = {
|
|
|
155
155
|
[WORK_TYPE.TEST]: 50, [WORK_TYPE.VERIFY]: 100, [WORK_TYPE.DOCS]: 30,
|
|
156
156
|
};
|
|
157
157
|
function _maxTurnsForType(type, engineConfig) {
|
|
158
|
-
//
|
|
159
|
-
const
|
|
160
|
-
|
|
158
|
+
// Priority: per-type config override → global config override → built-in per-type default → global default
|
|
159
|
+
const perType = engineConfig.maxTurnsByType || {};
|
|
160
|
+
if (perType[type]) return perType[type];
|
|
161
|
+
const globalOverride = engineConfig.maxTurns && engineConfig.maxTurns !== DEFAULTS.maxTurns ? engineConfig.maxTurns : null;
|
|
162
|
+
return globalOverride || _MAX_TURNS_BY_TYPE[type] || DEFAULTS.maxTurns;
|
|
161
163
|
}
|
|
162
164
|
|
|
163
165
|
// Resolve dependency plan item IDs to their PR branches
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.596",
|
|
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"
|