@yemi33/minions 0.1.875 → 0.1.877
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 -1
- package/dashboard/js/command-center.js +104 -3
- package/package.json +1 -1
- package/prompts/cc-system.md +11 -2
package/CHANGELOG.md
CHANGED
|
@@ -1,8 +1,12 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.877 (2026-04-11)
|
|
4
|
+
|
|
5
|
+
### Features
|
|
6
|
+
- add 13 missing CC action types for full dashboard parity
|
|
4
7
|
|
|
5
8
|
### Fixes
|
|
9
|
+
- CC action bugs + security guard on generic fallback
|
|
6
10
|
- reset central work-items.json on agent kill (closes #890) (#891)
|
|
7
11
|
- include started_at in done/error agent status so duration renders
|
|
8
12
|
|
|
@@ -1097,9 +1097,110 @@ async function ccExecuteAction(action, targetTabId) {
|
|
|
1097
1097
|
refresh();
|
|
1098
1098
|
break;
|
|
1099
1099
|
}
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1100
|
+
// ── High-impact gaps ──
|
|
1101
|
+
case 'continue-pipeline': {
|
|
1102
|
+
await _ccFetch('/api/pipelines/continue', { id: action.id });
|
|
1103
|
+
status.innerHTML = '✓ Pipeline continued: <strong>' + escHtml(action.id) + '</strong>';
|
|
1104
|
+
status.style.color = 'var(--green)';
|
|
1105
|
+
wakeEngine();
|
|
1106
|
+
break;
|
|
1107
|
+
}
|
|
1108
|
+
case 'work-item-feedback': {
|
|
1109
|
+
await _ccFetch('/api/work-items/feedback', { id: action.id, rating: action.rating || 'up', comment: action.comment || '' });
|
|
1110
|
+
status.innerHTML = '✓ Feedback submitted for: <strong>' + escHtml(action.id) + '</strong> (' + escHtml(action.rating || 'up') + ')';
|
|
1111
|
+
status.style.color = 'var(--green)';
|
|
1112
|
+
break;
|
|
1113
|
+
}
|
|
1114
|
+
case 'archive-work-item': {
|
|
1115
|
+
await _ccFetch('/api/work-items/archive', { id: action.id });
|
|
1116
|
+
status.innerHTML = '✓ Work item archived: <strong>' + escHtml(action.id) + '</strong>';
|
|
1117
|
+
status.style.color = 'var(--green)';
|
|
1118
|
+
refresh();
|
|
1119
|
+
break;
|
|
1120
|
+
}
|
|
1121
|
+
case 'reopen-prd-item': {
|
|
1122
|
+
await _ccFetch('/api/prd-items/update', { source: action.file, itemId: action.id, status: 'updated' });
|
|
1123
|
+
status.innerHTML = '✓ PRD item reopened: <strong>' + escHtml(action.id) + '</strong>';
|
|
1124
|
+
status.style.color = 'var(--green)';
|
|
1125
|
+
wakeEngine();
|
|
1126
|
+
break;
|
|
1127
|
+
}
|
|
1128
|
+
case 'promote-to-kb': {
|
|
1129
|
+
await _ccFetch('/api/inbox/promote-kb', { name: action.file, category: action.category || 'project-notes' });
|
|
1130
|
+
status.innerHTML = '✓ Promoted to KB: <strong>' + escHtml(action.file) + '</strong>';
|
|
1131
|
+
status.style.color = 'var(--green)';
|
|
1132
|
+
refresh();
|
|
1133
|
+
break;
|
|
1134
|
+
}
|
|
1135
|
+
// ── Lower-priority gaps ──
|
|
1136
|
+
case 'revise-plan': {
|
|
1137
|
+
await _ccFetch('/api/plans/revise', { file: action.file, feedback: action.feedback || action.description, requestedBy: 'command-center' });
|
|
1138
|
+
status.innerHTML = '✓ Plan revision dispatched: <strong>' + escHtml(action.file) + '</strong>';
|
|
1139
|
+
status.style.color = 'var(--green)';
|
|
1140
|
+
wakeEngine();
|
|
1141
|
+
break;
|
|
1142
|
+
}
|
|
1143
|
+
case 'kb-sweep': {
|
|
1144
|
+
await _ccFetch('/api/knowledge/sweep', {});
|
|
1145
|
+
status.innerHTML = '✓ KB sweep triggered';
|
|
1146
|
+
status.style.color = 'var(--green)';
|
|
1147
|
+
break;
|
|
1148
|
+
}
|
|
1149
|
+
case 'toggle-kb-pin': {
|
|
1150
|
+
await _ccFetch('/api/kb-pins/toggle', { key: action.key });
|
|
1151
|
+
status.innerHTML = '✓ KB pin toggled: <strong>' + escHtml(action.key) + '</strong>';
|
|
1152
|
+
status.style.color = 'var(--green)';
|
|
1153
|
+
refresh();
|
|
1154
|
+
break;
|
|
1155
|
+
}
|
|
1156
|
+
case 'add-project': {
|
|
1157
|
+
await _ccFetch('/api/projects/add', { localPath: action.localPath, name: action.name || '', repoHost: action.repoHost || 'github' });
|
|
1158
|
+
status.innerHTML = '✓ Project added: <strong>' + escHtml(action.name || action.localPath) + '</strong>';
|
|
1159
|
+
status.style.color = 'var(--green)';
|
|
1160
|
+
refresh();
|
|
1161
|
+
break;
|
|
1162
|
+
}
|
|
1163
|
+
case 'restart-engine': {
|
|
1164
|
+
await _ccFetch('/api/engine/restart', {});
|
|
1165
|
+
status.innerHTML = '✓ Engine restart requested';
|
|
1166
|
+
status.style.color = 'var(--green)';
|
|
1167
|
+
break;
|
|
1168
|
+
}
|
|
1169
|
+
case 'delete-pr': {
|
|
1170
|
+
await _ccFetch('/api/pull-requests/delete', { id: action.id, project: action.project || '' });
|
|
1171
|
+
status.innerHTML = '✓ PR unlinked: <strong>' + escHtml(action.id) + '</strong>';
|
|
1172
|
+
status.style.color = 'var(--green)';
|
|
1173
|
+
refresh();
|
|
1174
|
+
break;
|
|
1175
|
+
}
|
|
1176
|
+
case 'unarchive-meeting': {
|
|
1177
|
+
await _ccFetch('/api/meetings/unarchive', { id: action.id });
|
|
1178
|
+
status.innerHTML = '✓ Meeting unarchived: <strong>' + escHtml(action.id) + '</strong>';
|
|
1179
|
+
status.style.color = 'var(--green)';
|
|
1180
|
+
refresh();
|
|
1181
|
+
break;
|
|
1182
|
+
}
|
|
1183
|
+
case 'reset-settings': {
|
|
1184
|
+
await _ccFetch('/api/settings/reset', {});
|
|
1185
|
+
status.innerHTML = '✓ Settings reset to defaults';
|
|
1186
|
+
status.style.color = 'var(--green)';
|
|
1187
|
+
break;
|
|
1188
|
+
}
|
|
1189
|
+
default: {
|
|
1190
|
+
// Generic fallback: if action has an `endpoint` field, call it directly (local API only)
|
|
1191
|
+
if (action.endpoint && action.endpoint.startsWith('/api/') && !action.endpoint.includes('..')) {
|
|
1192
|
+
var genRes = await _ccFetch(action.endpoint, action.params || {});
|
|
1193
|
+
var genData = await genRes.json().catch(function() { return {}; });
|
|
1194
|
+
status.innerHTML = '✓ ' + escHtml(action.type) + ': ' + escHtml(genData.message || genData.id || 'done');
|
|
1195
|
+
status.style.color = 'var(--green)';
|
|
1196
|
+
} else if (action.endpoint) {
|
|
1197
|
+
status.innerHTML = '✗ Blocked: endpoint must be a local /api/ path';
|
|
1198
|
+
status.style.color = 'var(--red)';
|
|
1199
|
+
} else {
|
|
1200
|
+
status.innerHTML = '? Unknown action: <strong>' + escHtml(action.type) + '</strong>';
|
|
1201
|
+
status.style.color = 'var(--muted)';
|
|
1202
|
+
}
|
|
1203
|
+
}
|
|
1103
1204
|
}
|
|
1104
1205
|
} catch (e) {
|
|
1105
1206
|
status.innerHTML = '✗ Action failed: ' + escHtml(e.message);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.877",
|
|
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"
|
package/prompts/cc-system.md
CHANGED
|
@@ -43,6 +43,8 @@ I'll dispatch dallas to fix that bug.
|
|
|
43
43
|
===ACTIONS===
|
|
44
44
|
[{"type": "dispatch", "title": "Fix login bug", "workType": "fix", "agents": ["dallas"], "project": "MyApp", "description": "..."}]
|
|
45
45
|
|
|
46
|
+
**Generic fallback:** For any action not listed below, include `"endpoint": "/api/..."` and `"params": {...}` to call the API directly. Example: `{"type": "custom-op", "endpoint": "/api/some/endpoint", "params": {"key": "value"}}`.
|
|
47
|
+
|
|
46
48
|
Core action types:
|
|
47
49
|
- **dispatch**: title, workType, priority (low/medium/high), agents[] (optional), project, description
|
|
48
50
|
workTypes: `explore` (research, NO PR), `ask` (answer/report, NO PR), `implement` (new code, PR REQUIRED), `fix` (bug fix, PR REQUIRED), `review` (code review, NO PR), `test` (tests, PR if new), `verify` (merge/build/maintenance, NO PR)
|
|
@@ -73,8 +75,15 @@ Additional actions (all take `id` or `file` as primary key):
|
|
|
73
75
|
- Work items: delete-work-item (id, source)
|
|
74
76
|
- Schedules: schedule (id, title, cron, workType, project, agent, description, priority, enabled), delete-schedule (id)
|
|
75
77
|
- Pipelines: create-pipeline (id, title, stages[], trigger, stopWhen, monitoredResources), edit-pipeline (id, title, stages, trigger), delete-pipeline (id), trigger-pipeline (id), abort-pipeline (id), retrigger-pipeline (id)
|
|
76
|
-
- Meetings: add-meeting-note (id, note), advance-meeting (id), end-meeting (id), archive-meeting (id), delete-meeting (id)
|
|
77
|
-
-
|
|
78
|
+
- Meetings: add-meeting-note (id, note), advance-meeting (id), end-meeting (id), archive-meeting (id), unarchive-meeting (id), delete-meeting (id)
|
|
79
|
+
- Work item ops: delete-work-item (id, source), archive-work-item (id), work-item-feedback (id, rating: up/down, comment)
|
|
80
|
+
- PRD ops: edit-prd-item, remove-prd-item, reopen-prd-item (id, file — re-dispatches on existing branch)
|
|
81
|
+
- KB/Inbox: promote-to-kb (file, category), kb-sweep, toggle-kb-pin (key)
|
|
82
|
+
- Plan lifecycle: revise-plan (file, feedback — dispatches agent to revise)
|
|
83
|
+
- Pipeline: continue-pipeline (id — resume past wait stage)
|
|
84
|
+
- Projects: add-project (localPath, name, repoHost)
|
|
85
|
+
- Engine: restart-engine, reset-settings
|
|
86
|
+
- Other: unpin (title), link-pr (url, title, project, autoObserve), delete-pr (id, project), update-routing (content), file-bug (title, description, labels)
|
|
78
87
|
|
|
79
88
|
## Terminology
|
|
80
89
|
Terms like schedules, pipelines, agents, inbox, work items, plans, PRD, PRs, dispatch, routing, KB, notes, pinned, meetings have Minions-specific meanings. Always resolve against Minions state first (read files or call APIs). Fall back to generic only if no Minions context exists.
|