attocode 0.2.2 → 0.2.3

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 (152) hide show
  1. package/CHANGELOG.md +103 -3
  2. package/dist/src/agent.d.ts +6 -0
  3. package/dist/src/agent.d.ts.map +1 -1
  4. package/dist/src/agent.js +504 -49
  5. package/dist/src/agent.js.map +1 -1
  6. package/dist/src/cli.d.ts.map +1 -1
  7. package/dist/src/cli.js +23 -2
  8. package/dist/src/cli.js.map +1 -1
  9. package/dist/src/core/protocol/types.d.ts +8 -8
  10. package/dist/src/defaults.d.ts +6 -1
  11. package/dist/src/defaults.d.ts.map +1 -1
  12. package/dist/src/defaults.js +36 -2
  13. package/dist/src/defaults.js.map +1 -1
  14. package/dist/src/integrations/agent-registry.d.ts +11 -0
  15. package/dist/src/integrations/agent-registry.d.ts.map +1 -1
  16. package/dist/src/integrations/agent-registry.js.map +1 -1
  17. package/dist/src/integrations/auto-compaction.d.ts.map +1 -1
  18. package/dist/src/integrations/auto-compaction.js +5 -1
  19. package/dist/src/integrations/auto-compaction.js.map +1 -1
  20. package/dist/src/integrations/bash-policy.d.ts +33 -0
  21. package/dist/src/integrations/bash-policy.d.ts.map +1 -0
  22. package/dist/src/integrations/bash-policy.js +142 -0
  23. package/dist/src/integrations/bash-policy.js.map +1 -0
  24. package/dist/src/integrations/codebase-context.d.ts +5 -0
  25. package/dist/src/integrations/codebase-context.d.ts.map +1 -1
  26. package/dist/src/integrations/codebase-context.js +33 -0
  27. package/dist/src/integrations/codebase-context.js.map +1 -1
  28. package/dist/src/integrations/delegation-protocol.js +2 -2
  29. package/dist/src/integrations/delegation-protocol.js.map +1 -1
  30. package/dist/src/integrations/economics.d.ts +42 -0
  31. package/dist/src/integrations/economics.d.ts.map +1 -1
  32. package/dist/src/integrations/economics.js +130 -14
  33. package/dist/src/integrations/economics.js.map +1 -1
  34. package/dist/src/integrations/hierarchical-config.d.ts.map +1 -1
  35. package/dist/src/integrations/hierarchical-config.js +17 -0
  36. package/dist/src/integrations/hierarchical-config.js.map +1 -1
  37. package/dist/src/integrations/index.d.ts +3 -1
  38. package/dist/src/integrations/index.d.ts.map +1 -1
  39. package/dist/src/integrations/index.js +3 -1
  40. package/dist/src/integrations/index.js.map +1 -1
  41. package/dist/src/integrations/policy-engine.d.ts +55 -0
  42. package/dist/src/integrations/policy-engine.d.ts.map +1 -0
  43. package/dist/src/integrations/policy-engine.js +247 -0
  44. package/dist/src/integrations/policy-engine.js.map +1 -0
  45. package/dist/src/integrations/safety.d.ts +5 -4
  46. package/dist/src/integrations/safety.d.ts.map +1 -1
  47. package/dist/src/integrations/safety.js +32 -7
  48. package/dist/src/integrations/safety.js.map +1 -1
  49. package/dist/src/integrations/sandbox/basic.d.ts +7 -0
  50. package/dist/src/integrations/sandbox/basic.d.ts.map +1 -1
  51. package/dist/src/integrations/sandbox/basic.js +27 -2
  52. package/dist/src/integrations/sandbox/basic.js.map +1 -1
  53. package/dist/src/integrations/sandbox/index.d.ts +6 -0
  54. package/dist/src/integrations/sandbox/index.d.ts.map +1 -1
  55. package/dist/src/integrations/sandbox/index.js +3 -0
  56. package/dist/src/integrations/sandbox/index.js.map +1 -1
  57. package/dist/src/integrations/sandbox/landlock.d.ts.map +1 -1
  58. package/dist/src/integrations/sandbox/landlock.js +3 -0
  59. package/dist/src/integrations/sandbox/landlock.js.map +1 -1
  60. package/dist/src/integrations/self-improvement.d.ts.map +1 -1
  61. package/dist/src/integrations/self-improvement.js +12 -0
  62. package/dist/src/integrations/self-improvement.js.map +1 -1
  63. package/dist/src/integrations/smart-decomposer.d.ts +18 -1
  64. package/dist/src/integrations/smart-decomposer.d.ts.map +1 -1
  65. package/dist/src/integrations/smart-decomposer.js +72 -0
  66. package/dist/src/integrations/smart-decomposer.js.map +1 -1
  67. package/dist/src/integrations/swarm/index.d.ts +1 -1
  68. package/dist/src/integrations/swarm/index.d.ts.map +1 -1
  69. package/dist/src/integrations/swarm/index.js.map +1 -1
  70. package/dist/src/integrations/swarm/model-selector.d.ts +15 -0
  71. package/dist/src/integrations/swarm/model-selector.d.ts.map +1 -1
  72. package/dist/src/integrations/swarm/model-selector.js +99 -20
  73. package/dist/src/integrations/swarm/model-selector.js.map +1 -1
  74. package/dist/src/integrations/swarm/swarm-budget.d.ts +4 -0
  75. package/dist/src/integrations/swarm/swarm-budget.d.ts.map +1 -1
  76. package/dist/src/integrations/swarm/swarm-budget.js +6 -0
  77. package/dist/src/integrations/swarm/swarm-budget.js.map +1 -1
  78. package/dist/src/integrations/swarm/swarm-config-loader.d.ts.map +1 -1
  79. package/dist/src/integrations/swarm/swarm-config-loader.js +154 -7
  80. package/dist/src/integrations/swarm/swarm-config-loader.js.map +1 -1
  81. package/dist/src/integrations/swarm/swarm-event-bridge.d.ts +12 -1
  82. package/dist/src/integrations/swarm/swarm-event-bridge.d.ts.map +1 -1
  83. package/dist/src/integrations/swarm/swarm-event-bridge.js +170 -23
  84. package/dist/src/integrations/swarm/swarm-event-bridge.js.map +1 -1
  85. package/dist/src/integrations/swarm/swarm-events.d.ts +55 -1
  86. package/dist/src/integrations/swarm/swarm-events.d.ts.map +1 -1
  87. package/dist/src/integrations/swarm/swarm-events.js +22 -5
  88. package/dist/src/integrations/swarm/swarm-events.js.map +1 -1
  89. package/dist/src/integrations/swarm/swarm-orchestrator.d.ts +124 -8
  90. package/dist/src/integrations/swarm/swarm-orchestrator.d.ts.map +1 -1
  91. package/dist/src/integrations/swarm/swarm-orchestrator.js +1668 -96
  92. package/dist/src/integrations/swarm/swarm-orchestrator.js.map +1 -1
  93. package/dist/src/integrations/swarm/swarm-quality-gate.d.ts +83 -2
  94. package/dist/src/integrations/swarm/swarm-quality-gate.d.ts.map +1 -1
  95. package/dist/src/integrations/swarm/swarm-quality-gate.js +278 -19
  96. package/dist/src/integrations/swarm/swarm-quality-gate.js.map +1 -1
  97. package/dist/src/integrations/swarm/task-queue.d.ts +44 -0
  98. package/dist/src/integrations/swarm/task-queue.d.ts.map +1 -1
  99. package/dist/src/integrations/swarm/task-queue.js +274 -11
  100. package/dist/src/integrations/swarm/task-queue.js.map +1 -1
  101. package/dist/src/integrations/swarm/types.d.ts +210 -13
  102. package/dist/src/integrations/swarm/types.d.ts.map +1 -1
  103. package/dist/src/integrations/swarm/types.js +61 -8
  104. package/dist/src/integrations/swarm/types.js.map +1 -1
  105. package/dist/src/integrations/swarm/worker-pool.d.ts +11 -4
  106. package/dist/src/integrations/swarm/worker-pool.d.ts.map +1 -1
  107. package/dist/src/integrations/swarm/worker-pool.js +173 -43
  108. package/dist/src/integrations/swarm/worker-pool.js.map +1 -1
  109. package/dist/src/integrations/tool-recommendation.d.ts +7 -4
  110. package/dist/src/integrations/tool-recommendation.d.ts.map +1 -1
  111. package/dist/src/integrations/tool-recommendation.js +58 -5
  112. package/dist/src/integrations/tool-recommendation.js.map +1 -1
  113. package/dist/src/integrations/work-log.js +4 -4
  114. package/dist/src/integrations/work-log.js.map +1 -1
  115. package/dist/src/main.js +26 -1
  116. package/dist/src/main.js.map +1 -1
  117. package/dist/src/modes/repl.d.ts.map +1 -1
  118. package/dist/src/modes/repl.js +10 -4
  119. package/dist/src/modes/repl.js.map +1 -1
  120. package/dist/src/modes/tui.d.ts.map +1 -1
  121. package/dist/src/modes/tui.js +5 -0
  122. package/dist/src/modes/tui.js.map +1 -1
  123. package/dist/src/modes.d.ts.map +1 -1
  124. package/dist/src/modes.js +4 -27
  125. package/dist/src/modes.js.map +1 -1
  126. package/dist/src/tools/agent.d.ts.map +1 -1
  127. package/dist/src/tools/agent.js +11 -2
  128. package/dist/src/tools/agent.js.map +1 -1
  129. package/dist/src/tools/bash.d.ts +3 -3
  130. package/dist/src/tools/coercion.d.ts +6 -0
  131. package/dist/src/tools/coercion.d.ts.map +1 -1
  132. package/dist/src/tools/coercion.js +13 -0
  133. package/dist/src/tools/coercion.js.map +1 -1
  134. package/dist/src/tools/file.d.ts +2 -2
  135. package/dist/src/tools/file.js +2 -2
  136. package/dist/src/tools/file.js.map +1 -1
  137. package/dist/src/tools/permission.d.ts.map +1 -1
  138. package/dist/src/tools/permission.js +4 -111
  139. package/dist/src/tools/permission.js.map +1 -1
  140. package/dist/src/tracing/trace-collector.d.ts +167 -0
  141. package/dist/src/tracing/trace-collector.d.ts.map +1 -1
  142. package/dist/src/tracing/trace-collector.js +137 -0
  143. package/dist/src/tracing/trace-collector.js.map +1 -1
  144. package/dist/src/tracing/types.d.ts +105 -1
  145. package/dist/src/tracing/types.d.ts.map +1 -1
  146. package/dist/src/tracing/types.js.map +1 -1
  147. package/dist/src/tui/app.d.ts.map +1 -1
  148. package/dist/src/tui/app.js +34 -5
  149. package/dist/src/tui/app.js.map +1 -1
  150. package/dist/src/types.d.ts +71 -0
  151. package/dist/src/types.d.ts.map +1 -1
  152. package/package.json +1 -1
@@ -4,7 +4,7 @@
4
4
  * Opt-in swarm experiment mode where one orchestrator model
5
5
  * coordinates multiple small specialist worker models.
6
6
  */
7
- export type { SwarmConfig, SwarmWorkerSpec, WorkerCapability, WorkerRole, SwarmTask, SwarmTaskStatus, SwarmTaskResult, SwarmExecutionResult, SwarmExecutionStats, SwarmError, SwarmStatus, SwarmWorkerStatus, TaskAcceptanceCriteria, VerificationStep, IntegrationTestPlan, SwarmPlan, VerificationResult, WaveReviewResult, FixupTask, ModelHealthRecord, SwarmCheckpoint, OrchestratorDecision, WorkerConversationEntry, } from './types.js';
7
+ export type { SwarmConfig, SwarmWorkerSpec, WorkerCapability, WorkerRole, SwarmTask, SwarmTaskStatus, SwarmTaskResult, SwarmExecutionResult, SwarmExecutionStats, SwarmError, SwarmStatus, SwarmWorkerStatus, TaskAcceptanceCriteria, VerificationStep, IntegrationTestPlan, SwarmPlan, VerificationResult, WaveReviewResult, FixupTask, ModelHealthRecord, SwarmCheckpoint, OrchestratorDecision, WorkerConversationEntry, ArtifactEntry, ArtifactInventory, } from './types.js';
8
8
  export { DEFAULT_SWARM_CONFIG, subtaskToSwarmTask, taskResultToAgentOutput, SUBTASK_TO_CAPABILITY } from './types.js';
9
9
  export type { SwarmEvent } from './swarm-events.js';
10
10
  export { isSwarmEvent, formatSwarmEvent } from './swarm-events.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/integrations/swarm/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,iBAAiB,EAEjB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,uBAAuB,GACxB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGtH,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGvE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACpI,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAClG,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG/E,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACrF,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAG9G,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/integrations/swarm/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,eAAe,EACf,eAAe,EACf,oBAAoB,EACpB,mBAAmB,EACnB,UAAU,EACV,WAAW,EACX,iBAAiB,EAEjB,sBAAsB,EACtB,gBAAgB,EAChB,mBAAmB,EACnB,SAAS,EACT,kBAAkB,EAClB,gBAAgB,EAChB,SAAS,EACT,iBAAiB,EACjB,eAAe,EACf,oBAAoB,EACpB,uBAAuB,EACvB,aAAa,EACb,iBAAiB,GAClB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGtH,YAAY,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AACpD,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAGnE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAGvE,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AACpI,YAAY,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAC1E,YAAY,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;AAGrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAC/D,YAAY,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AAGjE,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAClG,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAG/E,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AACrF,YAAY,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAGlE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,YAAY,EAAE,cAAc,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAG9G,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAGzD,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/integrations/swarm/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA6BH,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAItH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,iBAAiB;AACjB,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAGpI,cAAc;AACd,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAG1E,eAAe;AACf,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAElG,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE/E,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGrF,kDAAkD;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,mCAAmC;AACnC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/integrations/swarm/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AA+BH,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAItH,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEnE,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAIvE,OAAO,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAE1D,iBAAiB;AACjB,OAAO,EAAE,sBAAsB,EAAE,yBAAyB,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAGpI,cAAc;AACd,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAG1E,eAAe;AACf,OAAO,EAAE,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAG/D,mBAAmB;AACnB,OAAO,EAAE,aAAa,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAElG,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAE/E,eAAe;AACf,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAGrF,kDAAkD;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAG3D,uCAAuC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAEzD,mCAAmC;AACnC,OAAO,EAAE,mBAAmB,EAAE,iBAAiB,EAAE,cAAc,EAAE,iBAAiB,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC"}
@@ -40,10 +40,25 @@ export declare function selectWorkerForCapability(workers: SwarmWorkerSpec[], ca
40
40
  export declare class ModelHealthTracker {
41
41
  private records;
42
42
  private recentRateLimits;
43
+ private hollowCounts;
43
44
  private getOrCreate;
45
+ /** Recompute successRate from current successes/failures. */
46
+ private updateSuccessRate;
44
47
  recordSuccess(model: string, latencyMs: number): void;
45
48
  recordFailure(model: string, errorType: '429' | '402' | 'timeout' | 'error'): void;
49
+ /** F19: Directly mark a model as unhealthy (e.g., after probe failure).
50
+ * Bypasses the statistical threshold — used when we have definitive evidence. */
51
+ markUnhealthy(model: string): void;
52
+ recordQualityRejection(model: string, _score: number): void;
53
+ /** Record a hollow completion (worker returned without doing real work).
54
+ * Also records as a generic failure to preserve existing health logic. */
55
+ recordHollow(model: string): void;
56
+ /** Get the hollow completion rate for a model (0.0-1.0). */
57
+ getHollowRate(model: string): number;
58
+ /** Get the raw hollow completion count for a model. */
59
+ getHollowCount(model: string): number;
46
60
  isHealthy(model: string): boolean;
61
+ getSuccessRate(model: string): number;
47
62
  getHealthy(models: string[]): string[];
48
63
  getAllRecords(): ModelHealthRecord[];
49
64
  restore(records: ModelHealthRecord[]): void;
@@ -1 +1 @@
1
- {"version":3,"file":"model-selector.d.ts","sourceRoot":"","sources":["../../../../src/integrations/swarm/model-selector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA4BvF,eAAO,MAAM,gBAAgB,EAAE,eAAe,EAuC7C,CAAC;AAIF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IAEf,qDAAqD;IACrD,iBAAiB,EAAE,MAAM,CAAC;IAE1B,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CA+JtG;AAoCD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,EAAE,EAC1B,UAAU,EAAE,gBAAgB,EAC5B,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,kBAAkB,GACjC,eAAe,GAAG,SAAS,CAiC7B;AAID,8DAA8D;AAC9D,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,gBAAgB,CAA+B;IAEvD,OAAO,CAAC,WAAW;IAgBnB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAUrD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI;IA4BlF,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAKjC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAItC,aAAa,IAAI,iBAAiB,EAAE;IAIpC,OAAO,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,IAAI;CAO5C;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,EAAE,EAC1B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,gBAAgB,EAC5B,aAAa,EAAE,kBAAkB,GAChC,eAAe,GAAG,SAAS,CAiD7B"}
1
+ {"version":3,"file":"model-selector.d.ts","sourceRoot":"","sources":["../../../../src/integrations/swarm/model-selector.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AA4BvF,eAAO,MAAM,gBAAgB,EAAE,eAAe,EA4C7C,CAAC;AAIF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,yBAAyB;IACzB,MAAM,EAAE,MAAM,CAAC;IAEf,qDAAqD;IACrD,iBAAiB,EAAE,MAAM,CAAC;IAE1B,kDAAkD;IAClD,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B,sDAAsD;IACtD,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,kDAAkD;IAClD,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;GAKG;AACH,wBAAsB,sBAAsB,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC,CAkKtG;AAqCD;;;;GAIG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,eAAe,EAAE,EAC1B,UAAU,EAAE,gBAAgB,EAC5B,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,kBAAkB,GACjC,eAAe,GAAG,SAAS,CAkD7B;AAID,8DAA8D;AAC9D,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,gBAAgB,CAA+B;IACvD,OAAO,CAAC,YAAY,CAA6B;IAEjD,OAAO,CAAC,WAAW;IAiBnB,6DAA6D;IAC7D,OAAO,CAAC,iBAAiB;IAKzB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI;IAWrD,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,KAAK,GAAG,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI;IA6BlF;sFACkF;IAClF,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAMlC,sBAAsB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAkB3D;+EAC2E;IAC3E,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI;IAOjC,4DAA4D;IAC5D,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAQpC,uDAAuD;IACvD,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAIrC,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO;IAKjC,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM;IAKrC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,EAAE;IAItC,aAAa,IAAI,iBAAiB,EAAE;IAIpC,OAAO,CAAC,OAAO,EAAE,iBAAiB,EAAE,GAAG,IAAI;CAQ5C;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,eAAe,EAAE,EAC1B,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,gBAAgB,EAC5B,aAAa,EAAE,kBAAkB,GAChC,eAAe,GAAG,SAAS,CAmC7B"}
@@ -13,6 +13,7 @@ export const FALLBACK_WORKERS = [
13
13
  capabilities: ['code', 'test'],
14
14
  contextWindow: 262144,
15
15
  allowedTools: ['read_file', 'write_file', 'edit_file', 'glob', 'grep', 'bash'],
16
+ policyProfile: 'code-strict-bash',
16
17
  },
17
18
  {
18
19
  name: 'coder-alt',
@@ -20,6 +21,7 @@ export const FALLBACK_WORKERS = [
20
21
  capabilities: ['code', 'test'],
21
22
  contextWindow: 202000,
22
23
  allowedTools: ['read_file', 'write_file', 'edit_file', 'glob', 'grep', 'bash'],
24
+ policyProfile: 'code-strict-bash',
23
25
  },
24
26
  {
25
27
  name: 'coder-alt2',
@@ -27,6 +29,7 @@ export const FALLBACK_WORKERS = [
27
29
  capabilities: ['code', 'test'],
28
30
  contextWindow: 65536,
29
31
  allowedTools: ['read_file', 'write_file', 'edit_file', 'glob', 'grep', 'bash'],
32
+ policyProfile: 'code-strict-bash',
30
33
  },
31
34
  // ── Researcher (separate provider from all coders) ──
32
35
  {
@@ -35,6 +38,7 @@ export const FALLBACK_WORKERS = [
35
38
  capabilities: ['research', 'review'],
36
39
  contextWindow: 262144,
37
40
  allowedTools: ['read_file', 'list_files', 'glob', 'grep'],
41
+ policyProfile: 'research-safe',
38
42
  },
39
43
  // ── Documenter (cheap, shares Mistral pool but low usage) ──
40
44
  {
@@ -43,6 +47,7 @@ export const FALLBACK_WORKERS = [
43
47
  capabilities: ['document'],
44
48
  contextWindow: 262144,
45
49
  allowedTools: ['read_file', 'write_file', 'glob'],
50
+ policyProfile: 'code-strict-bash',
46
51
  },
47
52
  ];
48
53
  /**
@@ -58,7 +63,7 @@ export async function autoDetectWorkerModels(options) {
58
63
  return getFallbackWorkers(options.orchestratorModel);
59
64
  }
60
65
  // Filter for usable models
61
- const minContext = options.minContextWindow ?? 8192;
66
+ const minContext = options.minContextWindow ?? 32768;
62
67
  const maxCost = options.maxCostPerMillion ?? 5.0;
63
68
  const usable = models.filter(m => {
64
69
  const contextLen = m.context_length ?? 0;
@@ -152,6 +157,7 @@ export async function autoDetectWorkerModels(options) {
152
157
  capabilities: ['code', 'test'],
153
158
  contextWindow: m.context_length,
154
159
  allowedTools: ['read_file', 'write_file', 'edit_file', 'glob', 'grep', 'bash'],
160
+ policyProfile: 'code-strict-bash',
155
161
  });
156
162
  }
157
163
  // Find researchers (up to 2, prefer large context)
@@ -166,6 +172,7 @@ export async function autoDetectWorkerModels(options) {
166
172
  capabilities: ['research', 'review'],
167
173
  contextWindow: m.context_length,
168
174
  allowedTools: ['read_file', 'list_files', 'glob', 'grep'],
175
+ policyProfile: 'research-safe',
169
176
  });
170
177
  }
171
178
  // Documenter — pick one remaining model
@@ -177,6 +184,7 @@ export async function autoDetectWorkerModels(options) {
177
184
  capabilities: ['document'],
178
185
  contextWindow: docModels[0].context_length,
179
186
  allowedTools: ['read_file', 'write_file', 'glob'],
187
+ policyProfile: 'code-strict-bash',
180
188
  });
181
189
  }
182
190
  // Reviewer uses orchestrator model (needs quality for judgment)
@@ -216,6 +224,7 @@ async function fetchOpenRouterModels(apiKey) {
216
224
  * Get fallback worker specs when API detection fails.
217
225
  */
218
226
  function getFallbackWorkers(orchestratorModel) {
227
+ console.warn('[swarm] Using hardcoded fallback workers — no workers configured or API detection failed');
219
228
  return [
220
229
  ...FALLBACK_WORKERS,
221
230
  {
@@ -234,14 +243,33 @@ function getFallbackWorkers(orchestratorModel) {
234
243
  export function selectWorkerForCapability(workers, capability, taskIndex, healthTracker) {
235
244
  const matches = workers.filter(w => w.capabilities.includes(capability));
236
245
  if (matches.length > 0) {
237
- // If health tracker provided, prefer healthy models
238
246
  if (healthTracker) {
239
- const healthy = matches.filter(w => healthTracker.isHealthy(w.model));
240
- if (healthy.length > 0) {
241
- return healthy[(taskIndex ?? 0) % healthy.length];
242
- }
247
+ // F1: Rank by success rate (descending), deprioritize hollow-prone models, then round-robin among top tier
248
+ const ranked = [...matches].sort((a, b) => {
249
+ const healthyA = healthTracker.isHealthy(a.model) ? 1 : 0;
250
+ const healthyB = healthTracker.isHealthy(b.model) ? 1 : 0;
251
+ if (healthyA !== healthyB)
252
+ return healthyB - healthyA;
253
+ // Deprioritize models with high hollow rates (>15% difference)
254
+ const hollowA = healthTracker.getHollowRate(a.model);
255
+ const hollowB = healthTracker.getHollowRate(b.model);
256
+ if (Math.abs(hollowA - hollowB) > 0.15)
257
+ return hollowA - hollowB;
258
+ const rateA = healthTracker.getSuccessRate(a.model);
259
+ const rateB = healthTracker.getSuccessRate(b.model);
260
+ return rateB - rateA;
261
+ });
262
+ // Round-robin among top-tier models (same health status and similar success rate)
263
+ const topRate = healthTracker.getSuccessRate(ranked[0].model);
264
+ const topHealthy = healthTracker.isHealthy(ranked[0].model);
265
+ const topTier = ranked.filter(w => {
266
+ const rate = healthTracker.getSuccessRate(w.model);
267
+ return healthTracker.isHealthy(w.model) === topHealthy
268
+ && Math.abs(rate - topRate) < 0.2;
269
+ });
270
+ return topTier[(taskIndex ?? 0) % topTier.length];
243
271
  }
244
- // Round-robin across matching workers
272
+ // No health tracker — simple round-robin
245
273
  return matches[(taskIndex ?? 0) % matches.length];
246
274
  }
247
275
  // Fallback: any code-capable worker for code-adjacent tasks
@@ -266,6 +294,7 @@ export function selectWorkerForCapability(workers, capability, taskIndex, health
266
294
  export class ModelHealthTracker {
267
295
  records = new Map();
268
296
  recentRateLimits = new Map(); // model → timestamps
297
+ hollowCounts = new Map(); // model → hollow completion count
269
298
  getOrCreate(model) {
270
299
  let record = this.records.get(model);
271
300
  if (!record) {
@@ -276,11 +305,17 @@ export class ModelHealthTracker {
276
305
  rateLimits: 0,
277
306
  averageLatencyMs: 0,
278
307
  healthy: true,
308
+ successRate: 1.0,
279
309
  };
280
310
  this.records.set(model, record);
281
311
  }
282
312
  return record;
283
313
  }
314
+ /** Recompute successRate from current successes/failures. */
315
+ updateSuccessRate(record) {
316
+ const total = record.successes + record.failures;
317
+ record.successRate = total > 0 ? record.successes / total : 1.0;
318
+ }
284
319
  recordSuccess(model, latencyMs) {
285
320
  const record = this.getOrCreate(model);
286
321
  record.successes++;
@@ -289,6 +324,7 @@ export class ModelHealthTracker {
289
324
  ? latencyMs
290
325
  : record.averageLatencyMs * 0.7 + latencyMs * 0.3;
291
326
  record.healthy = true;
327
+ this.updateSuccessRate(record);
292
328
  }
293
329
  recordFailure(model, errorType) {
294
330
  const record = this.getOrCreate(model);
@@ -312,11 +348,63 @@ export class ModelHealthTracker {
312
348
  if (total >= 3 && record.failures / total > 0.5) {
313
349
  record.healthy = false;
314
350
  }
351
+ this.updateSuccessRate(record);
352
+ }
353
+ /** F19: Directly mark a model as unhealthy (e.g., after probe failure).
354
+ * Bypasses the statistical threshold — used when we have definitive evidence. */
355
+ markUnhealthy(model) {
356
+ const record = this.getOrCreate(model);
357
+ record.healthy = false;
358
+ this.updateSuccessRate(record);
359
+ }
360
+ recordQualityRejection(model, _score) {
361
+ const record = this.getOrCreate(model);
362
+ // Undo premature recordSuccess() that was called before quality gate ran
363
+ if (record.successes > 0)
364
+ record.successes--;
365
+ record.failures++;
366
+ // Track quality-specific rejections
367
+ record.qualityRejections = (record.qualityRejections ?? 0) + 1;
368
+ // Mark unhealthy at 3 quality rejections or >50% failure rate
369
+ if ((record.qualityRejections ?? 0) >= 3) {
370
+ record.healthy = false;
371
+ }
372
+ const total = record.successes + record.failures;
373
+ if (total >= 3 && record.failures / total > 0.5) {
374
+ record.healthy = false;
375
+ }
376
+ this.updateSuccessRate(record);
377
+ }
378
+ /** Record a hollow completion (worker returned without doing real work).
379
+ * Also records as a generic failure to preserve existing health logic. */
380
+ recordHollow(model) {
381
+ const count = (this.hollowCounts.get(model) ?? 0) + 1;
382
+ this.hollowCounts.set(model, count);
383
+ // Also record as failure (existing behavior preserved)
384
+ this.recordFailure(model, 'error');
385
+ }
386
+ /** Get the hollow completion rate for a model (0.0-1.0). */
387
+ getHollowRate(model) {
388
+ const record = this.records.get(model);
389
+ if (!record)
390
+ return 0;
391
+ const total = record.successes + record.failures;
392
+ if (total === 0)
393
+ return 0;
394
+ return (this.hollowCounts.get(model) ?? 0) / total;
395
+ }
396
+ /** Get the raw hollow completion count for a model. */
397
+ getHollowCount(model) {
398
+ return this.hollowCounts.get(model) ?? 0;
315
399
  }
316
400
  isHealthy(model) {
317
401
  const record = this.records.get(model);
318
402
  return record?.healthy ?? true; // Unknown models assumed healthy
319
403
  }
404
+ getSuccessRate(model) {
405
+ const record = this.records.get(model);
406
+ return record?.successRate ?? 1.0;
407
+ }
320
408
  getHealthy(models) {
321
409
  return models.filter(m => this.isHealthy(m));
322
410
  }
@@ -326,6 +414,7 @@ export class ModelHealthTracker {
326
414
  restore(records) {
327
415
  this.records.clear();
328
416
  this.recentRateLimits.clear();
417
+ this.hollowCounts.clear();
329
418
  for (const record of records) {
330
419
  this.records.set(record.model, { ...record });
331
420
  }
@@ -358,19 +447,9 @@ export function selectAlternativeModel(workers, failedModel, capability, healthT
358
447
  if (anyCodeAlt.length > 0)
359
448
  return anyCodeAlt[0];
360
449
  }
361
- // Last resort: check FALLBACK_WORKERS for the needed capability.
362
- // This handles the case where all config workers share the same model
363
- // and no alternative exists within the user's config.
364
- const fallbackAlts = FALLBACK_WORKERS.filter(w => w.model !== failedModel &&
365
- w.capabilities.includes(capability) &&
366
- healthTracker.isHealthy(w.model));
367
- if (fallbackAlts.length > 0)
368
- return fallbackAlts[0];
369
- // Even unhealthy fallbacks are better than nothing
370
- const anyFallback = FALLBACK_WORKERS.filter(w => w.model !== failedModel &&
371
- w.capabilities.includes(capability));
372
- if (anyFallback.length > 0)
373
- return anyFallback[0];
450
+ // No alternative found within configured workers return undefined.
451
+ // Do NOT fall through to FALLBACK_WORKERS; injecting unconfigured models
452
+ // ("ghost models") causes hollow completions and wasted budget.
374
453
  return undefined;
375
454
  }
376
455
  //# sourceMappingURL=model-selector.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-selector.js","sourceRoot":"","sources":["../../../../src/integrations/swarm/model-selector.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"model-selector.js","sourceRoot":"","sources":["../../../../src/integrations/swarm/model-selector.ts"],"names":[],"mappings":"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"}
@@ -19,6 +19,10 @@ export interface SwarmBudgetPool {
19
19
  getStats(): BudgetPoolStats;
20
20
  /** Check if there's budget remaining for more workers */
21
21
  hasCapacity(): boolean;
22
+ /** F3: Reallocate unused tokens from completed wave back to pool.
23
+ * This is a no-op on SharedBudgetPool since release() already handles it,
24
+ * but explicitly logs the reallocation for observability. */
25
+ reallocateUnused(unusedTokens: number): void;
22
26
  }
23
27
  /**
24
28
  * Create a swarm budget pool from SwarmConfig.
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-budget.d.ts","sourceRoot":"","sources":["../../../../src/integrations/swarm/swarm-budget.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAoB,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,IAAI,EAAE,gBAAgB,CAAC;IAEvB,qEAAqE;IACrE,mBAAmB,EAAE,MAAM,CAAC;IAE5B,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IAErB,0BAA0B;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IAEzB,qBAAqB;IACrB,QAAQ,IAAI,eAAe,CAAC;IAE5B,yDAAyD;IACzD,WAAW,IAAI,OAAO,CAAC;CACxB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,CA4B1E"}
1
+ {"version":3,"file":"swarm-budget.d.ts","sourceRoot":"","sources":["../../../../src/integrations/swarm/swarm-budget.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAoB,KAAK,gBAAgB,EAAE,KAAK,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAI9C,MAAM,WAAW,eAAe;IAC9B,6BAA6B;IAC7B,IAAI,EAAE,gBAAgB,CAAC;IAEvB,qEAAqE;IACrE,mBAAmB,EAAE,MAAM,CAAC;IAE5B,uCAAuC;IACvC,YAAY,EAAE,MAAM,CAAC;IAErB,0BAA0B;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IAEzB,qBAAqB;IACrB,QAAQ,IAAI,eAAe,CAAC;IAE5B,yDAAyD;IACzD,WAAW,IAAI,OAAO,CAAC;IAEvB;;kEAE8D;IAC9D,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9C;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,WAAW,GAAG,eAAe,CAmC1E"}
@@ -31,6 +31,12 @@ export function createSwarmBudgetPool(config) {
31
31
  hasCapacity() {
32
32
  return pool.hasCapacity();
33
33
  },
34
+ reallocateUnused(unusedTokens) {
35
+ // F3: SharedBudgetPool already handles reallocation via release().
36
+ // This method exists for observability — the orchestrator logs it.
37
+ // No additional action needed since release() adjusts totalTokensReserved.
38
+ void unusedTokens;
39
+ },
34
40
  };
35
41
  }
36
42
  //# sourceMappingURL=swarm-budget.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-budget.js","sourceRoot":"","sources":["../../../../src/integrations/swarm/swarm-budget.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAA+C,MAAM,mBAAmB,CAAC;AAyBlG;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAmB;IACvD,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC7F,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,GAAG,mBAAmB,CAAC;IAElE,kFAAkF;IAClF,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;IAChE,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,GAAG,gBAAgB,CAAC;IAE3D,MAAM,IAAI,GAAG,gBAAgB,CAC3B,gBAAgB,EAChB,CAAC,EAAE,0EAA0E;IAC7E,MAAM,CAAC,kBAAkB,CAC1B,CAAC;IAEF,OAAO;QACL,IAAI;QACJ,mBAAmB;QACnB,YAAY,EAAE,MAAM,CAAC,kBAAkB;QACvC,gBAAgB;QAEhB,QAAQ;YACN,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAED,WAAW;YACT,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"swarm-budget.js","sourceRoot":"","sources":["../../../../src/integrations/swarm/swarm-budget.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,gBAAgB,EAA+C,MAAM,mBAAmB,CAAC;AA8BlG;;;;;;GAMG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAmB;IACvD,MAAM,mBAAmB,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,GAAG,MAAM,CAAC,wBAAwB,CAAC,CAAC;IAC7F,MAAM,gBAAgB,GAAG,MAAM,CAAC,WAAW,GAAG,mBAAmB,CAAC;IAElE,kFAAkF;IAClF,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;IAChE,MAAM,gBAAgB,GAAG,MAAM,CAAC,OAAO,GAAG,gBAAgB,CAAC;IAE3D,MAAM,IAAI,GAAG,gBAAgB,CAC3B,gBAAgB,EAChB,CAAC,EAAE,0EAA0E;IAC7E,MAAM,CAAC,kBAAkB,CAC1B,CAAC;IAEF,OAAO;QACL,IAAI;QACJ,mBAAmB;QACnB,YAAY,EAAE,MAAM,CAAC,kBAAkB;QACvC,gBAAgB;QAEhB,QAAQ;YACN,OAAO,IAAI,CAAC,QAAQ,EAAE,CAAC;QACzB,CAAC;QAED,WAAW;YACT,OAAO,IAAI,CAAC,WAAW,EAAE,CAAC;QAC5B,CAAC;QAED,gBAAgB,CAAC,YAAoB;YACnC,mEAAmE;YACnE,mEAAmE;YACnE,2EAA2E;YAC3E,KAAK,YAAY,CAAC;QACpB,CAAC;KACF,CAAC;AACJ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"swarm-config-loader.d.ts","sourceRoot":"","sources":["../../../../src/integrations/swarm/swarm-config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAmB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAIlD,iDAAiD;AACjD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAItD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CA0J/D;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CA0BxE;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAsJxG;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,oBAAoB,EACrC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,EACvC,YAAY,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7H,WAAW,CAoCb;AAqBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAqBvE"}
1
+ {"version":3,"file":"swarm-config-loader.d.ts","sourceRoot":"","sources":["../../../../src/integrations/swarm/swarm-config-loader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAKH,OAAO,KAAK,EAAE,WAAW,EAAmB,gBAAgB,EAAE,MAAM,YAAY,CAAC;AACjF,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAIlD,iDAAiD;AACjD,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAItD;;;;;;;;;;;;GAYG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,CA0J/D;AAID;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CA0BxE;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CA8RxG;AAID;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,OAAO,oBAAoB,EACrC,UAAU,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI,EACvC,YAAY,EAAE;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,iBAAiB,EAAE,MAAM,CAAC;IAAC,yBAAyB,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,MAAM,CAAA;CAAE,GAC7H,WAAW,CAoCb;AAqBD;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAqBvE"}
@@ -254,12 +254,21 @@ export function yamlToSwarmConfig(yaml, orchestratorModel) {
254
254
  spec.role = String(w.role);
255
255
  if (w.maxTokens)
256
256
  spec.maxTokens = Number(w.maxTokens);
257
+ if (w.policyProfile)
258
+ spec.policyProfile = String(w.policyProfile);
257
259
  if (w.allowedTools && Array.isArray(w.allowedTools)) {
258
260
  spec.allowedTools = w.allowedTools.map(String);
259
261
  }
260
262
  if (w.deniedTools && Array.isArray(w.deniedTools)) {
261
263
  spec.deniedTools = w.deniedTools.map(String);
262
264
  }
265
+ if (w.extraTools) {
266
+ spec.extraTools = Array.isArray(w.extraTools)
267
+ ? w.extraTools.map(String)
268
+ : typeof w.extraTools === 'string'
269
+ ? w.extraTools.replace(/^\[|\]$/g, '').split(',').map((s) => s.trim()).filter(Boolean)
270
+ : undefined;
271
+ }
263
272
  return spec;
264
273
  });
265
274
  }
@@ -271,9 +280,10 @@ export function yamlToSwarmConfig(yaml, orchestratorModel) {
271
280
  if (comm) {
272
281
  config.communication = {
273
282
  blackboard: comm.blackboard !== undefined ? Boolean(comm.blackboard) : undefined,
274
- dependencyContextMaxLength: comm.dependencyContextMaxLength
275
- ? Number(comm.dependencyContextMaxLength) : undefined,
276
- includeFileList: comm.includeFileList !== undefined ? Boolean(comm.includeFileList) : undefined,
283
+ dependencyContextMaxLength: (comm.dependencyContextMaxLength ?? comm.dependency_context_max_length)
284
+ ? Number(comm.dependencyContextMaxLength ?? comm.dependency_context_max_length) : undefined,
285
+ includeFileList: (comm.includeFileList ?? comm.include_file_list) !== undefined
286
+ ? Boolean(comm.includeFileList ?? comm.include_file_list) : undefined,
277
287
  };
278
288
  }
279
289
  // tasks
@@ -312,17 +322,79 @@ export function yamlToSwarmConfig(yaml, orchestratorModel) {
312
322
  if (quality) {
313
323
  if (quality.enabled !== undefined)
314
324
  config.qualityGates = Boolean(quality.enabled);
325
+ if (quality.gates !== undefined)
326
+ config.qualityGates = Boolean(quality.gates);
327
+ if (quality.gateModel || quality.gate_model) {
328
+ config.qualityGateModel = String(quality.gateModel ?? quality.gate_model);
329
+ }
315
330
  // minScore, skipOnRetry, skipUnderPressure not in SwarmConfig yet, but could be added
316
331
  }
332
+ // reliability — dispatch cap + hollow termination
333
+ const reliability = yaml.reliability;
334
+ if (reliability) {
335
+ if (reliability.maxDispatchesPerTask !== undefined || reliability.max_dispatches_per_task !== undefined) {
336
+ config.maxDispatchesPerTask = Number(reliability.maxDispatchesPerTask ?? reliability.max_dispatches_per_task);
337
+ }
338
+ if (reliability.hollowTerminationRatio !== undefined || reliability.hollow_termination_ratio !== undefined) {
339
+ config.hollowTerminationRatio = Number(reliability.hollowTerminationRatio ?? reliability.hollow_termination_ratio);
340
+ }
341
+ if (reliability.hollowTerminationMinDispatches !== undefined || reliability.hollow_termination_min_dispatches !== undefined) {
342
+ config.hollowTerminationMinDispatches = Number(reliability.hollowTerminationMinDispatches ?? reliability.hollow_termination_min_dispatches);
343
+ }
344
+ if (reliability.enableHollowTermination !== undefined || reliability.enable_hollow_termination !== undefined) {
345
+ config.enableHollowTermination = Boolean(reliability.enableHollowTermination ?? reliability.enable_hollow_termination);
346
+ }
347
+ }
348
+ // taskTypes — per-task-type configuration
349
+ const taskTypes = yaml.taskTypes;
350
+ if (taskTypes && typeof taskTypes === 'object') {
351
+ config.taskTypes = {};
352
+ for (const [typeName, typeConfig] of Object.entries(taskTypes)) {
353
+ if (!typeConfig || typeof typeConfig !== 'object')
354
+ continue;
355
+ const parsed = {};
356
+ if (typeConfig.timeout !== undefined)
357
+ parsed.timeout = Number(typeConfig.timeout);
358
+ if (typeConfig.maxIterations !== undefined)
359
+ parsed.maxIterations = Number(typeConfig.maxIterations);
360
+ if (typeConfig.idleTimeout !== undefined)
361
+ parsed.idleTimeout = Number(typeConfig.idleTimeout);
362
+ if (typeConfig.policyProfile !== undefined)
363
+ parsed.policyProfile = String(typeConfig.policyProfile);
364
+ if (typeConfig.capability !== undefined)
365
+ parsed.capability = String(typeConfig.capability);
366
+ if (typeConfig.requiresToolCalls !== undefined)
367
+ parsed.requiresToolCalls = Boolean(typeConfig.requiresToolCalls);
368
+ if (typeConfig.promptTemplate !== undefined)
369
+ parsed.promptTemplate = String(typeConfig.promptTemplate);
370
+ if (typeConfig.tools && Array.isArray(typeConfig.tools))
371
+ parsed.tools = typeConfig.tools.map(String);
372
+ if (typeConfig.retries !== undefined)
373
+ parsed.retries = Number(typeConfig.retries);
374
+ if (typeConfig.tokenBudget !== undefined)
375
+ parsed.tokenBudget = Number(typeConfig.tokenBudget);
376
+ config.taskTypes[typeName] = parsed;
377
+ }
378
+ }
317
379
  // resilience
318
380
  const resilience = yaml.resilience;
319
381
  if (resilience) {
320
- if (resilience.workerRetries !== undefined)
321
- config.workerRetries = Number(resilience.workerRetries);
322
- if (resilience.rateLimitRetries !== undefined)
323
- config.rateLimitRetries = Number(resilience.rateLimitRetries);
382
+ if (resilience.maxConcurrency !== undefined || resilience.max_concurrency !== undefined) {
383
+ config.maxConcurrency = Number(resilience.maxConcurrency ?? resilience.max_concurrency);
384
+ }
385
+ if (resilience.dispatchStaggerMs !== undefined || resilience.dispatch_stagger_ms !== undefined) {
386
+ config.dispatchStaggerMs = Number(resilience.dispatchStaggerMs ?? resilience.dispatch_stagger_ms);
387
+ }
388
+ if (resilience.workerRetries !== undefined || resilience.worker_retries !== undefined) {
389
+ config.workerRetries = Number(resilience.workerRetries ?? resilience.worker_retries);
390
+ }
391
+ if (resilience.rateLimitRetries !== undefined || resilience.rate_limit_retries !== undefined) {
392
+ config.rateLimitRetries = Number(resilience.rateLimitRetries ?? resilience.rate_limit_retries);
393
+ }
324
394
  if (resilience.modelFailover !== undefined)
325
395
  config.enableModelFailover = Boolean(resilience.modelFailover);
396
+ if (resilience.model_failover !== undefined)
397
+ config.enableModelFailover = Boolean(resilience.model_failover);
326
398
  }
327
399
  // hierarchy
328
400
  const hierarchy = yaml.hierarchy;
@@ -357,6 +429,81 @@ export function yamlToSwarmConfig(yaml, orchestratorModel) {
357
429
  if (features.persistence !== undefined)
358
430
  config.enablePersistence = Boolean(features.persistence);
359
431
  }
432
+ // permissions — sandbox and approval overrides for swarm workers
433
+ const permissions = yaml.permissions;
434
+ if (permissions) {
435
+ config.permissions = {};
436
+ if (permissions.mode)
437
+ config.permissions.mode = String(permissions.mode);
438
+ if (permissions.auto_approve && Array.isArray(permissions.auto_approve)) {
439
+ config.permissions.autoApprove = permissions.auto_approve.map(String);
440
+ }
441
+ if (permissions.autoApprove && Array.isArray(permissions.autoApprove)) {
442
+ config.permissions.autoApprove = permissions.autoApprove.map(String);
443
+ }
444
+ if (permissions.scoped_approve) {
445
+ config.permissions.scopedApprove = permissions.scoped_approve;
446
+ }
447
+ if (permissions.scopedApprove) {
448
+ config.permissions.scopedApprove = permissions.scopedApprove;
449
+ }
450
+ if (permissions.require_approval && Array.isArray(permissions.require_approval)) {
451
+ config.permissions.requireApproval = permissions.require_approval.map(String);
452
+ }
453
+ if (permissions.requireApproval && Array.isArray(permissions.requireApproval)) {
454
+ config.permissions.requireApproval = permissions.requireApproval.map(String);
455
+ }
456
+ if (permissions.allowed_commands && Array.isArray(permissions.allowed_commands)) {
457
+ config.permissions.additionalAllowedCommands = permissions.allowed_commands.map(String);
458
+ }
459
+ if (permissions.additionalAllowedCommands && Array.isArray(permissions.additionalAllowedCommands)) {
460
+ config.permissions.additionalAllowedCommands = permissions.additionalAllowedCommands.map(String);
461
+ }
462
+ }
463
+ // policyProfiles — named policy profile definitions
464
+ const policyProfiles = yaml.policyProfiles;
465
+ if (policyProfiles && typeof policyProfiles === 'object') {
466
+ config.policyProfiles = policyProfiles;
467
+ }
468
+ // profileExtensions — additive tool patches for built-in or named profiles
469
+ const profileExtensions = (yaml.profileExtensions ?? yaml.profile_extensions);
470
+ if (profileExtensions && typeof profileExtensions === 'object') {
471
+ config.profileExtensions = {};
472
+ for (const [profileName, ext] of Object.entries(profileExtensions)) {
473
+ if (!ext || typeof ext !== 'object')
474
+ continue;
475
+ const entry = {};
476
+ if (ext.addTools && Array.isArray(ext.addTools)) {
477
+ entry.addTools = ext.addTools.map(String);
478
+ }
479
+ if (ext.add_tools && Array.isArray(ext.add_tools)) {
480
+ entry.addTools = ext.add_tools.map(String);
481
+ }
482
+ if (ext.removeTools && Array.isArray(ext.removeTools)) {
483
+ entry.removeTools = ext.removeTools.map(String);
484
+ }
485
+ if (ext.remove_tools && Array.isArray(ext.remove_tools)) {
486
+ entry.removeTools = ext.remove_tools.map(String);
487
+ }
488
+ if (entry.addTools || entry.removeTools) {
489
+ config.profileExtensions[profileName] = entry;
490
+ }
491
+ }
492
+ }
493
+ // autoSplit — pre-dispatch auto-split configuration
494
+ const autoSplit = yaml.autoSplit;
495
+ if (autoSplit) {
496
+ config.autoSplit = {};
497
+ if (autoSplit.enabled !== undefined)
498
+ config.autoSplit.enabled = Boolean(autoSplit.enabled);
499
+ if (autoSplit.complexityFloor !== undefined)
500
+ config.autoSplit.complexityFloor = Number(autoSplit.complexityFloor);
501
+ if (autoSplit.maxSubtasks !== undefined)
502
+ config.autoSplit.maxSubtasks = Number(autoSplit.maxSubtasks);
503
+ if (autoSplit.splittableTypes && Array.isArray(autoSplit.splittableTypes)) {
504
+ config.autoSplit.splittableTypes = autoSplit.splittableTypes.map(String);
505
+ }
506
+ }
360
507
  // facts — user-configurable grounding facts
361
508
  const facts = yaml.facts;
362
509
  if (facts) {