@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/demo.js ADDED
@@ -0,0 +1,587 @@
1
+ /**
2
+ * Interactive Copilot Swarm demo — guided walkthrough of CLI modes.
3
+ * Drives ProgressTracker + TuiRenderer with mock data, no AI backend needed.
4
+ */
5
+ import * as crypto from "node:crypto";
6
+ import * as readline from "node:readline";
7
+ import { ProgressTracker } from "./progress-tracker.js";
8
+ import { formatStats, loadStats, recordAgentInvocation, recordRunStart } from "./stats.js";
9
+ import { TuiRenderer } from "./tui-renderer.js";
10
+ const sleep = (ms) => new Promise((r) => setTimeout(r, ms));
11
+ const sid = () => crypto.randomUUID();
12
+ const SPEED = 0.5;
13
+ const dur = (ms) => ms * SPEED;
14
+ const MODELS = { primary: "claude-sonnet-4", review: "gpt-4.1", fast: "claude-haiku-4.5" };
15
+ // ---------------------------------------------------------------------------
16
+ // Interactive prompt
17
+ // ---------------------------------------------------------------------------
18
+ function ask(question, choices) {
19
+ return new Promise((resolve) => {
20
+ const rl = readline.createInterface({ input: process.stdin, output: process.stdout });
21
+ console.log("");
22
+ console.log(` ${question}`);
23
+ console.log("");
24
+ for (const c of choices) {
25
+ console.log(` ${c.key}) ${c.label}`);
26
+ }
27
+ console.log("");
28
+ const validKeys = choices.map((c) => c.key);
29
+ const prompt = () => {
30
+ rl.question(" ▸ ", (answer) => {
31
+ const trimmed = answer.trim().toLowerCase();
32
+ if (validKeys.includes(trimmed)) {
33
+ rl.close();
34
+ resolve(trimmed);
35
+ }
36
+ else {
37
+ console.log(` Invalid choice. Pick one of: ${validKeys.join(", ")}`);
38
+ prompt();
39
+ }
40
+ });
41
+ };
42
+ prompt();
43
+ });
44
+ }
45
+ // ---------------------------------------------------------------------------
46
+ // Shared state
47
+ // ---------------------------------------------------------------------------
48
+ let tracker;
49
+ let tui;
50
+ let cfg;
51
+ async function mockAgent(label, model, durationMs) {
52
+ const id = sid();
53
+ tracker.addActiveAgent(id, label, model);
54
+ tracker.addLog(`${label} started (${model})`);
55
+ await sleep(durationMs);
56
+ tracker.removeActiveAgent(id);
57
+ tracker.addLog(`${label} finished`);
58
+ await recordAgentInvocation(cfg, label, model, durationMs);
59
+ }
60
+ function initTracker() {
61
+ tracker = new ProgressTracker();
62
+ tracker.runId = "intro-demo";
63
+ tracker.primaryModel = MODELS.primary;
64
+ tracker.reviewModel = MODELS.review;
65
+ tracker.version = "0.0.34-demo";
66
+ tracker.cwd = process.cwd();
67
+ tui = new TuiRenderer(tracker);
68
+ }
69
+ function printDemoSummary(mode) {
70
+ const sec = Math.floor(tracker.elapsedMs / 1000);
71
+ const m = Math.floor(sec / 60);
72
+ const s = sec % 60;
73
+ const elapsed = `${String(m).padStart(2, "0")}:${String(s).padStart(2, "0")}`;
74
+ const done = tracker.phases.filter((p) => p.status === "done").length;
75
+ console.log("");
76
+ console.log("─".repeat(60));
77
+ console.log(` ✅ Demo complete: ${mode} (${elapsed})`);
78
+ console.log(` Phases: ${done}/${tracker.totalPhaseCount}`);
79
+ console.log("─".repeat(60));
80
+ }
81
+ // ---------------------------------------------------------------------------
82
+ // Scenario: Analyze
83
+ // ---------------------------------------------------------------------------
84
+ async function runAnalyze() {
85
+ initTracker();
86
+ tracker.initPhases([
87
+ { phase: "analyze-scout" },
88
+ { phase: "analyze-chunk" },
89
+ { phase: "analyze-synthesis" },
90
+ { phase: "analyze-architect" },
91
+ { phase: "analyze-review" },
92
+ ]);
93
+ tui.start();
94
+ await recordRunStart(cfg);
95
+ const scoutKey = "analyze-scout-0";
96
+ tracker.activatePhase(scoutKey);
97
+ tracker.setActiveAgent("scanning repository structure…");
98
+ tracker.addLog("Scanning files and directory structure");
99
+ await mockAgent("scout", MODELS.fast, dur(2000));
100
+ tracker.addLog("Found 847 files across 42 directories");
101
+ tracker.setActiveAgent(null);
102
+ tracker.completePhase(scoutKey);
103
+ const chunkKey = "analyze-chunk-1";
104
+ tracker.activatePhase(chunkKey);
105
+ tracker.setActiveAgent("analyzing code chunks…");
106
+ tracker.addLog("Partitioned into 4 analysis chunks");
107
+ tracker.initStreams([
108
+ "src/core/** — Core modules",
109
+ "src/api/** — API endpoints",
110
+ "src/models/** — Data models",
111
+ "src/utils/** — Utilities & helpers",
112
+ ]);
113
+ const chunkWork = [0, 1, 2, 3].map(async (idx) => {
114
+ tracker.updateStream(idx, "engineering");
115
+ tracker.updateStreamModel(idx, MODELS.primary);
116
+ tracker.updateStreamDetail(idx, "Analyzing code chunk…");
117
+ await mockAgent(`chunk-analyzer-${idx + 1}`, MODELS.primary, dur(3000 + Math.random() * 2000));
118
+ tracker.updateStreamDetail(idx, "Complete");
119
+ tracker.updateStream(idx, "done");
120
+ });
121
+ await Promise.all(chunkWork);
122
+ tracker.setActiveAgent(null);
123
+ tracker.completePhase(chunkKey);
124
+ const synthKey = "analyze-synthesis-2";
125
+ tracker.activatePhase(synthKey);
126
+ tracker.setActiveAgent("synthesizing analysis results…");
127
+ await mockAgent("synthesis", MODELS.primary, dur(2500));
128
+ tracker.setActiveAgent(null);
129
+ tracker.completePhase(synthKey);
130
+ const archKey = "analyze-architect-3";
131
+ tracker.activatePhase(archKey);
132
+ tracker.setActiveAgent("architecture analysis…");
133
+ tracker.streams = [];
134
+ await mockAgent("architect", MODELS.primary, dur(3000));
135
+ tracker.setActiveAgent(null);
136
+ tracker.completePhase(archKey);
137
+ const revKey = "analyze-review-4";
138
+ tracker.activatePhase(revKey);
139
+ tracker.setActiveAgent("peer reviewing analysis…");
140
+ await mockAgent("review-analyst", MODELS.review, dur(2000));
141
+ tracker.setActiveAgent(null);
142
+ tracker.completePhase(revKey);
143
+ tracker.addLog("🐝 Analysis complete — repo-analysis.md written");
144
+ await sleep(dur(1500));
145
+ tui.stop();
146
+ printDemoSummary("analyze");
147
+ }
148
+ // ---------------------------------------------------------------------------
149
+ // Scenario: Single-repo run with auto-model
150
+ // ---------------------------------------------------------------------------
151
+ async function runSingleRepoAutoModel() {
152
+ initTracker();
153
+ tracker.initPhases([{ phase: "spec" }, { phase: "decompose" }, { phase: "implement" }, { phase: "verify" }]);
154
+ tui.start();
155
+ await recordRunStart(cfg);
156
+ const specKey = "spec-0";
157
+ tracker.activatePhase(specKey);
158
+ tracker.setActiveAgent("pm drafting specification…");
159
+ await mockAgent("pm", MODELS.primary, dur(2500));
160
+ await mockAgent("pm-reviewer", MODELS.primary, dur(1200));
161
+ tracker.setActiveAgent(null);
162
+ tracker.completePhase(specKey);
163
+ const decompKey = "decompose-1";
164
+ tracker.activatePhase(decompKey);
165
+ tracker.setActiveAgent("breaking down tasks…");
166
+ await mockAgent("decompose-agent", MODELS.fast, dur(1000));
167
+ tracker.setActiveAgent(null);
168
+ tracker.completePhase(decompKey);
169
+ const implKey = "implement-2";
170
+ tracker.activatePhase(implKey);
171
+ tracker.setActiveAgent(null);
172
+ const tasks = [
173
+ { desc: "[DB] Add index on users.email column", model: MODELS.fast },
174
+ { desc: "[API] Implement OAuth2 PKCE flow with token rotation", model: MODELS.primary },
175
+ { desc: "[CONFIG] Update environment variables documentation", model: MODELS.fast },
176
+ ];
177
+ tracker.initStreams(tasks.map((t) => t.desc));
178
+ const streamWork = tasks.map(async (task, idx) => {
179
+ // Auto-model classification step
180
+ tracker.addLog(`🤖 Stream ${idx + 1}: classifying → ${task.model === MODELS.fast ? "FAST" : "PRIMARY"}`);
181
+ await mockAgent("model-classifier", MODELS.fast, dur(500));
182
+ tracker.addLog(` → Selected: ${task.model}`);
183
+ tracker.updateStreamModel(idx, task.model);
184
+ tracker.updateStream(idx, "engineering");
185
+ tracker.updateStreamDetail(idx, "Implementing task…");
186
+ await mockAgent("engineer", task.model, dur(2500 + Math.random() * 2000));
187
+ tracker.updateStream(idx, "reviewing");
188
+ tracker.updateStreamDetail(idx, "Code review by reviewer");
189
+ await mockAgent("code-reviewer", MODELS.primary, dur(1200 + Math.random() * 800));
190
+ tracker.updateStreamDetail(idx, "Complete");
191
+ tracker.updateStream(idx, "done");
192
+ });
193
+ await Promise.all(streamWork);
194
+ tracker.completePhase(implKey);
195
+ const verifyKey = "verify-3";
196
+ tracker.activatePhase(verifyKey);
197
+ tracker.setActiveAgent("running verification…");
198
+ await sleep(dur(800));
199
+ tracker.addLog("✅ Build passed");
200
+ await sleep(dur(600));
201
+ tracker.addLog("✅ Tests passed");
202
+ tracker.setActiveAgent(null);
203
+ tracker.completePhase(verifyKey);
204
+ tracker.addLog("🐝 Swarm run complete (auto-model enabled)");
205
+ await sleep(dur(1500));
206
+ tui.stop();
207
+ printDemoSummary("single-repo run (auto-model)");
208
+ }
209
+ // ---------------------------------------------------------------------------
210
+ // Scenario: Digest
211
+ // ---------------------------------------------------------------------------
212
+ async function runDigestDemo() {
213
+ console.log("");
214
+ console.log("─".repeat(48));
215
+ console.log("📋 Run Digest — 2026-03-01T07-00-00-000Z");
216
+ console.log("─".repeat(48));
217
+ console.log("");
218
+ console.log("## What was done");
219
+ console.log("");
220
+ console.log("Implemented OAuth2 PKCE authentication flow with");
221
+ console.log("token rotation, added database index for user");
222
+ console.log("lookups, and updated environment documentation.");
223
+ console.log("");
224
+ console.log("## Key decisions");
225
+ console.log("");
226
+ console.log("- Used fast model for simple tasks (DB index,");
227
+ console.log(" docs update), primary model for complex OAuth flow");
228
+ console.log("- PKCE flow stores code verifier in httpOnly cookie");
229
+ console.log("- Token rotation uses sliding window expiry");
230
+ console.log("");
231
+ console.log("## Files changed");
232
+ console.log("");
233
+ console.log("- src/auth/oauth2-pkce.ts (new)");
234
+ console.log("- src/auth/token-rotation.ts (new)");
235
+ console.log("- migrations/003_add_email_index.sql (new)");
236
+ console.log("- docs/environment.md (updated)");
237
+ console.log("- src/auth/index.ts (updated)");
238
+ console.log("");
239
+ console.log("## Status");
240
+ console.log("");
241
+ console.log("✅ Build passed ✅ Tests passed (3 new, 247 total)");
242
+ console.log("");
243
+ console.log("─".repeat(48));
244
+ console.log("✅ Digest complete.");
245
+ }
246
+ // ---------------------------------------------------------------------------
247
+ // Scenario: Single-repo run
248
+ // ---------------------------------------------------------------------------
249
+ async function runSingleRepo() {
250
+ initTracker();
251
+ tracker.initPhases([
252
+ { phase: "spec" },
253
+ { phase: "decompose" },
254
+ { phase: "design" },
255
+ { phase: "implement" },
256
+ { phase: "cross-model-review" },
257
+ { phase: "verify" },
258
+ ]);
259
+ tui.start();
260
+ await recordRunStart(cfg);
261
+ const specKey = "spec-0";
262
+ tracker.activatePhase(specKey);
263
+ tracker.setActiveAgent("pm drafting specification…");
264
+ await mockAgent("pm", MODELS.primary, dur(2500));
265
+ await mockAgent("pm-reviewer", MODELS.primary, dur(1500));
266
+ await mockAgent("spec-reviewer", MODELS.primary, dur(1500));
267
+ tracker.setActiveAgent(null);
268
+ tracker.completePhase(specKey);
269
+ const decompKey = "decompose-1";
270
+ tracker.activatePhase(decompKey);
271
+ tracker.setActiveAgent("breaking down tasks…");
272
+ await mockAgent("decompose-agent", MODELS.fast, dur(1200));
273
+ tracker.setActiveAgent(null);
274
+ tracker.completePhase(decompKey);
275
+ const designKey = "design-2";
276
+ tracker.activatePhase(designKey);
277
+ tracker.setActiveAgent("designing solution…");
278
+ await mockAgent("designer", MODELS.primary, dur(2500));
279
+ await mockAgent("design-reviewer", MODELS.primary, dur(1200));
280
+ tracker.setActiveAgent(null);
281
+ tracker.completePhase(designKey);
282
+ const implKey = "implement-3";
283
+ tracker.activatePhase(implKey);
284
+ tracker.setActiveAgent(null);
285
+ const tasks = [
286
+ "[AUTH] Implement JWT refresh token rotation",
287
+ "[API] Add rate limiting middleware with Redis backing",
288
+ "[DB] Create migration for user_sessions table",
289
+ ];
290
+ tracker.initStreams(tasks);
291
+ const streamWork = tasks.map(async (_task, idx) => {
292
+ tracker.updateStream(idx, "engineering");
293
+ tracker.updateStreamDetail(idx, "Implementing task…");
294
+ await mockAgent("engineer", MODELS.primary, dur(3500 + Math.random() * 2000));
295
+ tracker.updateStream(idx, "reviewing");
296
+ tracker.updateStreamDetail(idx, "Code review by reviewer");
297
+ await mockAgent("code-reviewer", MODELS.primary, dur(1500 + Math.random() * 1000));
298
+ tracker.updateStream(idx, "testing");
299
+ tracker.updateStreamDetail(idx, "QA testing by tester");
300
+ await mockAgent("qa", MODELS.primary, dur(1500 + Math.random() * 1000));
301
+ tracker.updateStreamDetail(idx, "Complete");
302
+ tracker.updateStream(idx, "done");
303
+ });
304
+ await Promise.all(streamWork);
305
+ tracker.completePhase(implKey);
306
+ const cmrKey = "cross-model-review-4";
307
+ tracker.activatePhase(cmrKey);
308
+ tracker.setActiveAgent("cross-model review…");
309
+ tracker.streams = [];
310
+ await mockAgent("cross-model-reviewer", MODELS.review, dur(2500));
311
+ await mockAgent("engineer", MODELS.primary, dur(1500));
312
+ tracker.setActiveAgent(null);
313
+ tracker.completePhase(cmrKey);
314
+ const verifyKey = "verify-5";
315
+ tracker.activatePhase(verifyKey);
316
+ tracker.setActiveAgent("running verification…");
317
+ await sleep(dur(1000));
318
+ tracker.addLog("✅ Build passed");
319
+ await sleep(dur(800));
320
+ tracker.addLog("✅ Tests passed (247 passed, 0 failed)");
321
+ await sleep(dur(600));
322
+ tracker.addLog("✅ Lint passed");
323
+ tracker.setActiveAgent(null);
324
+ tracker.completePhase(verifyKey);
325
+ tracker.addLog("🐝 Swarm run complete");
326
+ await sleep(dur(1500));
327
+ tui.stop();
328
+ printDemoSummary("single-repo run");
329
+ }
330
+ // ---------------------------------------------------------------------------
331
+ // Scenario: Fleet (multi-repo)
332
+ // ---------------------------------------------------------------------------
333
+ async function runFleet() {
334
+ initTracker();
335
+ const repos = [
336
+ { name: "acme-corp/api-gateway-service", role: "API Gateway" },
337
+ { name: "acme-corp/user-auth-service", role: "Auth microservice" },
338
+ { name: "acme-corp/billing-service", role: "Billing microservice" },
339
+ { name: "acme-corp/web-dashboard", role: "React frontend" },
340
+ { name: "acme-corp/shared-types", role: "Shared TypeScript types" },
341
+ ];
342
+ const phaseNames = {
343
+ "fleet-analyze": "Analyze Repositories",
344
+ "fleet-strategize": "Cross-Repo Strategy",
345
+ "fleet-wave-1": "Wave 1 — Foundation",
346
+ "fleet-wave-2": "Wave 2 — Consumers",
347
+ "fleet-cross-review": "Cross-Repo Review",
348
+ "fleet-summary": "Summary",
349
+ };
350
+ tracker.phases = [
351
+ "fleet-analyze",
352
+ "fleet-strategize",
353
+ "fleet-wave-1",
354
+ "fleet-wave-2",
355
+ "fleet-cross-review",
356
+ "fleet-summary",
357
+ ].map((p, i) => ({
358
+ key: `${p}-${i}`,
359
+ name: phaseNames[p] ?? p,
360
+ status: "pending",
361
+ }));
362
+ tui.start();
363
+ await recordRunStart(cfg);
364
+ // Analyze
365
+ const analyzeKey = "fleet-analyze-0";
366
+ tracker.activatePhase(analyzeKey);
367
+ tracker.setActiveAgent("analyzing repositories…");
368
+ tracker.addLog(`Analyzing ${repos.length} repositories in parallel`);
369
+ await Promise.all(repos.map(async (repo) => {
370
+ await mockAgent(`scout:${repo.name}`, MODELS.fast, dur(2000 + Math.random() * 1500));
371
+ }));
372
+ tracker.setActiveAgent(null);
373
+ tracker.completePhase(analyzeKey);
374
+ // Strategize
375
+ const stratKey = "fleet-strategize-1";
376
+ tracker.activatePhase(stratKey);
377
+ tracker.setActiveAgent("planning cross-repo approach…");
378
+ await mockAgent("fleet-strategist", MODELS.primary, dur(3500));
379
+ tracker.addLog("Strategy: 2 waves, shared API contract");
380
+ tracker.setActiveAgent(null);
381
+ tracker.completePhase(stratKey);
382
+ // Wave 1
383
+ const wave1Key = "fleet-wave-1-2";
384
+ const wave1 = [repos[4], repos[1], repos[2]];
385
+ tracker.activatePhase(wave1Key);
386
+ tracker.addLog(`🌊 Wave 1: ${wave1.map((r) => r.name).join(", ")}`);
387
+ tracker.initStreams(wave1.map((r) => `${r.name} — ${r.role}`));
388
+ await Promise.all(wave1.map(async (repo, idx) => {
389
+ tracker.updateStream(idx, "engineering");
390
+ tracker.updateStreamModel(idx, MODELS.primary);
391
+ tracker.updateStreamDetail(idx, "PM drafting specification…");
392
+ await mockAgent(`pm:${repo.name}`, MODELS.primary, dur(1500 + Math.random() * 1000));
393
+ tracker.updateStreamDetail(idx, "Implementing changes…");
394
+ await mockAgent(`engineer:${repo.name}`, MODELS.primary, dur(3000 + Math.random() * 2000));
395
+ tracker.updateStream(idx, "reviewing");
396
+ tracker.updateStreamDetail(idx, "Code review…");
397
+ await mockAgent(`reviewer:${repo.name}`, MODELS.primary, dur(1500 + Math.random() * 1000));
398
+ tracker.updateStream(idx, "testing");
399
+ tracker.updateStreamDetail(idx, "Running tests…");
400
+ await sleep(dur(1000));
401
+ tracker.updateStreamDetail(idx, "Complete");
402
+ tracker.updateStream(idx, "done");
403
+ }));
404
+ tracker.completePhase(wave1Key);
405
+ // Wave 2
406
+ const wave2Key = "fleet-wave-2-3";
407
+ const wave2 = [repos[0], repos[3]];
408
+ tracker.activatePhase(wave2Key);
409
+ tracker.addLog(`🌊 Wave 2: ${wave2.map((r) => r.name).join(", ")}`);
410
+ tracker.initStreams(wave2.map((r) => `${r.name} — ${r.role}`));
411
+ await Promise.all(wave2.map(async (repo, idx) => {
412
+ tracker.updateStream(idx, "engineering");
413
+ tracker.updateStreamModel(idx, MODELS.primary);
414
+ tracker.updateStreamDetail(idx, "PM drafting specification…");
415
+ await mockAgent(`pm:${repo.name}`, MODELS.primary, dur(1500 + Math.random() * 1000));
416
+ tracker.updateStreamDetail(idx, "Implementing changes…");
417
+ await mockAgent(`engineer:${repo.name}`, MODELS.primary, dur(3500 + Math.random() * 2000));
418
+ tracker.updateStream(idx, "reviewing");
419
+ tracker.updateStreamDetail(idx, "Code review…");
420
+ await mockAgent(`reviewer:${repo.name}`, MODELS.primary, dur(1500 + Math.random() * 1000));
421
+ tracker.updateStream(idx, "testing");
422
+ tracker.updateStreamDetail(idx, "Running tests…");
423
+ await sleep(dur(1000));
424
+ tracker.updateStreamDetail(idx, "Complete");
425
+ tracker.updateStream(idx, "done");
426
+ }));
427
+ tracker.completePhase(wave2Key);
428
+ // Cross-repo review
429
+ const reviewKey = "fleet-cross-review-4";
430
+ tracker.activatePhase(reviewKey);
431
+ tracker.setActiveAgent("checking cross-repo consistency…");
432
+ tracker.streams = [];
433
+ await mockAgent("fleet-reviewer", MODELS.review, dur(3000));
434
+ tracker.addLog("Cross-repo review: FLEET_APPROVED");
435
+ tracker.setActiveAgent(null);
436
+ tracker.completePhase(reviewKey);
437
+ // Summary
438
+ const summaryKey = "fleet-summary-5";
439
+ tracker.activatePhase(summaryKey);
440
+ tracker.setActiveAgent("generating summary…");
441
+ await sleep(dur(800));
442
+ tracker.setActiveAgent(null);
443
+ tracker.completePhase(summaryKey);
444
+ tracker.addLog("🐝 Fleet run complete");
445
+ await sleep(dur(1500));
446
+ tui.stop();
447
+ printDemoSummary("fleet (multi-repo)");
448
+ }
449
+ // ---------------------------------------------------------------------------
450
+ // Scenario: Plan
451
+ // ---------------------------------------------------------------------------
452
+ async function runPlan() {
453
+ initTracker();
454
+ tracker.initPhases([
455
+ { phase: "plan-prereqs" },
456
+ { phase: "plan-analyze" },
457
+ { phase: "plan-clarify" },
458
+ { phase: "plan-eng-clarify" },
459
+ { phase: "plan-design-clarify" },
460
+ { phase: "plan-review" },
461
+ { phase: "plan-cross-review" },
462
+ ]);
463
+ tui.start();
464
+ await recordRunStart(cfg);
465
+ const prereqKey = "plan-prereqs-0";
466
+ tracker.activatePhase(prereqKey);
467
+ tracker.setActiveAgent("pre-analyzing codebase…");
468
+ await mockAgent("scout", MODELS.fast, dur(1500));
469
+ tracker.setActiveAgent(null);
470
+ tracker.completePhase(prereqKey);
471
+ const analyzeKey = "plan-analyze-1";
472
+ tracker.activatePhase(analyzeKey);
473
+ tracker.setActiveAgent("analyzing technical requirements…");
474
+ await mockAgent("tech-analyst", MODELS.primary, dur(2500));
475
+ tracker.setActiveAgent(null);
476
+ tracker.completePhase(analyzeKey);
477
+ const clarifyKey = "plan-clarify-2";
478
+ tracker.activatePhase(clarifyKey);
479
+ tracker.setActiveAgent("clarifying requirements…");
480
+ await mockAgent("pm", MODELS.primary, dur(2000));
481
+ tracker.setActiveAgent(null);
482
+ tracker.completePhase(clarifyKey);
483
+ const engKey = "plan-eng-clarify-3";
484
+ tracker.activatePhase(engKey);
485
+ tracker.setActiveAgent("engineer reviewing feasibility…");
486
+ await mockAgent("engineer", MODELS.primary, dur(2000));
487
+ tracker.setActiveAgent(null);
488
+ tracker.completePhase(engKey);
489
+ const designKey = "plan-design-clarify-4";
490
+ tracker.activatePhase(designKey);
491
+ tracker.setActiveAgent("designer reviewing UX approach…");
492
+ await mockAgent("designer", MODELS.primary, dur(1800));
493
+ tracker.setActiveAgent(null);
494
+ tracker.completePhase(designKey);
495
+ const reviewKey = "plan-review-5";
496
+ tracker.activatePhase(reviewKey);
497
+ tracker.setActiveAgent("reviewing plan…");
498
+ await mockAgent("plan-reviewer", MODELS.primary, dur(1500));
499
+ tracker.setActiveAgent(null);
500
+ tracker.completePhase(reviewKey);
501
+ const crossKey = "plan-cross-review-6";
502
+ tracker.activatePhase(crossKey);
503
+ tracker.setActiveAgent("cross-model plan validation…");
504
+ await mockAgent("cross-model-reviewer", MODELS.review, dur(2000));
505
+ tracker.setActiveAgent(null);
506
+ tracker.completePhase(crossKey);
507
+ tracker.addLog("🐝 Plan complete — implementation-plan.md written");
508
+ await sleep(dur(1500));
509
+ tui.stop();
510
+ printDemoSummary("plan");
511
+ }
512
+ // ---------------------------------------------------------------------------
513
+ // Public entry point
514
+ // ---------------------------------------------------------------------------
515
+ export async function runDemo(config) {
516
+ cfg = config;
517
+ console.log("");
518
+ console.log(" ╔══════════════════════════════════════════════════╗");
519
+ console.log(" ║ 🐝 Copilot Swarm — Intro ║");
520
+ console.log(" ╚══════════════════════════════════════════════════╝");
521
+ console.log("");
522
+ console.log(" This walkthrough shows how the TUI looks for each");
523
+ console.log(" mode. All demos run in fast-forward with mock data.");
524
+ let running = true;
525
+ while (running) {
526
+ const choice = await ask("What would you like to see?", [
527
+ { key: "1", label: "Analyze — deep codebase analysis" },
528
+ { key: "2", label: "Plan — multi-agent planning pipeline" },
529
+ { key: "3", label: "Run — full single-repo implementation" },
530
+ { key: "4", label: "Run (auto-model) — smart model selection per task" },
531
+ { key: "5", label: "Digest — concise highlights of a completed run" },
532
+ { key: "6", label: "Fleet — multi-repo orchestration" },
533
+ { key: "7", label: "Stats — view agent usage statistics" },
534
+ { key: "q", label: "Quit" },
535
+ ]);
536
+ switch (choice) {
537
+ case "1": {
538
+ console.log("\n ▶ Starting Analyze demo…\n");
539
+ await sleep(500);
540
+ await runAnalyze();
541
+ break;
542
+ }
543
+ case "2": {
544
+ console.log("\n ▶ Starting Plan demo…\n");
545
+ await sleep(500);
546
+ await runPlan();
547
+ break;
548
+ }
549
+ case "3": {
550
+ console.log("\n ▶ Starting single-repo Run demo…\n");
551
+ await sleep(500);
552
+ await runSingleRepo();
553
+ break;
554
+ }
555
+ case "4": {
556
+ console.log("\n ▶ Starting Run (auto-model) demo…\n");
557
+ await sleep(500);
558
+ await runSingleRepoAutoModel();
559
+ break;
560
+ }
561
+ case "5": {
562
+ console.log("\n ▶ Showing Digest demo…\n");
563
+ await sleep(500);
564
+ await runDigestDemo();
565
+ break;
566
+ }
567
+ case "6": {
568
+ console.log("\n ▶ Starting Fleet (multi-repo) demo…\n");
569
+ await sleep(500);
570
+ await runFleet();
571
+ break;
572
+ }
573
+ case "7": {
574
+ const stats = await loadStats(cfg);
575
+ console.log("");
576
+ console.log(formatStats(stats));
577
+ break;
578
+ }
579
+ case "q": {
580
+ running = false;
581
+ break;
582
+ }
583
+ }
584
+ }
585
+ console.log("\n 👋 Bye!\n");
586
+ }
587
+ //# sourceMappingURL=demo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"demo.js","sourceRoot":"","sources":["../src/demo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Digest command — show a concise highlights summary of a completed run.
3
+ * Reads the latest (or specified) run's checkpoint/summary and uses the
4
+ * fast model to produce a human-readable overview printed to stdout.
5
+ */
6
+ import type { SwarmConfig } from "./config.js";
7
+ import type { Logger } from "./logger.js";
8
+ import type { PipelineConfig } from "./pipeline-types.js";
9
+ export declare function runDigest(config: SwarmConfig, pipeline: PipelineConfig, logger: Logger): Promise<void>;
10
+ //# sourceMappingURL=digest.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"digest.d.ts","sourceRoot":"","sources":["../src/digest.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAG1C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AA+F1D,wBAAsB,SAAS,CAAC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAwC5G"}