@gjczone/pi-swarm 0.1.6 → 0.3.0
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/dist/index.d.ts.map +1 -1
- package/dist/index.js +60 -5
- package/dist/index.js.map +1 -1
- package/dist/shared/controller.d.ts +5 -2
- package/dist/shared/controller.d.ts.map +1 -1
- package/dist/shared/controller.js +109 -43
- package/dist/shared/controller.js.map +1 -1
- package/dist/shared/render.d.ts +4 -4
- package/dist/shared/render.d.ts.map +1 -1
- package/dist/shared/render.js +7 -9
- package/dist/shared/render.js.map +1 -1
- package/dist/shared/spawner.d.ts +1 -1
- package/dist/shared/spawner.d.ts.map +1 -1
- package/dist/shared/spawner.js +232 -132
- package/dist/shared/spawner.js.map +1 -1
- package/dist/shared/types.d.ts +44 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/state/persistence.d.ts +21 -14
- package/dist/state/persistence.d.ts.map +1 -1
- package/dist/state/persistence.js +79 -28
- package/dist/state/persistence.js.map +1 -1
- package/dist/state/recovery.d.ts +2 -2
- package/dist/state/recovery.d.ts.map +1 -1
- package/dist/state/recovery.js +37 -22
- package/dist/state/recovery.js.map +1 -1
- package/dist/swarm/command.d.ts.map +1 -1
- package/dist/swarm/command.js.map +1 -1
- package/dist/swarm/mode.d.ts.map +1 -1
- package/dist/swarm/mode.js +9 -4
- package/dist/swarm/mode.js.map +1 -1
- package/dist/swarm/tool.d.ts.map +1 -1
- package/dist/swarm/tool.js +77 -5
- package/dist/swarm/tool.js.map +1 -1
- package/dist/team/command.d.ts +3 -2
- package/dist/team/command.d.ts.map +1 -1
- package/dist/team/command.js +24 -7
- package/dist/team/command.js.map +1 -1
- package/dist/team/mailbox.d.ts +3 -3
- package/dist/team/mailbox.d.ts.map +1 -1
- package/dist/team/mailbox.js +38 -17
- package/dist/team/mailbox.js.map +1 -1
- package/dist/team/supervisor.d.ts +31 -5
- package/dist/team/supervisor.d.ts.map +1 -1
- package/dist/team/supervisor.js +187 -16
- package/dist/team/supervisor.js.map +1 -1
- package/dist/team/task-graph.d.ts.map +1 -1
- package/dist/team/task-graph.js +4 -7
- package/dist/team/task-graph.js.map +1 -1
- package/dist/team/tool.d.ts +3 -3
- package/dist/team/tool.d.ts.map +1 -1
- package/dist/team/tool.js +81 -24
- package/dist/team/tool.js.map +1 -1
- package/dist/tui/permission-prompt.d.ts.map +1 -1
- package/dist/tui/permission-prompt.js.map +1 -1
- package/dist/tui/progress.d.ts +10 -0
- package/dist/tui/progress.d.ts.map +1 -1
- package/dist/tui/progress.js +50 -1
- package/dist/tui/progress.js.map +1 -1
- package/dist/tui/team-dashboard.d.ts +54 -0
- package/dist/tui/team-dashboard.d.ts.map +1 -0
- package/dist/tui/team-dashboard.js +240 -0
- package/dist/tui/team-dashboard.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,240 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tui/team-dashboard — SwarmTeam live phase progress dashboard.
|
|
3
|
+
*
|
|
4
|
+
* Renders a real-time dashboard above the input area when a SwarmTeam
|
|
5
|
+
* run is in progress. Shows phase statuses with braille animation for
|
|
6
|
+
* the active phase, mailbox message count, and elapsed time.
|
|
7
|
+
*
|
|
8
|
+
* Follows the same wiring pattern as AgentSwarmProgressComponent:
|
|
9
|
+
* supervisor emits snapshots -> tool converts -> pushes to widget.
|
|
10
|
+
*/
|
|
11
|
+
// ---------------------------------------------------------------------------
|
|
12
|
+
// Constants (shared braille with progress.ts for visual consistency)
|
|
13
|
+
// ---------------------------------------------------------------------------
|
|
14
|
+
const BRAILLE_BAR_MAX_WIDTH = 8;
|
|
15
|
+
const FRAME_INTERVAL_MS = 80;
|
|
16
|
+
const MAX_PHASES = 20;
|
|
17
|
+
const BRAILLE_LEVELS = [
|
|
18
|
+
"\u28C0",
|
|
19
|
+
"\u28C4",
|
|
20
|
+
"\u28E4",
|
|
21
|
+
"\u28E6",
|
|
22
|
+
"\u28F6",
|
|
23
|
+
"\u28F7",
|
|
24
|
+
"\u28FF",
|
|
25
|
+
];
|
|
26
|
+
const BRAILLE_EMPTY = BRAILLE_LEVELS[0];
|
|
27
|
+
const BRAILLE_FULL = BRAILLE_LEVELS[6];
|
|
28
|
+
// ---------------------------------------------------------------------------
|
|
29
|
+
// Snapshot conversion
|
|
30
|
+
// ---------------------------------------------------------------------------
|
|
31
|
+
/**
|
|
32
|
+
* Convert a TeamProgressSnapshot from the supervisor into the
|
|
33
|
+
* TeamDashboardState expected by TeamDashboardComponent.
|
|
34
|
+
*/
|
|
35
|
+
export function snapshotToDashboardState(snapshot) {
|
|
36
|
+
const now = Date.now();
|
|
37
|
+
return {
|
|
38
|
+
title: snapshot.title,
|
|
39
|
+
goal: snapshot.goal,
|
|
40
|
+
status: snapshot.status,
|
|
41
|
+
totalPhases: snapshot.totalPhases,
|
|
42
|
+
completedPhases: snapshot.completedPhases,
|
|
43
|
+
failedPhases: snapshot.failedPhases,
|
|
44
|
+
currentPhase: snapshot.currentPhase,
|
|
45
|
+
currentRole: snapshot.currentRole,
|
|
46
|
+
phases: snapshot.phases.map((p) => ({
|
|
47
|
+
name: p.name,
|
|
48
|
+
role: p.role,
|
|
49
|
+
status: p.status,
|
|
50
|
+
error: p.error,
|
|
51
|
+
phaseStartedAt: p.status === "running" ? now : 0,
|
|
52
|
+
})),
|
|
53
|
+
mailboxCount: snapshot.mailboxCount,
|
|
54
|
+
startedAt: snapshot.startedAt,
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
// ---------------------------------------------------------------------------
|
|
58
|
+
// Component
|
|
59
|
+
// ---------------------------------------------------------------------------
|
|
60
|
+
export class TeamDashboardComponent {
|
|
61
|
+
state_ = null;
|
|
62
|
+
animationFrame;
|
|
63
|
+
renderedWidth;
|
|
64
|
+
cachedLines;
|
|
65
|
+
constructor() {
|
|
66
|
+
this.startAnimation();
|
|
67
|
+
}
|
|
68
|
+
// -------------------------------------------------------------------
|
|
69
|
+
// Public API
|
|
70
|
+
// -------------------------------------------------------------------
|
|
71
|
+
update(state) {
|
|
72
|
+
this.state_ = state;
|
|
73
|
+
this.invalidate();
|
|
74
|
+
}
|
|
75
|
+
complete() {
|
|
76
|
+
if (this.state_) {
|
|
77
|
+
this.state_.phases.forEach((p) => {
|
|
78
|
+
if (p.status === "queued" || p.status === "running") {
|
|
79
|
+
p.status = "completed";
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
this.state_.status = "completed";
|
|
83
|
+
this.state_.completedPhases =
|
|
84
|
+
this.state_.totalPhases - this.state_.failedPhases;
|
|
85
|
+
this.state_.currentPhase = undefined;
|
|
86
|
+
}
|
|
87
|
+
this.invalidate();
|
|
88
|
+
}
|
|
89
|
+
dispose() {
|
|
90
|
+
if (this.animationFrame !== undefined) {
|
|
91
|
+
clearInterval(this.animationFrame);
|
|
92
|
+
this.animationFrame = undefined;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
// -------------------------------------------------------------------
|
|
96
|
+
// Component interface
|
|
97
|
+
// -------------------------------------------------------------------
|
|
98
|
+
invalidate() {
|
|
99
|
+
this.renderedWidth = undefined;
|
|
100
|
+
this.cachedLines = undefined;
|
|
101
|
+
}
|
|
102
|
+
render(width) {
|
|
103
|
+
const safeWidth = Math.max(10, width);
|
|
104
|
+
if (this.cachedLines && this.renderedWidth === safeWidth) {
|
|
105
|
+
return this.cachedLines;
|
|
106
|
+
}
|
|
107
|
+
if (!this.state_ || this.state_.phases.length === 0) {
|
|
108
|
+
this.cachedLines = [];
|
|
109
|
+
return this.cachedLines;
|
|
110
|
+
}
|
|
111
|
+
const state = this.state_;
|
|
112
|
+
const lines = [];
|
|
113
|
+
// Header
|
|
114
|
+
const header = buildHeader(state, safeWidth);
|
|
115
|
+
lines.push(header);
|
|
116
|
+
// Overall progress bar
|
|
117
|
+
const bar = buildProgressBar(state, safeWidth);
|
|
118
|
+
lines.push(bar);
|
|
119
|
+
// Phase rows
|
|
120
|
+
const maxPhases = Math.min(state.phases.length, MAX_PHASES);
|
|
121
|
+
for (let i = 0; i < maxPhases; i += 1) {
|
|
122
|
+
const phase = state.phases[i];
|
|
123
|
+
if (!phase)
|
|
124
|
+
continue;
|
|
125
|
+
const row = renderPhaseRow(phase, safeWidth - 4);
|
|
126
|
+
lines.push(` ${row}`);
|
|
127
|
+
}
|
|
128
|
+
// Separator
|
|
129
|
+
const sep = "\u2500".repeat(Math.max(0, safeWidth - 4));
|
|
130
|
+
lines.push(` ${sep}`);
|
|
131
|
+
// Footer
|
|
132
|
+
const footerLine = buildFooter(state);
|
|
133
|
+
lines.push(` ${footerLine}`);
|
|
134
|
+
// Bottom border
|
|
135
|
+
const bottom = bottomBorder(safeWidth);
|
|
136
|
+
lines.push(bottom);
|
|
137
|
+
this.cachedLines = lines;
|
|
138
|
+
this.renderedWidth = safeWidth;
|
|
139
|
+
return this.cachedLines;
|
|
140
|
+
}
|
|
141
|
+
// -------------------------------------------------------------------
|
|
142
|
+
// Animation
|
|
143
|
+
// -------------------------------------------------------------------
|
|
144
|
+
startAnimation() {
|
|
145
|
+
this.animationFrame = setInterval(() => {
|
|
146
|
+
this.invalidate();
|
|
147
|
+
}, FRAME_INTERVAL_MS);
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
// ---------------------------------------------------------------------------
|
|
151
|
+
// Rendering helpers
|
|
152
|
+
// ---------------------------------------------------------------------------
|
|
153
|
+
function buildHeader(state, _width) {
|
|
154
|
+
const titleLine = `Team: ${state.title}`;
|
|
155
|
+
const status = state.status;
|
|
156
|
+
const phaseInfo = state.currentPhase
|
|
157
|
+
? `Phase: ${state.completedPhases + 1}/${state.totalPhases} (${state.currentPhase})`
|
|
158
|
+
: `Phases: ${state.completedPhases}/${state.totalPhases}`;
|
|
159
|
+
return `${titleLine} | Status: ${status} | ${phaseInfo}`;
|
|
160
|
+
}
|
|
161
|
+
function buildProgressBar(state, width) {
|
|
162
|
+
const barWidth = Math.max(1, width - 4);
|
|
163
|
+
const total = state.totalPhases || 1;
|
|
164
|
+
const doneRatio = (state.completedPhases + state.failedPhases) / total;
|
|
165
|
+
const doneChars = Math.round(doneRatio * barWidth);
|
|
166
|
+
const remainingChars = barWidth - doneChars;
|
|
167
|
+
const done = "\u2501".repeat(doneChars);
|
|
168
|
+
const remaining = "\u2501".repeat(remainingChars);
|
|
169
|
+
return ` ${done}${remaining}`;
|
|
170
|
+
}
|
|
171
|
+
function renderPhaseRow(phase, width) {
|
|
172
|
+
const statusIcon = phaseStatusIcon(phase);
|
|
173
|
+
const phaseName = truncateText(phase.name, 14);
|
|
174
|
+
const statusLabel = phase.status;
|
|
175
|
+
const roleLabel = `(${phase.role})`;
|
|
176
|
+
// Layout: <icon> <phaseName> <status> <role>
|
|
177
|
+
const fixed = `${statusIcon} ${phaseName} ${statusLabel} ${roleLabel}`;
|
|
178
|
+
const fixedLen = visibleLen(fixed);
|
|
179
|
+
if (phase.status === "failed" && phase.error) {
|
|
180
|
+
const errorPart = ` — ${phase.error}`;
|
|
181
|
+
const avail = Math.max(0, width - fixedLen - visibleLen(errorPart));
|
|
182
|
+
return `${fixed}${errorPart}`.slice(0, width);
|
|
183
|
+
}
|
|
184
|
+
return fixed;
|
|
185
|
+
}
|
|
186
|
+
function phaseStatusIcon(phase) {
|
|
187
|
+
switch (phase.status) {
|
|
188
|
+
case "completed":
|
|
189
|
+
return "\u2713"; // checkmark
|
|
190
|
+
case "running":
|
|
191
|
+
return renderBrailleBar(phase);
|
|
192
|
+
case "failed":
|
|
193
|
+
return "\u2717"; // x mark
|
|
194
|
+
case "skipped":
|
|
195
|
+
return "\u2298"; // slashed circle
|
|
196
|
+
case "queued":
|
|
197
|
+
return "\u25CB"; // circle
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
function renderBrailleBar(phase) {
|
|
201
|
+
const elapsed = Date.now() - phase.phaseStartedAt;
|
|
202
|
+
const cycleMs = 800;
|
|
203
|
+
const progress = (elapsed % cycleMs) / cycleMs;
|
|
204
|
+
const maxWidth = BRAILLE_BAR_MAX_WIDTH;
|
|
205
|
+
const totalDots = maxWidth * 6;
|
|
206
|
+
const filledDots = Math.floor(progress * totalDots);
|
|
207
|
+
let result = "";
|
|
208
|
+
for (let i = 0; i < maxWidth; i += 1) {
|
|
209
|
+
const cellStart = i * 6;
|
|
210
|
+
const dotsInCell = Math.max(0, Math.min(6, filledDots - cellStart));
|
|
211
|
+
result += dotsInCell === 0 ? BRAILLE_EMPTY : BRAILLE_LEVELS[dotsInCell];
|
|
212
|
+
}
|
|
213
|
+
return result;
|
|
214
|
+
}
|
|
215
|
+
function buildFooter(state) {
|
|
216
|
+
const mailbox = `Mailbox: ${state.mailboxCount > 0 ? String(state.mailboxCount) : "0"} messages`;
|
|
217
|
+
const elapsed = formatElapsed(Date.now() - state.startedAt);
|
|
218
|
+
return `${mailbox} | Elapsed: ${elapsed}`;
|
|
219
|
+
}
|
|
220
|
+
function formatElapsed(ms) {
|
|
221
|
+
const totalSec = Math.floor(ms / 1000);
|
|
222
|
+
const m = Math.floor(totalSec / 60);
|
|
223
|
+
const s = totalSec % 60;
|
|
224
|
+
return `${m}m ${s}s`;
|
|
225
|
+
}
|
|
226
|
+
function bottomBorder(width) {
|
|
227
|
+
return `\u2514${"\u2500".repeat(Math.max(0, width - 2))}\u2518`;
|
|
228
|
+
}
|
|
229
|
+
// ---------------------------------------------------------------------------
|
|
230
|
+
// Text utilities
|
|
231
|
+
// ---------------------------------------------------------------------------
|
|
232
|
+
function visibleLen(text) {
|
|
233
|
+
return text.replace(/\x1b\[[0-9;]*m/g, "").length;
|
|
234
|
+
}
|
|
235
|
+
function truncateText(text, maxLen) {
|
|
236
|
+
if (text.length <= maxLen)
|
|
237
|
+
return text;
|
|
238
|
+
return text.slice(0, Math.max(0, maxLen - 1)) + "\u2026";
|
|
239
|
+
}
|
|
240
|
+
//# sourceMappingURL=team-dashboard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-dashboard.js","sourceRoot":"","sources":["../../src/tui/team-dashboard.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@gjczone/pi-swarm",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Agent Swarm & Team for pi-coding-agent. Single to 128 subagents: parallel swarm or collaborative team with mailbox. Live TUI, rate-limit retries, crash recovery. Ported from kimi-code, inspired by pi-crew.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.js",
|