@yemi33/minions 0.1.879 → 0.1.880
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 +4 -1
- package/dashboard/js/command-center.js +5 -26
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
## 0.1.
|
|
3
|
+
## 0.1.880 (2026-04-11)
|
|
4
4
|
|
|
5
5
|
### Features
|
|
6
6
|
- add 13 missing CC action types for full dashboard parity
|
|
@@ -12,6 +12,9 @@
|
|
|
12
12
|
- reset central work-items.json on agent kill (closes #890) (#891)
|
|
13
13
|
- include started_at in done/error agent status so duration renders
|
|
14
14
|
|
|
15
|
+
### Other
|
|
16
|
+
- simplify: CC actions cleanup — missing wakeEngine, redundant refresh, hardened fallback
|
|
17
|
+
|
|
15
18
|
## 0.1.873 (2026-04-11)
|
|
16
19
|
|
|
17
20
|
### Features
|
|
@@ -758,13 +758,13 @@ async function ccExecuteAction(action, targetTabId) {
|
|
|
758
758
|
await _ccFetch('/api/pinned', { title: action.title, content: action.content || action.description, level: action.level || '' });
|
|
759
759
|
status.innerHTML = '📌 Pinned: <strong>' + escHtml(action.title) + '</strong> — visible to all agents';
|
|
760
760
|
status.style.color = 'var(--green)';
|
|
761
|
-
refresh();
|
|
762
761
|
break;
|
|
763
762
|
}
|
|
764
763
|
case 'plan': {
|
|
765
764
|
await _ccFetch('/api/plan', { title: action.title, description: action.description, project: action.project, branchStrategy: action.branchStrategy || 'parallel' });
|
|
766
765
|
status.innerHTML = '✓ Plan queued: <strong>' + escHtml(action.title) + '</strong>';
|
|
767
766
|
status.style.color = 'var(--green)';
|
|
767
|
+
wakeEngine();
|
|
768
768
|
break;
|
|
769
769
|
}
|
|
770
770
|
case 'cancel': {
|
|
@@ -792,6 +792,7 @@ async function ccExecuteAction(action, targetTabId) {
|
|
|
792
792
|
await _ccFetch('/api/plans/approve', { file: action.file });
|
|
793
793
|
status.innerHTML = '✓ Approved plan: <strong>' + escHtml(action.file) + '</strong>';
|
|
794
794
|
status.style.color = 'var(--green)';
|
|
795
|
+
wakeEngine();
|
|
795
796
|
break;
|
|
796
797
|
}
|
|
797
798
|
case 'resume-plan': {
|
|
@@ -857,14 +858,10 @@ async function ccExecuteAction(action, targetTabId) {
|
|
|
857
858
|
break;
|
|
858
859
|
}
|
|
859
860
|
case 'execute-plan': {
|
|
860
|
-
await
|
|
861
|
-
method: 'POST', headers: { 'Content-Type': 'application/json' },
|
|
862
|
-
body: JSON.stringify({ file: action.file, project: action.project || '' })
|
|
863
|
-
});
|
|
861
|
+
await _ccFetch('/api/plans/execute', { file: action.file, project: action.project || '' });
|
|
864
862
|
status.innerHTML = '✓ Plan execution queued: <strong>' + escHtml(action.file) + '</strong>';
|
|
865
863
|
status.style.color = 'var(--green)';
|
|
866
864
|
wakeEngine();
|
|
867
|
-
refreshPlans();
|
|
868
865
|
break;
|
|
869
866
|
}
|
|
870
867
|
case 'file-edit': {
|
|
@@ -957,14 +954,12 @@ async function ccExecuteAction(action, targetTabId) {
|
|
|
957
954
|
await _ccFetch('/api/pinned/remove', { title: action.title });
|
|
958
955
|
status.innerHTML = '✓ Unpinned: <strong>' + escHtml(action.title) + '</strong>';
|
|
959
956
|
status.style.color = 'var(--green)';
|
|
960
|
-
refresh();
|
|
961
957
|
break;
|
|
962
958
|
}
|
|
963
959
|
case 'archive-plan': {
|
|
964
960
|
await _ccFetch('/api/plans/archive', { file: action.file });
|
|
965
961
|
status.innerHTML = '✓ Archived plan: <strong>' + escHtml(action.file) + '</strong>';
|
|
966
962
|
status.style.color = 'var(--green)';
|
|
967
|
-
refresh();
|
|
968
963
|
break;
|
|
969
964
|
}
|
|
970
965
|
case 'reject-plan': {
|
|
@@ -1000,14 +995,12 @@ async function ccExecuteAction(action, targetTabId) {
|
|
|
1000
995
|
await _ccFetch('/api/pull-requests/link', { url: action.url, title: action.title || '', project: action.project || '', autoObserve: action.autoObserve !== false });
|
|
1001
996
|
status.innerHTML = '✓ PR linked: <strong>' + escHtml(action.url) + '</strong>';
|
|
1002
997
|
status.style.color = 'var(--green)';
|
|
1003
|
-
refresh();
|
|
1004
998
|
break;
|
|
1005
999
|
}
|
|
1006
1000
|
case 'archive-meeting': {
|
|
1007
1001
|
await _ccFetch('/api/meetings/archive', { id: action.id });
|
|
1008
1002
|
status.innerHTML = '✓ Meeting archived: <strong>' + escHtml(action.id) + '</strong>';
|
|
1009
1003
|
status.style.color = 'var(--green)';
|
|
1010
|
-
refresh();
|
|
1011
1004
|
break;
|
|
1012
1005
|
}
|
|
1013
1006
|
case 'update-routing': {
|
|
@@ -1031,21 +1024,18 @@ async function ccExecuteAction(action, targetTabId) {
|
|
|
1031
1024
|
await _ccFetch('/api/pipelines', { id: action.id, title: action.title, stages: action.stages || [], trigger: action.trigger || null, stopWhen: action.stopWhen || null, monitoredResources: action.monitoredResources || null });
|
|
1032
1025
|
status.innerHTML = '✓ Pipeline created: <strong>' + escHtml(action.id) + '</strong>';
|
|
1033
1026
|
status.style.color = 'var(--green)';
|
|
1034
|
-
refresh();
|
|
1035
1027
|
break;
|
|
1036
1028
|
}
|
|
1037
1029
|
case 'delete-pipeline': {
|
|
1038
1030
|
await _ccFetch('/api/pipelines/delete', { id: action.id });
|
|
1039
1031
|
status.innerHTML = '✓ Pipeline deleted: <strong>' + escHtml(action.id) + '</strong>';
|
|
1040
1032
|
status.style.color = 'var(--green)';
|
|
1041
|
-
refresh();
|
|
1042
1033
|
break;
|
|
1043
1034
|
}
|
|
1044
1035
|
case 'abort-pipeline': {
|
|
1045
1036
|
await _ccFetch('/api/pipelines/abort', { id: action.id });
|
|
1046
1037
|
status.innerHTML = '✓ Pipeline aborted: <strong>' + escHtml(action.id) + '</strong>';
|
|
1047
1038
|
status.style.color = 'var(--green)';
|
|
1048
|
-
refresh();
|
|
1049
1039
|
break;
|
|
1050
1040
|
}
|
|
1051
1041
|
case 'retrigger-pipeline': {
|
|
@@ -1059,21 +1049,19 @@ async function ccExecuteAction(action, targetTabId) {
|
|
|
1059
1049
|
await _ccFetch('/api/meetings/advance', { id: action.id });
|
|
1060
1050
|
status.innerHTML = '✓ Meeting advanced: <strong>' + escHtml(action.id) + '</strong>';
|
|
1061
1051
|
status.style.color = 'var(--green)';
|
|
1062
|
-
|
|
1052
|
+
wakeEngine();
|
|
1063
1053
|
break;
|
|
1064
1054
|
}
|
|
1065
1055
|
case 'end-meeting': {
|
|
1066
1056
|
await _ccFetch('/api/meetings/end', { id: action.id });
|
|
1067
1057
|
status.innerHTML = '✓ Meeting ended: <strong>' + escHtml(action.id) + '</strong>';
|
|
1068
1058
|
status.style.color = 'var(--green)';
|
|
1069
|
-
refresh();
|
|
1070
1059
|
break;
|
|
1071
1060
|
}
|
|
1072
1061
|
case 'delete-meeting': {
|
|
1073
1062
|
await _ccFetch('/api/meetings/delete', { id: action.id });
|
|
1074
1063
|
status.innerHTML = '✓ Meeting deleted: <strong>' + escHtml(action.id) + '</strong>';
|
|
1075
1064
|
status.style.color = 'var(--green)';
|
|
1076
|
-
refresh();
|
|
1077
1065
|
break;
|
|
1078
1066
|
}
|
|
1079
1067
|
case 'trigger-verify': {
|
|
@@ -1094,10 +1082,8 @@ async function ccExecuteAction(action, targetTabId) {
|
|
|
1094
1082
|
await _ccFetch('/api/plans/unarchive', { file: action.file });
|
|
1095
1083
|
status.innerHTML = '✓ Plan unarchived: <strong>' + escHtml(action.file) + '</strong>';
|
|
1096
1084
|
status.style.color = 'var(--green)';
|
|
1097
|
-
refresh();
|
|
1098
1085
|
break;
|
|
1099
1086
|
}
|
|
1100
|
-
// ── High-impact gaps ──
|
|
1101
1087
|
case 'continue-pipeline': {
|
|
1102
1088
|
await _ccFetch('/api/pipelines/continue', { id: action.id });
|
|
1103
1089
|
status.innerHTML = '✓ Pipeline continued: <strong>' + escHtml(action.id) + '</strong>';
|
|
@@ -1115,7 +1101,6 @@ async function ccExecuteAction(action, targetTabId) {
|
|
|
1115
1101
|
await _ccFetch('/api/work-items/archive', { id: action.id });
|
|
1116
1102
|
status.innerHTML = '✓ Work item archived: <strong>' + escHtml(action.id) + '</strong>';
|
|
1117
1103
|
status.style.color = 'var(--green)';
|
|
1118
|
-
refresh();
|
|
1119
1104
|
break;
|
|
1120
1105
|
}
|
|
1121
1106
|
case 'reopen-prd-item': {
|
|
@@ -1129,10 +1114,8 @@ async function ccExecuteAction(action, targetTabId) {
|
|
|
1129
1114
|
await _ccFetch('/api/inbox/promote-kb', { name: action.file, category: action.category || 'project-notes' });
|
|
1130
1115
|
status.innerHTML = '✓ Promoted to KB: <strong>' + escHtml(action.file) + '</strong>';
|
|
1131
1116
|
status.style.color = 'var(--green)';
|
|
1132
|
-
refresh();
|
|
1133
1117
|
break;
|
|
1134
1118
|
}
|
|
1135
|
-
// ── Lower-priority gaps ──
|
|
1136
1119
|
case 'revise-plan': {
|
|
1137
1120
|
await _ccFetch('/api/plans/revise', { file: action.file, feedback: action.feedback || action.description, requestedBy: 'command-center' });
|
|
1138
1121
|
status.innerHTML = '✓ Plan revision dispatched: <strong>' + escHtml(action.file) + '</strong>';
|
|
@@ -1150,14 +1133,12 @@ async function ccExecuteAction(action, targetTabId) {
|
|
|
1150
1133
|
await _ccFetch('/api/kb-pins/toggle', { key: action.key });
|
|
1151
1134
|
status.innerHTML = '✓ KB pin toggled: <strong>' + escHtml(action.key) + '</strong>';
|
|
1152
1135
|
status.style.color = 'var(--green)';
|
|
1153
|
-
refresh();
|
|
1154
1136
|
break;
|
|
1155
1137
|
}
|
|
1156
1138
|
case 'add-project': {
|
|
1157
1139
|
await _ccFetch('/api/projects/add', { localPath: action.localPath, name: action.name || '', repoHost: action.repoHost || 'github' });
|
|
1158
1140
|
status.innerHTML = '✓ Project added: <strong>' + escHtml(action.name || action.localPath) + '</strong>';
|
|
1159
1141
|
status.style.color = 'var(--green)';
|
|
1160
|
-
refresh();
|
|
1161
1142
|
break;
|
|
1162
1143
|
}
|
|
1163
1144
|
case 'restart-engine': {
|
|
@@ -1170,14 +1151,12 @@ async function ccExecuteAction(action, targetTabId) {
|
|
|
1170
1151
|
await _ccFetch('/api/pull-requests/delete', { id: action.id, project: action.project || '' });
|
|
1171
1152
|
status.innerHTML = '✓ PR unlinked: <strong>' + escHtml(action.id) + '</strong>';
|
|
1172
1153
|
status.style.color = 'var(--green)';
|
|
1173
|
-
refresh();
|
|
1174
1154
|
break;
|
|
1175
1155
|
}
|
|
1176
1156
|
case 'unarchive-meeting': {
|
|
1177
1157
|
await _ccFetch('/api/meetings/unarchive', { id: action.id });
|
|
1178
1158
|
status.innerHTML = '✓ Meeting unarchived: <strong>' + escHtml(action.id) + '</strong>';
|
|
1179
1159
|
status.style.color = 'var(--green)';
|
|
1180
|
-
refresh();
|
|
1181
1160
|
break;
|
|
1182
1161
|
}
|
|
1183
1162
|
case 'reset-settings': {
|
|
@@ -1188,7 +1167,7 @@ async function ccExecuteAction(action, targetTabId) {
|
|
|
1188
1167
|
}
|
|
1189
1168
|
default: {
|
|
1190
1169
|
// 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('..')) {
|
|
1170
|
+
if (action.endpoint && action.endpoint.startsWith('/api/') && !action.endpoint.includes('..') && !/\%2e/i.test(action.endpoint)) {
|
|
1192
1171
|
var genRes = await _ccFetch(action.endpoint, action.params || {});
|
|
1193
1172
|
var genData = await genRes.json().catch(function() { return {}; });
|
|
1194
1173
|
status.innerHTML = '✓ ' + escHtml(action.type) + ': ' + escHtml(genData.message || genData.id || 'done');
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.880",
|
|
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"
|