@gjczone/pi-swarm 0.2.0 → 0.3.1
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/README.md +5 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/shared/controller.d.ts.map +1 -1
- package/dist/shared/controller.js +11 -16
- package/dist/shared/controller.js.map +1 -1
- package/dist/shared/render.d.ts +2 -2
- package/dist/shared/render.d.ts.map +1 -1
- package/dist/shared/render.js +4 -6
- package/dist/shared/render.js.map +1 -1
- package/dist/shared/spawner.js +3 -8
- package/dist/shared/spawner.js.map +1 -1
- package/dist/shared/types.d.ts +23 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/state/persistence.d.ts +15 -15
- package/dist/state/persistence.d.ts.map +1 -1
- package/dist/state/persistence.js +32 -31
- 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 +19 -18
- 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 +81 -7
- package/dist/swarm/tool.js.map +1 -1
- package/dist/team/command.d.ts.map +1 -1
- package/dist/team/command.js.map +1 -1
- package/dist/team/mailbox.d.ts +2 -2
- package/dist/team/mailbox.d.ts.map +1 -1
- package/dist/team/mailbox.js +8 -8
- package/dist/team/mailbox.js.map +1 -1
- package/dist/team/supervisor.d.ts +14 -3
- package/dist/team/supervisor.d.ts.map +1 -1
- package/dist/team/supervisor.js +64 -3
- 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 +1 -1
- package/dist/team/tool.d.ts.map +1 -1
- package/dist/team/tool.js +141 -13
- 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 +12 -1
- package/dist/tui/progress.d.ts.map +1 -1
- package/dist/tui/progress.js +20 -2
- package/dist/tui/progress.js.map +1 -1
- package/dist/tui/team-dashboard.d.ts +65 -0
- package/dist/tui/team-dashboard.d.ts.map +1 -0
- package/dist/tui/team-dashboard.js +256 -0
- package/dist/tui/team-dashboard.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,256 @@
|
|
|
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
|
+
onRequestRender;
|
|
66
|
+
/**
|
|
67
|
+
* @param onRequestRender Optional callback to request a TUI re-render.
|
|
68
|
+
* When provided, called on every animation tick so the braille bars
|
|
69
|
+
* animate. Without it the component still renders correctly but the
|
|
70
|
+
* animation won't be visible to the user.
|
|
71
|
+
*
|
|
72
|
+
* 业务说明:TUI 框架不会自动轮询组件;需要通过 requestRender() 主动
|
|
73
|
+
* 触发重绘才能使 braille 进度条动起来。此回调由 setWidget 工厂函数
|
|
74
|
+
* 在捕获 tui 引用后传入。
|
|
75
|
+
*/
|
|
76
|
+
constructor(onRequestRender) {
|
|
77
|
+
this.onRequestRender = onRequestRender;
|
|
78
|
+
this.startAnimation();
|
|
79
|
+
}
|
|
80
|
+
// -------------------------------------------------------------------
|
|
81
|
+
// Public API
|
|
82
|
+
// -------------------------------------------------------------------
|
|
83
|
+
update(state) {
|
|
84
|
+
this.state_ = state;
|
|
85
|
+
this.invalidate();
|
|
86
|
+
}
|
|
87
|
+
complete() {
|
|
88
|
+
if (this.state_) {
|
|
89
|
+
this.state_.phases.forEach((p) => {
|
|
90
|
+
if (p.status === "queued" || p.status === "running") {
|
|
91
|
+
p.status = "completed";
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
this.state_.status = "completed";
|
|
95
|
+
this.state_.completedPhases =
|
|
96
|
+
this.state_.totalPhases - this.state_.failedPhases;
|
|
97
|
+
this.state_.currentPhase = undefined;
|
|
98
|
+
}
|
|
99
|
+
this.invalidate();
|
|
100
|
+
}
|
|
101
|
+
dispose() {
|
|
102
|
+
if (this.animationFrame !== undefined) {
|
|
103
|
+
clearInterval(this.animationFrame);
|
|
104
|
+
this.animationFrame = undefined;
|
|
105
|
+
}
|
|
106
|
+
// 断开与 TUI 框架的连接,防止内存泄漏
|
|
107
|
+
this.onRequestRender = undefined;
|
|
108
|
+
}
|
|
109
|
+
// -------------------------------------------------------------------
|
|
110
|
+
// Component interface
|
|
111
|
+
// -------------------------------------------------------------------
|
|
112
|
+
invalidate() {
|
|
113
|
+
this.renderedWidth = undefined;
|
|
114
|
+
this.cachedLines = undefined;
|
|
115
|
+
}
|
|
116
|
+
render(width) {
|
|
117
|
+
const safeWidth = Math.max(10, width);
|
|
118
|
+
if (this.cachedLines && this.renderedWidth === safeWidth) {
|
|
119
|
+
return this.cachedLines;
|
|
120
|
+
}
|
|
121
|
+
if (!this.state_ || this.state_.phases.length === 0) {
|
|
122
|
+
this.cachedLines = [];
|
|
123
|
+
return this.cachedLines;
|
|
124
|
+
}
|
|
125
|
+
const state = this.state_;
|
|
126
|
+
const lines = [];
|
|
127
|
+
// Header
|
|
128
|
+
const header = buildHeader(state, safeWidth);
|
|
129
|
+
lines.push(header);
|
|
130
|
+
// Overall progress bar
|
|
131
|
+
const bar = buildProgressBar(state, safeWidth);
|
|
132
|
+
lines.push(bar);
|
|
133
|
+
// Phase rows
|
|
134
|
+
const maxPhases = Math.min(state.phases.length, MAX_PHASES);
|
|
135
|
+
for (let i = 0; i < maxPhases; i += 1) {
|
|
136
|
+
const phase = state.phases[i];
|
|
137
|
+
if (!phase)
|
|
138
|
+
continue;
|
|
139
|
+
const row = renderPhaseRow(phase, safeWidth - 4);
|
|
140
|
+
lines.push(` ${row}`);
|
|
141
|
+
}
|
|
142
|
+
// Separator
|
|
143
|
+
const sep = "\u2500".repeat(Math.max(0, safeWidth - 4));
|
|
144
|
+
lines.push(` ${sep}`);
|
|
145
|
+
// Footer
|
|
146
|
+
const footerLine = buildFooter(state);
|
|
147
|
+
lines.push(` ${footerLine}`);
|
|
148
|
+
// Bottom border
|
|
149
|
+
const bottom = bottomBorder(safeWidth);
|
|
150
|
+
lines.push(bottom);
|
|
151
|
+
this.cachedLines = lines;
|
|
152
|
+
this.renderedWidth = safeWidth;
|
|
153
|
+
return this.cachedLines;
|
|
154
|
+
}
|
|
155
|
+
// -------------------------------------------------------------------
|
|
156
|
+
// Animation
|
|
157
|
+
// -------------------------------------------------------------------
|
|
158
|
+
startAnimation() {
|
|
159
|
+
this.animationFrame = setInterval(() => {
|
|
160
|
+
this.invalidate();
|
|
161
|
+
// 通知 TUI 框架重绘,使 braille 动画可见
|
|
162
|
+
this.onRequestRender?.();
|
|
163
|
+
}, FRAME_INTERVAL_MS);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// ---------------------------------------------------------------------------
|
|
167
|
+
// Rendering helpers
|
|
168
|
+
// ---------------------------------------------------------------------------
|
|
169
|
+
function buildHeader(state, _width) {
|
|
170
|
+
const titleLine = `Team: ${state.title}`;
|
|
171
|
+
const status = state.status;
|
|
172
|
+
const phaseInfo = state.currentPhase
|
|
173
|
+
? `Phase: ${state.completedPhases + 1}/${state.totalPhases} (${state.currentPhase})`
|
|
174
|
+
: `Phases: ${state.completedPhases}/${state.totalPhases}`;
|
|
175
|
+
return `${titleLine} | Status: ${status} | ${phaseInfo}`;
|
|
176
|
+
}
|
|
177
|
+
function buildProgressBar(state, width) {
|
|
178
|
+
const barWidth = Math.max(1, width - 4);
|
|
179
|
+
const total = state.totalPhases || 1;
|
|
180
|
+
const doneRatio = (state.completedPhases + state.failedPhases) / total;
|
|
181
|
+
const doneChars = Math.round(doneRatio * barWidth);
|
|
182
|
+
const remainingChars = barWidth - doneChars;
|
|
183
|
+
const done = "\u2501".repeat(doneChars);
|
|
184
|
+
const remaining = "\u2501".repeat(remainingChars);
|
|
185
|
+
return ` ${done}${remaining}`;
|
|
186
|
+
}
|
|
187
|
+
function renderPhaseRow(phase, width) {
|
|
188
|
+
const statusIcon = phaseStatusIcon(phase);
|
|
189
|
+
const phaseName = truncateText(phase.name, 14);
|
|
190
|
+
const statusLabel = phase.status;
|
|
191
|
+
const roleLabel = `(${phase.role})`;
|
|
192
|
+
// Layout: <icon> <phaseName> <status> <role>
|
|
193
|
+
const fixed = `${statusIcon} ${phaseName} ${statusLabel} ${roleLabel}`;
|
|
194
|
+
const fixedLen = visibleLen(fixed);
|
|
195
|
+
if (phase.status === "failed" && phase.error) {
|
|
196
|
+
const errorPart = ` — ${phase.error}`;
|
|
197
|
+
const avail = Math.max(0, width - fixedLen - visibleLen(errorPart));
|
|
198
|
+
return `${fixed}${errorPart}`.slice(0, width);
|
|
199
|
+
}
|
|
200
|
+
return fixed;
|
|
201
|
+
}
|
|
202
|
+
function phaseStatusIcon(phase) {
|
|
203
|
+
switch (phase.status) {
|
|
204
|
+
case "completed":
|
|
205
|
+
return "\u2713"; // checkmark
|
|
206
|
+
case "running":
|
|
207
|
+
return renderBrailleBar(phase);
|
|
208
|
+
case "failed":
|
|
209
|
+
return "\u2717"; // x mark
|
|
210
|
+
case "skipped":
|
|
211
|
+
return "\u2298"; // slashed circle
|
|
212
|
+
case "queued":
|
|
213
|
+
return "\u25CB"; // circle
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
function renderBrailleBar(phase) {
|
|
217
|
+
const elapsed = Date.now() - phase.phaseStartedAt;
|
|
218
|
+
const cycleMs = 800;
|
|
219
|
+
const progress = (elapsed % cycleMs) / cycleMs;
|
|
220
|
+
const maxWidth = BRAILLE_BAR_MAX_WIDTH;
|
|
221
|
+
const totalDots = maxWidth * 6;
|
|
222
|
+
const filledDots = Math.floor(progress * totalDots);
|
|
223
|
+
let result = "";
|
|
224
|
+
for (let i = 0; i < maxWidth; i += 1) {
|
|
225
|
+
const cellStart = i * 6;
|
|
226
|
+
const dotsInCell = Math.max(0, Math.min(6, filledDots - cellStart));
|
|
227
|
+
result += dotsInCell === 0 ? BRAILLE_EMPTY : BRAILLE_LEVELS[dotsInCell];
|
|
228
|
+
}
|
|
229
|
+
return result;
|
|
230
|
+
}
|
|
231
|
+
function buildFooter(state) {
|
|
232
|
+
const mailbox = `Mailbox: ${state.mailboxCount > 0 ? String(state.mailboxCount) : "0"} messages`;
|
|
233
|
+
const elapsed = formatElapsed(Date.now() - state.startedAt);
|
|
234
|
+
return `${mailbox} | Elapsed: ${elapsed}`;
|
|
235
|
+
}
|
|
236
|
+
function formatElapsed(ms) {
|
|
237
|
+
const totalSec = Math.floor(ms / 1000);
|
|
238
|
+
const m = Math.floor(totalSec / 60);
|
|
239
|
+
const s = totalSec % 60;
|
|
240
|
+
return `${m}m ${s}s`;
|
|
241
|
+
}
|
|
242
|
+
function bottomBorder(width) {
|
|
243
|
+
return `\u2514${"\u2500".repeat(Math.max(0, width - 2))}\u2518`;
|
|
244
|
+
}
|
|
245
|
+
// ---------------------------------------------------------------------------
|
|
246
|
+
// Text utilities
|
|
247
|
+
// ---------------------------------------------------------------------------
|
|
248
|
+
function visibleLen(text) {
|
|
249
|
+
return text.replace(/\x1b\[[0-9;]*m/g, "").length;
|
|
250
|
+
}
|
|
251
|
+
function truncateText(text, maxLen) {
|
|
252
|
+
if (text.length <= maxLen)
|
|
253
|
+
return text;
|
|
254
|
+
return text.slice(0, Math.max(0, maxLen - 1)) + "\u2026";
|
|
255
|
+
}
|
|
256
|
+
//# 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.1",
|
|
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",
|