@copilot-swarm/core 0.0.34 → 0.0.36

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.
Files changed (63) hide show
  1. package/dist/brainstorm-engine.js +1 -1
  2. package/dist/brainstorm-engine.js.map +1 -1
  3. package/dist/central-store.d.ts +44 -0
  4. package/dist/central-store.d.ts.map +1 -0
  5. package/dist/central-store.js +200 -0
  6. package/dist/central-store.js.map +1 -0
  7. package/dist/checkpoint.d.ts.map +1 -1
  8. package/dist/checkpoint.js +5 -0
  9. package/dist/checkpoint.js.map +1 -1
  10. package/dist/checkpoint.test.js +1 -0
  11. package/dist/checkpoint.test.js.map +1 -1
  12. package/dist/config.d.ts +3 -1
  13. package/dist/config.d.ts.map +1 -1
  14. package/dist/config.js +30 -4
  15. package/dist/config.js.map +1 -1
  16. package/dist/demo.d.ts +7 -0
  17. package/dist/demo.d.ts.map +1 -0
  18. package/dist/demo.js +587 -0
  19. package/dist/demo.js.map +1 -0
  20. package/dist/digest.d.ts +10 -0
  21. package/dist/digest.d.ts.map +1 -0
  22. package/dist/digest.js +127 -0
  23. package/dist/digest.js.map +1 -0
  24. package/dist/finish.d.ts.map +1 -1
  25. package/dist/finish.js +4 -0
  26. package/dist/finish.js.map +1 -1
  27. package/dist/index.js +50 -0
  28. package/dist/index.js.map +1 -1
  29. package/dist/messages.d.ts +5 -0
  30. package/dist/messages.d.ts.map +1 -1
  31. package/dist/messages.js +7 -0
  32. package/dist/messages.js.map +1 -1
  33. package/dist/orchestrator.d.ts.map +1 -1
  34. package/dist/orchestrator.js +2 -0
  35. package/dist/orchestrator.js.map +1 -1
  36. package/dist/paths.d.ts +2 -0
  37. package/dist/paths.d.ts.map +1 -1
  38. package/dist/paths.js +4 -0
  39. package/dist/paths.js.map +1 -1
  40. package/dist/pipeline-engine.d.ts.map +1 -1
  41. package/dist/pipeline-engine.js +14 -3
  42. package/dist/pipeline-engine.js.map +1 -1
  43. package/dist/planning-engine.js +3 -3
  44. package/dist/planning-engine.js.map +1 -1
  45. package/dist/progress-tracker.d.ts +5 -0
  46. package/dist/progress-tracker.d.ts.map +1 -1
  47. package/dist/progress-tracker.js +11 -1
  48. package/dist/progress-tracker.js.map +1 -1
  49. package/dist/session.d.ts +7 -1
  50. package/dist/session.d.ts.map +1 -1
  51. package/dist/session.js +40 -0
  52. package/dist/session.js.map +1 -1
  53. package/dist/stats.d.ts +24 -0
  54. package/dist/stats.d.ts.map +1 -0
  55. package/dist/stats.js +85 -0
  56. package/dist/stats.js.map +1 -0
  57. package/dist/task-engine.js +1 -1
  58. package/dist/task-engine.js.map +1 -1
  59. package/dist/tui-renderer.d.ts +8 -1
  60. package/dist/tui-renderer.d.ts.map +1 -1
  61. package/dist/tui-renderer.js +140 -16
  62. package/dist/tui-renderer.js.map +1 -1
  63. package/package.json +1 -1
package/dist/stats.js ADDED
@@ -0,0 +1,85 @@
1
+ import * as fs from "node:fs/promises";
2
+ import { statsFilePath } from "./paths.js";
3
+ function emptyStats() {
4
+ return { agents: {}, totalRuns: 0, lastUpdated: new Date().toISOString() };
5
+ }
6
+ export async function loadStats(config) {
7
+ try {
8
+ const content = await fs.readFile(statsFilePath(config), "utf-8");
9
+ return JSON.parse(content);
10
+ }
11
+ catch {
12
+ return emptyStats();
13
+ }
14
+ }
15
+ export async function saveStats(config, stats) {
16
+ const filePath = statsFilePath(config);
17
+ const dir = filePath.substring(0, filePath.lastIndexOf("/"));
18
+ await fs.mkdir(dir, { recursive: true });
19
+ await fs.writeFile(filePath, JSON.stringify(stats, null, 2));
20
+ }
21
+ /** Record a single agent invocation. */
22
+ export async function recordAgentInvocation(config, agentLabel, model, elapsedMs, inputTokens, outputTokens) {
23
+ const stats = await loadStats(config);
24
+ if (!stats.agents[agentLabel]) {
25
+ stats.agents[agentLabel] = {
26
+ invocations: 0,
27
+ totalElapsedMs: 0,
28
+ totalInputTokens: 0,
29
+ totalOutputTokens: 0,
30
+ models: {},
31
+ };
32
+ }
33
+ const agent = stats.agents[agentLabel];
34
+ agent.invocations += 1;
35
+ agent.totalElapsedMs += elapsedMs;
36
+ agent.totalInputTokens += inputTokens ?? 0;
37
+ agent.totalOutputTokens += outputTokens ?? 0;
38
+ agent.models[model] = (agent.models[model] ?? 0) + 1;
39
+ stats.lastUpdated = new Date().toISOString();
40
+ await saveStats(config, stats);
41
+ }
42
+ /** Increment the total runs counter. */
43
+ export async function recordRunStart(config) {
44
+ const stats = await loadStats(config);
45
+ stats.totalRuns += 1;
46
+ stats.lastUpdated = new Date().toISOString();
47
+ await saveStats(config, stats);
48
+ }
49
+ /** Format stats for CLI display. */
50
+ export function formatStats(stats) {
51
+ const lines = [];
52
+ lines.push("📊 Copilot Swarm Stats\n");
53
+ lines.push(`Total runs: ${stats.totalRuns}`);
54
+ lines.push(`Last updated: ${stats.lastUpdated}\n`);
55
+ const agents = Object.entries(stats.agents);
56
+ if (agents.length === 0) {
57
+ lines.push("No agent invocations recorded yet.");
58
+ return lines.join("\n");
59
+ }
60
+ // Sort by invocation count descending
61
+ agents.sort((a, b) => b[1].invocations - a[1].invocations);
62
+ const nameW = Math.max(8, ...agents.map(([n]) => n.length));
63
+ const header = ` ${"Agent".padEnd(nameW)} ${"Calls".padStart(6)} ${"Total Time".padStart(11)} ${"Avg Time".padStart(9)} ${"Tokens In".padStart(10)} ${"Tokens Out".padStart(11)} Models`;
64
+ lines.push(header);
65
+ lines.push(` ${"─".repeat(nameW)} ${"─".repeat(6)} ${"─".repeat(11)} ${"─".repeat(9)} ${"─".repeat(10)} ${"─".repeat(11)} ${"─".repeat(20)}`);
66
+ for (const [name, a] of agents) {
67
+ const avgMs = a.invocations > 0 ? Math.round(a.totalElapsedMs / a.invocations) : 0;
68
+ const models = Object.entries(a.models)
69
+ .map(([m, c]) => `${m}(${c})`)
70
+ .join(", ");
71
+ const tokIn = a.totalInputTokens > 0 ? String(a.totalInputTokens) : "—";
72
+ const tokOut = a.totalOutputTokens > 0 ? String(a.totalOutputTokens) : "—";
73
+ lines.push(` ${name.padEnd(nameW)} ${String(a.invocations).padStart(6)} ${fmtMs(a.totalElapsedMs).padStart(11)} ${fmtMs(avgMs).padStart(9)} ${tokIn.padStart(10)} ${tokOut.padStart(11)} ${models}`);
74
+ }
75
+ return lines.join("\n");
76
+ }
77
+ function fmtMs(ms) {
78
+ const sec = Math.floor(ms / 1000);
79
+ if (sec < 60)
80
+ return `${sec}s`;
81
+ const m = Math.floor(sec / 60);
82
+ const s = sec % 60;
83
+ return `${m}m ${String(s).padStart(2, "0")}s`;
84
+ }
85
+ //# sourceMappingURL=stats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stats.js","sourceRoot":"","sources":["../src/stats.ts"],"names":[],"mappings":"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"}
@@ -132,7 +132,7 @@ export class TaskEngine {
132
132
  return response;
133
133
  }
134
134
  finally {
135
- await session.destroy();
135
+ await this.sessions.destroySession(session);
136
136
  }
137
137
  }
138
138
  }
@@ -1 +1 @@
1
- {"version":3,"file":"task-engine.js","sourceRoot":"","sources":["../src/task-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"task-engine.js","sourceRoot":"","sources":["../src/task-engine.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,8 @@ export declare class TuiRenderer {
6
6
  private cleanedUp;
7
7
  private prevLines;
8
8
  private readonly onExit;
9
+ private selectedStream;
10
+ private readonly onKeypress;
9
11
  constructor(tracker: ProgressTracker);
10
12
  start(): void;
11
13
  stop(): void;
@@ -14,15 +16,20 @@ export declare class TuiRenderer {
14
16
  /** Re-enter TUI after a pause. */
15
17
  resume(): void;
16
18
  private cleanup;
19
+ private startKeyListener;
20
+ private stopKeyListener;
21
+ private handleKey;
17
22
  private render;
18
23
  /** Truncate to terminal column width, stripping ANSI for length calculation. */
19
24
  private truncCols;
20
25
  private streamIcon;
21
26
  private fmtElapsed;
22
27
  private trunc;
28
+ /** Wrap text into lines that fit within maxWidth. */
29
+ private wrapText;
23
30
  /** Remove leading emoji + whitespace for cleaner log display. */
24
31
  private clean;
25
- /** Approximate visible length (ignores ANSI escape sequences). */
32
+ /** Approximate visible length (ignores ANSI escape sequences, accounts for wide chars). */
26
33
  private visLen;
27
34
  private pad;
28
35
  /** Shorten a path to fit within maxLen. Keeps the last segments that fit, prefixed with …/ */
@@ -1 +1 @@
1
- {"version":3,"file":"tui-renderer.d.ts","sourceRoot":"","sources":["../src/tui-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAA4B,MAAM,uBAAuB,CAAC;AAsBvF,qBAAa,WAAW;IAOV,OAAO,CAAC,QAAQ,CAAC,OAAO;IANpC,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;gBAElB,OAAO,EAAE,eAAe;IAErD,KAAK,IAAI,IAAI;IAYb,IAAI,IAAI,IAAI;IASZ,+DAA+D;IAC/D,KAAK,IAAI,IAAI;IASb,kCAAkC;IAClC,MAAM,IAAI,IAAI;IAUd,OAAO,CAAC,OAAO;IAQf,OAAO,CAAC,MAAM;IAsHd,gFAAgF;IAChF,OAAO,CAAC,SAAS;IA4BjB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,KAAK;IAOb,iEAAiE;IACjE,OAAO,CAAC,KAAK;IAIb,kEAAkE;IAClE,OAAO,CAAC,MAAM;IAKd,OAAO,CAAC,GAAG;IAIX,8FAA8F;IAC9F,OAAO,CAAC,QAAQ;CAcjB"}
1
+ {"version":3,"file":"tui-renderer.d.ts","sourceRoot":"","sources":["../src/tui-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAA4B,MAAM,uBAAuB,CAAC;AAgBvF,qBAAa,WAAW;IASV,OAAO,CAAC,QAAQ,CAAC,OAAO;IARpC,OAAO,CAAC,QAAQ,CAA+C;IAC/D,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,SAAS,CAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,cAAc,CAAM;IAC5B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA0C;gBAExC,OAAO,EAAE,eAAe;IAErD,KAAK,IAAI,IAAI;IAab,IAAI,IAAI,IAAI;IASZ,+DAA+D;IAC/D,KAAK,IAAI,IAAI;IAUb,kCAAkC;IAClC,MAAM,IAAI,IAAI;IAWd,OAAO,CAAC,OAAO;IASf,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,eAAe;IAQvB,OAAO,CAAC,SAAS;IAyBjB,OAAO,CAAC,MAAM;IAqKd,gFAAgF;IAChF,OAAO,CAAC,SAAS;IA4BjB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,UAAU;IAOlB,OAAO,CAAC,KAAK;IAOb,qDAAqD;IACrD,OAAO,CAAC,QAAQ;IAkBhB,iEAAiE;IACjE,OAAO,CAAC,KAAK;IAIb,2FAA2F;IAC3F,OAAO,CAAC,MAAM;IAYd,OAAO,CAAC,GAAG;IAIX,8FAA8F;IAC9F,OAAO,CAAC,QAAQ;CAcjB"}
@@ -1,9 +1,4 @@
1
1
  const SPINNER = ["⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏"];
2
- const PHASE_ICON = {
3
- pending: "○",
4
- done: "✅",
5
- skipped: "⏭",
6
- };
7
2
  const STREAM_DISPLAY = {
8
3
  queued: { icon: "○", label: "Queued" },
9
4
  engineering: { icon: "🔨", label: "Coding" },
@@ -21,6 +16,8 @@ export class TuiRenderer {
21
16
  cleanedUp = false;
22
17
  prevLines = [];
23
18
  onExit = () => this.cleanup();
19
+ selectedStream = -1;
20
+ onKeypress = (data) => this.handleKey(data);
24
21
  constructor(tracker) {
25
22
  this.tracker = tracker;
26
23
  }
@@ -28,6 +25,7 @@ export class TuiRenderer {
28
25
  process.stdout.write("\x1b[?1049h"); // Alternate screen
29
26
  process.stdout.write("\x1b[?25l"); // Hide cursor
30
27
  process.on("exit", this.onExit);
28
+ this.startKeyListener();
31
29
  this.interval = setInterval(() => {
32
30
  this.frame = (this.frame + 1) % SPINNER.length;
33
31
  this.render();
@@ -47,6 +45,7 @@ export class TuiRenderer {
47
45
  clearInterval(this.interval);
48
46
  this.interval = null;
49
47
  }
48
+ this.stopKeyListener();
50
49
  process.stdout.write("\x1b[?25h"); // Show cursor
51
50
  process.stdout.write("\x1b[?1049l"); // Leave alternate screen
52
51
  }
@@ -55,6 +54,7 @@ export class TuiRenderer {
55
54
  this.prevLines = []; // Force full redraw
56
55
  process.stdout.write("\x1b[?1049h"); // Alternate screen
57
56
  process.stdout.write("\x1b[?25l"); // Hide cursor
57
+ this.startKeyListener();
58
58
  this.interval = setInterval(() => {
59
59
  this.frame = (this.frame + 1) % SPINNER.length;
60
60
  this.render();
@@ -64,10 +64,53 @@ export class TuiRenderer {
64
64
  if (this.cleanedUp)
65
65
  return;
66
66
  this.cleanedUp = true;
67
+ this.stopKeyListener();
67
68
  process.stdout.write("\x1b[?25h"); // Show cursor
68
69
  process.stdout.write("\x1b[?1049l"); // Leave alternate screen
69
70
  process.removeListener("exit", this.onExit);
70
71
  }
72
+ startKeyListener() {
73
+ if (process.stdin.isTTY) {
74
+ process.stdin.setRawMode(true);
75
+ process.stdin.resume();
76
+ process.stdin.on("data", this.onKeypress);
77
+ }
78
+ }
79
+ stopKeyListener() {
80
+ if (process.stdin.isTTY) {
81
+ process.stdin.removeListener("data", this.onKeypress);
82
+ process.stdin.setRawMode(false);
83
+ process.stdin.pause();
84
+ }
85
+ }
86
+ handleKey(data) {
87
+ const seq = data.toString();
88
+ const streamCount = this.tracker.streams.length;
89
+ if (streamCount === 0)
90
+ return;
91
+ if (seq === "\x1b[A") {
92
+ // Arrow up
93
+ if (this.selectedStream <= 0) {
94
+ this.selectedStream = streamCount - 1;
95
+ }
96
+ else {
97
+ this.selectedStream--;
98
+ }
99
+ }
100
+ else if (seq === "\x1b[B") {
101
+ // Arrow down
102
+ if (this.selectedStream >= streamCount - 1) {
103
+ this.selectedStream = 0;
104
+ }
105
+ else {
106
+ this.selectedStream++;
107
+ }
108
+ }
109
+ else if (seq === "\x1b" || seq === "q") {
110
+ // Escape or q — deselect
111
+ this.selectedStream = -1;
112
+ }
113
+ }
71
114
  render() {
72
115
  const cols = process.stdout.columns || 80;
73
116
  const rows = process.stdout.rows || 24;
@@ -95,10 +138,29 @@ export class TuiRenderer {
95
138
  const colRight = width - 4 - colLeft - 2; // 2 for separator
96
139
  const phaseLines = [];
97
140
  for (const phase of this.tracker.phases) {
98
- const icon = phase.status === "active" ? spin : (PHASE_ICON[phase.status] ?? "○");
99
- let line = `${icon} ${phase.name}`;
141
+ // Normalize icon width: emojis (✅⏭) are 2 cells; spinner/○ are 1 cell
142
+ let icon;
143
+ let iconCells;
144
+ if (phase.status === "active") {
145
+ icon = spin;
146
+ iconCells = 1;
147
+ }
148
+ else if (phase.status === "done") {
149
+ icon = "✅";
150
+ iconCells = 2;
151
+ }
152
+ else if (phase.status === "skipped") {
153
+ icon = "⏭";
154
+ iconCells = 2;
155
+ }
156
+ else {
157
+ icon = "○";
158
+ iconCells = 1;
159
+ }
160
+ const iconPad = " ".repeat(3 - iconCells); // align to 3 cols total (icon + gap)
161
+ let line = `${icon}${iconPad}${phase.name}`;
100
162
  if (phase.status === "active" && this.tracker.activeAgent) {
101
- const agent = this.trunc(this.tracker.activeAgent, colLeft - this.visLen(line) - 3);
163
+ const agent = this.trunc(this.tracker.activeAgent, colLeft - this.visLen(line) - iconCells - 1);
102
164
  line += ` \x1b[2m${agent}\x1b[0m`;
103
165
  }
104
166
  phaseLines.push(line);
@@ -107,8 +169,13 @@ export class TuiRenderer {
107
169
  const agentLines = [];
108
170
  if (agents.length > 0) {
109
171
  agentLines.push("\x1b[2mActive Agents\x1b[0m");
172
+ const maxLabel = Math.max(...agents.map((a) => a.label.length));
173
+ const maxModel = Math.max(...agents.map((a) => a.model.length));
110
174
  for (const a of agents) {
111
- agentLines.push(`${spin} ${a.label} \x1b[2m${this.trunc(a.model, colRight - 6)}\x1b[0m`);
175
+ const elapsed = this.fmtElapsed(Date.now() - a.startedAt);
176
+ const paddedLabel = a.label.padEnd(maxLabel);
177
+ const paddedModel = a.model.padEnd(maxModel);
178
+ agentLines.push(`${spin} ${paddedLabel} \x1b[2m${paddedModel} ${elapsed}\x1b[0m`);
112
179
  }
113
180
  }
114
181
  const maxRows = Math.max(phaseLines.length, agentLines.length);
@@ -124,8 +191,29 @@ export class TuiRenderer {
124
191
  lines.push(" Streams");
125
192
  for (const s of this.tracker.streams) {
126
193
  const d = this.streamIcon(s, spin);
194
+ const iconPad = " ".repeat(3 - d.cells); // normalize icon+gap to 3 cols
127
195
  const task = this.trunc(s.task, width - 24);
128
- lines.push(` ${s.label} ${d.icon} ${d.label.padEnd(8)} ${task}`);
196
+ const indicator = s.index === this.selectedStream ? "\x1b[36m▸\x1b[0m" : " ";
197
+ const highlight = s.index === this.selectedStream ? "\x1b[36m" : "";
198
+ const reset = s.index === this.selectedStream ? "\x1b[0m" : "";
199
+ lines.push(` ${indicator} ${highlight}${s.label} ${d.icon}${iconPad}${d.label.padEnd(8)} ${task}${reset}`);
200
+ }
201
+ // ── Detail panel for selected stream ──
202
+ if (this.selectedStream >= 0 && this.selectedStream < this.tracker.streams.length) {
203
+ const sel = this.tracker.streams[this.selectedStream];
204
+ const di = this.streamIcon(sel, spin);
205
+ lines.push(` ${"╍".repeat(width - 4)}`);
206
+ lines.push(` \x1b[36m${sel.label}\x1b[0m ${di.icon} ${di.label}`);
207
+ // Wrap task text to fit within width
208
+ const taskLines = this.wrapText(sel.task, width - 6);
209
+ for (const tl of taskLines) {
210
+ lines.push(` ${tl}`);
211
+ }
212
+ if (sel.model)
213
+ lines.push(` \x1b[2mModel: ${sel.model}\x1b[0m`);
214
+ if (sel.detail)
215
+ lines.push(` \x1b[2m${this.trunc(sel.detail, width - 8)}\x1b[0m`);
216
+ lines.push(` ${"╍".repeat(width - 4)}`);
129
217
  }
130
218
  lines.push("");
131
219
  }
@@ -148,9 +236,14 @@ export class TuiRenderer {
148
236
  // ── Footer ──
149
237
  lines.push(sep);
150
238
  const progress = `Phase ${this.tracker.completedPhaseCount}/${this.tracker.totalPhaseCount}`;
151
- const hint = " \x1b[2m--no-tui for plain output\x1b[0m";
152
- // hint visible length = 26
153
- const fPad = width - 26 - progress.length;
239
+ const hintText = this.tracker.streams.length > 0
240
+ ? this.selectedStream >= 0
241
+ ? "↑↓ navigate Esc deselect --no-tui plain"
242
+ : "↑↓ select stream --no-tui for plain output"
243
+ : "--no-tui for plain output";
244
+ const hint = ` \x1b[2m${hintText}\x1b[0m`;
245
+ const hintLen = hintText.length + 2;
246
+ const fPad = width - hintLen - progress.length;
154
247
  lines.push(`${hint}${this.pad(Math.max(1, fPad))}${progress}`);
155
248
  // ── Write only changed lines — pad to full width instead of clearing to prevent flicker ──
156
249
  const out = [];
@@ -206,7 +299,11 @@ export class TuiRenderer {
206
299
  streamIcon(s, spin) {
207
300
  const d = STREAM_DISPLAY[s.status];
208
301
  const active = s.status === "engineering" || s.status === "reviewing" || s.status === "testing";
209
- return { icon: active ? spin : d.icon, label: d.label };
302
+ if (active)
303
+ return { icon: spin, label: d.label, cells: 1 };
304
+ // queued ○ = 1 cell; emojis (✅❌🔨🔍🧪⏭) = 2 cells
305
+ const singleCell = s.status === "queued";
306
+ return { icon: d.icon, label: d.label, cells: singleCell ? 1 : 2 };
210
307
  }
211
308
  fmtElapsed(ms) {
212
309
  const sec = Math.floor(ms / 1000);
@@ -222,14 +319,41 @@ export class TuiRenderer {
222
319
  return flat;
223
320
  return `${flat.substring(0, max - 1)}…`;
224
321
  }
322
+ /** Wrap text into lines that fit within maxWidth. */
323
+ wrapText(text, maxWidth) {
324
+ const flat = text.replace(/\n/g, " ");
325
+ if (flat.length <= maxWidth)
326
+ return [flat];
327
+ const result = [];
328
+ let remaining = flat;
329
+ while (remaining.length > 0) {
330
+ if (remaining.length <= maxWidth) {
331
+ result.push(remaining);
332
+ break;
333
+ }
334
+ let breakAt = remaining.lastIndexOf(" ", maxWidth);
335
+ if (breakAt <= 0)
336
+ breakAt = maxWidth;
337
+ result.push(remaining.substring(0, breakAt));
338
+ remaining = remaining.substring(breakAt).trimStart();
339
+ }
340
+ return result;
341
+ }
225
342
  /** Remove leading emoji + whitespace for cleaner log display. */
226
343
  clean(message) {
227
344
  return message.replace(/^\s*(?:\p{Emoji_Presentation}|\p{Extended_Pictographic})+\s*/u, "").trim();
228
345
  }
229
- /** Approximate visible length (ignores ANSI escape sequences). */
346
+ /** Approximate visible length (ignores ANSI escape sequences, accounts for wide chars). */
230
347
  visLen(s) {
231
348
  // biome-ignore lint/suspicious/noControlCharactersInRegex: stripping ANSI escapes requires matching ESC
232
- return s.replace(/\x1b\[[0-9;]*m/g, "").length;
349
+ const stripped = s.replace(/\x1b\[[0-9;]*m/g, "");
350
+ let len = 0;
351
+ for (const ch of stripped) {
352
+ // Common emoji/wide chars used in this TUI occupy 2 cells
353
+ const cp = ch.codePointAt(0) ?? 0;
354
+ len += cp > 0x2fff || (cp >= 0x2300 && cp <= 0x23ff) || (cp >= 0x2600 && cp <= 0x27bf) ? 2 : 1;
355
+ }
356
+ return len;
233
357
  }
234
358
  pad(n) {
235
359
  return " ".repeat(Math.max(0, n));
@@ -1 +1 @@
1
- {"version":3,"file":"tui-renderer.js","sourceRoot":"","sources":["../src/tui-renderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tui-renderer.js","sourceRoot":"","sources":["../src/tui-renderer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@copilot-swarm/core",
3
- "version": "0.0.34",
3
+ "version": "0.0.36",
4
4
  "description": "Multi-agent orchestrator for GitHub Copilot — coordinates PM, designer, engineer, reviewer, and tester agents through a declarative pipeline",
5
5
  "license": "MIT",
6
6
  "type": "module",