@cogitator-ai/swarms 0.4.20 → 0.6.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 (140) 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 +72 -53
  9. package/dist/assessor/assessor.js.map +1 -1
  10. package/dist/assessor/model-discovery.d.ts.map +1 -1
  11. package/dist/assessor/model-discovery.js +40 -46
  12. package/dist/assessor/model-discovery.js.map +1 -1
  13. package/dist/assessor/role-matcher.d.ts +6 -24
  14. package/dist/assessor/role-matcher.d.ts.map +1 -1
  15. package/dist/assessor/role-matcher.js +9 -37
  16. package/dist/assessor/role-matcher.js.map +1 -1
  17. package/dist/assessor/scoring.d.ts.map +1 -1
  18. package/dist/assessor/scoring.js +23 -1
  19. package/dist/assessor/scoring.js.map +1 -1
  20. package/dist/base-coordinator.d.ts +117 -0
  21. package/dist/base-coordinator.d.ts.map +1 -0
  22. package/dist/base-coordinator.js +455 -0
  23. package/dist/base-coordinator.js.map +1 -0
  24. package/dist/communication/blackboard.d.ts +34 -4
  25. package/dist/communication/blackboard.d.ts.map +1 -1
  26. package/dist/communication/blackboard.js +81 -46
  27. package/dist/communication/blackboard.js.map +1 -1
  28. package/dist/communication/event-emitter.d.ts.map +1 -1
  29. package/dist/communication/event-emitter.js +6 -17
  30. package/dist/communication/event-emitter.js.map +1 -1
  31. package/dist/communication/index.d.ts +2 -2
  32. package/dist/communication/index.d.ts.map +1 -1
  33. package/dist/communication/index.js +2 -2
  34. package/dist/communication/index.js.map +1 -1
  35. package/dist/communication/message-bus.d.ts +48 -5
  36. package/dist/communication/message-bus.d.ts.map +1 -1
  37. package/dist/communication/message-bus.js +135 -50
  38. package/dist/communication/message-bus.js.map +1 -1
  39. package/dist/communication/redis-blackboard.d.ts +11 -5
  40. package/dist/communication/redis-blackboard.d.ts.map +1 -1
  41. package/dist/communication/redis-blackboard.js +159 -116
  42. package/dist/communication/redis-blackboard.js.map +1 -1
  43. package/dist/communication/redis-event-emitter.d.ts +12 -0
  44. package/dist/communication/redis-event-emitter.d.ts.map +1 -1
  45. package/dist/communication/redis-event-emitter.js +96 -54
  46. package/dist/communication/redis-event-emitter.js.map +1 -1
  47. package/dist/communication/redis-message-bus.d.ts +11 -6
  48. package/dist/communication/redis-message-bus.d.ts.map +1 -1
  49. package/dist/communication/redis-message-bus.js +88 -77
  50. package/dist/communication/redis-message-bus.js.map +1 -1
  51. package/dist/coordinator.d.ts +7 -41
  52. package/dist/coordinator.d.ts.map +1 -1
  53. package/dist/coordinator.js +17 -340
  54. package/dist/coordinator.js.map +1 -1
  55. package/dist/distributed/distributed-coordinator.d.ts +54 -51
  56. package/dist/distributed/distributed-coordinator.d.ts.map +1 -1
  57. package/dist/distributed/distributed-coordinator.js +166 -284
  58. package/dist/distributed/distributed-coordinator.js.map +1 -1
  59. package/dist/distributed/index.d.ts +1 -1
  60. package/dist/distributed/index.d.ts.map +1 -1
  61. package/dist/distributed/index.js +1 -1
  62. package/dist/distributed/index.js.map +1 -1
  63. package/dist/index.d.ts +4 -3
  64. package/dist/index.d.ts.map +1 -1
  65. package/dist/index.js +4 -3
  66. package/dist/index.js.map +1 -1
  67. package/dist/resources/circuit-breaker.d.ts.map +1 -1
  68. package/dist/resources/circuit-breaker.js +3 -4
  69. package/dist/resources/circuit-breaker.js.map +1 -1
  70. package/dist/shared/hierarchy.d.ts +21 -0
  71. package/dist/shared/hierarchy.d.ts.map +1 -0
  72. package/dist/shared/hierarchy.js +27 -0
  73. package/dist/shared/hierarchy.js.map +1 -0
  74. package/dist/shared/negotiation.d.ts +27 -0
  75. package/dist/shared/negotiation.d.ts.map +1 -0
  76. package/dist/shared/negotiation.js +55 -0
  77. package/dist/shared/negotiation.js.map +1 -0
  78. package/dist/shared/voting.d.ts +6 -0
  79. package/dist/shared/voting.d.ts.map +1 -0
  80. package/dist/shared/voting.js +13 -0
  81. package/dist/shared/voting.js.map +1 -0
  82. package/dist/strategies/consensus.d.ts +12 -0
  83. package/dist/strategies/consensus.d.ts.map +1 -1
  84. package/dist/strategies/consensus.js +75 -47
  85. package/dist/strategies/consensus.js.map +1 -1
  86. package/dist/strategies/debate.d.ts.map +1 -1
  87. package/dist/strategies/debate.js +18 -8
  88. package/dist/strategies/debate.js.map +1 -1
  89. package/dist/strategies/hierarchical.d.ts.map +1 -1
  90. package/dist/strategies/hierarchical.js +29 -14
  91. package/dist/strategies/hierarchical.js.map +1 -1
  92. package/dist/strategies/negotiation/approval.d.ts.map +1 -1
  93. package/dist/strategies/negotiation/approval.js +22 -19
  94. package/dist/strategies/negotiation/approval.js.map +1 -1
  95. package/dist/strategies/negotiation-strategy.d.ts +24 -2
  96. package/dist/strategies/negotiation-strategy.d.ts.map +1 -1
  97. package/dist/strategies/negotiation-strategy.js +276 -141
  98. package/dist/strategies/negotiation-strategy.js.map +1 -1
  99. package/dist/strategies/pipeline.js +6 -6
  100. package/dist/strategies/pipeline.js.map +1 -1
  101. package/dist/swarm.d.ts +25 -11
  102. package/dist/swarm.d.ts.map +1 -1
  103. package/dist/swarm.js +195 -121
  104. package/dist/swarm.js.map +1 -1
  105. package/dist/tools/blackboard.d.ts +1 -1
  106. package/dist/tools/blackboard.d.ts.map +1 -1
  107. package/dist/tools/blackboard.js +26 -12
  108. package/dist/tools/blackboard.js.map +1 -1
  109. package/dist/tools/delegation.d.ts +17 -4
  110. package/dist/tools/delegation.d.ts.map +1 -1
  111. package/dist/tools/delegation.js +95 -88
  112. package/dist/tools/delegation.js.map +1 -1
  113. package/dist/tools/index.d.ts +3 -1
  114. package/dist/tools/index.d.ts.map +1 -1
  115. package/dist/tools/index.js +9 -4
  116. package/dist/tools/index.js.map +1 -1
  117. package/dist/tools/messaging.d.ts +38 -6
  118. package/dist/tools/messaging.d.ts.map +1 -1
  119. package/dist/tools/messaging.js +118 -41
  120. package/dist/tools/messaging.js.map +1 -1
  121. package/dist/tools/negotiation.d.ts +8 -4
  122. package/dist/tools/negotiation.d.ts.map +1 -1
  123. package/dist/tools/negotiation.js +138 -115
  124. package/dist/tools/negotiation.js.map +1 -1
  125. package/dist/tools/voting.d.ts +3 -0
  126. package/dist/tools/voting.d.ts.map +1 -1
  127. package/dist/tools/voting.js +13 -12
  128. package/dist/tools/voting.js.map +1 -1
  129. package/dist/utils/concurrency.d.ts +10 -0
  130. package/dist/utils/concurrency.d.ts.map +1 -0
  131. package/dist/utils/concurrency.js +28 -0
  132. package/dist/utils/concurrency.js.map +1 -0
  133. package/dist/utils/invoke.d.ts +2 -0
  134. package/dist/utils/invoke.d.ts.map +1 -0
  135. package/dist/utils/invoke.js +19 -0
  136. package/dist/utils/invoke.js.map +1 -0
  137. package/dist/workflow/swarm-node.d.ts.map +1 -1
  138. package/dist/workflow/swarm-node.js +55 -98
  139. package/dist/workflow/swarm-node.js.map +1 -1
  140. package/package.json +16 -14
@@ -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":"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"}
@@ -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,10 +1,11 @@
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';
4
5
  import { RoleMatcher } from './role-matcher.js';
5
6
  const DEFAULT_CONFIG = {
6
7
  mode: 'rules',
7
- assessorModel: 'gpt-4o-mini',
8
+ assessorModel: 'gpt-6-luna',
8
9
  preferLocal: true,
9
10
  minCapabilityMatch: 0.3,
10
11
  ollamaUrl: 'http://localhost:11434',
@@ -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":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAehD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAM7C,MAAM,cAAc,GAA2B;IAC7C,IAAI,EAAE,OAAO;IACb,aAAa,EAAE,YAAY;IAC3B,WAAW,EAAE,IAAI;IACjB,kBAAkB,EAAE,GAAG;IACvB,SAAS,EAAE,wBAAwB;IACnC,gBAAgB,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,QAAQ,CAAC;IAC7D,gBAAgB,EAAE,IAAI;IACtB,QAAQ,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI;CACxB,CAAC;AAEF,MAAM,eAAe,GAAmC;IACtD,MAAM,EAAE,GAAG;IACX,QAAQ,EAAE,IAAI;IACd,OAAO,EAAE,IAAI;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA+C;IAC9E,OAAO,KAAK,CAAC,EAAE,CAAC,UAAU,CAAC,GAAG,KAAK,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,EAAE,EAAE,CAAC;AAChG,CAAC;AAED,SAAS,mBAAmB,CAC1B,MAAyB,EACzB,WAAmB;IAEnB,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,WAAW,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,WAAW,CAAC,CAAC;AACzF,CAAC;AAED,MAAM,OAAO,aAAa;IAChB,MAAM,CAAyB;IAC/B,YAAY,CAAe;IAC3B,cAAc,CAAiB;IAC/B,WAAW,CAAc;IACzB,WAAW,CAAc;IACzB,eAAe,GAAG,IAAI,GAAG,EAA2D,CAAC;IAE7F,YAAY,SAAyB,EAAE;QACrC,IAAI,CAAC,MAAM,GAAG,EAAE,GAAG,cAAc,EAAE,GAAG,MAAM,EAAE,CAAC;QAC/C,IAAI,CAAC,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;QACvC,IAAI,CAAC,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACtD,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,IAAI,WAAW,EAAE,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAAY,EAAE,WAAwB;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;QACrD,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YAClD,IAAI,MAAM,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;gBACnE,OAAO,MAAM,CAAC,MAAM,CAAC;YACvB,CAAC;QACH,CAAC;QAED,MAAM,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QAErD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;QAEjE,MAAM,MAAM,GAAG,IAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,WAAW,CAAC,CAAC;QAErE,MAAM,YAAY,GAAG,IAAI,GAAG,EAA4B,CAAC;QACzD,MAAM,WAAW,GAAsB,EAAE,CAAC;QAC1C,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;gBAC1B,WAAW,CAAC,IAAI,CAAC;oBACf,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;oBAC3B,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;oBAChC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;oBAChC,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;oBAChD,KAAK,EAAE,GAAG;oBACV,OAAO,EAAE,CAAC,+BAA+B,CAAC;oBAC1C,cAAc,EAAE,EAAE;oBAClB,MAAM,EAAE,IAAI;iBACb,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;YACnE,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;YAE7C,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;YAC3E,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,kBAAkB,GAAG,GAAG,CAAC;YACtD,MAAM,WAAW,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,CAAC;YAEpE,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;gBAC7B,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBACxC,QAAQ,CAAC,IAAI,CACX,+BAA+B,KAAK,CAAC,KAAK,CAAC,IAAI,uBAAuB,aAAa,EAAE,CACtF,CAAC;gBACF,WAAW,CAAC,IAAI,CAAC;oBACf,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;oBAC3B,aAAa;oBACb,aAAa,EAAE,aAAa;oBAC5B,QAAQ,EAAE,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC;oBAC5C,KAAK,EAAE,EAAE;oBACT,OAAO,EAAE,CAAC,uCAAuC,CAAC;oBAClD,cAAc,EAAE,EAAE;oBAClB,MAAM,EAAE,KAAK;iBACd,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,IAAI,aAAa,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;YACnC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC;gBAC5B,MAAM,UAAU,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;gBAC5D,IAAI,UAAU,IAAI,UAAU,CAAC,KAAK,IAAI,aAAa,CAAC,KAAK,GAAG,GAAG,EAAE,CAAC;oBAChE,aAAa,GAAG,UAAU,CAAC;gBAC7B,CAAC;YACH,CAAC;YAED,WAAW,CAAC,IAAI,CAAC;gBACf,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;gBAC3B,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK;gBAChC,aAAa,EAAE,gBAAgB,CAAC,aAAa,CAAC,KAAK,CAAC;gBACpD,QAAQ,EAAE,aAAa,CAAC,KAAK,CAAC,QAAQ;gBACtC,KAAK,EAAE,aAAa,CAAC,KAAK;gBAC1B,OAAO,EAAE,aAAa,CAAC,OAAO;gBAC9B,cAAc,EAAE,WAAW;qBACxB,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,aAAa,CAAC;qBAClC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;qBACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;gBACxC,MAAM,EAAE,KAAK;aACd,CAAC,CAAC;QACL,CAAC;QAED,IAAI,IAAI,CAAC,MAAM,CAAC,aAAa,EAAE,CAAC;YAC9B,IAAI,CAAC,iBAAiB,CACpB,WAAW,EACX,gBAAgB,EAChB,IAAI,CAAC,MAAM,CAAC,aAAa,EACzB,YAAY,CAAC,UAAU,EACvB,YAAY,CACb,CAAC;QACJ,CAAC;QAED,MAAM,MAAM,GAAqB;YAC/B,YAAY;YACZ,YAAY;YACZ,WAAW;YACX,kBAAkB,EAAE,IAAI,CAAC,iBAAiB,CACxC,WAAW,EACX,gBAAgB,EAChB,YAAY,CAAC,UAAU,CACxB;YACD,QAAQ;YACR,gBAAgB;SACjB,CAAC;QAEF,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,EAAE,CAAC;YACjC,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACxE,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;OAGG;IACH,YAAY,CAAC,MAAmB,EAAE,MAAwB;QACxD,MAAM,WAAW,GAAG,IAAI,GAAG,CACzB,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC,CACvF,CAAC;QACF,MAAM,MAAM,GAAG,IAAI,GAAG,EAAgB,CAAC;QAEvC,MAAM,WAAW,GAAG,CAAC,KAAY,EAAS,EAAE;YAC1C,MAAM,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;YAClD,IAAI,CAAC,aAAa,IAAI,aAAa,KAAK,KAAK,CAAC,KAAK;gBAAE,OAAO,KAAK,CAAC;YAElE,IAAI,KAAK,GAAG,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;gBACnE,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;YAC3B,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC,CAAC;QAEF,OAAO;YACL,GAAG,MAAM;YACT,UAAU,EAAE,MAAM,CAAC,UAAU,IAAI,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC;YAC/D,OAAO,EAAE,MAAM,CAAC,OAAO,EAAE,GAAG,CAAC,WAAW,CAAC;YACzC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,WAAW,CAAC;YACvC,SAAS,EAAE,MAAM,CAAC,SAAS,IAAI,WAAW,CAAC,MAAM,CAAC,SAAS,CAAC;YAC5D,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;YACnD,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,EAAE,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;YACtF,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI;gBAC3B,GAAG,MAAM,CAAC,QAAQ;gBAClB,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;oBAC7C,GAAG,KAAK;oBACR,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;iBAChC,CAAC,CAAC;aACJ;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,YAA8B;QAChD,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;QACjE,MAAM,QAAQ,GAAqB;YACjC,GAAG,YAAY;YACf,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,aAAa;SACzB,CAAC;QAEF,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,gBAAgB,EAAE,QAAQ,CAAC,CAAC;QAE3E,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;YAC3C,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,EAAE;YACnB,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,QAAQ;YAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;YACd,OAAO,EAAE,CAAC,CAAC,OAAO;YAClB,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO;YACxB,aAAa,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC;YACnE,YAAY,EAAE,CAAC,CAAC,KAAK,CAAC,YAAY;SACnC,CAAC,CAAC,CAAC;IACN,CAAC;IAEO,WAAW,CAAC,IAAY,EAAE,MAAmB;QACnD,MAAM,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAChC,IAAI,CAAC,SAAS,CAAC;YACb,IAAI,EAAE,MAAM,CAAC,IAAI;YACjB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,IAAI,CAAC,WAAW;iBACrB,uBAAuB,CAAC,MAAM,CAAC;iBAC/B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAI,KAAK,CAAC,CAAC;SAC1F,CAAC,CACH,CAAC;QACF,OAAO,GAAG,QAAQ,IAAI,UAAU,EAAE,CAAC;IACrC,CAAC;IAEO,UAAU,CAAC,GAAW;QAC5B,IAAI,IAAI,GAAG,CAAC,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACpC,MAAM,IAAI,GAAG,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;YAC/B,IAAI,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC;YACjC,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;QAClB,CAAC;QACD,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IACrC,CAAC;IAEO,cAAc,CAAC,OAAe;QACpC,MAAM,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC,QAAQ,CAAC;QAC9C,IAAI,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;QAE3D,MAAM,KAAK,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;QACpC,IAAI,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;YAAE,OAAO,QAAQ,CAAC;QACnE,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,WAAW,CAAC;QACjD,IAAI,KAAK,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,QAAQ,CAAC;QAC9C,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,QAAQ,CAAC,SAAS,CAAC;YAAE,OAAO,SAAS,CAAC;QAC7E,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,iBAAiB,CACvB,WAA8B,EAC9B,gBAAmC,EACnC,aAA6B,UAAU;QAEvC,MAAM,eAAe,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QACpD,IAAI,KAAK,GAAG,CAAC,CAAC;QACd,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;YACrC,MAAM,KAAK,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,UAAU,CAAC,aAAa,CAAC,CAAC;YAC9E,IAAI,KAAK,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC5B,KAAK;oBACH,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC;wBAChF,SAAS,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAEO,iBAAiB,CACvB,KAAsB,EACtB,aAA6B,UAAU;QAEvC,IAAI,KAAK,CAAC,OAAO;YAAE,OAAO,CAAC,CAAC;QAC5B,MAAM,eAAe,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;QACpD,OAAO,CACL,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,eAAe,GAAG,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,eAAe,CAAC,GAAG,SAAS,CAC7F,CAAC;IACJ,CAAC;IAEO,iBAAiB,CACvB,WAA8B,EAC9B,gBAAmC,EACnC,MAAc,EACd,aAA6B,UAAU,EACvC,YAA4C;QAE5C,IAAI,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC,WAAW,EAAE,gBAAgB,EAAE,UAAU,CAAC,CAAC;QACpF,IAAI,WAAW,IAAI,MAAM;YAAE,OAAO;QAElC,MAAM,SAAS,GAAG,CAAC,GAAG,WAAW,CAAC;aAC/B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;aACxB,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE;YACT,MAAM,KAAK,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,CAAC,CAAC,aAAa,CAAC,CAAC;YACrE,OAAO;gBACL,UAAU,EAAE,CAAC;gBACb,KAAK;gBACL,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;aAC5D,CAAC;QACJ,CAAC,CAAC;aACD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC;QAEnC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,WAAW,IAAI,MAAM;gBAAE,MAAM;YAEjC,KAAK,MAAM,UAAU,IAAI,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC;gBACxD,MAAM,aAAa,GAAG,mBAAmB,CAAC,gBAAgB,EAAE,UAAU,CAAC,CAAC;gBACxE,IAAI,CAAC,aAAa;oBAAE,SAAS;gBAE7B,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gBAChF,MAAM,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,aAAa,EAAE,UAAU,CAAC,CAAC;gBAElE,IAAI,OAAO,IAAI,OAAO;oBAAE,SAAS;gBAEjC,IAAI,CAAC,UAAU,CAAC,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,MAAM,CACpE,CAAC,EAAE,EAAE,EAAE,CAAC,EAAE,KAAK,UAAU,CAC1B,CAAC;gBACF,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;oBACf,IAAI,CAAC,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;gBACvE,CAAC;gBACD,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,UAAU,CAAC;gBAC3C,IAAI,CAAC,UAAU,CAAC,QAAQ,GAAG,aAAa,CAAC,QAAQ,CAAC;gBAClD,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;gBACjE,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC;gBAE3B,MAAM,IAAI,GAAG,YAAY,EAAE,GAAG,CAAC,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;gBAC1D,IAAI,IAAI,EAAE,CAAC;oBACT,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;oBAC7D,IAAI,CAAC,UAAU,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;gBACzC,CAAC;gBAED,WAAW,IAAI,OAAO,GAAG,OAAO,CAAC;gBACjC,MAAM;YACR,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAED,MAAM,eAAe,GAA6B;IAChD,QAAQ;IACR,QAAQ;IACR,WAAW;IACX,QAAQ;IACR,OAAO;IACP,SAAS;CACV,CAAC;AAEF,SAAS,eAAe,CAAC,KAAa;IACpC,OAAQ,eAAqC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChE,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAuB;IACpD,OAAO,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;AACnC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"model-discovery.d.ts","sourceRoot":"","sources":["../../src/assessor/model-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EAEb,cAAc,EACf,MAAM,qBAAqB,CAAC;AA8M7B,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,KAAK,CAAuE;IACpF,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,EAAE,cAAc;IAQ5B,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAqBzC,cAAc,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAkBlD,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,eAAe;IASvB,cAAc,CAAC,eAAe,CAAC,EAAE,aAAa,EAAE,GAAG,eAAe,EAAE;IAO9D,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;CAUlD"}
1
+ {"version":3,"file":"model-discovery.d.ts","sourceRoot":"","sources":["../../src/assessor/model-discovery.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,aAAa,EAEb,cAAc,EACf,MAAM,qBAAqB,CAAC;AAwM7B,qBAAa,cAAc;IACzB,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,gBAAgB,CAAqB;IAC7C,OAAO,CAAC,KAAK,CAAuE;IACpF,OAAO,CAAC,QAAQ,CAAS;gBAEb,MAAM,EAAE,cAAc;IAQ5B,WAAW,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAqBzC,cAAc,IAAI,OAAO,CAAC,eAAe,EAAE,CAAC;IAkBlD,OAAO,CAAC,oBAAoB;IAoB5B,OAAO,CAAC,uBAAuB;IAe/B,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,eAAe;IASvB,cAAc,CAAC,eAAe,CAAC,EAAE,aAAa,EAAE,GAAG,eAAe,EAAE;IAO9D,uBAAuB,IAAI,OAAO,CAAC,OAAO,CAAC;CAUlD"}
@@ -1,11 +1,13 @@
1
1
  const KNOWN_MODEL_CAPABILITIES = {
2
- llama3: { supportsTools: true, supportsJson: true },
2
+ llama3: { supportsJson: true },
3
3
  'llama3.1': { supportsTools: true, supportsJson: true },
4
4
  'llama3.2': { supportsTools: true, supportsJson: true },
5
5
  'llama3.3': { supportsTools: true, supportsJson: true },
6
6
  qwen: { supportsTools: true, supportsJson: true },
7
7
  qwen2: { supportsTools: true, supportsJson: true },
8
8
  'qwen2.5': { supportsTools: true, supportsJson: true },
9
+ qwen3: { supportsTools: true, supportsJson: true },
10
+ 'qwen3.5': { supportsVision: true, supportsTools: true, supportsJson: true },
9
11
  mistral: { supportsTools: true, supportsJson: true },
10
12
  mixtral: { supportsTools: true, supportsJson: true },
11
13
  llava: { supportsVision: true, supportsJson: true },
@@ -27,6 +29,8 @@ const KNOWN_CONTEXT_WINDOWS = {
27
29
  'llama3.1': 128000,
28
30
  llama3: 8192,
29
31
  'qwen2.5': 128000,
32
+ qwen3: 40960,
33
+ 'qwen3.5': 262144,
30
34
  qwen2: 32768,
31
35
  mistral: 32768,
32
36
  mixtral: 32768,
@@ -37,147 +41,137 @@ const KNOWN_CONTEXT_WINDOWS = {
37
41
  };
38
42
  const CLOUD_MODELS = [
39
43
  {
40
- id: 'gpt-4o',
44
+ id: 'gpt-6-astra',
41
45
  provider: 'openai',
42
- displayName: 'GPT-4o',
46
+ displayName: 'GPT-6 Astra',
43
47
  capabilities: {
44
48
  supportsVision: true,
45
49
  supportsTools: true,
46
50
  supportsJson: true,
47
51
  supportsStreaming: true,
48
52
  },
49
- pricing: { input: 2.5, output: 10 },
50
- contextWindow: 128000,
53
+ pricing: { input: 10, output: 50 },
54
+ contextWindow: 1050000,
51
55
  isLocal: false,
52
56
  isAvailable: true,
53
57
  },
54
58
  {
55
- id: 'gpt-4o-mini',
59
+ id: 'gpt-6.1-sol',
56
60
  provider: 'openai',
57
- displayName: 'GPT-4o Mini',
61
+ displayName: 'GPT-6.1 Sol',
58
62
  capabilities: {
59
63
  supportsVision: true,
60
64
  supportsTools: true,
61
65
  supportsJson: true,
62
66
  supportsStreaming: true,
63
67
  },
64
- pricing: { input: 0.15, output: 0.6 },
65
- contextWindow: 128000,
68
+ pricing: { input: 2, output: 10 },
69
+ contextWindow: 1050000,
66
70
  isLocal: false,
67
71
  isAvailable: true,
68
72
  },
69
73
  {
70
- id: 'gpt-4.1',
74
+ id: 'gpt-6-luna',
71
75
  provider: 'openai',
72
- displayName: 'GPT-4.1',
76
+ displayName: 'GPT-6 Luna',
73
77
  capabilities: {
74
78
  supportsVision: true,
75
79
  supportsTools: true,
76
80
  supportsJson: true,
77
81
  supportsStreaming: true,
78
82
  },
79
- pricing: { input: 10, output: 30 },
80
- contextWindow: 128000,
83
+ pricing: { input: 0.1, output: 0.5 },
84
+ contextWindow: 1050000,
81
85
  isLocal: false,
82
86
  isAvailable: true,
83
87
  },
84
88
  {
85
- id: 'claude-sonnet-4-20250514',
89
+ id: 'claude-opus-5-5',
86
90
  provider: 'anthropic',
87
- displayName: 'Claude Sonnet 4',
91
+ displayName: 'Claude Opus 5.5',
88
92
  capabilities: {
89
93
  supportsVision: true,
90
94
  supportsTools: true,
91
95
  supportsJson: true,
92
96
  supportsStreaming: true,
93
97
  },
94
- pricing: { input: 3, output: 15 },
95
- contextWindow: 200000,
98
+ pricing: { input: 4, output: 20 },
99
+ contextWindow: 1000000,
96
100
  isLocal: false,
97
101
  isAvailable: true,
98
102
  },
99
103
  {
100
- id: 'claude-sonnet-4-5-20250929',
104
+ id: 'claude-sonnet-5-5',
101
105
  provider: 'anthropic',
102
- displayName: 'Claude Sonnet 4.5',
106
+ displayName: 'Claude Sonnet 5.5',
103
107
  capabilities: {
104
108
  supportsVision: true,
105
109
  supportsTools: true,
106
110
  supportsJson: true,
107
111
  supportsStreaming: true,
108
112
  },
109
- pricing: { input: 3, output: 15 },
110
- contextWindow: 200000,
111
- isLocal: false,
112
- isAvailable: true,
113
- },
114
- {
115
- id: 'claude-3-5-haiku-20241022',
116
- provider: 'anthropic',
117
- displayName: 'Claude 3.5 Haiku',
118
- capabilities: { supportsTools: true, supportsJson: true, supportsStreaming: true },
119
- pricing: { input: 0.8, output: 4 },
120
- contextWindow: 200000,
113
+ pricing: { input: 2, output: 10 },
114
+ contextWindow: 1000000,
121
115
  isLocal: false,
122
116
  isAvailable: true,
123
117
  },
124
118
  {
125
- id: 'claude-opus-4-5-20250229',
119
+ id: 'claude-haiku-4-5',
126
120
  provider: 'anthropic',
127
- displayName: 'Claude Opus 4.5',
121
+ displayName: 'Claude Haiku 4.5',
128
122
  capabilities: {
129
123
  supportsVision: true,
130
124
  supportsTools: true,
131
125
  supportsJson: true,
132
126
  supportsStreaming: true,
133
127
  },
134
- pricing: { input: 15, output: 75 },
128
+ pricing: { input: 1, output: 5 },
135
129
  contextWindow: 200000,
136
130
  isLocal: false,
137
131
  isAvailable: true,
138
132
  },
139
133
  {
140
- id: 'gemini-2.5-pro',
134
+ id: 'gemini-3.1-pro-preview',
141
135
  provider: 'google',
142
- displayName: 'Gemini 2.5 Pro',
136
+ displayName: 'Gemini 3.1 Pro Preview',
143
137
  capabilities: {
144
138
  supportsVision: true,
145
139
  supportsTools: true,
146
140
  supportsJson: true,
147
141
  supportsStreaming: true,
148
142
  },
149
- pricing: { input: 1.25, output: 5 },
150
- contextWindow: 2000000,
143
+ pricing: { input: 2, output: 12 },
144
+ contextWindow: 1048576,
151
145
  isLocal: false,
152
146
  isAvailable: true,
153
147
  },
154
148
  {
155
- id: 'gemini-2.5-flash',
149
+ id: 'gemini-3.8-flash',
156
150
  provider: 'google',
157
- displayName: 'Gemini 2.5 Flash',
151
+ displayName: 'Gemini 3.8 Flash',
158
152
  capabilities: {
159
153
  supportsVision: true,
160
154
  supportsTools: true,
161
155
  supportsJson: true,
162
156
  supportsStreaming: true,
163
157
  },
164
- pricing: { input: 0.075, output: 0.3 },
165
- contextWindow: 1000000,
158
+ pricing: { input: 0.75, output: 3.75 },
159
+ contextWindow: 1048576,
166
160
  isLocal: false,
167
161
  isAvailable: true,
168
162
  },
169
163
  {
170
- id: 'gemini-2.0-flash',
164
+ id: 'gemini-3.5-flash-lite',
171
165
  provider: 'google',
172
- displayName: 'Gemini 2.0 Flash',
166
+ displayName: 'Gemini 3.5 Flash-Lite',
173
167
  capabilities: {
174
168
  supportsVision: true,
175
169
  supportsTools: true,
176
170
  supportsJson: true,
177
171
  supportsStreaming: true,
178
172
  },
179
- pricing: { input: 0.1, output: 0.4 },
180
- contextWindow: 1000000,
173
+ pricing: { input: 0.3, output: 2.5 },
174
+ contextWindow: 1048576,
181
175
  isLocal: false,
182
176
  isAvailable: true,
183
177
  },