@contractspec/lib.provider-ranking 0.1.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 (78) hide show
  1. package/README.md +44 -0
  2. package/dist/browser/eval/index.js +101 -0
  3. package/dist/browser/eval/runner.js +101 -0
  4. package/dist/browser/eval/types.js +0 -0
  5. package/dist/browser/in-memory-store.js +92 -0
  6. package/dist/browser/index.js +105 -0
  7. package/dist/browser/ingesters/artificial-analysis.js +149 -0
  8. package/dist/browser/ingesters/chatbot-arena.js +142 -0
  9. package/dist/browser/ingesters/fetch-utils.js +39 -0
  10. package/dist/browser/ingesters/index.js +418 -0
  11. package/dist/browser/ingesters/open-llm-leaderboard.js +108 -0
  12. package/dist/browser/ingesters/registry.js +412 -0
  13. package/dist/browser/ingesters/swe-bench.js +105 -0
  14. package/dist/browser/ingesters/types.js +0 -0
  15. package/dist/browser/scoring/composite-scorer.js +122 -0
  16. package/dist/browser/scoring/dimension-weights.js +39 -0
  17. package/dist/browser/scoring/index.js +161 -0
  18. package/dist/browser/scoring/normalizer.js +37 -0
  19. package/dist/browser/store.js +0 -0
  20. package/dist/browser/types.js +14 -0
  21. package/dist/eval/index.d.ts +2 -0
  22. package/dist/eval/index.js +102 -0
  23. package/dist/eval/runner.d.ts +18 -0
  24. package/dist/eval/runner.js +102 -0
  25. package/dist/eval/types.d.ts +51 -0
  26. package/dist/eval/types.js +1 -0
  27. package/dist/in-memory-store.d.ts +17 -0
  28. package/dist/in-memory-store.js +93 -0
  29. package/dist/index.d.ts +4 -0
  30. package/dist/index.js +106 -0
  31. package/dist/ingesters/artificial-analysis.d.ts +8 -0
  32. package/dist/ingesters/artificial-analysis.js +150 -0
  33. package/dist/ingesters/chatbot-arena.d.ts +8 -0
  34. package/dist/ingesters/chatbot-arena.js +143 -0
  35. package/dist/ingesters/fetch-utils.d.ts +11 -0
  36. package/dist/ingesters/fetch-utils.js +40 -0
  37. package/dist/ingesters/index.d.ts +7 -0
  38. package/dist/ingesters/index.js +419 -0
  39. package/dist/ingesters/open-llm-leaderboard.d.ts +8 -0
  40. package/dist/ingesters/open-llm-leaderboard.js +109 -0
  41. package/dist/ingesters/registry.d.ts +17 -0
  42. package/dist/ingesters/registry.js +413 -0
  43. package/dist/ingesters/swe-bench.d.ts +8 -0
  44. package/dist/ingesters/swe-bench.js +106 -0
  45. package/dist/ingesters/types.d.ts +31 -0
  46. package/dist/ingesters/types.js +1 -0
  47. package/dist/node/eval/index.js +101 -0
  48. package/dist/node/eval/runner.js +101 -0
  49. package/dist/node/eval/types.js +0 -0
  50. package/dist/node/in-memory-store.js +92 -0
  51. package/dist/node/index.js +105 -0
  52. package/dist/node/ingesters/artificial-analysis.js +149 -0
  53. package/dist/node/ingesters/chatbot-arena.js +142 -0
  54. package/dist/node/ingesters/fetch-utils.js +39 -0
  55. package/dist/node/ingesters/index.js +418 -0
  56. package/dist/node/ingesters/open-llm-leaderboard.js +108 -0
  57. package/dist/node/ingesters/registry.js +412 -0
  58. package/dist/node/ingesters/swe-bench.js +105 -0
  59. package/dist/node/ingesters/types.js +0 -0
  60. package/dist/node/scoring/composite-scorer.js +122 -0
  61. package/dist/node/scoring/dimension-weights.js +39 -0
  62. package/dist/node/scoring/index.js +161 -0
  63. package/dist/node/scoring/normalizer.js +37 -0
  64. package/dist/node/store.js +0 -0
  65. package/dist/node/types.js +14 -0
  66. package/dist/scoring/composite-scorer.d.ts +10 -0
  67. package/dist/scoring/composite-scorer.js +123 -0
  68. package/dist/scoring/dimension-weights.d.ts +8 -0
  69. package/dist/scoring/dimension-weights.js +40 -0
  70. package/dist/scoring/index.d.ts +3 -0
  71. package/dist/scoring/index.js +162 -0
  72. package/dist/scoring/normalizer.d.ts +20 -0
  73. package/dist/scoring/normalizer.js +38 -0
  74. package/dist/store.d.ts +19 -0
  75. package/dist/store.js +1 -0
  76. package/dist/types.d.ts +100 -0
  77. package/dist/types.js +15 -0
  78. package/package.json +362 -0
@@ -0,0 +1,100 @@
1
+ /**
2
+ * Core domain types for the AI Provider Ranking system.
3
+ *
4
+ * Normalized scores use a 0-100 scale. Raw scores preserve the original
5
+ * format from each benchmark source for auditability.
6
+ */
7
+ export type BenchmarkDimension = 'coding' | 'reasoning' | 'agentic' | 'cost' | 'latency' | 'context' | 'safety' | 'custom';
8
+ export declare const BENCHMARK_DIMENSIONS: readonly BenchmarkDimension[];
9
+ export type BenchmarkSource = 'chatbot-arena' | 'swe-bench' | 'human-eval' | 'mmlu' | 'gpqa' | 'arc' | 'truthfulqa' | 'tau-bench' | 'artificial-analysis' | 'custom';
10
+ export interface BenchmarkResult {
11
+ id: string;
12
+ modelId: string;
13
+ providerKey: string;
14
+ source: BenchmarkSource;
15
+ dimension: BenchmarkDimension;
16
+ /** Normalized score on a 0-100 scale. */
17
+ score: number;
18
+ /** Original score from the source, preserved for auditability. */
19
+ rawScore: unknown;
20
+ metadata: Record<string, unknown>;
21
+ measuredAt: Date;
22
+ ingestedAt: Date;
23
+ }
24
+ export interface DimensionScore {
25
+ score: number;
26
+ /** 0-1 confidence based on number and recency of sources. */
27
+ confidence: number;
28
+ sources: string[];
29
+ }
30
+ export interface ModelRanking {
31
+ modelId: string;
32
+ providerKey: string;
33
+ compositeScore: number;
34
+ dimensionScores: Partial<Record<BenchmarkDimension, DimensionScore>>;
35
+ rank: number;
36
+ previousRank: number | null;
37
+ updatedAt: Date;
38
+ }
39
+ export interface ModelProfile {
40
+ modelId: string;
41
+ providerKey: string;
42
+ displayName: string;
43
+ contextWindow: number;
44
+ costPerMillion: {
45
+ input: number;
46
+ output: number;
47
+ } | null;
48
+ capabilities: string[];
49
+ ranking: ModelRanking | null;
50
+ benchmarkResults: BenchmarkResult[];
51
+ /** Transports supported by this model's provider. */
52
+ supportedTransports?: ProviderTransportSupport[];
53
+ /** Auth methods supported by this model's provider. */
54
+ supportedAuthMethods?: ProviderAuthSupport[];
55
+ /** Whether the provider supports BYOK. */
56
+ byokSupported?: boolean;
57
+ }
58
+ export interface BenchmarkResultQuery {
59
+ source?: BenchmarkSource;
60
+ modelId?: string;
61
+ dimension?: BenchmarkDimension;
62
+ providerKey?: string;
63
+ limit?: number;
64
+ offset?: number;
65
+ }
66
+ export interface BenchmarkResultListResult {
67
+ results: BenchmarkResult[];
68
+ total: number;
69
+ nextOffset?: number;
70
+ }
71
+ export interface RankingQuery {
72
+ dimension?: BenchmarkDimension;
73
+ providerKey?: string;
74
+ limit?: number;
75
+ offset?: number;
76
+ /** Filter by required transport support. */
77
+ requiredTransport?: ProviderTransportSupport;
78
+ /** Filter by required auth method. */
79
+ requiredAuthMethod?: ProviderAuthSupport;
80
+ }
81
+ export interface RankingListResult {
82
+ rankings: ModelRanking[];
83
+ total: number;
84
+ nextOffset?: number;
85
+ }
86
+ export interface IngestionRun {
87
+ id: string;
88
+ source: BenchmarkSource;
89
+ status: 'pending' | 'running' | 'completed' | 'failed';
90
+ resultsCount: number;
91
+ startedAt: Date;
92
+ completedAt: Date | null;
93
+ error: string | null;
94
+ }
95
+ export type ProviderTransportSupport = 'rest' | 'mcp' | 'webhook' | 'sdk';
96
+ export type ProviderAuthSupport = 'api-key' | 'oauth2' | 'bearer' | 'header' | 'basic' | 'webhook-signing' | 'service-account';
97
+ export interface DimensionWeightConfig {
98
+ dimension: BenchmarkDimension;
99
+ weight: number;
100
+ }
package/dist/types.js ADDED
@@ -0,0 +1,15 @@
1
+ // @bun
2
+ // src/types.ts
3
+ var BENCHMARK_DIMENSIONS = [
4
+ "coding",
5
+ "reasoning",
6
+ "agentic",
7
+ "cost",
8
+ "latency",
9
+ "context",
10
+ "safety",
11
+ "custom"
12
+ ];
13
+ export {
14
+ BENCHMARK_DIMENSIONS
15
+ };
package/package.json ADDED
@@ -0,0 +1,362 @@
1
+ {
2
+ "name": "@contractspec/lib.provider-ranking",
3
+ "version": "0.1.1",
4
+ "description": "AI provider ranking: benchmark ingestion, scoring, and model comparison",
5
+ "keywords": [
6
+ "contractspec",
7
+ "ai",
8
+ "ranking",
9
+ "benchmark",
10
+ "llm"
11
+ ],
12
+ "type": "module",
13
+ "types": "./dist/index.d.ts",
14
+ "files": [
15
+ "dist",
16
+ "README.md"
17
+ ],
18
+ "scripts": {
19
+ "publish:pkg": "bun publish --tolerate-republish --ignore-scripts --verbose",
20
+ "publish:pkg:canary": "bun publish:pkg --tag canary",
21
+ "build": "bun run prebuild && bun run build:bundle && bun run build:types",
22
+ "build:bundle": "contractspec-bun-build transpile",
23
+ "build:types": "contractspec-bun-build types",
24
+ "dev": "contractspec-bun-build dev",
25
+ "clean": "rimraf dist .turbo",
26
+ "lint": "bun lint:fix",
27
+ "lint:fix": "eslint src --fix",
28
+ "lint:check": "eslint src",
29
+ "test": "bun test --pass-with-no-tests",
30
+ "prebuild": "contractspec-bun-build prebuild",
31
+ "typecheck": "tsc --noEmit"
32
+ },
33
+ "dependencies": {},
34
+ "devDependencies": {
35
+ "@contractspec/tool.typescript": "3.1.0",
36
+ "@contractspec/tool.bun": "3.1.0",
37
+ "typescript": "^5.9.3"
38
+ },
39
+ "exports": {
40
+ ".": {
41
+ "types": "./dist/index.d.ts",
42
+ "bun": "./dist/index.js",
43
+ "node": "./dist/node/index.js",
44
+ "browser": "./dist/browser/index.js",
45
+ "default": "./dist/index.js"
46
+ },
47
+ "./eval": {
48
+ "types": "./dist/eval/index.d.ts",
49
+ "bun": "./dist/eval/index.js",
50
+ "node": "./dist/node/eval/index.js",
51
+ "browser": "./dist/browser/eval/index.js",
52
+ "default": "./dist/eval/index.js"
53
+ },
54
+ "./eval/index": {
55
+ "types": "./dist/eval/index.d.ts",
56
+ "bun": "./dist/eval/index.js",
57
+ "node": "./dist/node/eval/index.js",
58
+ "browser": "./dist/browser/eval/index.js",
59
+ "default": "./dist/eval/index.js"
60
+ },
61
+ "./eval/runner": {
62
+ "types": "./dist/eval/runner.d.ts",
63
+ "bun": "./dist/eval/runner.js",
64
+ "node": "./dist/node/eval/runner.js",
65
+ "browser": "./dist/browser/eval/runner.js",
66
+ "default": "./dist/eval/runner.js"
67
+ },
68
+ "./eval/types": {
69
+ "types": "./dist/eval/types.d.ts",
70
+ "bun": "./dist/eval/types.js",
71
+ "node": "./dist/node/eval/types.js",
72
+ "browser": "./dist/browser/eval/types.js",
73
+ "default": "./dist/eval/types.js"
74
+ },
75
+ "./in-memory-store": {
76
+ "types": "./dist/in-memory-store.d.ts",
77
+ "bun": "./dist/in-memory-store.js",
78
+ "node": "./dist/node/in-memory-store.js",
79
+ "browser": "./dist/browser/in-memory-store.js",
80
+ "default": "./dist/in-memory-store.js"
81
+ },
82
+ "./ingesters": {
83
+ "types": "./dist/ingesters/index.d.ts",
84
+ "bun": "./dist/ingesters/index.js",
85
+ "node": "./dist/node/ingesters/index.js",
86
+ "browser": "./dist/browser/ingesters/index.js",
87
+ "default": "./dist/ingesters/index.js"
88
+ },
89
+ "./ingesters/artificial-analysis": {
90
+ "types": "./dist/ingesters/artificial-analysis.d.ts",
91
+ "bun": "./dist/ingesters/artificial-analysis.js",
92
+ "node": "./dist/node/ingesters/artificial-analysis.js",
93
+ "browser": "./dist/browser/ingesters/artificial-analysis.js",
94
+ "default": "./dist/ingesters/artificial-analysis.js"
95
+ },
96
+ "./ingesters/chatbot-arena": {
97
+ "types": "./dist/ingesters/chatbot-arena.d.ts",
98
+ "bun": "./dist/ingesters/chatbot-arena.js",
99
+ "node": "./dist/node/ingesters/chatbot-arena.js",
100
+ "browser": "./dist/browser/ingesters/chatbot-arena.js",
101
+ "default": "./dist/ingesters/chatbot-arena.js"
102
+ },
103
+ "./ingesters/fetch-utils": {
104
+ "types": "./dist/ingesters/fetch-utils.d.ts",
105
+ "bun": "./dist/ingesters/fetch-utils.js",
106
+ "node": "./dist/node/ingesters/fetch-utils.js",
107
+ "browser": "./dist/browser/ingesters/fetch-utils.js",
108
+ "default": "./dist/ingesters/fetch-utils.js"
109
+ },
110
+ "./ingesters/index": {
111
+ "types": "./dist/ingesters/index.d.ts",
112
+ "bun": "./dist/ingesters/index.js",
113
+ "node": "./dist/node/ingesters/index.js",
114
+ "browser": "./dist/browser/ingesters/index.js",
115
+ "default": "./dist/ingesters/index.js"
116
+ },
117
+ "./ingesters/open-llm-leaderboard": {
118
+ "types": "./dist/ingesters/open-llm-leaderboard.d.ts",
119
+ "bun": "./dist/ingesters/open-llm-leaderboard.js",
120
+ "node": "./dist/node/ingesters/open-llm-leaderboard.js",
121
+ "browser": "./dist/browser/ingesters/open-llm-leaderboard.js",
122
+ "default": "./dist/ingesters/open-llm-leaderboard.js"
123
+ },
124
+ "./ingesters/registry": {
125
+ "types": "./dist/ingesters/registry.d.ts",
126
+ "bun": "./dist/ingesters/registry.js",
127
+ "node": "./dist/node/ingesters/registry.js",
128
+ "browser": "./dist/browser/ingesters/registry.js",
129
+ "default": "./dist/ingesters/registry.js"
130
+ },
131
+ "./ingesters/swe-bench": {
132
+ "types": "./dist/ingesters/swe-bench.d.ts",
133
+ "bun": "./dist/ingesters/swe-bench.js",
134
+ "node": "./dist/node/ingesters/swe-bench.js",
135
+ "browser": "./dist/browser/ingesters/swe-bench.js",
136
+ "default": "./dist/ingesters/swe-bench.js"
137
+ },
138
+ "./ingesters/types": {
139
+ "types": "./dist/ingesters/types.d.ts",
140
+ "bun": "./dist/ingesters/types.js",
141
+ "node": "./dist/node/ingesters/types.js",
142
+ "browser": "./dist/browser/ingesters/types.js",
143
+ "default": "./dist/ingesters/types.js"
144
+ },
145
+ "./scoring": {
146
+ "types": "./dist/scoring/index.d.ts",
147
+ "bun": "./dist/scoring/index.js",
148
+ "node": "./dist/node/scoring/index.js",
149
+ "browser": "./dist/browser/scoring/index.js",
150
+ "default": "./dist/scoring/index.js"
151
+ },
152
+ "./scoring/composite-scorer": {
153
+ "types": "./dist/scoring/composite-scorer.d.ts",
154
+ "bun": "./dist/scoring/composite-scorer.js",
155
+ "node": "./dist/node/scoring/composite-scorer.js",
156
+ "browser": "./dist/browser/scoring/composite-scorer.js",
157
+ "default": "./dist/scoring/composite-scorer.js"
158
+ },
159
+ "./scoring/dimension-weights": {
160
+ "types": "./dist/scoring/dimension-weights.d.ts",
161
+ "bun": "./dist/scoring/dimension-weights.js",
162
+ "node": "./dist/node/scoring/dimension-weights.js",
163
+ "browser": "./dist/browser/scoring/dimension-weights.js",
164
+ "default": "./dist/scoring/dimension-weights.js"
165
+ },
166
+ "./scoring/index": {
167
+ "types": "./dist/scoring/index.d.ts",
168
+ "bun": "./dist/scoring/index.js",
169
+ "node": "./dist/node/scoring/index.js",
170
+ "browser": "./dist/browser/scoring/index.js",
171
+ "default": "./dist/scoring/index.js"
172
+ },
173
+ "./scoring/normalizer": {
174
+ "types": "./dist/scoring/normalizer.d.ts",
175
+ "bun": "./dist/scoring/normalizer.js",
176
+ "node": "./dist/node/scoring/normalizer.js",
177
+ "browser": "./dist/browser/scoring/normalizer.js",
178
+ "default": "./dist/scoring/normalizer.js"
179
+ },
180
+ "./store": {
181
+ "types": "./dist/store.d.ts",
182
+ "bun": "./dist/store.js",
183
+ "node": "./dist/node/store.js",
184
+ "browser": "./dist/browser/store.js",
185
+ "default": "./dist/store.js"
186
+ },
187
+ "./types": {
188
+ "types": "./dist/types.d.ts",
189
+ "bun": "./dist/types.js",
190
+ "node": "./dist/node/types.js",
191
+ "browser": "./dist/browser/types.js",
192
+ "default": "./dist/types.js"
193
+ }
194
+ },
195
+ "publishConfig": {
196
+ "access": "public",
197
+ "exports": {
198
+ ".": {
199
+ "types": "./dist/index.d.ts",
200
+ "bun": "./dist/index.js",
201
+ "node": "./dist/node/index.js",
202
+ "browser": "./dist/browser/index.js",
203
+ "default": "./dist/index.js"
204
+ },
205
+ "./eval": {
206
+ "types": "./dist/eval/index.d.ts",
207
+ "bun": "./dist/eval/index.js",
208
+ "node": "./dist/node/eval/index.js",
209
+ "browser": "./dist/browser/eval/index.js",
210
+ "default": "./dist/eval/index.js"
211
+ },
212
+ "./eval/index": {
213
+ "types": "./dist/eval/index.d.ts",
214
+ "bun": "./dist/eval/index.js",
215
+ "node": "./dist/node/eval/index.js",
216
+ "browser": "./dist/browser/eval/index.js",
217
+ "default": "./dist/eval/index.js"
218
+ },
219
+ "./eval/runner": {
220
+ "types": "./dist/eval/runner.d.ts",
221
+ "bun": "./dist/eval/runner.js",
222
+ "node": "./dist/node/eval/runner.js",
223
+ "browser": "./dist/browser/eval/runner.js",
224
+ "default": "./dist/eval/runner.js"
225
+ },
226
+ "./eval/types": {
227
+ "types": "./dist/eval/types.d.ts",
228
+ "bun": "./dist/eval/types.js",
229
+ "node": "./dist/node/eval/types.js",
230
+ "browser": "./dist/browser/eval/types.js",
231
+ "default": "./dist/eval/types.js"
232
+ },
233
+ "./in-memory-store": {
234
+ "types": "./dist/in-memory-store.d.ts",
235
+ "bun": "./dist/in-memory-store.js",
236
+ "node": "./dist/node/in-memory-store.js",
237
+ "browser": "./dist/browser/in-memory-store.js",
238
+ "default": "./dist/in-memory-store.js"
239
+ },
240
+ "./ingesters": {
241
+ "types": "./dist/ingesters/index.d.ts",
242
+ "bun": "./dist/ingesters/index.js",
243
+ "node": "./dist/node/ingesters/index.js",
244
+ "browser": "./dist/browser/ingesters/index.js",
245
+ "default": "./dist/ingesters/index.js"
246
+ },
247
+ "./ingesters/artificial-analysis": {
248
+ "types": "./dist/ingesters/artificial-analysis.d.ts",
249
+ "bun": "./dist/ingesters/artificial-analysis.js",
250
+ "node": "./dist/node/ingesters/artificial-analysis.js",
251
+ "browser": "./dist/browser/ingesters/artificial-analysis.js",
252
+ "default": "./dist/ingesters/artificial-analysis.js"
253
+ },
254
+ "./ingesters/chatbot-arena": {
255
+ "types": "./dist/ingesters/chatbot-arena.d.ts",
256
+ "bun": "./dist/ingesters/chatbot-arena.js",
257
+ "node": "./dist/node/ingesters/chatbot-arena.js",
258
+ "browser": "./dist/browser/ingesters/chatbot-arena.js",
259
+ "default": "./dist/ingesters/chatbot-arena.js"
260
+ },
261
+ "./ingesters/fetch-utils": {
262
+ "types": "./dist/ingesters/fetch-utils.d.ts",
263
+ "bun": "./dist/ingesters/fetch-utils.js",
264
+ "node": "./dist/node/ingesters/fetch-utils.js",
265
+ "browser": "./dist/browser/ingesters/fetch-utils.js",
266
+ "default": "./dist/ingesters/fetch-utils.js"
267
+ },
268
+ "./ingesters/index": {
269
+ "types": "./dist/ingesters/index.d.ts",
270
+ "bun": "./dist/ingesters/index.js",
271
+ "node": "./dist/node/ingesters/index.js",
272
+ "browser": "./dist/browser/ingesters/index.js",
273
+ "default": "./dist/ingesters/index.js"
274
+ },
275
+ "./ingesters/open-llm-leaderboard": {
276
+ "types": "./dist/ingesters/open-llm-leaderboard.d.ts",
277
+ "bun": "./dist/ingesters/open-llm-leaderboard.js",
278
+ "node": "./dist/node/ingesters/open-llm-leaderboard.js",
279
+ "browser": "./dist/browser/ingesters/open-llm-leaderboard.js",
280
+ "default": "./dist/ingesters/open-llm-leaderboard.js"
281
+ },
282
+ "./ingesters/registry": {
283
+ "types": "./dist/ingesters/registry.d.ts",
284
+ "bun": "./dist/ingesters/registry.js",
285
+ "node": "./dist/node/ingesters/registry.js",
286
+ "browser": "./dist/browser/ingesters/registry.js",
287
+ "default": "./dist/ingesters/registry.js"
288
+ },
289
+ "./ingesters/swe-bench": {
290
+ "types": "./dist/ingesters/swe-bench.d.ts",
291
+ "bun": "./dist/ingesters/swe-bench.js",
292
+ "node": "./dist/node/ingesters/swe-bench.js",
293
+ "browser": "./dist/browser/ingesters/swe-bench.js",
294
+ "default": "./dist/ingesters/swe-bench.js"
295
+ },
296
+ "./ingesters/types": {
297
+ "types": "./dist/ingesters/types.d.ts",
298
+ "bun": "./dist/ingesters/types.js",
299
+ "node": "./dist/node/ingesters/types.js",
300
+ "browser": "./dist/browser/ingesters/types.js",
301
+ "default": "./dist/ingesters/types.js"
302
+ },
303
+ "./scoring": {
304
+ "types": "./dist/scoring/index.d.ts",
305
+ "bun": "./dist/scoring/index.js",
306
+ "node": "./dist/node/scoring/index.js",
307
+ "browser": "./dist/browser/scoring/index.js",
308
+ "default": "./dist/scoring/index.js"
309
+ },
310
+ "./scoring/composite-scorer": {
311
+ "types": "./dist/scoring/composite-scorer.d.ts",
312
+ "bun": "./dist/scoring/composite-scorer.js",
313
+ "node": "./dist/node/scoring/composite-scorer.js",
314
+ "browser": "./dist/browser/scoring/composite-scorer.js",
315
+ "default": "./dist/scoring/composite-scorer.js"
316
+ },
317
+ "./scoring/dimension-weights": {
318
+ "types": "./dist/scoring/dimension-weights.d.ts",
319
+ "bun": "./dist/scoring/dimension-weights.js",
320
+ "node": "./dist/node/scoring/dimension-weights.js",
321
+ "browser": "./dist/browser/scoring/dimension-weights.js",
322
+ "default": "./dist/scoring/dimension-weights.js"
323
+ },
324
+ "./scoring/index": {
325
+ "types": "./dist/scoring/index.d.ts",
326
+ "bun": "./dist/scoring/index.js",
327
+ "node": "./dist/node/scoring/index.js",
328
+ "browser": "./dist/browser/scoring/index.js",
329
+ "default": "./dist/scoring/index.js"
330
+ },
331
+ "./scoring/normalizer": {
332
+ "types": "./dist/scoring/normalizer.d.ts",
333
+ "bun": "./dist/scoring/normalizer.js",
334
+ "node": "./dist/node/scoring/normalizer.js",
335
+ "browser": "./dist/browser/scoring/normalizer.js",
336
+ "default": "./dist/scoring/normalizer.js"
337
+ },
338
+ "./store": {
339
+ "types": "./dist/store.d.ts",
340
+ "bun": "./dist/store.js",
341
+ "node": "./dist/node/store.js",
342
+ "browser": "./dist/browser/store.js",
343
+ "default": "./dist/store.js"
344
+ },
345
+ "./types": {
346
+ "types": "./dist/types.d.ts",
347
+ "bun": "./dist/types.js",
348
+ "node": "./dist/node/types.js",
349
+ "browser": "./dist/browser/types.js",
350
+ "default": "./dist/types.js"
351
+ }
352
+ },
353
+ "registry": "https://registry.npmjs.org/"
354
+ },
355
+ "license": "MIT",
356
+ "repository": {
357
+ "type": "git",
358
+ "url": "https://github.com/lssm-tech/contractspec.git",
359
+ "directory": "packages/libs/provider-ranking"
360
+ },
361
+ "homepage": "https://contractspec.io"
362
+ }