@yemi33/minions 0.1.642 → 0.1.644
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 +8 -0
- package/dashboard/js/render-pipelines.js +4 -2
- package/dashboard/js/render-work-items.js +4 -0
- package/engine.js +11 -0
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -372,9 +372,11 @@ async function _abortPipeline(id, btn) {
|
|
|
372
372
|
try {
|
|
373
373
|
var res = await fetch('/api/pipelines/abort', { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ id: id }) });
|
|
374
374
|
if (res.ok) {
|
|
375
|
-
|
|
375
|
+
var d = await res.json().catch(function() { return {}; });
|
|
376
|
+
showToast('cmd-toast', 'Pipeline aborted — ' + (d.cancelledWorkItems || 0) + ' work items cancelled', true);
|
|
376
377
|
if (btn) { btn.textContent = '\u2713 Aborted'; btn.style.color = 'var(--red)'; }
|
|
377
|
-
|
|
378
|
+
refresh();
|
|
379
|
+
openPipelineDetail(id);
|
|
378
380
|
} else { var d = await res.json().catch(function() { return {}; }); alert('Abort failed: ' + (d.error || 'unknown')); if (btn) { btn.textContent = 'Abort'; btn.style.pointerEvents = ''; btn.style.opacity = ''; } }
|
|
379
381
|
} catch (e) { alert('Error: ' + e.message); if (btn) { btn.textContent = 'Abort'; btn.style.pointerEvents = ''; btn.style.opacity = ''; } }
|
|
380
382
|
}
|
|
@@ -451,6 +451,10 @@ function openWorkItemDetail(id) {
|
|
|
451
451
|
var pillStyle = 'display:inline-flex;align-items:center;gap:3px;padding:2px 8px;border-radius:10px;font-size:10px;cursor:pointer;background:var(--surface2);border:1px solid var(--border);color:var(--text)';
|
|
452
452
|
if (arts.outputLog) artPills += '<span onclick="viewAgentOutput(\'' + escHtml(arts.outputLog) + '\')" style="' + pillStyle + '">📄 Output Log</span> ';
|
|
453
453
|
if (arts.branch) artPills += '<span style="' + pillStyle + ';cursor:default">🌿 ' + escHtml(arts.branch) + '</span> ';
|
|
454
|
+
if (arts.plan) artPills += '<span onclick="planView(\'' + escHtml(arts.plan) + '\')" style="' + pillStyle + '">📋 Plan</span> ';
|
|
455
|
+
if (arts.prd) artPills += '<span onclick="planView(\'' + escHtml(arts.prd) + '\')" style="' + pillStyle + '">📄 PRD</span> ';
|
|
456
|
+
if (arts.sourcePlan) artPills += '<span onclick="planView(\'' + escHtml(arts.sourcePlan) + '\')" style="' + pillStyle + '">📋 Source Plan</span> ';
|
|
457
|
+
if (arts.notes && arts.notes.length > 0) arts.notes.forEach(function(n) { artPills += '<span onclick="closeModal();switchPage(\'inbox\')" style="' + pillStyle + '">📝 ' + escHtml(n.replace(/\.md$/, '').slice(0, 30)) + '</span> '; });
|
|
454
458
|
if (arts.skills && arts.skills.length > 0) arts.skills.forEach(function(s) { artPills += '<span onclick="openSkill(\'' + escHtml(s) + '\',\'minions\',\'\')" style="' + pillStyle + '">⚙ ' + escHtml(s) + '</span> '; });
|
|
455
459
|
if (artPills) html += field('Artifacts', '<div style="display:flex;flex-wrap:wrap;gap:4px">' + artPills + '</div>');
|
|
456
460
|
|
package/engine.js
CHANGED
|
@@ -791,6 +791,12 @@ async function spawnAgent(dispatchItem, config) {
|
|
|
791
791
|
try {
|
|
792
792
|
const artWiPath = resolveWorkItemPath(dispatchItem.meta);
|
|
793
793
|
if (artWiPath) {
|
|
794
|
+
// Collect inbox notes written by this agent today
|
|
795
|
+
const _artToday = shared.dateStamp();
|
|
796
|
+
const _artInboxDir = path.join(MINIONS_DIR, 'notes', 'inbox');
|
|
797
|
+
let _artNotes = [];
|
|
798
|
+
try { _artNotes = shared.safeReadDir(_artInboxDir).filter(f => f.startsWith(agentId + '-') && f.includes(_artToday)); } catch {}
|
|
799
|
+
|
|
794
800
|
mutateJsonFileLocked(artWiPath, data => {
|
|
795
801
|
if (!Array.isArray(data)) return data;
|
|
796
802
|
const wi = data.find(i => i.id === dispatchItem.meta.item.id);
|
|
@@ -800,6 +806,11 @@ async function spawnAgent(dispatchItem, config) {
|
|
|
800
806
|
if (dispatchItem.meta.branch) arts.branch = dispatchItem.meta.branch;
|
|
801
807
|
if (wi._pr) arts.pr = wi._pr;
|
|
802
808
|
if (wi._prUrl) arts.prUrl = wi._prUrl;
|
|
809
|
+
if (_artNotes.length > 0) arts.notes = _artNotes;
|
|
810
|
+
// Track plan/PRD artifacts from dispatch metadata
|
|
811
|
+
if (dispatchItem.meta.item?.planFile) arts.plan = dispatchItem.meta.item.planFile;
|
|
812
|
+
if (dispatchItem.meta.item?._prdFilename) arts.prd = dispatchItem.meta.item._prdFilename;
|
|
813
|
+
if (dispatchItem.meta.item?.sourcePlan) arts.sourcePlan = dispatchItem.meta.item.sourcePlan;
|
|
803
814
|
wi._artifacts = arts;
|
|
804
815
|
return data;
|
|
805
816
|
});
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@yemi33/minions",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.644",
|
|
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"
|