@gjczone/pi-swarm 0.7.0 → 0.7.2

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.
@@ -1,13 +1,17 @@
1
1
  /**
2
- * tui/progress — AgentSwarm live progress panel (minimal).
2
+ * tui/progress — AgentSwarm live progress panel.
3
3
  *
4
- * Grid layout with braille progress bars and scrolling model output.
5
- * - Multiple agents: grid cells with ID + braille bar + model text
6
- * - Single agent: compact status line with spinner + text
7
- * - No token/in/out display replaced by scrolling model output
4
+ * Vertical panel layout with fixed-width tool-call-based braille progress
5
+ * bars and inline activity text. Each agent renders as a single line:
6
+ * 001 [braille bar] read: src/lib.rs lines 42-99
7
+ * Bar width is fixed (5 cells) so tool labels align across agents.
8
8
  *
9
- * Architecture reference: AgentSwarm pattern.
9
+ * Progress is driven by actual tool calls / activity events (progressTick),
10
+ * not wall-clock time. An agent that makes more progress fills faster.
11
+ *
12
+ * For 5+ agents, switches to a 2-column compact grid (3-cell bars).
10
13
  */
14
+ import { truncateToWidth, visibleWidth } from "@earendil-works/pi-tui";
11
15
  // ---------------------------------------------------------------------------
12
16
  // Constants
13
17
  // ---------------------------------------------------------------------------
@@ -20,25 +24,17 @@ const BRAILLE_LEVELS = [
20
24
  "\u28F7",
21
25
  "\u28FF",
22
26
  ];
23
- const BRAILLE_EMPTY = "\u2800"; // truly empty braille cell (no dots)
24
- const BRAILLE_SPINNER = [
25
- "\u28BF",
26
- "\u28FB",
27
- "\u28FD",
28
- "\u28FE",
29
- "\u28F7",
30
- "\u28EF",
31
- "\u28DF",
32
- "\u287F",
33
- ];
34
- const FRAME_INTERVAL_MS = 80;
27
+ const BRAILLE_EMPTY = "\u28C0"; // baseline empty (bottom dots), so bar track is always visible
35
28
  const DEBOUNCE_MS = 75;
36
29
  const POLL_MS = 800;
37
30
  const MAX_VISIBLE_MEMBERS = 20;
38
- const CELL_GAP = " ";
39
- const BRAILLE_BAR_MIN_WIDTH = 2;
40
- const BRAILLE_BAR_MAX_WIDTH = 5;
41
31
  const ID_WIDTH = 3;
32
+ // Fixed-width braille bar — all agents share the same width so labels align.
33
+ // Vertical mode: 5 cells, grid mode: 3 cells.
34
+ const FIXED_BAR_CELLS = 5;
35
+ const GRID_BAR_CELLS = 3;
36
+ // Layout: agents shown vertically when count <= this
37
+ const VERTICAL_LAYOUT_MAX = 4;
42
38
  // ---------------------------------------------------------------------------
43
39
  // Snapshot conversion
44
40
  // ---------------------------------------------------------------------------
@@ -59,6 +55,7 @@ export function snapshotToProgressState(snapshot, title) {
59
55
  activity: m.activity,
60
56
  usage: m.usage,
61
57
  progressTick: m.progressTick,
58
+ startedAt: m.startedAt,
62
59
  })),
63
60
  totalUsage: snapshot.totalUsage,
64
61
  startedAt: snapshot.startedAt ?? Date.now(),
@@ -84,14 +81,11 @@ function mapMemberPhase(phase) {
84
81
  export class AgentSwarmProgressComponent {
85
82
  state_ = null;
86
83
  onRequestRender;
87
- animationFrame;
88
- frameIndex = 0;
89
84
  pollTimer;
90
85
  debounceTimer;
91
86
  constructor(onRequestRender) {
92
87
  this.onRequestRender = onRequestRender;
93
88
  this.startPolling();
94
- this.startAnimation();
95
89
  }
96
90
  // -------------------------------------------------------------------
97
91
  // Public API
@@ -134,42 +128,35 @@ export class AgentSwarmProgressComponent {
134
128
  return [];
135
129
  const state = this.state_;
136
130
  const lines = [];
137
- // Layout: header grid status line
131
+ // Header: Agent Swarm <title> ──────────
138
132
  lines.push(this.renderHeader(safeWidth, state));
139
133
  lines.push("");
140
- if (state.members.length === 1) {
141
- // Single agent: compact line, no grid
142
- const row = this.renderSingleAgent(state.members[0], safeWidth - 2);
143
- lines.push(row);
144
- }
145
- else {
146
- // Multiple agents: grid layout
147
- const gridLines = this.renderGrid(safeWidth - 2, state);
148
- lines.push(...gridLines);
149
- }
134
+ // Agent panels (vertical or compact grid)
135
+ const memberLines = this.renderAgentPanels(safeWidth - 2, state);
136
+ lines.push(...memberLines);
150
137
  lines.push("");
151
138
  // Bottom separator
152
139
  const sepWidth = safeWidth - 2;
153
- lines.push(truncateText(repeatStr("", sepWidth), sepWidth));
140
+ lines.push(truncateToWidth(repeatStr("\u2500", sepWidth), sepWidth));
141
+ // Status line: Working... N/M (P%) elapsed
154
142
  lines.push(this.renderStatusLine(safeWidth, state));
155
143
  return lines;
156
144
  }
157
145
  // -------------------------------------------------------------------
158
- // Kimi-code style header: ─ Agent Swarm ─ description ──────
146
+ // Header: ─ Agent Swarm ─ <desc> ──────────
159
147
  // -------------------------------------------------------------------
160
148
  renderHeader(width, state) {
161
149
  const mode = state.mailbox ? "Swarm Team" : "Agent Swarm";
162
150
  const desc = state.title ?? "";
163
151
  const mailboxInfo = state.mailboxCount && state.mailboxCount > 0
164
- ? ` Mailbox: ${state.mailboxCount}`
152
+ ? ` | Mailbox: ${state.mailboxCount}`
165
153
  : "";
166
- // Agent Swarm ─ <desc> ────── or ─ Swarm Team ─ <desc> ─ Mailbox: 3
167
- const prefix = `─ ${mode}`;
168
- const content = desc ? ` ─ ${desc}` : "";
154
+ const prefix = `\u2500 ${mode}`;
155
+ const content = desc ? ` \u2500 ${desc}` : "";
169
156
  const label = `${prefix}${content}${mailboxInfo}`;
170
- const suffixLen = Math.max(0, width - visibleLen(label) - 2);
171
- const suffix = suffixLen > 0 ? ` ─${repeatStr("", suffixLen)}` : "";
172
- return truncateText(`${label}${suffix}`, width);
157
+ const suffixLen = Math.max(0, width - visibleWidth(label) - 2);
158
+ const suffix = suffixLen > 0 ? ` \u2500${repeatStr("\u2500", suffixLen)}` : "";
159
+ return truncateToWidth(`${label}${suffix}`, width);
173
160
  }
174
161
  // -------------------------------------------------------------------
175
162
  // Status line
@@ -180,95 +167,155 @@ export class AgentSwarmProgressComponent {
180
167
  const pct = total > 0 ? Math.round((done / total) * 100) : 0;
181
168
  const elapsed = formatElapsed(Date.now() - state.startedAt);
182
169
  const label = state.active > 0 ? "Working..." : "Completed";
183
- return truncateText(`${label} ${done}/${total} (${pct}%) ${elapsed}`, width);
170
+ return truncateToWidth(`${label} ${done}/${total} (${pct}%) ${elapsed}`, width);
184
171
  }
185
172
  // -------------------------------------------------------------------
186
- // Single agent mode
173
+ // Agent panel layout selection
187
174
  // -------------------------------------------------------------------
188
- renderSingleAgent(member, width) {
189
- const spinner = member.phase === "working" || member.phase === "prompting"
190
- ? BRAILLE_SPINNER[this.frameIndex % BRAILLE_SPINNER.length]
191
- : member.phase === "completed"
192
- ? "\u2713"
193
- : member.phase === "failed"
194
- ? "\u2717"
195
- : "\u25CB";
196
- const item = member.item ?? `#${String(member.index).padStart(2, "0")}`;
197
- const itemTrunc = truncateText(item, Math.max(4, Math.floor(width * 0.4)));
198
- let suffix = "";
199
- const remaining = Math.max(0, width - visibleLen(`${spinner} ${itemTrunc}`) - 2);
200
- if (member.phase === "working" && member.activity && remaining > 4) {
201
- suffix = ` ${truncateText(member.activity, Math.min(remaining - 1, width - 10))}`;
175
+ /**
176
+ * Render all agents. Uses vertical panels for small counts
177
+ * and a compact 2-column grid for larger batches.
178
+ */
179
+ renderAgentPanels(width, state) {
180
+ const count = Math.min(state.members.length, MAX_VISIBLE_MEMBERS);
181
+ if (count <= 0)
182
+ return [];
183
+ if (count <= VERTICAL_LAYOUT_MAX) {
184
+ return this.renderVerticalPanels(width, state);
202
185
  }
203
- else if (member.phase === "completed") {
204
- suffix = " ok";
186
+ return this.renderCompactGrid(width, state);
187
+ }
188
+ // -------------------------------------------------------------------
189
+ // Vertical panel layout (1-4 agents)
190
+ //
191
+ // Each agent is a single line with live activity inline:
192
+ // 001 [▓▓▓▓▓░░░] read: src/lib.rs lines 42-99
193
+ // (blank line between agents)
194
+ // -------------------------------------------------------------------
195
+ renderVerticalPanels(width, state) {
196
+ const count = Math.min(state.members.length, MAX_VISIBLE_MEMBERS);
197
+ const lines = [];
198
+ for (let i = 0; i < count; i++) {
199
+ const member = state.members[i];
200
+ lines.push(this.renderAgentLine(member, width));
201
+ if (i < count - 1) {
202
+ lines.push(""); // blank line separator between agents
203
+ }
205
204
  }
206
- else if (member.phase === "failed" && member.error && remaining > 4) {
207
- suffix = ` ${truncateText(member.error, Math.min(remaining - 1, 30))}`;
205
+ if (state.members.length > MAX_VISIBLE_MEMBERS) {
206
+ lines.push(` ... ${state.members.length - MAX_VISIBLE_MEMBERS} more`);
208
207
  }
209
- // No braille bar for single agent — just spinner + item + scrolling text
210
- return truncateText(`${spinner} ${itemTrunc}${suffix}`, width);
208
+ return lines;
209
+ }
210
+ /**
211
+ * Render one agent as a single line with fixed-width progress bar.
212
+ *
213
+ * Format: `001 [braille bar] read: src/lib.rs lines 42-99`
214
+ * Bar is always FIXED_BAR_CELLS (5) wide so tool labels align across agents.
215
+ *
216
+ * Progress is driven by progressTick (actual tool calls / activity events),
217
+ * not wall-clock time. Each tick fills one level of the braille bar.
218
+ */
219
+ renderAgentLine(member, width) {
220
+ const id = String(member.index).padStart(ID_WIDTH, "0");
221
+ // Fixed bar width — ensures all agent labels align
222
+ const barCells = FIXED_BAR_CELLS;
223
+ // Label gets the remaining space after id + bar + fixed gaps
224
+ const labelWidth = Math.max(4, width - ID_WIDTH - barCells - 4);
225
+ const bar = this.renderBrailleBar(member, barCells);
226
+ const label = this.renderCellLabel(member, labelWidth);
227
+ return truncateToWidth(`${id} ${bar} ${label}`, width);
211
228
  }
212
229
  // -------------------------------------------------------------------
213
- // Grid layout (multiple agents)
230
+ // Compact grid layout (5+ agents)
231
+ //
232
+ // 2 columns, single-line cells:
233
+ // 001 [▓▓▓] task 002 [▓▓▓] task
234
+ // 003 [▓▓▓] task 004 [▓▓▓] task
214
235
  // -------------------------------------------------------------------
215
- renderGrid(width, state) {
236
+ renderCompactGrid(width, state) {
237
+ const cols = 2;
216
238
  const count = Math.min(state.members.length, MAX_VISIBLE_MEMBERS);
217
- if (count <= 0)
218
- return [];
219
- // Calculate grid dimensions
220
- const gapWidth = visibleLen(CELL_GAP);
221
- const minLabelWidth = 8;
222
- const estCellWidth = ID_WIDTH + BRAILLE_BAR_MIN_WIDTH + minLabelWidth;
223
- const columns = Math.max(1, Math.min(count, Math.floor((width + gapWidth) / (estCellWidth + gapWidth))));
224
- const rows = Math.ceil(count / columns);
225
- const actualCellWidth = Math.floor((width - gapWidth * (columns - 1)) / columns);
226
- // Bar gets what's left after ID + minimum label; cap to keep label readable
227
- const barCells = Math.max(BRAILLE_BAR_MIN_WIDTH, Math.min(BRAILLE_BAR_MAX_WIDTH, actualCellWidth - ID_WIDTH - minLabelWidth));
228
- const leftPad = Math.floor((width - (actualCellWidth * columns + gapWidth * (columns - 1))) / 2);
239
+ const gap = 3; // spaces between columns
240
+ const cellWidth = Math.floor((width - gap) / cols);
241
+ const rows = Math.ceil(count / cols);
229
242
  const lines = [];
230
243
  for (let row = 0; row < rows; row++) {
231
- let line = " ".repeat(Math.max(0, leftPad));
232
- for (let col = 0; col < columns; col++) {
233
- const idx = row * columns + col;
244
+ let line = "";
245
+ for (let col = 0; col < cols; col++) {
246
+ const idx = row * cols + col;
247
+ if (idx >= count)
248
+ break;
234
249
  const member = state.members[idx];
235
- if (!member)
236
- continue;
237
- const cell = this.renderCell(member, actualCellWidth, barCells);
250
+ const cw = col < cols - 1 ? cellWidth : width - line.length;
251
+ const cell = this.renderGridCell(member, cw);
238
252
  line += cell;
239
- if (col < columns - 1)
240
- line += CELL_GAP;
253
+ if (col < cols - 1) {
254
+ // Pad to fill the remaining cell width + gap
255
+ const padLen = Math.max(0, cellWidth - visibleWidth(cell) + gap);
256
+ line += " ".repeat(padLen);
257
+ }
241
258
  }
242
- lines.push(truncateText(line, width));
259
+ lines.push(truncateToWidth(line, width));
243
260
  }
244
- // Extra info line for truncated members
245
261
  if (state.members.length > MAX_VISIBLE_MEMBERS) {
246
262
  lines.push(` ... ${state.members.length - MAX_VISIBLE_MEMBERS} more`);
247
263
  }
248
264
  return lines;
249
265
  }
250
- renderCell(member, cellWidth, barCells) {
266
+ /**
267
+ * Compact single-line grid cell.
268
+ * Format: `001 [▓▓] label`
269
+ */
270
+ renderGridCell(member, width) {
251
271
  const id = String(member.index).padStart(ID_WIDTH, "0");
272
+ // Compact grid uses fewer bar cells
273
+ const barCells = GRID_BAR_CELLS;
252
274
  const bar = this.renderBrailleBar(member, barCells);
253
- const label = this.renderCellLabel(member, Math.max(1, cellWidth - ID_WIDTH - barCells - 3));
254
- return `${id} ${bar}${label ? " " + label : ""}`;
275
+ const labelWidth = Math.max(2, width - ID_WIDTH - barCells - 4);
276
+ const label = this.renderCellLabel(member, labelWidth);
277
+ return `${id} ${bar} ${label}`;
255
278
  }
279
+ // -------------------------------------------------------------------
280
+ // Braille progress bar
281
+ //
282
+ // Tool-call-based progress for working agents:
283
+ // - Each progressTick (tool call / activity event) fills one level.
284
+ // - Bar fills up as the agent works; capped at 85% so completed
285
+ // agents (full bar) are visually distinguishable from working ones.
286
+ // - Empty cells show the baseline character so the bar track is always visible.
287
+ //
288
+ // Completed agents: full bar
289
+ // Failed agents: half bar
290
+ // Queued/suspended: empty bar (baseline only)
291
+ // -------------------------------------------------------------------
256
292
  renderBrailleBar(member, width) {
257
293
  if (width <= 0)
258
294
  return "";
259
295
  const capacity = width * BRAILLE_LEVELS.length;
260
- const ticks = member.phase === "completed"
261
- ? capacity
262
- : member.phase === "working"
263
- ? Math.min(capacity, (member.progressTick ?? 0) + (this.frameIndex % 3))
264
- : 0;
296
+ let ticks;
297
+ if (member.phase === "completed") {
298
+ ticks = capacity;
299
+ }
300
+ else if (member.phase === "failed") {
301
+ ticks = Math.floor(capacity / 2);
302
+ }
303
+ else if (member.phase === "working" || member.phase === "prompting") {
304
+ // Fill based on actual tool-call progress.
305
+ // Each tool execution or model output event increments progressTick by 1.
306
+ // Cap at 85% so "almost done" is visually distinct from "completed".
307
+ ticks = Math.min(member.progressTick ?? 0, Math.floor(capacity * 0.85));
308
+ }
309
+ else {
310
+ ticks = 0;
311
+ }
265
312
  const fullBars = Math.floor(ticks / BRAILLE_LEVELS.length);
266
313
  const partial = ticks % BRAILLE_LEVELS.length;
267
314
  const partialChar = partial > 0 ? BRAILLE_LEVELS[partial - 1] : "";
268
315
  let bar = "";
269
316
  for (let i = 0; i < width; i++) {
270
317
  if (i < fullBars) {
271
- bar += BRAILLE_LEVELS[BRAILLE_LEVELS.length - 1]; // Full
318
+ bar += BRAILLE_LEVELS[BRAILLE_LEVELS.length - 1]; // Full cell
272
319
  }
273
320
  else if (i === fullBars && partialChar) {
274
321
  bar += partialChar;
@@ -279,20 +326,25 @@ export class AgentSwarmProgressComponent {
279
326
  }
280
327
  return bar;
281
328
  }
329
+ // -------------------------------------------------------------------
330
+ // Cell label rendering
331
+ // -------------------------------------------------------------------
282
332
  renderCellLabel(member, width) {
283
333
  if (width <= 0)
284
334
  return "";
285
- // Show latest activity (model output or tool call) for running agents
286
335
  if (member.phase === "working" || member.phase === "prompting") {
287
- const text = member.activity ?? member.item ?? "";
288
- return truncateText(text, width);
336
+ // Show tool: activity_text (scrolling model output / shell command)
337
+ const toolPart = member.currentTool ? `${member.currentTool}: ` : "";
338
+ const activityText = member.activity ?? member.item ?? "";
339
+ const text = toolPart + activityText;
340
+ return truncateToWidth(text, width);
289
341
  }
290
342
  if (member.phase === "completed")
291
- return truncateText("ok", width);
343
+ return truncateToWidth("ok", width);
292
344
  if (member.phase === "failed" && member.error)
293
- return truncateText(member.error, Math.min(width, 20));
294
- if (member.phase === "queued")
295
- return truncateText(member.item ?? "...", width);
345
+ return truncateToWidth(member.error, Math.min(width, 20));
346
+ if (member.phase === "queued" || member.phase === "suspended")
347
+ return truncateToWidth(member.item ?? "...", width);
296
348
  return "";
297
349
  }
298
350
  // -------------------------------------------------------------------
@@ -316,19 +368,7 @@ export class AgentSwarmProgressComponent {
316
368
  this.startPolling();
317
369
  }, POLL_MS);
318
370
  }
319
- startAnimation() {
320
- this.animationFrame = setInterval(() => {
321
- this.frameIndex = (this.frameIndex + 1) % BRAILLE_SPINNER.length;
322
- const hasActive = this.state_?.active ?? 0 > 0;
323
- if (hasActive)
324
- this.onRequestRender?.();
325
- }, FRAME_INTERVAL_MS);
326
- }
327
371
  stopTimers() {
328
- if (this.animationFrame !== undefined) {
329
- clearInterval(this.animationFrame);
330
- this.animationFrame = undefined;
331
- }
332
372
  if (this.debounceTimer !== undefined) {
333
373
  clearTimeout(this.debounceTimer);
334
374
  this.debounceTimer = undefined;
@@ -359,16 +399,4 @@ function formatElapsed(ms) {
359
399
  const h = Math.floor(m / 60);
360
400
  return `${h}h ${m % 60}m ${s}s`;
361
401
  }
362
- function visibleLen(text) {
363
- return text.replace(/\x1b\[[0-9;]*m/g, "").length;
364
- }
365
- function truncateText(text, maxLen) {
366
- if (maxLen <= 0)
367
- return "";
368
- if (text.length <= maxLen)
369
- return text;
370
- if (maxLen <= 1)
371
- return text.slice(0, 1);
372
- return text.slice(0, maxLen - 1) + "\u2026";
373
- }
374
402
  //# sourceMappingURL=progress.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/tui/progress.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"progress.js","sourceRoot":"","sources":["../../src/tui/progress.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-markers.d.ts","sourceRoot":"","sources":["../../src/tui/swarm-markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAMxD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAMnE,qBAAa,wBAAyB,YAAW,SAAS;IAI5C,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHlC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,WAAW,CAAuB;gBAEb,KAAK,EAAE,oBAAoB;IAExD,UAAU,IAAI,IAAI;IAKlB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAehC"}
1
+ {"version":3,"file":"swarm-markers.d.ts","sourceRoot":"","sources":["../../src/tui/swarm-markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAOxD,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,UAAU,GAAG,OAAO,CAAC;AAMnE,qBAAa,wBAAyB,YAAW,SAAS;IAI5C,OAAO,CAAC,QAAQ,CAAC,KAAK;IAHlC,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,WAAW,CAAuB;gBAEb,KAAK,EAAE,oBAAoB;IAExD,UAAU,IAAI,IAAI;IAKlB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE;CAehC"}
@@ -7,6 +7,7 @@
7
7
  *
8
8
  * Architecture reference: AgentSwarm pattern.
9
9
  */
10
+ import { truncateToWidth } from "@earendil-works/pi-tui";
10
11
  // ---------------------------------------------------------------------------
11
12
  // Component
12
13
  // ---------------------------------------------------------------------------
@@ -48,14 +49,4 @@ function swarmMarkerLabel(state) {
48
49
  return "Swarm ended";
49
50
  }
50
51
  }
51
- /**
52
- * Truncate a string to fit within a given display width.
53
- * Simple implementation — the real pi-tui provides `truncateToWidth`
54
- * which handles wide characters and ANSI escapes.
55
- */
56
- function truncateToWidth(text, maxWidth) {
57
- if (text.length <= maxWidth)
58
- return text;
59
- return text.slice(0, maxWidth - 1) + "\u2026"; // ellipsis
60
- }
61
52
  //# sourceMappingURL=swarm-markers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-markers.js","sourceRoot":"","sources":["../../src/tui/swarm-markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAUH,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,OAAO,wBAAwB;IAIN;IAHrB,aAAa,CAAqB;IAClC,WAAW,CAAuB;IAE1C,YAA6B,KAA2B;QAA3B,UAAK,GAAL,KAAK,CAAsB;IAAG,CAAC;IAE5D,UAAU;QACR,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACrC,IAAI,SAAS,IAAI,CAAC;YAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEhD,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,gBAAgB,CAAC,KAA2B;IACnD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,iBAAiB,CAAC;QAC3B,KAAK,UAAU;YACb,OAAO,mBAAmB,CAAC;QAC7B,KAAK,OAAO;YACV,OAAO,aAAa,CAAC;IACzB,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,IAAY,EAAE,QAAgB;IACrD,IAAI,IAAI,CAAC,MAAM,IAAI,QAAQ;QAAE,OAAO,IAAI,CAAC;IACzC,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,QAAQ,GAAG,CAAC,CAAC,GAAG,QAAQ,CAAC,CAAC,WAAW;AAC5D,CAAC"}
1
+ {"version":3,"file":"swarm-markers.js","sourceRoot":"","sources":["../../src/tui/swarm-markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAQzD,8EAA8E;AAC9E,YAAY;AACZ,8EAA8E;AAE9E,MAAM,OAAO,wBAAwB;IAIN;IAHrB,aAAa,CAAqB;IAClC,WAAW,CAAuB;IAE1C,YAA6B,KAA2B;QAA3B,UAAK,GAAL,KAAK,CAAsB;IAAG,CAAC;IAE5D,UAAU;QACR,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,IAAI,CAAC,WAAW,GAAG,SAAS,CAAC;IAC/B,CAAC;IAED,MAAM,CAAC,KAAa;QAClB,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;QACrC,IAAI,SAAS,IAAI,CAAC;YAAE,OAAO,CAAC,EAAE,CAAC,CAAC;QAEhC,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,aAAa,KAAK,SAAS,EAAE,CAAC;YACzD,OAAO,IAAI,CAAC,WAAW,CAAC;QAC1B,CAAC;QAED,MAAM,MAAM,GAAG,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QAEhD,IAAI,CAAC,WAAW,GAAG,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;QAC9B,IAAI,CAAC,aAAa,GAAG,SAAS,CAAC;QAC/B,OAAO,IAAI,CAAC,WAAW,CAAC;IAC1B,CAAC;CACF;AAED,8EAA8E;AAC9E,UAAU;AACV,8EAA8E;AAE9E,SAAS,gBAAgB,CAAC,KAA2B;IACnD,QAAQ,KAAK,EAAE,CAAC;QACd,KAAK,QAAQ;YACX,OAAO,iBAAiB,CAAC;QAC3B,KAAK,UAAU;YACb,OAAO,mBAAmB,CAAC;QAC7B,KAAK,OAAO;YACV,OAAO,aAAa,CAAC;IACzB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gjczone/pi-swarm",
3
- "version": "0.7.0",
3
+ "version": "0.7.2",
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",