@cogitator-ai/swarms 0.4.20 → 0.5.1

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 (134) hide show
  1. package/README.md +245 -897
  2. package/dist/agents.d.ts +13 -0
  3. package/dist/agents.d.ts.map +1 -0
  4. package/dist/agents.js +70 -0
  5. package/dist/agents.js.map +1 -0
  6. package/dist/assessor/assessor.d.ts +9 -2
  7. package/dist/assessor/assessor.d.ts.map +1 -1
  8. package/dist/assessor/assessor.js +71 -52
  9. package/dist/assessor/assessor.js.map +1 -1
  10. package/dist/assessor/role-matcher.d.ts +6 -24
  11. package/dist/assessor/role-matcher.d.ts.map +1 -1
  12. package/dist/assessor/role-matcher.js +9 -37
  13. package/dist/assessor/role-matcher.js.map +1 -1
  14. package/dist/base-coordinator.d.ts +117 -0
  15. package/dist/base-coordinator.d.ts.map +1 -0
  16. package/dist/base-coordinator.js +455 -0
  17. package/dist/base-coordinator.js.map +1 -0
  18. package/dist/communication/blackboard.d.ts +34 -4
  19. package/dist/communication/blackboard.d.ts.map +1 -1
  20. package/dist/communication/blackboard.js +81 -46
  21. package/dist/communication/blackboard.js.map +1 -1
  22. package/dist/communication/event-emitter.d.ts.map +1 -1
  23. package/dist/communication/event-emitter.js +6 -17
  24. package/dist/communication/event-emitter.js.map +1 -1
  25. package/dist/communication/index.d.ts +2 -2
  26. package/dist/communication/index.d.ts.map +1 -1
  27. package/dist/communication/index.js +2 -2
  28. package/dist/communication/index.js.map +1 -1
  29. package/dist/communication/message-bus.d.ts +48 -5
  30. package/dist/communication/message-bus.d.ts.map +1 -1
  31. package/dist/communication/message-bus.js +135 -50
  32. package/dist/communication/message-bus.js.map +1 -1
  33. package/dist/communication/redis-blackboard.d.ts +11 -5
  34. package/dist/communication/redis-blackboard.d.ts.map +1 -1
  35. package/dist/communication/redis-blackboard.js +159 -116
  36. package/dist/communication/redis-blackboard.js.map +1 -1
  37. package/dist/communication/redis-event-emitter.d.ts +12 -0
  38. package/dist/communication/redis-event-emitter.d.ts.map +1 -1
  39. package/dist/communication/redis-event-emitter.js +96 -54
  40. package/dist/communication/redis-event-emitter.js.map +1 -1
  41. package/dist/communication/redis-message-bus.d.ts +11 -6
  42. package/dist/communication/redis-message-bus.d.ts.map +1 -1
  43. package/dist/communication/redis-message-bus.js +88 -77
  44. package/dist/communication/redis-message-bus.js.map +1 -1
  45. package/dist/coordinator.d.ts +7 -41
  46. package/dist/coordinator.d.ts.map +1 -1
  47. package/dist/coordinator.js +17 -340
  48. package/dist/coordinator.js.map +1 -1
  49. package/dist/distributed/distributed-coordinator.d.ts +54 -51
  50. package/dist/distributed/distributed-coordinator.d.ts.map +1 -1
  51. package/dist/distributed/distributed-coordinator.js +166 -284
  52. package/dist/distributed/distributed-coordinator.js.map +1 -1
  53. package/dist/distributed/index.d.ts +1 -1
  54. package/dist/distributed/index.d.ts.map +1 -1
  55. package/dist/distributed/index.js +1 -1
  56. package/dist/distributed/index.js.map +1 -1
  57. package/dist/index.d.ts +4 -3
  58. package/dist/index.d.ts.map +1 -1
  59. package/dist/index.js +4 -3
  60. package/dist/index.js.map +1 -1
  61. package/dist/resources/circuit-breaker.d.ts.map +1 -1
  62. package/dist/resources/circuit-breaker.js +3 -4
  63. package/dist/resources/circuit-breaker.js.map +1 -1
  64. package/dist/shared/hierarchy.d.ts +21 -0
  65. package/dist/shared/hierarchy.d.ts.map +1 -0
  66. package/dist/shared/hierarchy.js +27 -0
  67. package/dist/shared/hierarchy.js.map +1 -0
  68. package/dist/shared/negotiation.d.ts +27 -0
  69. package/dist/shared/negotiation.d.ts.map +1 -0
  70. package/dist/shared/negotiation.js +55 -0
  71. package/dist/shared/negotiation.js.map +1 -0
  72. package/dist/shared/voting.d.ts +6 -0
  73. package/dist/shared/voting.d.ts.map +1 -0
  74. package/dist/shared/voting.js +13 -0
  75. package/dist/shared/voting.js.map +1 -0
  76. package/dist/strategies/consensus.d.ts +12 -0
  77. package/dist/strategies/consensus.d.ts.map +1 -1
  78. package/dist/strategies/consensus.js +75 -47
  79. package/dist/strategies/consensus.js.map +1 -1
  80. package/dist/strategies/debate.d.ts.map +1 -1
  81. package/dist/strategies/debate.js +18 -8
  82. package/dist/strategies/debate.js.map +1 -1
  83. package/dist/strategies/hierarchical.d.ts.map +1 -1
  84. package/dist/strategies/hierarchical.js +29 -14
  85. package/dist/strategies/hierarchical.js.map +1 -1
  86. package/dist/strategies/negotiation/approval.d.ts.map +1 -1
  87. package/dist/strategies/negotiation/approval.js +22 -19
  88. package/dist/strategies/negotiation/approval.js.map +1 -1
  89. package/dist/strategies/negotiation-strategy.d.ts +24 -2
  90. package/dist/strategies/negotiation-strategy.d.ts.map +1 -1
  91. package/dist/strategies/negotiation-strategy.js +276 -141
  92. package/dist/strategies/negotiation-strategy.js.map +1 -1
  93. package/dist/strategies/pipeline.js +6 -6
  94. package/dist/strategies/pipeline.js.map +1 -1
  95. package/dist/swarm.d.ts +25 -11
  96. package/dist/swarm.d.ts.map +1 -1
  97. package/dist/swarm.js +195 -121
  98. package/dist/swarm.js.map +1 -1
  99. package/dist/tools/blackboard.d.ts +1 -1
  100. package/dist/tools/blackboard.d.ts.map +1 -1
  101. package/dist/tools/blackboard.js +26 -12
  102. package/dist/tools/blackboard.js.map +1 -1
  103. package/dist/tools/delegation.d.ts +17 -4
  104. package/dist/tools/delegation.d.ts.map +1 -1
  105. package/dist/tools/delegation.js +95 -88
  106. package/dist/tools/delegation.js.map +1 -1
  107. package/dist/tools/index.d.ts +3 -1
  108. package/dist/tools/index.d.ts.map +1 -1
  109. package/dist/tools/index.js +9 -4
  110. package/dist/tools/index.js.map +1 -1
  111. package/dist/tools/messaging.d.ts +38 -6
  112. package/dist/tools/messaging.d.ts.map +1 -1
  113. package/dist/tools/messaging.js +118 -41
  114. package/dist/tools/messaging.js.map +1 -1
  115. package/dist/tools/negotiation.d.ts +8 -4
  116. package/dist/tools/negotiation.d.ts.map +1 -1
  117. package/dist/tools/negotiation.js +138 -115
  118. package/dist/tools/negotiation.js.map +1 -1
  119. package/dist/tools/voting.d.ts +3 -0
  120. package/dist/tools/voting.d.ts.map +1 -1
  121. package/dist/tools/voting.js +13 -12
  122. package/dist/tools/voting.js.map +1 -1
  123. package/dist/utils/concurrency.d.ts +10 -0
  124. package/dist/utils/concurrency.d.ts.map +1 -0
  125. package/dist/utils/concurrency.js +28 -0
  126. package/dist/utils/concurrency.js.map +1 -0
  127. package/dist/utils/invoke.d.ts +2 -0
  128. package/dist/utils/invoke.d.ts.map +1 -0
  129. package/dist/utils/invoke.js +19 -0
  130. package/dist/utils/invoke.js.map +1 -0
  131. package/dist/workflow/swarm-node.d.ts.map +1 -1
  132. package/dist/workflow/swarm-node.js +55 -98
  133. package/dist/workflow/swarm-node.js.map +1 -1
  134. package/package.json +6 -6
@@ -0,0 +1,13 @@
1
+ import type { Agent, SwarmAgent, SwarmAgentMetadata, SwarmConfig } from '@cogitator-ai/types';
2
+ interface AgentEntry {
3
+ agent: Agent;
4
+ metadata: SwarmAgentMetadata;
5
+ }
6
+ /**
7
+ * Collect every agent referenced by a swarm config together with the metadata implied by
8
+ * the slot it was configured in. Explicit `agentMetadata` entries override slot defaults.
9
+ */
10
+ export declare function collectSwarmAgentEntries(config: SwarmConfig): AgentEntry[];
11
+ export declare function buildSwarmAgents(config: SwarmConfig): Map<string, SwarmAgent>;
12
+ export {};
13
+ //# sourceMappingURL=agents.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.d.ts","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAE9F,UAAU,UAAU;IAClB,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,kBAAkB,CAAC;CAC9B;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,EAAE,CA2D1E;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,WAAW,GAAG,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC,CAY7E"}
package/dist/agents.js ADDED
@@ -0,0 +1,70 @@
1
+ function stageMetadata(stage) {
2
+ return { custom: { stageName: stage.name, isGate: stage.gate } };
3
+ }
4
+ /**
5
+ * Collect every agent referenced by a swarm config together with the metadata implied by
6
+ * the slot it was configured in. Explicit `agentMetadata` entries override slot defaults.
7
+ */
8
+ export function collectSwarmAgentEntries(config) {
9
+ const entries = [];
10
+ if (config.supervisor) {
11
+ entries.push({ agent: config.supervisor, metadata: { role: 'supervisor', priority: 100 } });
12
+ }
13
+ for (const worker of config.workers ?? []) {
14
+ entries.push({ agent: worker, metadata: { role: 'worker', priority: 50 } });
15
+ }
16
+ for (const agent of config.agents ?? []) {
17
+ entries.push({ agent, metadata: {} });
18
+ }
19
+ if (config.moderator) {
20
+ entries.push({ agent: config.moderator, metadata: { role: 'moderator', priority: 90 } });
21
+ }
22
+ if (config.router) {
23
+ entries.push({ agent: config.router, metadata: { role: 'router', priority: 95 } });
24
+ }
25
+ for (const stage of config.stages ?? []) {
26
+ entries.push({ agent: stage.agent, metadata: stageMetadata(stage) });
27
+ }
28
+ for (const stage of config.pipeline?.stages ?? []) {
29
+ entries.push({ agent: stage.agent, metadata: stageMetadata(stage) });
30
+ }
31
+ const byName = new Map();
32
+ for (const entry of entries) {
33
+ const existing = byName.get(entry.agent.name);
34
+ if (existing && existing.agent !== entry.agent) {
35
+ throw new Error(`Duplicate agent name '${entry.agent.name}' in swarm '${config.name}': agent names must be unique`);
36
+ }
37
+ if (!existing) {
38
+ byName.set(entry.agent.name, entry);
39
+ }
40
+ }
41
+ return Array.from(byName.values()).map(({ agent, metadata }) => {
42
+ const explicit = config.agentMetadata?.[agent.name];
43
+ if (!explicit)
44
+ return { agent, metadata };
45
+ return {
46
+ agent,
47
+ metadata: {
48
+ ...metadata,
49
+ ...explicit,
50
+ custom: metadata.custom || explicit.custom
51
+ ? { ...metadata.custom, ...explicit.custom }
52
+ : undefined,
53
+ },
54
+ };
55
+ });
56
+ }
57
+ export function buildSwarmAgents(config) {
58
+ const agents = new Map();
59
+ for (const { agent, metadata } of collectSwarmAgentEntries(config)) {
60
+ agents.set(agent.name, {
61
+ agent,
62
+ metadata,
63
+ state: 'idle',
64
+ messageCount: 0,
65
+ tokenCount: 0,
66
+ });
67
+ }
68
+ return agents;
69
+ }
70
+ //# sourceMappingURL=agents.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agents.js","sourceRoot":"","sources":["../src/agents.ts"],"names":[],"mappings":"AAOA,SAAS,aAAa,CAAC,KAAuC;IAC5D,OAAO,EAAE,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;AACnE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,wBAAwB,CAAC,MAAmB;IAC1D,MAAM,OAAO,GAAiB,EAAE,CAAC;IAEjC,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QACtB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,CAAC,CAAC;IAC9F,CAAC;IAED,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,OAAO,IAAI,EAAE,EAAE,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC9E,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IACxC,CAAC;IAED,IAAI,MAAM,CAAC,SAAS,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,SAAS,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3F,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;IACrF,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,QAAQ,EAAE,MAAM,IAAI,EAAE,EAAE,CAAC;QAClD,OAAO,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC9C,IAAI,QAAQ,IAAI,QAAQ,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE,CAAC;YAC/C,MAAM,IAAI,KAAK,CACb,yBAAyB,KAAK,CAAC,KAAK,CAAC,IAAI,eAAe,MAAM,CAAC,IAAI,+BAA+B,CACnG,CAAC;QACJ,CAAC;QACD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACtC,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC7D,MAAM,QAAQ,GAAG,MAAM,CAAC,aAAa,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,QAAQ;YAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;QAC1C,OAAO;YACL,KAAK;YACL,QAAQ,EAAE;gBACR,GAAG,QAAQ;gBACX,GAAG,QAAQ;gBACX,MAAM,EACJ,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM;oBAChC,CAAC,CAAC,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE,GAAG,QAAQ,CAAC,MAAM,EAAE;oBAC5C,CAAC,CAAC,SAAS;aAChB;SACF,CAAC;IACJ,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAmB;IAClD,MAAM,MAAM,GAAG,IAAI,GAAG,EAAsB,CAAC;IAC7C,KAAK,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,wBAAwB,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE;YACrB,KAAK;YACL,QAAQ;YACR,KAAK,EAAE,MAAM;YACb,YAAY,EAAE,CAAC;YACf,UAAU,EAAE,CAAC;SACd,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -1,4 +1,8 @@
1
- import type { SwarmConfig, AssessorConfig, AssessmentResult, TaskRequirements, ModelCandidate, Assessor } from '@cogitator-ai/types';
1
+ import type { SwarmConfig, AssessorConfig, AssessmentResult, TaskRequirements, ModelCandidate, DiscoveredModel, Assessor } from '@cogitator-ai/types';
2
+ /**
3
+ * Model string an agent can run with: `${provider}/${id}`.
4
+ */
5
+ export declare function qualifiedModelId(model: Pick<DiscoveredModel, 'id' | 'provider'>): string;
2
6
  export declare class SwarmAssessor implements Assessor {
3
7
  private config;
4
8
  private taskAnalyzer;
@@ -8,11 +12,14 @@ export declare class SwarmAssessor implements Assessor {
8
12
  private assessmentCache;
9
13
  constructor(config?: AssessorConfig);
10
14
  analyze(task: string, swarmConfig: SwarmConfig): Promise<AssessmentResult>;
15
+ /**
16
+ * Apply assessment results: every unlocked agent is replaced by a clone running the
17
+ * assigned model. Agents keep their name, instructions and tools.
18
+ */
11
19
  assignModels(config: SwarmConfig, result: AssessmentResult): SwarmConfig;
12
20
  suggestModels(requirements: TaskRequirements): Promise<ModelCandidate[]>;
13
21
  private getCacheKey;
14
22
  private hashString;
15
- private getAgentNames;
16
23
  private detectProvider;
17
24
  private estimateTotalCost;
18
25
  private estimateModelCost;
@@ -1 +1 @@
1
- {"version":3,"file":"assessor.d.ts","sourceRoot":"","sources":["../../src/assessor/assessor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,cAAc,EACd,gBAAgB,EAEhB,gBAAgB,EAChB,cAAc,EAGd,QAAQ,EAGT,MAAM,qBAAqB,CAAC;AA2B7B,qBAAa,aAAc,YAAW,QAAQ;IAC5C,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,eAAe,CAAsE;gBAEjF,MAAM,GAAE,cAAmB;IAQjC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA6GhF,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,GAAG,WAAW;IA0ClE,aAAa,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAqB9E,OAAO,CAAC,WAAW;IAYnB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,aAAa;IAWrB,OAAO,CAAC,cAAc;IAStB,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,iBAAiB;CAiD1B;AAED,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,aAAa,CAErE"}
1
+ {"version":3,"file":"assessor.d.ts","sourceRoot":"","sources":["../../src/assessor/assessor.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAEV,WAAW,EACX,cAAc,EACd,gBAAgB,EAEhB,gBAAgB,EAChB,cAAc,EAEd,eAAe,EACf,QAAQ,EAGT,MAAM,qBAAqB,CAAC;AA2B7B;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,IAAI,CAAC,eAAe,EAAE,IAAI,GAAG,UAAU,CAAC,GAAG,MAAM,CAExF;AASD,qBAAa,aAAc,YAAW,QAAQ;IAC5C,OAAO,CAAC,MAAM,CAAyB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,eAAe,CAAsE;gBAEjF,MAAM,GAAE,cAAmB;IAQjC,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,WAAW,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAgHhF;;;OAGG;IACH,YAAY,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,gBAAgB,GAAG,WAAW;IAoClE,aAAa,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAqB9E,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,iBAAiB;CAwD1B;AAeD,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,aAAa,CAErE"}
@@ -1,3 +1,4 @@
1
+ import { parseModel } from '@cogitator-ai/core';
1
2
  import { TaskAnalyzer } from './task-analyzer.js';
2
3
  import { ModelDiscovery } from './model-discovery.js';
3
4
  import { ModelScorer } from './scoring.js';
@@ -17,6 +18,15 @@ const TOKEN_ESTIMATES = {
17
18
  moderate: 1500,
18
19
  complex: 4000,
19
20
  };
21
+ /**
22
+ * Model string an agent can run with: `${provider}/${id}`.
23
+ */
24
+ export function qualifiedModelId(model) {
25
+ return model.id.startsWith(`${model.provider}/`) ? model.id : `${model.provider}/${model.id}`;
26
+ }
27
+ function findDiscoveredModel(models, modelString) {
28
+ return models.find((m) => m.id === modelString || qualifiedModelId(m) === modelString);
29
+ }
20
30
  export class SwarmAssessor {
21
31
  config;
22
32
  taskAnalyzer;
@@ -89,11 +99,14 @@ export class SwarmAssessor {
89
99
  assignments.push({
90
100
  agentName: agent.agent.name,
91
101
  originalModel: agent.agent.model,
92
- assignedModel: selectedModel.model.id,
102
+ assignedModel: qualifiedModelId(selectedModel.model),
93
103
  provider: selectedModel.model.provider,
94
104
  score: selectedModel.score,
95
105
  reasons: selectedModel.reasons,
96
- fallbackModels: validModels.slice(1, 4).map((s) => s.model.id),
106
+ fallbackModels: validModels
107
+ .filter((s) => s !== selectedModel)
108
+ .slice(0, 3)
109
+ .map((s) => qualifiedModelId(s.model)),
97
110
  locked: false,
98
111
  });
99
112
  }
@@ -113,39 +126,40 @@ export class SwarmAssessor {
113
126
  }
114
127
  return result;
115
128
  }
129
+ /**
130
+ * Apply assessment results: every unlocked agent is replaced by a clone running the
131
+ * assigned model. Agents keep their name, instructions and tools.
132
+ */
116
133
  assignModels(config, result) {
117
- const updatedConfig = { ...config };
118
- for (const assignment of result.assignments) {
119
- if (assignment.locked)
120
- continue;
121
- const updateAgent = (agent) => {
122
- if (agent.name !== assignment.agentName)
123
- return agent;
124
- return { ...agent, model: assignment.assignedModel };
125
- };
126
- if (updatedConfig.supervisor) {
127
- updatedConfig.supervisor = updateAgent(updatedConfig.supervisor);
128
- }
129
- if (updatedConfig.moderator) {
130
- updatedConfig.moderator = updateAgent(updatedConfig.moderator);
131
- }
132
- if (updatedConfig.router) {
133
- updatedConfig.router = updateAgent(updatedConfig.router);
134
- }
135
- if (updatedConfig.workers) {
136
- updatedConfig.workers = updatedConfig.workers.map((w) => updateAgent(w));
137
- }
138
- if (updatedConfig.agents) {
139
- updatedConfig.agents = updatedConfig.agents.map((a) => updateAgent(a));
134
+ const assignments = new Map(result.assignments.filter((a) => !a.locked).map((a) => [a.agentName, a.assignedModel]));
135
+ const clones = new Map();
136
+ const updateAgent = (agent) => {
137
+ const assignedModel = assignments.get(agent.name);
138
+ if (!assignedModel || assignedModel === agent.model)
139
+ return agent;
140
+ let clone = clones.get(agent);
141
+ if (!clone) {
142
+ clone = agent.clone({ model: assignedModel, provider: undefined });
143
+ clones.set(agent, clone);
140
144
  }
141
- if (updatedConfig.stages) {
142
- updatedConfig.stages = updatedConfig.stages.map((stage) => ({
145
+ return clone;
146
+ };
147
+ return {
148
+ ...config,
149
+ supervisor: config.supervisor && updateAgent(config.supervisor),
150
+ workers: config.workers?.map(updateAgent),
151
+ agents: config.agents?.map(updateAgent),
152
+ moderator: config.moderator && updateAgent(config.moderator),
153
+ router: config.router && updateAgent(config.router),
154
+ stages: config.stages?.map((stage) => ({ ...stage, agent: updateAgent(stage.agent) })),
155
+ pipeline: config.pipeline && {
156
+ ...config.pipeline,
157
+ stages: config.pipeline.stages.map((stage) => ({
143
158
  ...stage,
144
159
  agent: updateAgent(stage.agent),
145
- }));
146
- }
147
- }
148
- return updatedConfig;
160
+ })),
161
+ },
162
+ };
149
163
  }
150
164
  async suggestModels(requirements) {
151
165
  const discoveredModels = await this.modelDiscovery.discoverAll();
@@ -170,7 +184,9 @@ export class SwarmAssessor {
170
184
  const configHash = this.hashString(JSON.stringify({
171
185
  name: config.name,
172
186
  strategy: config.strategy,
173
- agents: this.getAgentNames(config),
187
+ agents: this.roleMatcher
188
+ .extractAgentsFromConfig(config)
189
+ .map((a) => [a.agent.name, a.agent.model, a.metadata.role, a.metadata.locked ?? false]),
174
190
  }));
175
191
  return `${taskHash}-${configHash}`;
176
192
  }
@@ -183,25 +199,12 @@ export class SwarmAssessor {
183
199
  }
184
200
  return Math.abs(hash).toString(36);
185
201
  }
186
- getAgentNames(config) {
187
- const names = [];
188
- if (config.supervisor)
189
- names.push(config.supervisor.name);
190
- if (config.workers)
191
- names.push(...config.workers.map((w) => w.name));
192
- if (config.agents)
193
- names.push(...config.agents.map((a) => a.name));
194
- if (config.moderator)
195
- names.push(config.moderator.name);
196
- if (config.router)
197
- names.push(config.router.name);
198
- if (config.stages)
199
- names.push(...config.stages.map((s) => s.agent.name));
200
- return names;
201
- }
202
202
  detectProvider(modelId) {
203
+ const prefixed = parseModel(modelId).provider;
204
+ if (prefixed && isModelProvider(prefixed))
205
+ return prefixed;
203
206
  const lower = modelId.toLowerCase();
204
- if (lower.includes('gpt') || lower.includes('o1') || lower.includes('o3'))
207
+ if (lower.startsWith('gpt') || /^o\d/.test(lower))
205
208
  return 'openai';
206
209
  if (lower.includes('claude'))
207
210
  return 'anthropic';
@@ -215,7 +218,7 @@ export class SwarmAssessor {
215
218
  const estimatedTokens = TOKEN_ESTIMATES[complexity];
216
219
  let total = 0;
217
220
  for (const assignment of assignments) {
218
- const model = discoveredModels.find((m) => m.id === assignment.assignedModel);
221
+ const model = findDiscoveredModel(discoveredModels, assignment.assignedModel);
219
222
  if (model && !model.isLocal) {
220
223
  total +=
221
224
  (model.pricing.input * estimatedTokens + model.pricing.output * estimatedTokens) /
@@ -237,7 +240,7 @@ export class SwarmAssessor {
237
240
  const byExpense = [...assignments]
238
241
  .filter((a) => !a.locked)
239
242
  .map((a) => {
240
- const model = discoveredModels.find((m) => m.id === a.assignedModel);
243
+ const model = findDiscoveredModel(discoveredModels, a.assignedModel);
241
244
  return {
242
245
  assignment: a,
243
246
  model,
@@ -249,16 +252,21 @@ export class SwarmAssessor {
249
252
  if (currentCost <= budget)
250
253
  break;
251
254
  for (const fallbackId of item.assignment.fallbackModels) {
252
- const fallbackModel = discoveredModels.find((m) => m.id === fallbackId);
255
+ const fallbackModel = findDiscoveredModel(discoveredModels, fallbackId);
253
256
  if (!fallbackModel)
254
257
  continue;
255
258
  const oldCost = item.model ? this.estimateModelCost(item.model, complexity) : 0;
256
259
  const newCost = this.estimateModelCost(fallbackModel, complexity);
257
260
  if (newCost >= oldCost)
258
261
  continue;
262
+ item.assignment.fallbackModels = item.assignment.fallbackModels.filter((id) => id !== fallbackId);
263
+ if (item.model) {
264
+ item.assignment.fallbackModels.unshift(qualifiedModelId(item.model));
265
+ }
259
266
  item.assignment.assignedModel = fallbackId;
260
267
  item.assignment.provider = fallbackModel.provider;
261
268
  item.assignment.reasons.push('Downgraded for cost optimization');
269
+ item.model = fallbackModel;
262
270
  const reqs = roleAnalyses?.get(item.assignment.agentName);
263
271
  if (reqs) {
264
272
  const rescored = this.modelScorer.score(fallbackModel, reqs);
@@ -270,6 +278,17 @@ export class SwarmAssessor {
270
278
  }
271
279
  }
272
280
  }
281
+ const MODEL_PROVIDERS = [
282
+ 'ollama',
283
+ 'openai',
284
+ 'anthropic',
285
+ 'google',
286
+ 'azure',
287
+ 'mistral',
288
+ ];
289
+ function isModelProvider(value) {
290
+ return MODEL_PROVIDERS.includes(value);
291
+ }
273
292
  export function createAssessor(config) {
274
293
  return new SwarmAssessor(config);
275
294
  }
@@ -1 +1 @@
1
- {"version":3,"file":"assessor.js","sourceRoot":"","sources":["../../src/assessor/assessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"assessor.js","sourceRoot":"","sources":["../../src/assessor/assessor.ts"],"names":[],"mappings":"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"}
@@ -1,31 +1,13 @@
1
- import type { TaskRequirements, RoleRequirements, SwarmAgent } from '@cogitator-ai/types';
1
+ import type { TaskRequirements, RoleRequirements, SwarmAgent, SwarmConfig } from '@cogitator-ai/types';
2
2
  export declare class RoleMatcher {
3
3
  analyzeRole(agent: SwarmAgent, taskReqs: TaskRequirements): RoleRequirements;
4
4
  private applyExpertiseRequirements;
5
5
  private upgradeReasoning;
6
6
  private adjustCostSensitivity;
7
- extractAgentsFromConfig(config: {
8
- supervisor?: {
9
- name: string;
10
- };
11
- workers?: Array<{
12
- name: string;
13
- }>;
14
- agents?: Array<{
15
- name: string;
16
- }>;
17
- moderator?: {
18
- name: string;
19
- };
20
- router?: {
21
- name: string;
22
- };
23
- stages?: Array<{
24
- agent: {
25
- name: string;
26
- };
27
- }>;
28
- }): SwarmAgent[];
29
- private createSwarmAgent;
7
+ /**
8
+ * All agents of a swarm config with their swarm metadata. Agents without an explicit role
9
+ * are assessed as workers.
10
+ */
11
+ extractAgentsFromConfig(config: SwarmConfig): SwarmAgent[];
30
12
  }
31
13
  //# sourceMappingURL=role-matcher.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"role-matcher.d.ts","sourceRoot":"","sources":["../../src/assessor/role-matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EAEX,MAAM,qBAAqB,CAAC;AAE7B,qBAAa,WAAW;IACtB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB;IA+C5E,OAAO,CAAC,0BAA0B;IAiClC,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,qBAAqB;IAU7B,uBAAuB,CAAC,MAAM,EAAE;QAC9B,UAAU,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAC9B,OAAO,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAClC,MAAM,CAAC,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACjC,SAAS,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAC7B,MAAM,CAAC,EAAE;YAAE,IAAI,EAAE,MAAM,CAAA;SAAE,CAAC;QAC1B,MAAM,CAAC,EAAE,KAAK,CAAC;YAAE,KAAK,EAAE;gBAAE,IAAI,EAAE,MAAM,CAAA;aAAE,CAAA;SAAE,CAAC,CAAC;KAC7C,GAAG,UAAU,EAAE;IAoChB,OAAO,CAAC,gBAAgB;CAiBzB"}
1
+ {"version":3,"file":"role-matcher.d.ts","sourceRoot":"","sources":["../../src/assessor/role-matcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,gBAAgB,EAChB,gBAAgB,EAChB,UAAU,EACV,WAAW,EACZ,MAAM,qBAAqB,CAAC;AAG7B,qBAAa,WAAW;IACtB,WAAW,CAAC,KAAK,EAAE,UAAU,EAAE,QAAQ,EAAE,gBAAgB,GAAG,gBAAgB;IA+C5E,OAAO,CAAC,0BAA0B;IAiClC,OAAO,CAAC,gBAAgB;IAQxB,OAAO,CAAC,qBAAqB;IAU7B;;;OAGG;IACH,uBAAuB,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,EAAE;CAS3D"}
@@ -1,3 +1,4 @@
1
+ import { collectSwarmAgentEntries } from '../agents.js';
1
2
  export class RoleMatcher {
2
3
  analyzeRole(agent, taskReqs) {
3
4
  const role = agent.metadata.role;
@@ -76,47 +77,18 @@ export class RoleMatcher {
76
77
  const newIndex = Math.max(0, Math.min(2, currentIndex + direction));
77
78
  return levels[newIndex];
78
79
  }
80
+ /**
81
+ * All agents of a swarm config with their swarm metadata. Agents without an explicit role
82
+ * are assessed as workers.
83
+ */
79
84
  extractAgentsFromConfig(config) {
80
- const agents = [];
81
- if (config.supervisor) {
82
- agents.push(this.createSwarmAgent(config.supervisor, 'supervisor'));
83
- }
84
- if (config.workers) {
85
- for (const worker of config.workers) {
86
- agents.push(this.createSwarmAgent(worker, 'worker'));
87
- }
88
- }
89
- if (config.agents) {
90
- for (const agent of config.agents) {
91
- agents.push(this.createSwarmAgent(agent, 'worker'));
92
- }
93
- }
94
- if (config.moderator) {
95
- agents.push(this.createSwarmAgent(config.moderator, 'moderator'));
96
- }
97
- if (config.router) {
98
- agents.push(this.createSwarmAgent(config.router, 'router'));
99
- }
100
- if (config.stages) {
101
- for (const stage of config.stages) {
102
- agents.push(this.createSwarmAgent(stage.agent, 'worker'));
103
- }
104
- }
105
- return agents;
106
- }
107
- createSwarmAgent(agent, defaultRole) {
108
- return {
109
- agent: agent,
110
- metadata: {
111
- role: agent.metadata?.role ?? defaultRole,
112
- expertise: agent.metadata?.expertise,
113
- locked: agent.metadata?.locked,
114
- ...agent.metadata,
115
- },
85
+ return collectSwarmAgentEntries(config).map(({ agent, metadata }) => ({
86
+ agent,
87
+ metadata: { ...metadata, role: metadata.role ?? 'worker' },
116
88
  state: 'idle',
117
89
  messageCount: 0,
118
90
  tokenCount: 0,
119
- };
91
+ }));
120
92
  }
121
93
  }
122
94
  //# sourceMappingURL=role-matcher.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"role-matcher.js","sourceRoot":"","sources":["../../src/assessor/role-matcher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"role-matcher.js","sourceRoot":"","sources":["../../src/assessor/role-matcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ import type { Agent, SwarmConfig, SwarmAgent, SwarmAgentMetadata, SwarmAgentRunOptions, SwarmResourceUsage, RunResult, SwarmEventEmitter, SwarmCoordinatorInterface, Tool } from '@cogitator-ai/types';
2
+ import type { ReadTrackingMessageBus } from './communication/message-bus.js';
3
+ import type { ObservableBlackboard } from './communication/blackboard.js';
4
+ import { ResourceTracker } from './resources/tracker.js';
5
+ type RetryConfig = NonNullable<NonNullable<SwarmConfig['errorHandling']>['retry']>;
6
+ export interface SwarmRunScope {
7
+ /** Base thread id; each agent gets its own `${threadId}:${agentName}` thread */
8
+ threadId?: string;
9
+ /** Signal that cancels every agent run of the current swarm run */
10
+ signal?: AbortSignal;
11
+ }
12
+ export interface SwarmCommunication<Bus extends ReadTrackingMessageBus = ReadTrackingMessageBus, Board extends ObservableBlackboard = ObservableBlackboard, Events extends SwarmEventEmitter = SwarmEventEmitter> {
13
+ messageBus: Bus;
14
+ blackboard: Board;
15
+ events: Events;
16
+ }
17
+ /**
18
+ * Everything an execution engine needs to run one agent turn.
19
+ */
20
+ export interface AgentRunRequest {
21
+ swarmAgent: SwarmAgent;
22
+ /** Agent to execute, with `resources.perAgent` limits applied */
23
+ agent: Agent;
24
+ input: string;
25
+ /** Full run context including swarm, message and negotiation context */
26
+ context: Record<string, unknown>;
27
+ signal: AbortSignal;
28
+ threadId?: string;
29
+ timeout?: number;
30
+ saveHistory: boolean;
31
+ }
32
+ /**
33
+ * Shared coordination logic for local and distributed swarms: agent registry, budgets,
34
+ * circuit breaking, error recovery, pause/abort, parallel scheduling and observability.
35
+ * Subclasses only decide how a single agent turn is executed.
36
+ */
37
+ export declare abstract class BaseSwarmCoordinator<Bus extends ReadTrackingMessageBus = ReadTrackingMessageBus, Board extends ObservableBlackboard = ObservableBlackboard, Events extends SwarmEventEmitter = SwarmEventEmitter> implements SwarmCoordinatorInterface {
38
+ protected readonly config: SwarmConfig;
39
+ protected readonly swarmId: string;
40
+ protected readonly agents: Map<string, SwarmAgent>;
41
+ protected readonly communication: SwarmCommunication<Bus, Board, Events>;
42
+ protected resourceTracker: ResourceTracker;
43
+ protected saveHistory: boolean;
44
+ private circuitBreaker?;
45
+ private limitedAgents;
46
+ private injectedTools;
47
+ private abortController;
48
+ private runScope;
49
+ private paused;
50
+ protected constructor(config: SwarmConfig, swarmId: string, communication: SwarmCommunication<Bus, Board, Events>);
51
+ /**
52
+ * Execute a single agent turn. Implementations must honour `request.signal`.
53
+ */
54
+ protected abstract executeRun(request: AgentRunRequest): Promise<RunResult>;
55
+ /**
56
+ * Hook for engines that need asynchronous setup before the first agent run.
57
+ */
58
+ protected prepare(): Promise<void>;
59
+ get messageBus(): Bus;
60
+ get blackboard(): Board;
61
+ get events(): Events;
62
+ setSaveHistory(value: boolean): void;
63
+ getSwarmId(): string;
64
+ getAgent(name: string): SwarmAgent | undefined;
65
+ getAgents(): SwarmAgent[];
66
+ getAgentsByRole(role: SwarmAgentMetadata['role']): SwarmAgent[];
67
+ getResourceUsage(): SwarmResourceUsage;
68
+ /**
69
+ * Start a new swarm run: resource budgets are per run, so usage counters restart here.
70
+ */
71
+ beginRun(scope?: SwarmRunScope): void;
72
+ endRun(): void;
73
+ pause(): void;
74
+ resume(): void;
75
+ /**
76
+ * Abort the swarm: pending agent runs are rejected and in-flight runs are cancelled.
77
+ */
78
+ abort(): void;
79
+ isAborted(): boolean;
80
+ isPaused(): boolean;
81
+ reset(): void;
82
+ runAgent(agentName: string, input: string, context?: Record<string, unknown>, options?: SwarmAgentRunOptions): Promise<RunResult>;
83
+ runAgentsParallel(agents: {
84
+ name: string;
85
+ input: string;
86
+ context?: Record<string, unknown>;
87
+ }[], maxConcurrency?: number): Promise<Map<string, RunResult>>;
88
+ private runAgentWithRecovery;
89
+ private requireAgent;
90
+ private ensureRunnable;
91
+ protected isCancelled(): boolean;
92
+ private currentSignal;
93
+ private executeAgent;
94
+ /**
95
+ * Tools a strategy needs an agent to have: the supervisor of a hierarchical swarm gets the
96
+ * delegation tools, negotiating agents get the negotiation tools. Tools the agent already
97
+ * defines (by name) are left untouched. Engines that cannot ship tool implementations
98
+ * (e.g. remote workers) override this.
99
+ */
100
+ protected strategyTools(swarmAgent: SwarmAgent): Tool[];
101
+ private missingStrategyTools;
102
+ /**
103
+ * The agent actually executed for a turn: a cached clone when strategy tools,
104
+ * `resources.perAgent` limits or per-turn token caps apply, otherwise the agent itself.
105
+ */
106
+ private getRunnableAgent;
107
+ private handleAgentError;
108
+ private retryAgentRun;
109
+ private setAgentState;
110
+ private wireObservability;
111
+ private collectIncomingMessages;
112
+ private buildNegotiationContext;
113
+ }
114
+ export declare function computeBackoffDelay(backoff: RetryConfig['backoff'], attempt: number, initialDelay: number, maxDelay: number): number;
115
+ export declare function toError(error: unknown): Error;
116
+ export {};
117
+ //# sourceMappingURL=base-coordinator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-coordinator.d.ts","sourceRoot":"","sources":["../src/base-coordinator.ts"],"names":[],"mappings":"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"}