ai.matey.core 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/LICENSE +21 -0
  2. package/dist/cjs/bridge.js +657 -0
  3. package/dist/cjs/bridge.js.map +1 -0
  4. package/dist/cjs/capability-inference.js +349 -0
  5. package/dist/cjs/capability-inference.js.map +1 -0
  6. package/dist/cjs/capability-matcher.js +216 -0
  7. package/dist/cjs/capability-matcher.js.map +1 -0
  8. package/dist/cjs/index.js +31 -0
  9. package/dist/cjs/index.js.map +1 -0
  10. package/dist/cjs/middleware-stack.js +256 -0
  11. package/dist/cjs/middleware-stack.js.map +1 -0
  12. package/dist/cjs/model-pricing.js +350 -0
  13. package/dist/cjs/model-pricing.js.map +1 -0
  14. package/dist/cjs/model-translation.js +171 -0
  15. package/dist/cjs/model-translation.js.map +1 -0
  16. package/dist/cjs/router.js +1388 -0
  17. package/dist/cjs/router.js.map +1 -0
  18. package/dist/esm/bridge.js +652 -0
  19. package/dist/esm/bridge.js.map +1 -0
  20. package/dist/esm/capability-inference.js +343 -0
  21. package/dist/esm/capability-inference.js.map +1 -0
  22. package/dist/esm/capability-matcher.js +210 -0
  23. package/dist/esm/capability-matcher.js.map +1 -0
  24. package/dist/esm/index.js +15 -0
  25. package/dist/esm/index.js.map +1 -0
  26. package/dist/esm/middleware-stack.js +250 -0
  27. package/dist/esm/middleware-stack.js.map +1 -0
  28. package/dist/esm/model-pricing.js +340 -0
  29. package/dist/esm/model-pricing.js.map +1 -0
  30. package/dist/esm/model-translation.js +163 -0
  31. package/dist/esm/model-translation.js.map +1 -0
  32. package/dist/esm/router.js +1383 -0
  33. package/dist/esm/router.js.map +1 -0
  34. package/dist/types/bridge.d.ts +254 -0
  35. package/dist/types/bridge.d.ts.map +1 -0
  36. package/dist/types/capability-inference.d.ts +35 -0
  37. package/dist/types/capability-inference.d.ts.map +1 -0
  38. package/dist/types/capability-matcher.d.ts +104 -0
  39. package/dist/types/capability-matcher.d.ts.map +1 -0
  40. package/dist/types/index.d.ts +15 -0
  41. package/dist/types/index.d.ts.map +1 -0
  42. package/dist/types/middleware-stack.d.ts +102 -0
  43. package/dist/types/middleware-stack.d.ts.map +1 -0
  44. package/dist/types/model-pricing.d.ts +81 -0
  45. package/dist/types/model-pricing.d.ts.map +1 -0
  46. package/dist/types/model-translation.d.ts +171 -0
  47. package/dist/types/model-translation.d.ts.map +1 -0
  48. package/dist/types/router.d.ts +287 -0
  49. package/dist/types/router.d.ts.map +1 -0
  50. package/package.json +70 -0
  51. package/readme.md +34 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.js","sourceRoot":"","sources":["../../src/bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,349 @@
1
+ "use strict";
2
+ /**
3
+ * Capability Inference
4
+ *
5
+ * Infers model capabilities from model names and metadata when explicit
6
+ * capability data is not available.
7
+ *
8
+ * @module
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.inferCapabilities = inferCapabilities;
12
+ exports.mergeCapabilities = mergeCapabilities;
13
+ exports.meetsRequirements = meetsRequirements;
14
+ exports.calculateCapabilitySimilarity = calculateCapabilitySimilarity;
15
+ const model_pricing_js_1 = require("./model-pricing.js");
16
+ /**
17
+ * Infer capabilities for a model based on its name and optional metadata.
18
+ *
19
+ * Uses pattern matching on model names to determine likely capabilities.
20
+ * Falls back to pricing database if available.
21
+ *
22
+ * @param modelName - The model name/ID
23
+ * @param metadata - Optional metadata to aid inference
24
+ * @returns Inferred capabilities
25
+ */
26
+ function inferCapabilities(modelName, metadata) {
27
+ // Try pricing database first
28
+ const dbCapabilities = (0, model_pricing_js_1.getModelCapabilities)(modelName);
29
+ if (dbCapabilities) {
30
+ return dbCapabilities;
31
+ }
32
+ // Infer from model name patterns
33
+ const normalized = modelName.toLowerCase();
34
+ // Detect model family
35
+ const modelFamily = detectModelFamily(normalized);
36
+ // Infer capabilities by family
37
+ const familyCapabilities = modelFamily ? getDefaultCapabilitiesByFamily(modelFamily) : {};
38
+ // Override with pattern-specific capabilities
39
+ const patternCapabilities = inferFromPatterns(normalized);
40
+ // Apply metadata if provided
41
+ const metadataCapabilities = metadata ? inferFromMetadata(metadata) : {};
42
+ // Merge all sources
43
+ return {
44
+ ...familyCapabilities,
45
+ ...patternCapabilities,
46
+ ...metadataCapabilities,
47
+ };
48
+ }
49
+ /**
50
+ * Detect model family from model name.
51
+ */
52
+ function detectModelFamily(normalizedName) {
53
+ // GPT family
54
+ if (normalizedName.includes('gpt-4o')) {
55
+ return 'gpt-4';
56
+ }
57
+ if (normalizedName.includes('gpt-4')) {
58
+ return 'gpt-4';
59
+ }
60
+ if (normalizedName.includes('gpt-3.5')) {
61
+ return 'gpt-3.5';
62
+ }
63
+ if (normalizedName.includes('gpt-3')) {
64
+ return 'gpt-3';
65
+ }
66
+ // Claude family
67
+ if (normalizedName.includes('claude-3.5')) {
68
+ return 'claude-3';
69
+ }
70
+ if (normalizedName.includes('claude-3')) {
71
+ return 'claude-3';
72
+ }
73
+ if (normalizedName.includes('claude-2')) {
74
+ return 'claude-2';
75
+ }
76
+ // Gemini family
77
+ if (normalizedName.includes('gemini-1.5')) {
78
+ return 'gemini-1.5';
79
+ }
80
+ if (normalizedName.includes('gemini-1.0')) {
81
+ return 'gemini-1.0';
82
+ }
83
+ if (normalizedName.includes('gemini')) {
84
+ return 'gemini-1.5';
85
+ }
86
+ // Mistral family
87
+ if (normalizedName.includes('mistral')) {
88
+ return 'mistral';
89
+ }
90
+ // Llama family
91
+ if (normalizedName.includes('llama-3')) {
92
+ return 'llama-3';
93
+ }
94
+ if (normalizedName.includes('llama-2')) {
95
+ return 'llama-2';
96
+ }
97
+ if (normalizedName.includes('llama')) {
98
+ return 'llama-2';
99
+ }
100
+ // Other families
101
+ if (normalizedName.includes('deepseek')) {
102
+ return 'deepseek';
103
+ }
104
+ if (normalizedName.includes('qwen')) {
105
+ return 'qwen';
106
+ }
107
+ if (normalizedName.includes('phi')) {
108
+ return 'phi';
109
+ }
110
+ if (normalizedName.includes('mixtral')) {
111
+ return 'mixtral';
112
+ }
113
+ return undefined;
114
+ }
115
+ /**
116
+ * Get default capabilities for a model family.
117
+ */
118
+ function getDefaultCapabilitiesByFamily(family) {
119
+ const defaults = {
120
+ 'gpt-4': {
121
+ contextWindow: 8192,
122
+ maxTokens: 4096,
123
+ supportsStreaming: true,
124
+ supportsTools: true,
125
+ supportsJSON: true,
126
+ qualityScore: 90,
127
+ },
128
+ 'gpt-3.5': {
129
+ contextWindow: 16385,
130
+ maxTokens: 4096,
131
+ supportsStreaming: true,
132
+ supportsTools: true,
133
+ supportsJSON: true,
134
+ qualityScore: 75,
135
+ },
136
+ 'claude-3': {
137
+ contextWindow: 200000,
138
+ maxTokens: 4096,
139
+ supportsStreaming: true,
140
+ supportsTools: true,
141
+ supportsJSON: false,
142
+ qualityScore: 92,
143
+ },
144
+ 'claude-2': {
145
+ contextWindow: 100000,
146
+ maxTokens: 4096,
147
+ supportsStreaming: true,
148
+ supportsTools: false,
149
+ supportsJSON: false,
150
+ qualityScore: 85,
151
+ },
152
+ 'gemini-1.5': {
153
+ contextWindow: 1000000,
154
+ maxTokens: 8192,
155
+ supportsStreaming: true,
156
+ supportsVision: true,
157
+ supportsTools: true,
158
+ supportsJSON: true,
159
+ qualityScore: 88,
160
+ },
161
+ mistral: {
162
+ contextWindow: 32000,
163
+ maxTokens: 4096,
164
+ supportsStreaming: true,
165
+ supportsTools: true,
166
+ supportsJSON: true,
167
+ qualityScore: 82,
168
+ },
169
+ 'llama-3': {
170
+ contextWindow: 8192,
171
+ maxTokens: 2048,
172
+ supportsStreaming: true,
173
+ supportsTools: false,
174
+ supportsJSON: false,
175
+ qualityScore: 78,
176
+ },
177
+ 'llama-2': {
178
+ contextWindow: 4096,
179
+ maxTokens: 2048,
180
+ supportsStreaming: true,
181
+ supportsTools: false,
182
+ supportsJSON: false,
183
+ qualityScore: 70,
184
+ },
185
+ deepseek: {
186
+ contextWindow: 64000,
187
+ maxTokens: 4096,
188
+ supportsStreaming: true,
189
+ supportsTools: true,
190
+ supportsJSON: true,
191
+ qualityScore: 82,
192
+ },
193
+ };
194
+ return defaults[family] ?? {};
195
+ }
196
+ /**
197
+ * Infer capabilities from specific patterns in the model name.
198
+ */
199
+ function inferFromPatterns(normalizedName) {
200
+ const capabilities = {};
201
+ // Vision support
202
+ if (normalizedName.includes('vision') ||
203
+ normalizedName.includes('gpt-4o') ||
204
+ normalizedName.includes('gpt-4-turbo') ||
205
+ normalizedName.includes('gemini')) {
206
+ capabilities.supportsVision = true;
207
+ }
208
+ // Extended context windows
209
+ if (normalizedName.includes('turbo') && normalizedName.includes('gpt-4')) {
210
+ capabilities.contextWindow = 128000;
211
+ }
212
+ if (normalizedName.includes('128k')) {
213
+ capabilities.contextWindow = 128000;
214
+ }
215
+ if (normalizedName.includes('32k')) {
216
+ capabilities.contextWindow = 32000;
217
+ }
218
+ // Speed indicators
219
+ if (normalizedName.includes('flash') || normalizedName.includes('haiku')) {
220
+ capabilities.latency = { p50: 500, p95: 1000 };
221
+ }
222
+ if (normalizedName.includes('turbo')) {
223
+ capabilities.latency = { p50: 1000, p95: 2000 };
224
+ }
225
+ return capabilities;
226
+ }
227
+ /**
228
+ * Infer capabilities from model metadata.
229
+ */
230
+ function inferFromMetadata(metadata) {
231
+ const capabilities = {};
232
+ // Check for explicit capability flags
233
+ if (typeof metadata.supportsVision === 'boolean') {
234
+ capabilities.supportsVision = metadata.supportsVision;
235
+ }
236
+ if (typeof metadata.supportsTools === 'boolean') {
237
+ capabilities.supportsTools = metadata.supportsTools;
238
+ }
239
+ if (typeof metadata.supportsJSON === 'boolean') {
240
+ capabilities.supportsJSON = metadata.supportsJSON;
241
+ }
242
+ if (typeof metadata.supportsStreaming === 'boolean') {
243
+ capabilities.supportsStreaming = metadata.supportsStreaming;
244
+ }
245
+ // Extract context window
246
+ if (typeof metadata.contextWindow === 'number') {
247
+ capabilities.contextWindow = metadata.contextWindow;
248
+ }
249
+ else if (typeof metadata.context_window === 'number') {
250
+ capabilities.contextWindow = metadata.context_window;
251
+ }
252
+ else if (typeof metadata.max_context_length === 'number') {
253
+ capabilities.contextWindow = metadata.max_context_length;
254
+ }
255
+ // Extract max tokens
256
+ if (typeof metadata.maxTokens === 'number') {
257
+ capabilities.maxTokens = metadata.maxTokens;
258
+ }
259
+ else if (typeof metadata.max_tokens === 'number') {
260
+ capabilities.maxTokens = metadata.max_tokens;
261
+ }
262
+ return capabilities;
263
+ }
264
+ /**
265
+ * Merge multiple capability sources with priority.
266
+ * Later sources override earlier ones.
267
+ */
268
+ function mergeCapabilities(...sources) {
269
+ const merged = {};
270
+ for (const source of sources) {
271
+ if (!source) {
272
+ continue;
273
+ }
274
+ Object.assign(merged, source);
275
+ }
276
+ return merged;
277
+ }
278
+ /**
279
+ * Check if a model meets minimum capability requirements.
280
+ */
281
+ function meetsRequirements(capabilities, requirements) {
282
+ // Check boolean capabilities
283
+ if (requirements.supportsStreaming && !capabilities.supportsStreaming) {
284
+ return false;
285
+ }
286
+ if (requirements.supportsVision && !capabilities.supportsVision) {
287
+ return false;
288
+ }
289
+ if (requirements.supportsTools && !capabilities.supportsTools) {
290
+ return false;
291
+ }
292
+ if (requirements.supportsJSON && !capabilities.supportsJSON) {
293
+ return false;
294
+ }
295
+ // Check numeric capabilities (minimums)
296
+ if (requirements.contextWindow &&
297
+ (!capabilities.contextWindow || capabilities.contextWindow < requirements.contextWindow)) {
298
+ return false;
299
+ }
300
+ if (requirements.maxTokens &&
301
+ (!capabilities.maxTokens || capabilities.maxTokens < requirements.maxTokens)) {
302
+ return false;
303
+ }
304
+ return true;
305
+ }
306
+ /**
307
+ * Calculate similarity score between two capability sets.
308
+ * Returns a score from 0-100.
309
+ */
310
+ function calculateCapabilitySimilarity(caps1, caps2) {
311
+ let matches = 0;
312
+ let total = 0;
313
+ // Compare boolean capabilities
314
+ const booleanFields = [
315
+ 'supportsStreaming',
316
+ 'supportsVision',
317
+ 'supportsTools',
318
+ 'supportsJSON',
319
+ ];
320
+ for (const field of booleanFields) {
321
+ if (caps1[field] !== undefined || caps2[field] !== undefined) {
322
+ total++;
323
+ if (caps1[field] === caps2[field]) {
324
+ matches++;
325
+ }
326
+ }
327
+ }
328
+ // Compare model family
329
+ if (caps1.modelFamily || caps2.modelFamily) {
330
+ total++;
331
+ if (caps1.modelFamily === caps2.modelFamily) {
332
+ matches++;
333
+ }
334
+ }
335
+ // Compare numeric ranges (within 20% = similar)
336
+ if (caps1.contextWindow && caps2.contextWindow) {
337
+ total++;
338
+ const ratio = Math.min(caps1.contextWindow, caps2.contextWindow) /
339
+ Math.max(caps1.contextWindow, caps2.contextWindow);
340
+ if (ratio >= 0.8) {
341
+ matches++;
342
+ }
343
+ }
344
+ if (total === 0) {
345
+ return 0;
346
+ }
347
+ return (matches / total) * 100;
348
+ }
349
+ //# sourceMappingURL=capability-inference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-inference.js","sourceRoot":"","sources":["../../src/capability-inference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,216 @@
1
+ "use strict";
2
+ /**
3
+ * Capability Matcher
4
+ *
5
+ * Intelligent model matching based on capability requirements.
6
+ * Scores and ranks models to find the best match for user needs.
7
+ *
8
+ * @module
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.matchModels = matchModels;
12
+ exports.filterByRequirements = filterByRequirements;
13
+ exports.findBestModel = findBestModel;
14
+ exports.getTopMatches = getTopMatches;
15
+ const capability_inference_js_1 = require("./capability-inference.js");
16
+ /**
17
+ * Default scoring weights by optimization strategy.
18
+ */
19
+ const OPTIMIZATION_WEIGHTS = {
20
+ cost: { cost: 0.6, speed: 0.2, quality: 0.2 },
21
+ speed: { cost: 0.2, speed: 0.6, quality: 0.2 },
22
+ quality: { cost: 0.2, speed: 0.2, quality: 0.6 },
23
+ balanced: { cost: 0.33, speed: 0.33, quality: 0.34 },
24
+ };
25
+ /**
26
+ * Match and score models based on capability requirements.
27
+ *
28
+ * @param requirements - Capability requirements to match
29
+ * @param availableModels - Available models with their backends
30
+ * @returns Sorted array of scored models (best matches first)
31
+ */
32
+ function matchModels(requirements, availableModels) {
33
+ const scoredModels = [];
34
+ for (const { model, backend } of availableModels) {
35
+ // Get or infer capabilities
36
+ const capabilities = model.capabilities ?? (0, capability_inference_js_1.inferCapabilities)(model.id, model.metadata);
37
+ // Check hard requirements
38
+ const meetsHardRequirements = requirements.required
39
+ ? (0, capability_inference_js_1.meetsRequirements)(capabilities, requirements.required)
40
+ : true;
41
+ // Score the model
42
+ const scored = scoreModel(model, backend, capabilities, requirements);
43
+ scored.meetsRequirements = meetsHardRequirements;
44
+ scoredModels.push(scored);
45
+ }
46
+ // Sort by score (descending), then by whether requirements are met
47
+ return scoredModels.sort((a, b) => {
48
+ // Prioritize models that meet requirements
49
+ if (a.meetsRequirements !== b.meetsRequirements) {
50
+ return a.meetsRequirements ? -1 : 1;
51
+ }
52
+ // Then by score
53
+ return b.score - a.score;
54
+ });
55
+ }
56
+ /**
57
+ * Score a single model based on requirements.
58
+ */
59
+ function scoreModel(model, backend, capabilities, requirements) {
60
+ // Get scoring weights
61
+ const weights = requirements.weights ?? OPTIMIZATION_WEIGHTS[requirements.optimization ?? 'balanced'];
62
+ // Calculate individual scores
63
+ const costScore = scoreCost(capabilities, requirements.preferred);
64
+ const speedScore = scoreSpeed(capabilities, requirements.preferred);
65
+ const qualityScore = scoreQuality(capabilities, requirements.preferred);
66
+ // Calculate weighted total
67
+ const totalScore = Math.round(costScore * weights.cost + speedScore * weights.speed + qualityScore * weights.quality);
68
+ // Determine match reason
69
+ const matchReason = determineMatchReason({ costScore, speedScore, qualityScore }, weights, requirements.optimization ?? 'balanced');
70
+ return {
71
+ model,
72
+ backend,
73
+ score: totalScore,
74
+ breakdown: {
75
+ costScore,
76
+ speedScore,
77
+ qualityScore,
78
+ },
79
+ matchReason,
80
+ meetsRequirements: true, // Will be set correctly by matchModels
81
+ };
82
+ }
83
+ /**
84
+ * Score cost (lower cost = higher score).
85
+ */
86
+ function scoreCost(capabilities, preferred) {
87
+ if (!capabilities.pricing) {
88
+ return 50; // Neutral score if no pricing data
89
+ }
90
+ // Calculate average cost per 1k tokens (assuming 50/50 input/output ratio)
91
+ const avgCost = (capabilities.pricing.input + capabilities.pricing.output) / 2;
92
+ // If max cost specified, score based on how far below it is
93
+ if (preferred?.maxCostPer1kTokens) {
94
+ if (avgCost > preferred.maxCostPer1kTokens) {
95
+ return 0; // Exceeds max cost
96
+ }
97
+ // Score: 100 at free, 0 at maxCost
98
+ return Math.round(100 * (1 - avgCost / preferred.maxCostPer1kTokens));
99
+ }
100
+ // Otherwise, score based on absolute cost (cheaper = better)
101
+ // Assume $0.10/1k tokens is expensive (score=0), free is perfect (score=100)
102
+ const maxExpensiveCost = 0.1;
103
+ const score = Math.max(0, 100 * (1 - avgCost / maxExpensiveCost));
104
+ return Math.round(score);
105
+ }
106
+ /**
107
+ * Score speed (lower latency = higher score).
108
+ */
109
+ function scoreSpeed(capabilities, preferred) {
110
+ const latency = capabilities.latency?.p95 ?? capabilities.latency?.p50;
111
+ if (!latency) {
112
+ return 50; // Neutral score if no latency data
113
+ }
114
+ // If max latency specified, score based on how far below it is
115
+ if (preferred?.maxLatencyMs) {
116
+ if (latency > preferred.maxLatencyMs) {
117
+ return 0; // Exceeds max latency
118
+ }
119
+ // Score: 100 at instant, 0 at maxLatency
120
+ return Math.round(100 * (1 - latency / preferred.maxLatencyMs));
121
+ }
122
+ // Otherwise, score based on absolute latency (faster = better)
123
+ // Assume 5000ms is slow (score=0), instant is perfect (score=100)
124
+ const maxSlowLatency = 5000;
125
+ const score = Math.max(0, 100 * (1 - latency / maxSlowLatency));
126
+ return Math.round(score);
127
+ }
128
+ /**
129
+ * Score quality (higher quality = higher score).
130
+ */
131
+ function scoreQuality(capabilities, preferred) {
132
+ const quality = capabilities.qualityScore;
133
+ if (!quality) {
134
+ return 50; // Neutral score if no quality data
135
+ }
136
+ // If min quality specified, check threshold
137
+ if (preferred?.minQualityScore) {
138
+ if (quality < preferred.minQualityScore) {
139
+ return 0; // Below minimum quality
140
+ }
141
+ }
142
+ // Quality score is already 0-100, return as-is
143
+ return Math.round(quality);
144
+ }
145
+ /**
146
+ * Determine human-readable match reason.
147
+ */
148
+ function determineMatchReason(breakdown, _weights, optimization) {
149
+ const { costScore, speedScore, qualityScore } = breakdown;
150
+ // Determine which metric is prioritized
151
+ if (optimization === 'cost') {
152
+ if (costScore >= 80) {
153
+ return 'Best cost efficiency';
154
+ }
155
+ if (costScore >= 60) {
156
+ return 'Good cost/quality balance';
157
+ }
158
+ return 'Meets cost requirements';
159
+ }
160
+ if (optimization === 'speed') {
161
+ if (speedScore >= 80) {
162
+ return 'Fastest response time';
163
+ }
164
+ if (speedScore >= 60) {
165
+ return 'Good speed/quality balance';
166
+ }
167
+ return 'Meets speed requirements';
168
+ }
169
+ if (optimization === 'quality') {
170
+ if (qualityScore >= 90) {
171
+ return 'Highest quality';
172
+ }
173
+ if (qualityScore >= 80) {
174
+ return 'Excellent quality';
175
+ }
176
+ return 'Good quality';
177
+ }
178
+ // Balanced strategy
179
+ const avgScore = (costScore + speedScore + qualityScore) / 3;
180
+ if (avgScore >= 80) {
181
+ return 'Best overall balance';
182
+ }
183
+ if (avgScore >= 60) {
184
+ return 'Good balance of cost/speed/quality';
185
+ }
186
+ return 'Meets requirements';
187
+ }
188
+ /**
189
+ * Filter models by hard requirements only.
190
+ */
191
+ function filterByRequirements(availableModels, requirements) {
192
+ if (!requirements) {
193
+ return availableModels;
194
+ }
195
+ return availableModels.filter(({ model }) => {
196
+ const capabilities = model.capabilities ?? (0, capability_inference_js_1.inferCapabilities)(model.id, model.metadata);
197
+ return (0, capability_inference_js_1.meetsRequirements)(capabilities, requirements);
198
+ });
199
+ }
200
+ /**
201
+ * Find the best model match for requirements.
202
+ * Returns null if no models meet requirements.
203
+ */
204
+ function findBestModel(requirements, availableModels) {
205
+ const scored = matchModels(requirements, availableModels);
206
+ const best = scored.find((m) => m.meetsRequirements);
207
+ return best ?? null;
208
+ }
209
+ /**
210
+ * Get top N model matches.
211
+ */
212
+ function getTopMatches(requirements, availableModels, count = 3) {
213
+ const scored = matchModels(requirements, availableModels);
214
+ return scored.filter((m) => m.meetsRequirements).slice(0, count);
215
+ }
216
+ //# sourceMappingURL=capability-matcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-matcher.js","sourceRoot":"","sources":["../../src/capability-matcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ /**
3
+ * Core Components
4
+ *
5
+ * Export core bridge, router, and middleware stack.
6
+ *
7
+ * @module
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
21
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
22
+ };
23
+ Object.defineProperty(exports, "__esModule", { value: true });
24
+ __exportStar(require("./bridge.js"), exports);
25
+ __exportStar(require("./router.js"), exports);
26
+ __exportStar(require("./middleware-stack.js"), exports);
27
+ __exportStar(require("./model-pricing.js"), exports);
28
+ __exportStar(require("./capability-matcher.js"), exports);
29
+ __exportStar(require("./capability-inference.js"), exports);
30
+ __exportStar(require("./model-translation.js"), exports);
31
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;;GAMG;;;;;;;;;;;;;;;;AAEH,8CAA4B;AAC5B,8CAA4B;AAC5B,wDAAsC;AACtC,qDAAmC;AACnC,0DAAwC;AACxC,4DAA0C;AAC1C,yDAAuC"}