attocode 0.1.9 → 0.2.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.
Files changed (118) hide show
  1. package/CHANGELOG.md +121 -1
  2. package/dist/src/adapters.d.ts.map +1 -1
  3. package/dist/src/adapters.js +1 -0
  4. package/dist/src/adapters.js.map +1 -1
  5. package/dist/src/agent.d.ts +5 -0
  6. package/dist/src/agent.d.ts.map +1 -1
  7. package/dist/src/agent.js +138 -31
  8. package/dist/src/agent.js.map +1 -1
  9. package/dist/src/cli.d.ts +6 -0
  10. package/dist/src/cli.d.ts.map +1 -1
  11. package/dist/src/cli.js +37 -0
  12. package/dist/src/cli.js.map +1 -1
  13. package/dist/src/commands/init-commands.d.ts.map +1 -1
  14. package/dist/src/commands/init-commands.js +57 -0
  15. package/dist/src/commands/init-commands.js.map +1 -1
  16. package/dist/src/core/protocol/types.d.ts +14 -14
  17. package/dist/src/defaults.d.ts.map +1 -1
  18. package/dist/src/defaults.js +1 -0
  19. package/dist/src/defaults.js.map +1 -1
  20. package/dist/src/integrations/economics.d.ts +9 -0
  21. package/dist/src/integrations/economics.d.ts.map +1 -1
  22. package/dist/src/integrations/economics.js +25 -0
  23. package/dist/src/integrations/economics.js.map +1 -1
  24. package/dist/src/integrations/index.d.ts +2 -1
  25. package/dist/src/integrations/index.d.ts.map +1 -1
  26. package/dist/src/integrations/index.js +3 -1
  27. package/dist/src/integrations/index.js.map +1 -1
  28. package/dist/src/integrations/learning-store.d.ts.map +1 -1
  29. package/dist/src/integrations/learning-store.js +6 -0
  30. package/dist/src/integrations/learning-store.js.map +1 -1
  31. package/dist/src/integrations/smart-decomposer.d.ts.map +1 -1
  32. package/dist/src/integrations/smart-decomposer.js +7 -0
  33. package/dist/src/integrations/smart-decomposer.js.map +1 -1
  34. package/dist/src/integrations/swarm/index.d.ts +29 -0
  35. package/dist/src/integrations/swarm/index.d.ts.map +1 -0
  36. package/dist/src/integrations/swarm/index.js +29 -0
  37. package/dist/src/integrations/swarm/index.js.map +1 -0
  38. package/dist/src/integrations/swarm/model-selector.d.ts +55 -0
  39. package/dist/src/integrations/swarm/model-selector.d.ts.map +1 -0
  40. package/dist/src/integrations/swarm/model-selector.js +342 -0
  41. package/dist/src/integrations/swarm/model-selector.js.map +1 -0
  42. package/dist/src/integrations/swarm/request-throttle.d.ts +112 -0
  43. package/dist/src/integrations/swarm/request-throttle.d.ts.map +1 -0
  44. package/dist/src/integrations/swarm/request-throttle.js +263 -0
  45. package/dist/src/integrations/swarm/request-throttle.js.map +1 -0
  46. package/dist/src/integrations/swarm/swarm-budget.d.ts +31 -0
  47. package/dist/src/integrations/swarm/swarm-budget.d.ts.map +1 -0
  48. package/dist/src/integrations/swarm/swarm-budget.js +36 -0
  49. package/dist/src/integrations/swarm/swarm-budget.js.map +1 -0
  50. package/dist/src/integrations/swarm/swarm-config-loader.d.ts +51 -0
  51. package/dist/src/integrations/swarm/swarm-config-loader.d.ts.map +1 -0
  52. package/dist/src/integrations/swarm/swarm-config-loader.js +458 -0
  53. package/dist/src/integrations/swarm/swarm-config-loader.js.map +1 -0
  54. package/dist/src/integrations/swarm/swarm-event-bridge.d.ts +145 -0
  55. package/dist/src/integrations/swarm/swarm-event-bridge.d.ts.map +1 -0
  56. package/dist/src/integrations/swarm/swarm-event-bridge.js +443 -0
  57. package/dist/src/integrations/swarm/swarm-event-bridge.js.map +1 -0
  58. package/dist/src/integrations/swarm/swarm-events.d.ts +157 -0
  59. package/dist/src/integrations/swarm/swarm-events.d.ts.map +1 -0
  60. package/dist/src/integrations/swarm/swarm-events.js +81 -0
  61. package/dist/src/integrations/swarm/swarm-events.js.map +1 -0
  62. package/dist/src/integrations/swarm/swarm-orchestrator.d.ts +166 -0
  63. package/dist/src/integrations/swarm/swarm-orchestrator.d.ts.map +1 -0
  64. package/dist/src/integrations/swarm/swarm-orchestrator.js +1114 -0
  65. package/dist/src/integrations/swarm/swarm-orchestrator.js.map +1 -0
  66. package/dist/src/integrations/swarm/swarm-quality-gate.d.ts +29 -0
  67. package/dist/src/integrations/swarm/swarm-quality-gate.d.ts.map +1 -0
  68. package/dist/src/integrations/swarm/swarm-quality-gate.js +85 -0
  69. package/dist/src/integrations/swarm/swarm-quality-gate.js.map +1 -0
  70. package/dist/src/integrations/swarm/swarm-state-store.d.ts +31 -0
  71. package/dist/src/integrations/swarm/swarm-state-store.d.ts.map +1 -0
  72. package/dist/src/integrations/swarm/swarm-state-store.js +91 -0
  73. package/dist/src/integrations/swarm/swarm-state-store.js.map +1 -0
  74. package/dist/src/integrations/swarm/task-queue.d.ts +128 -0
  75. package/dist/src/integrations/swarm/task-queue.d.ts.map +1 -0
  76. package/dist/src/integrations/swarm/task-queue.js +379 -0
  77. package/dist/src/integrations/swarm/task-queue.js.map +1 -0
  78. package/dist/src/integrations/swarm/types.d.ts +425 -0
  79. package/dist/src/integrations/swarm/types.d.ts.map +1 -0
  80. package/dist/src/integrations/swarm/types.js +96 -0
  81. package/dist/src/integrations/swarm/types.js.map +1 -0
  82. package/dist/src/integrations/swarm/worker-pool.d.ts +96 -0
  83. package/dist/src/integrations/swarm/worker-pool.d.ts.map +1 -0
  84. package/dist/src/integrations/swarm/worker-pool.js +269 -0
  85. package/dist/src/integrations/swarm/worker-pool.js.map +1 -0
  86. package/dist/src/main.js +88 -0
  87. package/dist/src/main.js.map +1 -1
  88. package/dist/src/modes/repl.d.ts +1 -0
  89. package/dist/src/modes/repl.d.ts.map +1 -1
  90. package/dist/src/modes/repl.js +2 -1
  91. package/dist/src/modes/repl.js.map +1 -1
  92. package/dist/src/modes/tui.d.ts +1 -0
  93. package/dist/src/modes/tui.d.ts.map +1 -1
  94. package/dist/src/modes/tui.js +3 -1
  95. package/dist/src/modes/tui.js.map +1 -1
  96. package/dist/src/providers/adapters/openrouter.d.ts +14 -0
  97. package/dist/src/providers/adapters/openrouter.d.ts.map +1 -1
  98. package/dist/src/providers/adapters/openrouter.js +53 -1
  99. package/dist/src/providers/adapters/openrouter.js.map +1 -1
  100. package/dist/src/providers/resilient-fetch.d.ts +2 -0
  101. package/dist/src/providers/resilient-fetch.d.ts.map +1 -1
  102. package/dist/src/providers/resilient-fetch.js +27 -3
  103. package/dist/src/providers/resilient-fetch.js.map +1 -1
  104. package/dist/src/providers/types.d.ts +11 -0
  105. package/dist/src/providers/types.d.ts.map +1 -1
  106. package/dist/src/providers/types.js.map +1 -1
  107. package/dist/src/tools/bash.d.ts +2 -2
  108. package/dist/src/tools/file.d.ts +4 -4
  109. package/dist/src/tui/app.d.ts.map +1 -1
  110. package/dist/src/tui/app.js +75 -4
  111. package/dist/src/tui/app.js.map +1 -1
  112. package/dist/src/tui/components/SwarmStatusPanel.d.ts +27 -0
  113. package/dist/src/tui/components/SwarmStatusPanel.d.ts.map +1 -0
  114. package/dist/src/tui/components/SwarmStatusPanel.js +108 -0
  115. package/dist/src/tui/components/SwarmStatusPanel.js.map +1 -0
  116. package/dist/src/types.d.ts +3 -1
  117. package/dist/src/types.d.ts.map +1 -1
  118. package/package.json +1 -1
@@ -0,0 +1,81 @@
1
+ /**
2
+ * Swarm Event Types
3
+ *
4
+ * Event definitions for swarm mode observability and TUI integration.
5
+ * These events are emitted through the existing agent event system.
6
+ */
7
+ /**
8
+ * Type guard for swarm events.
9
+ */
10
+ export function isSwarmEvent(event) {
11
+ return event.type.startsWith('swarm.');
12
+ }
13
+ /**
14
+ * Format a swarm event for log display.
15
+ */
16
+ export function formatSwarmEvent(event) {
17
+ switch (event.type) {
18
+ case 'swarm.start':
19
+ return `Swarm started: ${event.taskCount} tasks in ${event.waveCount} waves (max ${event.config.maxConcurrency} concurrent)`;
20
+ case 'swarm.tasks.loaded':
21
+ return `Tasks loaded: ${event.tasks.length} tasks with dependency graph`;
22
+ case 'swarm.wave.start':
23
+ return `Wave ${event.wave}/${event.totalWaves}: dispatching ${event.taskCount} tasks`;
24
+ case 'swarm.wave.complete':
25
+ return `Wave ${event.wave}/${event.totalWaves} complete: ${event.completed} done, ${event.failed} failed, ${event.skipped} skipped`;
26
+ case 'swarm.task.dispatched':
27
+ return `Task ${event.taskId} → ${event.workerName} (${event.model}): ${event.description.slice(0, 80)}`;
28
+ case 'swarm.task.completed':
29
+ return `Task ${event.taskId} ${event.success ? 'completed' : 'failed'} (${event.tokensUsed} tokens, $${event.costUsed.toFixed(4)}, ${(event.durationMs / 1000).toFixed(1)}s)`;
30
+ case 'swarm.task.failed':
31
+ return `Task ${event.taskId} failed (attempt ${event.attempt}/${event.maxAttempts}): ${event.error}${event.willRetry ? ' — will retry' : ''}`;
32
+ case 'swarm.task.skipped':
33
+ return `Task ${event.taskId} skipped: ${event.reason}`;
34
+ case 'swarm.quality.rejected':
35
+ return `Task ${event.taskId} rejected (score ${event.score}/5): ${event.feedback}`;
36
+ case 'swarm.budget.update':
37
+ return `Budget: ${(event.tokensUsed / 1000).toFixed(0)}k/${(event.tokensTotal / 1000).toFixed(0)}k tokens, $${event.costUsed.toFixed(4)}/$${event.costTotal.toFixed(2)}`;
38
+ case 'swarm.complete':
39
+ return `Swarm complete: ${event.stats.completedTasks}/${event.stats.totalTasks} tasks, ${(event.stats.totalTokens / 1000).toFixed(0)}k tokens, $${event.stats.totalCost.toFixed(4)}`;
40
+ case 'swarm.status':
41
+ return `Swarm: wave ${event.status.currentWave}/${event.status.totalWaves}, ${event.status.activeWorkers.length} workers active`;
42
+ case 'swarm.error':
43
+ return `Swarm error in ${event.phase}: ${event.error}`;
44
+ // V2 events
45
+ case 'swarm.plan.complete':
46
+ return `Plan created: ${event.criteriaCount} acceptance criteria${event.hasIntegrationPlan ? ', integration test plan ready' : ''}`;
47
+ case 'swarm.review.start':
48
+ return `Reviewing wave ${event.wave} outputs...`;
49
+ case 'swarm.review.complete':
50
+ return `Wave ${event.wave} review: ${event.assessment}${event.fixupCount > 0 ? ` (${event.fixupCount} fix-up tasks spawned)` : ''}`;
51
+ case 'swarm.verify.start':
52
+ return `Running ${event.stepCount} verification steps...`;
53
+ case 'swarm.verify.step':
54
+ return `Verify step ${event.stepIndex + 1}: ${event.description} — ${event.passed ? 'PASS' : 'FAIL'}`;
55
+ case 'swarm.verify.complete':
56
+ return `Verification ${event.result.passed ? 'PASSED' : 'FAILED'}: ${event.result.summary}`;
57
+ case 'swarm.worker.stuck':
58
+ return `Worker stuck: task ${event.taskId} repeated ${event.repeatedTool} ${event.count}x`;
59
+ case 'swarm.model.failover':
60
+ return `Model failover: task ${event.taskId} ${event.fromModel} → ${event.toModel} (${event.reason})`;
61
+ case 'swarm.model.health':
62
+ return `Model health: ${event.record.model} — ${event.record.healthy ? 'healthy' : 'unhealthy'} (${event.record.successes}ok/${event.record.failures}fail/${event.record.rateLimits}rl)`;
63
+ case 'swarm.state.checkpoint':
64
+ return `Checkpoint saved: session ${event.sessionId}, wave ${event.wave}`;
65
+ case 'swarm.state.resume':
66
+ return `Resuming session ${event.sessionId} from wave ${event.fromWave}`;
67
+ case 'swarm.orchestrator.decision':
68
+ return `Decision [${event.decision.phase}]: ${event.decision.decision}`;
69
+ case 'swarm.fixup.spawned':
70
+ return `Fix-up task ${event.taskId} → fixes ${event.fixesTaskId}: ${event.description.slice(0, 80)}`;
71
+ case 'swarm.circuit.open':
72
+ return `Circuit breaker OPEN: ${event.recentCount} rate limits in 30s, pausing dispatch for ${(event.pauseMs / 1000).toFixed(0)}s`;
73
+ case 'swarm.circuit.closed':
74
+ return `Circuit breaker CLOSED: dispatch resumed`;
75
+ case 'swarm.role.action': {
76
+ const roleLabel = event.role.charAt(0).toUpperCase() + event.role.slice(1);
77
+ return `${roleLabel} ${event.action}: ${event.model.split('/').pop() ?? event.model}${event.taskId ? ` (task ${event.taskId})` : ''}`;
78
+ }
79
+ }
80
+ }
81
+ //# sourceMappingURL=swarm-events.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm-events.js","sourceRoot":"","sources":["../../../../src/integrations/swarm/swarm-events.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAuCH;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,KAAuB;IAClD,OAAO,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;AACzC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAiB;IAChD,QAAQ,KAAK,CAAC,IAAI,EAAE,CAAC;QACnB,KAAK,aAAa;YAChB,OAAO,kBAAkB,KAAK,CAAC,SAAS,aAAa,KAAK,CAAC,SAAS,eAAe,KAAK,CAAC,MAAM,CAAC,cAAc,cAAc,CAAC;QAC/H,KAAK,oBAAoB;YACvB,OAAO,iBAAiB,KAAK,CAAC,KAAK,CAAC,MAAM,8BAA8B,CAAC;QAC3E,KAAK,kBAAkB;YACrB,OAAO,QAAQ,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU,iBAAiB,KAAK,CAAC,SAAS,QAAQ,CAAC;QACxF,KAAK,qBAAqB;YACxB,OAAO,QAAQ,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,UAAU,cAAc,KAAK,CAAC,SAAS,UAAU,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,OAAO,UAAU,CAAC;QACtI,KAAK,uBAAuB;YAC1B,OAAO,QAAQ,KAAK,CAAC,MAAM,MAAM,KAAK,CAAC,UAAU,KAAK,KAAK,CAAC,KAAK,MAAM,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QAC1G,KAAK,sBAAsB;YACzB,OAAO,QAAQ,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,UAAU,aAAa,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;QAChL,KAAK,mBAAmB;YACtB,OAAO,QAAQ,KAAK,CAAC,MAAM,oBAAoB,KAAK,CAAC,OAAO,IAAI,KAAK,CAAC,WAAW,MAAM,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QAChJ,KAAK,oBAAoB;YACvB,OAAO,QAAQ,KAAK,CAAC,MAAM,aAAa,KAAK,CAAC,MAAM,EAAE,CAAC;QACzD,KAAK,wBAAwB;YAC3B,OAAO,QAAQ,KAAK,CAAC,MAAM,oBAAoB,KAAK,CAAC,KAAK,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;QACrF,KAAK,qBAAqB;YACxB,OAAO,WAAW,CAAC,KAAK,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3K,KAAK,gBAAgB;YACnB,OAAO,mBAAmB,KAAK,CAAC,KAAK,CAAC,cAAc,IAAI,KAAK,CAAC,KAAK,CAAC,UAAU,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACvL,KAAK,cAAc;YACjB,OAAO,eAAe,KAAK,CAAC,MAAM,CAAC,WAAW,IAAI,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,KAAK,CAAC,MAAM,CAAC,aAAa,CAAC,MAAM,iBAAiB,CAAC;QACnI,KAAK,aAAa;YAChB,OAAO,kBAAkB,KAAK,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;QACzD,YAAY;QACZ,KAAK,qBAAqB;YACxB,OAAO,iBAAiB,KAAK,CAAC,aAAa,uBAAuB,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,+BAA+B,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACtI,KAAK,oBAAoB;YACvB,OAAO,kBAAkB,KAAK,CAAC,IAAI,aAAa,CAAC;QACnD,KAAK,uBAAuB;YAC1B,OAAO,QAAQ,KAAK,CAAC,IAAI,YAAY,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,UAAU,wBAAwB,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACtI,KAAK,oBAAoB;YACvB,OAAO,WAAW,KAAK,CAAC,SAAS,wBAAwB,CAAC;QAC5D,KAAK,mBAAmB;YACtB,OAAO,eAAe,KAAK,CAAC,SAAS,GAAG,CAAC,KAAK,KAAK,CAAC,WAAW,MAAM,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;QACxG,KAAK,uBAAuB;YAC1B,OAAO,gBAAgB,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ,KAAK,KAAK,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;QAC9F,KAAK,oBAAoB;YACvB,OAAO,sBAAsB,KAAK,CAAC,MAAM,aAAa,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,KAAK,GAAG,CAAC;QAC7F,KAAK,sBAAsB;YACzB,OAAO,wBAAwB,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,SAAS,MAAM,KAAK,CAAC,OAAO,KAAK,KAAK,CAAC,MAAM,GAAG,CAAC;QACxG,KAAK,oBAAoB;YACvB,OAAO,iBAAiB,KAAK,CAAC,MAAM,CAAC,KAAK,MAAM,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,WAAW,KAAK,KAAK,CAAC,MAAM,CAAC,SAAS,MAAM,KAAK,CAAC,MAAM,CAAC,QAAQ,QAAQ,KAAK,CAAC,MAAM,CAAC,UAAU,KAAK,CAAC;QAC3L,KAAK,wBAAwB;YAC3B,OAAO,6BAA6B,KAAK,CAAC,SAAS,UAAU,KAAK,CAAC,IAAI,EAAE,CAAC;QAC5E,KAAK,oBAAoB;YACvB,OAAO,oBAAoB,KAAK,CAAC,SAAS,cAAc,KAAK,CAAC,QAAQ,EAAE,CAAC;QAC3E,KAAK,6BAA6B;YAChC,OAAO,aAAa,KAAK,CAAC,QAAQ,CAAC,KAAK,MAAM,KAAK,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAC1E,KAAK,qBAAqB;YACxB,OAAO,eAAe,KAAK,CAAC,MAAM,YAAY,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,CAAC;QACvG,KAAK,oBAAoB;YACvB,OAAO,yBAAyB,KAAK,CAAC,WAAW,6CAA6C,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;QACrI,KAAK,sBAAsB;YACzB,OAAO,0CAA0C,CAAC;QACpD,KAAK,mBAAmB,CAAC,CAAC,CAAC;YACzB,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YAC3E,OAAO,GAAG,SAAS,IAAI,KAAK,CAAC,MAAM,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,UAAU,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC;QACxI,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Swarm Orchestrator V2
3
+ *
4
+ * The main orchestration loop that ties together:
5
+ * - SmartDecomposer for task breakdown
6
+ * - SwarmTaskQueue for wave-based scheduling
7
+ * - SwarmWorkerPool for concurrent worker dispatch
8
+ * - SwarmQualityGate for output validation
9
+ * - ResultSynthesizer for merging outputs
10
+ *
11
+ * V2 additions:
12
+ * - Planning phase with acceptance criteria
13
+ * - Post-wave review with fix-up task generation
14
+ * - Integration verification with bash commands
15
+ * - Model health tracking and failover
16
+ * - State persistence and resume
17
+ * - Orchestrator decision logging
18
+ */
19
+ import type { LLMProvider } from '../../providers/types.js';
20
+ import type { AgentRegistry } from '../agent-registry.js';
21
+ import type { SharedBlackboard } from '../shared-blackboard.js';
22
+ import type { SwarmConfig, SwarmExecutionResult, SwarmStatus } from './types.js';
23
+ import { type SwarmBudgetPool } from './swarm-budget.js';
24
+ import { type SpawnAgentFn } from './worker-pool.js';
25
+ import type { SwarmEvent } from './swarm-events.js';
26
+ export type SwarmEventListener = (event: SwarmEvent) => void;
27
+ export declare class SwarmOrchestrator {
28
+ private config;
29
+ private provider;
30
+ private blackboard?;
31
+ private taskQueue;
32
+ private budgetPool;
33
+ private workerPool;
34
+ private _decomposer;
35
+ private synthesizer;
36
+ private listeners;
37
+ private errors;
38
+ private cancelled;
39
+ private currentPhase;
40
+ private totalTokens;
41
+ private totalCost;
42
+ private qualityRejections;
43
+ private retries;
44
+ private startTime;
45
+ private modelUsage;
46
+ private plan?;
47
+ private waveReviews;
48
+ private verificationResult?;
49
+ private orchestratorDecisions;
50
+ private healthTracker;
51
+ private stateStore?;
52
+ private spawnAgentFn;
53
+ private recentRateLimits;
54
+ private circuitBreakerUntil;
55
+ private static readonly CIRCUIT_BREAKER_WINDOW_MS;
56
+ private static readonly CIRCUIT_BREAKER_THRESHOLD;
57
+ private static readonly CIRCUIT_BREAKER_PAUSE_MS;
58
+ constructor(config: SwarmConfig, provider: LLMProvider, agentRegistry: AgentRegistry, spawnAgentFn: SpawnAgentFn, blackboard?: SharedBlackboard);
59
+ /**
60
+ * Get the swarm budget pool (used by parent agent to override its own pool).
61
+ */
62
+ getBudgetPool(): SwarmBudgetPool;
63
+ /**
64
+ * Subscribe to swarm events.
65
+ */
66
+ subscribe(listener: SwarmEventListener): () => void;
67
+ /**
68
+ * Emit a swarm event to all listeners.
69
+ */
70
+ private emit;
71
+ /**
72
+ * Execute the full swarm pipeline for a task.
73
+ *
74
+ * V2 pipeline:
75
+ * 1. Check for resume
76
+ * 2. Decompose
77
+ * 3. Plan (acceptance criteria + verification plan)
78
+ * 4. Schedule into waves
79
+ * 5. Execute waves with review
80
+ * 6. Verify integration
81
+ * 7. Fix-up loop if verification fails
82
+ * 8. Synthesize
83
+ * 9. Checkpoint (final)
84
+ */
85
+ execute(task: string): Promise<SwarmExecutionResult>;
86
+ /**
87
+ * Phase 1: Decompose the task into subtasks.
88
+ */
89
+ private decompose;
90
+ /**
91
+ * Create acceptance criteria and integration test plan.
92
+ * Graceful: if planning fails, continues without criteria.
93
+ */
94
+ private planExecution;
95
+ /**
96
+ * Review completed wave outputs against acceptance criteria.
97
+ * May spawn fix-up tasks for issues found.
98
+ */
99
+ private reviewWave;
100
+ /**
101
+ * Run integration verification steps.
102
+ */
103
+ private verifyIntegration;
104
+ /**
105
+ * Handle verification failure: create fix-up tasks and re-verify.
106
+ */
107
+ private handleVerificationFailure;
108
+ /**
109
+ * Resume execution from a saved checkpoint.
110
+ */
111
+ private resumeExecution;
112
+ /**
113
+ * Execute all waves in sequence, with review after each.
114
+ */
115
+ private executeWaves;
116
+ /**
117
+ * Execute a single wave's tasks with concurrency control.
118
+ */
119
+ private executeWave;
120
+ /**
121
+ * Dispatch a single task to a worker.
122
+ */
123
+ private dispatchTask;
124
+ /**
125
+ * Handle a completed task: quality gate, bookkeeping, retry logic, model health, failover.
126
+ */
127
+ private handleTaskCompletion;
128
+ /**
129
+ * Phase 4: Synthesize all completed task outputs.
130
+ */
131
+ private synthesize;
132
+ /**
133
+ * Get live status for TUI.
134
+ */
135
+ getStatus(): SwarmStatus;
136
+ /**
137
+ * Cancel the swarm execution.
138
+ * M6: Wait for active workers before cleanup.
139
+ */
140
+ cancel(): Promise<void>;
141
+ /**
142
+ * Record a rate limit hit and check if the circuit breaker should trip.
143
+ */
144
+ private recordRateLimit;
145
+ /**
146
+ * Check if the circuit breaker is currently active.
147
+ * Returns true if dispatch should be paused.
148
+ */
149
+ private isCircuitBreakerActive;
150
+ private logDecision;
151
+ private checkpoint;
152
+ private emitBudgetUpdate;
153
+ private emitStatusUpdate;
154
+ private buildStats;
155
+ private buildSummary;
156
+ private buildErrorResult;
157
+ /** Parse JSON from LLM response, handling markdown code blocks. */
158
+ private parseJSON;
159
+ /** Get a model health summary for emitting events. */
160
+ private getModelHealthSummary;
161
+ }
162
+ /**
163
+ * Factory function.
164
+ */
165
+ export declare function createSwarmOrchestrator(config: SwarmConfig, provider: LLMProvider, agentRegistry: AgentRegistry, spawnAgentFn: SpawnAgentFn, blackboard?: SharedBlackboard): SwarmOrchestrator;
166
+ //# sourceMappingURL=swarm-orchestrator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"swarm-orchestrator.d.ts","sourceRoot":"","sources":["../../../../src/integrations/swarm/swarm-orchestrator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAC;AAC5D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAC1D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGhE,OAAO,KAAK,EACV,WAAW,EACX,oBAAoB,EAGpB,WAAW,EAQZ,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAyB,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAChF,OAAO,EAA0C,KAAK,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAI7F,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAIpD,MAAM,MAAM,kBAAkB,GAAG,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;AAI7D,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,UAAU,CAAC,CAAmB;IAEtC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,WAAW,CAA4C;IAC/D,OAAO,CAAC,WAAW,CAA8C;IAEjE,OAAO,CAAC,SAAS,CAA4B;IAC7C,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,SAAS,CAAS;IAG1B,OAAO,CAAC,YAAY,CAAuC;IAG3D,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,UAAU,CAAsE;IAGxF,OAAO,CAAC,IAAI,CAAC,CAAY;IACzB,OAAO,CAAC,WAAW,CAA0B;IAC7C,OAAO,CAAC,kBAAkB,CAAC,CAAqB;IAChD,OAAO,CAAC,qBAAqB,CAA8B;IAC3D,OAAO,CAAC,aAAa,CAAqB;IAC1C,OAAO,CAAC,UAAU,CAAC,CAAkB;IACrC,OAAO,CAAC,YAAY,CAAe;IAGnC,OAAO,CAAC,gBAAgB,CAAgB;IACxC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAU;IAC3D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAK;IACtD,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,wBAAwB,CAAU;gBAGxD,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,UAAU,CAAC,EAAE,gBAAgB;IA+E/B;;OAEG;IACH,aAAa,IAAI,eAAe;IAIhC;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAQnD;;OAEG;IACH,OAAO,CAAC,IAAI;IAUZ;;;;;;;;;;;;;OAaG;IACG,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IA+F1D;;OAEG;YACW,SAAS;IAuBvB;;;OAGG;YACW,aAAa;IAyE3B;;;OAGG;YACW,UAAU;IAgHxB;;OAEG;YACW,iBAAiB;IAiD/B;;OAEG;YACW,yBAAyB;IA6DvC;;OAEG;YACW,eAAe;IAkE7B;;OAEG;YACW,YAAY;IAiD1B;;OAEG;YACW,WAAW;IAiEzB;;OAEG;YACW,YAAY;IA8C1B;;OAEG;YACW,oBAAoB;IAoKlC;;OAEG;YACW,UAAU;IAsBxB;;OAEG;IAEH,SAAS,IAAI,WAAW;IAkBxB;;;OAGG;IACG,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ7B;;OAEG;IACH,OAAO,CAAC,eAAe;IAoBvB;;;OAGG;IACH,OAAO,CAAC,sBAAsB;IAY9B,OAAO,CAAC,WAAW;IAanB,OAAO,CAAC,UAAU;IAwClB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,UAAU;IAiBlB,OAAO,CAAC,YAAY;IAuBpB,OAAO,CAAC,gBAAgB;IAUxB,mEAAmE;IACnE,OAAO,CAAC,SAAS;IAcjB,sDAAsD;IACtD,OAAO,CAAC,qBAAqB;CAO9B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,WAAW,EACnB,QAAQ,EAAE,WAAW,EACrB,aAAa,EAAE,aAAa,EAC5B,YAAY,EAAE,YAAY,EAC1B,UAAU,CAAC,EAAE,gBAAgB,GAC5B,iBAAiB,CAEnB"}