@higher.archi/boe 1.0.21 → 1.0.22

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 (34) hide show
  1. package/dist/core/types/rule.d.ts +1 -1
  2. package/dist/core/types/rule.d.ts.map +1 -1
  3. package/dist/engines/ranking/compiler.d.ts +12 -0
  4. package/dist/engines/ranking/compiler.d.ts.map +1 -0
  5. package/dist/engines/ranking/compiler.js +163 -0
  6. package/dist/engines/ranking/compiler.js.map +1 -0
  7. package/dist/engines/ranking/engine.d.ts +48 -0
  8. package/dist/engines/ranking/engine.d.ts.map +1 -0
  9. package/dist/engines/ranking/engine.js +89 -0
  10. package/dist/engines/ranking/engine.js.map +1 -0
  11. package/dist/engines/ranking/index.d.ts +9 -0
  12. package/dist/engines/ranking/index.d.ts.map +1 -0
  13. package/dist/engines/ranking/index.js +23 -0
  14. package/dist/engines/ranking/index.js.map +1 -0
  15. package/dist/engines/ranking/strategy.d.ts +21 -0
  16. package/dist/engines/ranking/strategy.d.ts.map +1 -0
  17. package/dist/engines/ranking/strategy.js +250 -0
  18. package/dist/engines/ranking/strategy.js.map +1 -0
  19. package/dist/engines/ranking/types.d.ts +142 -0
  20. package/dist/engines/ranking/types.d.ts.map +1 -0
  21. package/dist/engines/ranking/types.js +46 -0
  22. package/dist/engines/ranking/types.js.map +1 -0
  23. package/dist/index.d.ts +2 -0
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +12 -1
  26. package/dist/index.js.map +1 -1
  27. package/package.json +1 -1
  28. package/src/core/types/rule.ts +1 -1
  29. package/src/engines/ranking/compiler.ts +194 -0
  30. package/src/engines/ranking/engine.ts +120 -0
  31. package/src/engines/ranking/index.ts +46 -0
  32. package/src/engines/ranking/strategy.ts +333 -0
  33. package/src/engines/ranking/types.ts +231 -0
  34. package/src/index.ts +36 -0
@@ -0,0 +1,250 @@
1
+ "use strict";
2
+ /**
3
+ * Ranking Engine Strategy
4
+ *
5
+ * Core execution logic for all ranking strategies:
6
+ * - score: Delegates to ScoringEngine, ranks by totalScore
7
+ * - elo: Processes match history, computes Elo ratings
8
+ * - head-to-head: Pairwise comparison on weighted criteria
9
+ */
10
+ Object.defineProperty(exports, "__esModule", { value: true });
11
+ exports.rankingStrategy = exports.RankingExecutor = void 0;
12
+ const engine_1 = require("../scoring/engine");
13
+ const types_1 = require("./types");
14
+ class RankingExecutor {
15
+ run(ruleSet, wm, options = {}) {
16
+ const startTime = performance.now();
17
+ let rankings;
18
+ switch (ruleSet.strategy) {
19
+ case 'score':
20
+ rankings = this.runScore(ruleSet, wm, options);
21
+ break;
22
+ case 'elo':
23
+ rankings = this.runElo(ruleSet, wm, options);
24
+ break;
25
+ case 'head-to-head':
26
+ rankings = this.runHeadToHead(ruleSet, wm, options);
27
+ break;
28
+ default:
29
+ throw new Error(`Unknown ranking strategy: '${ruleSet.strategy}'`);
30
+ }
31
+ const executionTimeMs = Math.round((performance.now() - startTime) * 100) / 100;
32
+ return {
33
+ rankings,
34
+ totalEntities: rankings.length,
35
+ strategy: ruleSet.strategy,
36
+ executionTimeMs
37
+ };
38
+ }
39
+ // ========================================
40
+ // Score Strategy
41
+ // ========================================
42
+ runScore(ruleSet, wm, options) {
43
+ const entityFacts = wm.getByType(ruleSet.entityType);
44
+ if (entityFacts.length === 0)
45
+ return [];
46
+ // Collect context facts (everything that isn't the entity type)
47
+ const allFacts = wm.getAll();
48
+ const contextFacts = allFacts.filter(f => f.type !== ruleSet.entityType);
49
+ // Score each entity independently
50
+ const scored = [];
51
+ for (const entity of entityFacts) {
52
+ const engine = new engine_1.ScoringEngine();
53
+ // Add context facts first
54
+ for (const ctx of contextFacts) {
55
+ engine.add({ type: ctx.type, data: ctx.data, id: ctx.id });
56
+ }
57
+ // Add this entity
58
+ engine.add({ type: entity.type, data: entity.data, id: entity.id });
59
+ const result = engine.execute(ruleSet.scoringRuleset, ruleSet.scoringOptions);
60
+ const entityId = resolveEntityId(entity);
61
+ scored.push({ entityId, score: result.totalScore });
62
+ }
63
+ // Sort by score
64
+ sortByScore(scored, ruleSet.config.direction);
65
+ // Build ranked entities
66
+ return this.buildRankedEntities(scored, entityFacts.length, options, ruleSet.config.tiers);
67
+ }
68
+ // ========================================
69
+ // Elo Strategy
70
+ // ========================================
71
+ runElo(ruleSet, wm, options) {
72
+ const entityFacts = wm.getByType(ruleSet.entityType);
73
+ if (entityFacts.length === 0)
74
+ return [];
75
+ const { initialRating, kFactor } = ruleSet.config;
76
+ // Initialize ratings
77
+ const ratings = new Map();
78
+ for (const entity of entityFacts) {
79
+ ratings.set(resolveEntityId(entity), initialRating);
80
+ }
81
+ // Process match results in insertion order
82
+ const matches = wm.getByType(ruleSet.matchType);
83
+ for (const match of matches) {
84
+ const { winnerId, loserId, draw } = match.data;
85
+ const ratingA = ratings.get(winnerId);
86
+ const ratingB = ratings.get(loserId);
87
+ // Skip matches with unknown entities
88
+ if (ratingA === undefined || ratingB === undefined)
89
+ continue;
90
+ // Expected scores
91
+ const expectedA = 1 / (1 + Math.pow(10, (ratingB - ratingA) / 400));
92
+ const expectedB = 1 - expectedA;
93
+ // Actual scores
94
+ const actualA = draw ? 0.5 : 1;
95
+ const actualB = draw ? 0.5 : 0;
96
+ // Update ratings
97
+ ratings.set(winnerId, ratingA + kFactor * (actualA - expectedA));
98
+ ratings.set(loserId, ratingB + kFactor * (actualB - expectedB));
99
+ }
100
+ // Convert to scored array
101
+ const scored = [];
102
+ for (const [entityId, rating] of ratings) {
103
+ scored.push({ entityId, score: Math.round(rating * 100) / 100 });
104
+ }
105
+ sortByScore(scored, ruleSet.config.direction);
106
+ return this.buildRankedEntities(scored, entityFacts.length, options);
107
+ }
108
+ // ========================================
109
+ // Head-to-Head Strategy
110
+ // ========================================
111
+ runHeadToHead(ruleSet, wm, options) {
112
+ const entityFacts = wm.getByType(ruleSet.entityType);
113
+ if (entityFacts.length === 0)
114
+ return [];
115
+ const { criteria } = ruleSet;
116
+ // Extract criterion values per entity
117
+ const entities = [];
118
+ for (const entity of entityFacts) {
119
+ const values = {};
120
+ for (const c of criteria) {
121
+ values[c.id] = typeof entity.data[c.id] === 'number' ? entity.data[c.id] : 0;
122
+ }
123
+ entities.push({ entityId: resolveEntityId(entity), values });
124
+ }
125
+ // Round-robin pairwise comparison
126
+ const scores = new Map();
127
+ for (const e of entities) {
128
+ scores.set(e.entityId, 0);
129
+ }
130
+ for (let i = 0; i < entities.length; i++) {
131
+ for (let j = i + 1; j < entities.length; j++) {
132
+ const a = entities[i];
133
+ const b = entities[j];
134
+ for (const c of criteria) {
135
+ const valA = a.values[c.id];
136
+ const valB = b.values[c.id];
137
+ const betterIsHigher = c.direction === 'highest-first';
138
+ if (valA === valB) {
139
+ // Tie: split the weight
140
+ scores.set(a.entityId, scores.get(a.entityId) + c.weight / 2);
141
+ scores.set(b.entityId, scores.get(b.entityId) + c.weight / 2);
142
+ }
143
+ else if ((betterIsHigher && valA > valB) || (!betterIsHigher && valA < valB)) {
144
+ scores.set(a.entityId, scores.get(a.entityId) + c.weight);
145
+ }
146
+ else {
147
+ scores.set(b.entityId, scores.get(b.entityId) + c.weight);
148
+ }
149
+ }
150
+ }
151
+ }
152
+ // Convert to scored array
153
+ const scored = [];
154
+ for (const [entityId, score] of scores) {
155
+ scored.push({ entityId, score: Math.round(score * 1000) / 1000 });
156
+ }
157
+ sortByScore(scored, ruleSet.config.direction);
158
+ return this.buildRankedEntities(scored, entityFacts.length, options);
159
+ }
160
+ // ========================================
161
+ // Shared Helpers
162
+ // ========================================
163
+ buildRankedEntities(scored, totalEntities, options, tiers) {
164
+ // Build previous ranking lookup
165
+ const previousMap = new Map();
166
+ if (options.previousRankings) {
167
+ for (const prev of options.previousRankings) {
168
+ previousMap.set(prev.entityId, prev.rank);
169
+ }
170
+ }
171
+ // Prepare sorted tiers for matching
172
+ const sortedTiers = tiers
173
+ ? [...tiers].sort((a, b) => {
174
+ const ta = a.threshold === '-Infinity' ? Number.NEGATIVE_INFINITY : a.threshold;
175
+ const tb = b.threshold === '-Infinity' ? Number.NEGATIVE_INFINITY : b.threshold;
176
+ return tb - ta;
177
+ })
178
+ : undefined;
179
+ // Assign ranks (competition ranking: ties get same rank, next skips)
180
+ const rankings = [];
181
+ let currentRank = 1;
182
+ for (let i = 0; i < scored.length; i++) {
183
+ // If this entity has the same score as the previous, use the same rank
184
+ if (i > 0 && scored[i].score === scored[i - 1].score) {
185
+ // Same rank as previous
186
+ }
187
+ else {
188
+ currentRank = i + 1;
189
+ }
190
+ const percentile = totalEntities <= 1
191
+ ? 100
192
+ : ((totalEntities - currentRank) / (totalEntities - 1)) * 100;
193
+ const percentileLabel = (0, types_1.resolvePercentileLabel)(percentile);
194
+ // Match tier
195
+ let tier;
196
+ if (sortedTiers) {
197
+ for (const tierDef of sortedTiers) {
198
+ const threshold = tierDef.threshold === '-Infinity'
199
+ ? Number.NEGATIVE_INFINITY
200
+ : tierDef.threshold;
201
+ if (scored[i].score >= threshold) {
202
+ tier = { ...tierDef, threshold };
203
+ break;
204
+ }
205
+ }
206
+ }
207
+ // Movement
208
+ let movement;
209
+ let delta;
210
+ const previousRank = previousMap.get(scored[i].entityId);
211
+ if (previousRank !== undefined) {
212
+ movement = (0, types_1.resolveMovement)(previousRank, currentRank);
213
+ delta = previousRank - currentRank; // positive = climbed
214
+ }
215
+ const entity = {
216
+ entityId: scored[i].entityId,
217
+ rank: currentRank,
218
+ score: scored[i].score,
219
+ percentile: Math.round(percentile * 100) / 100,
220
+ percentileLabel,
221
+ ...(tier !== undefined && { tier }),
222
+ ...(movement !== undefined && { movement }),
223
+ ...(delta !== undefined && { delta })
224
+ };
225
+ if (options.onRank) {
226
+ options.onRank(entity);
227
+ }
228
+ rankings.push(entity);
229
+ }
230
+ return rankings;
231
+ }
232
+ }
233
+ exports.RankingExecutor = RankingExecutor;
234
+ // ========================================
235
+ // Module-Level Helpers
236
+ // ========================================
237
+ function resolveEntityId(fact) {
238
+ return fact.data?.id ?? fact.id;
239
+ }
240
+ function sortByScore(scored, direction) {
241
+ if (direction === 'highest-first') {
242
+ scored.sort((a, b) => b.score - a.score);
243
+ }
244
+ else {
245
+ scored.sort((a, b) => a.score - b.score);
246
+ }
247
+ }
248
+ /** Singleton instance */
249
+ exports.rankingStrategy = new RankingExecutor();
250
+ //# sourceMappingURL=strategy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/engines/ranking/strategy.ts"],"names":[],"mappings":";AAAA;;;;;;;GAOG;;;AAGH,8CAAkD;AAclD,mCAAkE;AAElE,MAAa,eAAe;IAC1B,GAAG,CACD,OAAkC,EAClC,EAAkB,EAClB,UAA0B,EAAE;QAE5B,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QAEpC,IAAI,QAA2B,CAAC;QAEhC,QAAQ,OAAO,CAAC,QAAQ,EAAE,CAAC;YACzB,KAAK,OAAO;gBACV,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAyC,EAAE,EAAE,EAAE,OAAO,CAAC,CAAC;gBACjF,MAAM;YACR,KAAK,KAAK;gBACR,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,OAA+C,EAAE,EAAE,EAAE,OAAO,CAAsB,CAAC;gBAC1G,MAAM;YACR,KAAK,cAAc;gBACjB,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,OAAsD,EAAE,EAAE,EAAE,OAAO,CAAsB,CAAC;gBACxH,MAAM;YACR;gBACE,MAAM,IAAI,KAAK,CAAC,8BAA+B,OAAe,CAAC,QAAQ,GAAG,CAAC,CAAC;QAChF,CAAC;QAED,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;QAEhF,OAAO;YACL,QAAQ;YACR,aAAa,EAAE,QAAQ,CAAC,MAAM;YAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;YAC1B,eAAe;SAChB,CAAC;IACJ,CAAC;IAED,2CAA2C;IAC3C,iBAAiB;IACjB,2CAA2C;IAEnC,QAAQ,CACd,OAAuC,EACvC,EAAkB,EAClB,OAAuB;QAEvB,MAAM,WAAW,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAExC,gEAAgE;QAChE,MAAM,QAAQ,GAAG,EAAE,CAAC,MAAM,EAAE,CAAC;QAC7B,MAAM,YAAY,GAAG,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,UAAU,CAAC,CAAC;QAEzE,kCAAkC;QAClC,MAAM,MAAM,GAA0C,EAAE,CAAC;QACzD,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,MAAM,GAAG,IAAI,sBAAa,EAAE,CAAC;YAEnC,0BAA0B;YAC1B,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;gBAC/B,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;YAC7D,CAAC;YAED,kBAAkB;YAClB,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC,CAAC;YAEpE,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,cAAc,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;YAC9E,MAAM,QAAQ,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;YAEzC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACtD,CAAC;QAED,gBAAgB;QAChB,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE9C,wBAAwB;QACxB,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7F,CAAC;IAED,2CAA2C;IAC3C,eAAe;IACf,2CAA2C;IAEnC,MAAM,CACZ,OAAkC,EAClC,EAAkB,EAClB,OAAuB;QAEvB,MAAM,WAAW,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAExC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;QAElD,qBAAqB;QACrB,MAAM,OAAO,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC1C,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,CAAC;QACtD,CAAC;QAED,2CAA2C;QAC3C,MAAM,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAChD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;YAC5B,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,GAAG,KAAK,CAAC,IAAI,CAAC;YAE/C,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;YACtC,MAAM,OAAO,GAAG,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAErC,qCAAqC;YACrC,IAAI,OAAO,KAAK,SAAS,IAAI,OAAO,KAAK,SAAS;gBAAE,SAAS;YAE7D,kBAAkB;YAClB,MAAM,SAAS,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,CAAC,OAAO,GAAG,OAAO,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACpE,MAAM,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC;YAEhC,gBAAgB;YAChB,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAE/B,iBAAiB;YACjB,OAAO,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC;YACjE,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC;QAClE,CAAC;QAED,0BAA0B;QAC1B,MAAM,MAAM,GAA0C,EAAE,CAAC;QACzD,KAAK,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACzC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,CAAC,GAAG,GAAG,EAAE,CAAC,CAAC;QACnE,CAAC;QAED,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED,2CAA2C;IAC3C,wBAAwB;IACxB,2CAA2C;IAEnC,aAAa,CACnB,OAAyC,EACzC,EAAkB,EAClB,OAAuB;QAEvB,MAAM,WAAW,GAAG,EAAE,CAAC,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACrD,IAAI,WAAW,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,CAAC;QAExC,MAAM,EAAE,QAAQ,EAAE,GAAG,OAAO,CAAC;QAE7B,sCAAsC;QACtC,MAAM,QAAQ,GAA2D,EAAE,CAAC;QAC5E,KAAK,MAAM,MAAM,IAAI,WAAW,EAAE,CAAC;YACjC,MAAM,MAAM,GAA2B,EAAE,CAAC;YAC1C,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;gBACzB,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,OAAO,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YAC/E,CAAC;YACD,QAAQ,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC,CAAC;QAC/D,CAAC;QAED,kCAAkC;QAClC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;QACzC,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;YACzB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;QAC5B,CAAC;QAED,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC7C,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBACtB,MAAM,CAAC,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;gBAEtB,KAAK,MAAM,CAAC,IAAI,QAAQ,EAAE,CAAC;oBACzB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAC5B,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;oBAE5B,MAAM,cAAc,GAAG,CAAC,CAAC,SAAS,KAAK,eAAe,CAAC;oBAEvD,IAAI,IAAI,KAAK,IAAI,EAAE,CAAC;wBAClB,wBAAwB;wBACxB,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAE,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;wBAC/D,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAE,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;oBACjE,CAAC;yBAAM,IAAI,CAAC,cAAc,IAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,cAAc,IAAI,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC;wBAC/E,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;oBAC7D,CAAC;yBAAM,CAAC;wBACN,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,CAAE,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;oBAC7D,CAAC;gBACH,CAAC;YACH,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,MAAM,MAAM,GAA0C,EAAE,CAAC;QACzD,KAAK,MAAM,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,MAAM,EAAE,CAAC;YACvC,MAAM,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QAED,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;QAE9C,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACvE,CAAC;IAED,2CAA2C;IAC3C,iBAAiB;IACjB,2CAA2C;IAEnC,mBAAmB,CACzB,MAA6C,EAC7C,aAAqB,EACrB,OAAuB,EACvB,KAAW;QAEX,gCAAgC;QAChC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAC9C,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;YAC7B,KAAK,MAAM,IAAI,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;gBAC5C,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;YAC5C,CAAC;QACH,CAAC;QAED,oCAAoC;QACpC,MAAM,WAAW,GAAG,KAAK;YACvB,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBACvB,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAmB,CAAC;gBAC1F,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,SAAmB,CAAC;gBAC1F,OAAO,EAAE,GAAG,EAAE,CAAC;YACjB,CAAC,CAAC;YACJ,CAAC,CAAC,SAAS,CAAC;QAEd,qEAAqE;QACrE,MAAM,QAAQ,GAAsB,EAAE,CAAC;QACvC,IAAI,WAAW,GAAG,CAAC,CAAC;QAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,uEAAuE;YACvE,IAAI,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,CAAC;gBACrD,wBAAwB;YAC1B,CAAC;iBAAM,CAAC;gBACN,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC;YACtB,CAAC;YAED,MAAM,UAAU,GAAG,aAAa,IAAI,CAAC;gBACnC,CAAC,CAAC,GAAG;gBACL,CAAC,CAAC,CAAC,CAAC,aAAa,GAAG,WAAW,CAAC,GAAG,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YAEhE,MAAM,eAAe,GAAG,IAAA,8BAAsB,EAAC,UAAU,CAAC,CAAC;YAE3D,aAAa;YACb,IAAI,IAAqC,CAAC;YAC1C,IAAI,WAAW,EAAE,CAAC;gBAChB,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;oBAClC,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,WAAW;wBACjD,CAAC,CAAC,MAAM,CAAC,iBAAiB;wBAC1B,CAAC,CAAC,OAAO,CAAC,SAAmB,CAAC;oBAChC,IAAI,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,SAAS,EAAE,CAAC;wBACjC,IAAI,GAAG,EAAE,GAAG,OAAO,EAAE,SAAS,EAAyB,CAAC;wBACxD,MAAM;oBACR,CAAC;gBACH,CAAC;YACH,CAAC;YAED,WAAW;YACX,IAAI,QAA8B,CAAC;YACnC,IAAI,KAAyB,CAAC;YAC9B,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YACzD,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gBAC/B,QAAQ,GAAG,IAAA,uBAAe,EAAC,YAAY,EAAE,WAAW,CAAC,CAAC;gBACtD,KAAK,GAAG,YAAY,GAAG,WAAW,CAAC,CAAE,qBAAqB;YAC5D,CAAC;YAED,MAAM,MAAM,GAAoB;gBAC9B,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ;gBAC5B,IAAI,EAAE,WAAW;gBACjB,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK;gBACtB,UAAU,EAAE,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,GAAG,CAAC,GAAG,GAAG;gBAC9C,eAAe;gBACf,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;gBACnC,GAAG,CAAC,QAAQ,KAAK,SAAS,IAAI,EAAE,QAAQ,EAAE,CAAC;gBAC3C,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;aACtC,CAAC;YAEF,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;gBACnB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YACzB,CAAC;YAED,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACxB,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF;AA5RD,0CA4RC;AAED,2CAA2C;AAC3C,uBAAuB;AACvB,2CAA2C;AAE3C,SAAS,eAAe,CAAC,IAAU;IACjC,OAAO,IAAI,CAAC,IAAI,EAAE,EAAE,IAAI,IAAI,CAAC,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,WAAW,CAClB,MAA6C,EAC7C,SAA2B;IAE3B,IAAI,SAAS,KAAK,eAAe,EAAE,CAAC;QAClC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;SAAM,CAAC;QACN,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;IAC3C,CAAC;AACH,CAAC;AAED,yBAAyB;AACZ,QAAA,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC"}
@@ -0,0 +1,142 @@
1
+ /**
2
+ * Ranking Engine Types
3
+ *
4
+ * Comparative scoring engine that ranks N entities relative to each other.
5
+ * Supports score-based ranking, Elo ratings, and head-to-head pairwise comparison.
6
+ */
7
+ import type { CompiledScoringRuleSet, ScoringOptions, ScoringTierMatch, TierDefinition } from '../scoring/types';
8
+ import type { SemanticPriority } from '../utility/types';
9
+ /** Ranking algorithm to use */
10
+ export type RankingStrategy = 'score' | 'elo' | 'head-to-head';
11
+ /** Sort direction for rankings */
12
+ export type RankingDirection = 'highest-first' | 'lowest-first';
13
+ /** Human-readable percentile bracket */
14
+ export type PercentileLabel = 'top-1%' | 'top-5%' | 'top-10%' | 'top-25%' | 'top-50%' | 'bottom-half';
15
+ /** Rank movement since previous ranking */
16
+ export type Movement = 'climbed' | 'steady' | 'dropped';
17
+ /** Elo K-factor presets controlling rating volatility */
18
+ export type KFactorPreset = 'volatile' | 'standard' | 'stable';
19
+ export declare const K_FACTOR_VALUES: Record<KFactorPreset, number>;
20
+ export declare function isKFactorPreset(value: unknown): value is KFactorPreset;
21
+ /** Map a percentile (0-100) to a semantic label */
22
+ export declare function resolvePercentileLabel(percentile: number): PercentileLabel;
23
+ /** Map rank change to a semantic movement label */
24
+ export declare function resolveMovement(previousRank: number, currentRank: number): Movement;
25
+ /** A dimension for pairwise comparison */
26
+ export type RankingCriterion = {
27
+ id: string;
28
+ name?: string;
29
+ weight: number | SemanticPriority;
30
+ direction: RankingDirection;
31
+ };
32
+ /** Compiled criterion with resolved numeric weight */
33
+ export type CompiledRankingCriterion = {
34
+ id: string;
35
+ name?: string;
36
+ weight: number;
37
+ direction: RankingDirection;
38
+ };
39
+ export type ScoreRankingConfig<T extends TierDefinition = TierDefinition> = {
40
+ direction?: RankingDirection;
41
+ tiers?: T[];
42
+ };
43
+ export type EloConfig = {
44
+ initialRating?: number;
45
+ kFactor?: KFactorPreset | number;
46
+ direction?: RankingDirection;
47
+ };
48
+ export type HeadToHeadConfig = {
49
+ direction?: RankingDirection;
50
+ };
51
+ type RankingRuleSetBase = {
52
+ id: string;
53
+ name?: string;
54
+ mode: 'ranking';
55
+ };
56
+ /** Score strategy: point at a scoring ruleset, rank entities by totalScore */
57
+ export type ScoreRankingRuleSet<T extends TierDefinition = TierDefinition> = RankingRuleSetBase & {
58
+ strategy: 'score';
59
+ scoringRuleset: CompiledScoringRuleSet<T>;
60
+ scoringOptions?: ScoringOptions;
61
+ entityType: string;
62
+ config?: ScoreRankingConfig<T>;
63
+ };
64
+ /** Elo strategy: process match history, compute ratings */
65
+ export type EloRankingRuleSet = RankingRuleSetBase & {
66
+ strategy: 'elo';
67
+ entityType: string;
68
+ matchType?: string;
69
+ config?: EloConfig;
70
+ };
71
+ /** Head-to-head strategy: pairwise comparison on weighted criteria */
72
+ export type HeadToHeadRankingRuleSet = RankingRuleSetBase & {
73
+ strategy: 'head-to-head';
74
+ entityType: string;
75
+ criteria: RankingCriterion[];
76
+ config?: HeadToHeadConfig;
77
+ };
78
+ export type RankingRuleSet<T extends TierDefinition = TierDefinition> = ScoreRankingRuleSet<T> | EloRankingRuleSet | HeadToHeadRankingRuleSet;
79
+ type CompiledRankingRuleSetBase = {
80
+ id: string;
81
+ name?: string;
82
+ mode: 'ranking';
83
+ };
84
+ export type CompiledScoreRankingRuleSet<T extends TierDefinition = TierDefinition> = CompiledRankingRuleSetBase & {
85
+ strategy: 'score';
86
+ scoringRuleset: CompiledScoringRuleSet<T>;
87
+ scoringOptions?: ScoringOptions;
88
+ entityType: string;
89
+ config: {
90
+ direction: RankingDirection;
91
+ tiers?: T[];
92
+ };
93
+ };
94
+ export type CompiledEloRankingRuleSet = CompiledRankingRuleSetBase & {
95
+ strategy: 'elo';
96
+ entityType: string;
97
+ matchType: string;
98
+ config: {
99
+ initialRating: number;
100
+ kFactor: number;
101
+ direction: RankingDirection;
102
+ };
103
+ };
104
+ export type CompiledHeadToHeadRankingRuleSet = CompiledRankingRuleSetBase & {
105
+ strategy: 'head-to-head';
106
+ entityType: string;
107
+ criteria: CompiledRankingCriterion[];
108
+ config: {
109
+ direction: RankingDirection;
110
+ };
111
+ };
112
+ export type CompiledRankingRuleSet<T extends TierDefinition = TierDefinition> = CompiledScoreRankingRuleSet<T> | CompiledEloRankingRuleSet | CompiledHeadToHeadRankingRuleSet;
113
+ /** Previous ranking for movement tracking */
114
+ export type PreviousRanking = {
115
+ entityId: string;
116
+ rank: number;
117
+ };
118
+ /** Runtime options */
119
+ export type RankingOptions = {
120
+ previousRankings?: PreviousRanking[];
121
+ onRank?: (entity: RankedEntity) => void;
122
+ };
123
+ /** Per-entity result */
124
+ export type RankedEntity<T extends TierDefinition = TierDefinition> = {
125
+ entityId: string;
126
+ rank: number;
127
+ score: number;
128
+ percentile: number;
129
+ percentileLabel: PercentileLabel;
130
+ tier?: ScoringTierMatch<T>;
131
+ movement?: Movement;
132
+ delta?: number;
133
+ };
134
+ /** Full ranking result */
135
+ export type RankingResult<T extends TierDefinition = TierDefinition> = {
136
+ rankings: RankedEntity<T>[];
137
+ totalEntities: number;
138
+ strategy: RankingStrategy;
139
+ executionTimeMs: number;
140
+ };
141
+ export {};
142
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/engines/ranking/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,46 @@
1
+ "use strict";
2
+ /**
3
+ * Ranking Engine Types
4
+ *
5
+ * Comparative scoring engine that ranks N entities relative to each other.
6
+ * Supports score-based ranking, Elo ratings, and head-to-head pairwise comparison.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.K_FACTOR_VALUES = void 0;
10
+ exports.isKFactorPreset = isKFactorPreset;
11
+ exports.resolvePercentileLabel = resolvePercentileLabel;
12
+ exports.resolveMovement = resolveMovement;
13
+ exports.K_FACTOR_VALUES = {
14
+ 'volatile': 32, // New entities, fast adjustment
15
+ 'standard': 16, // Default
16
+ 'stable': 8 // Established entities, slow drift
17
+ };
18
+ function isKFactorPreset(value) {
19
+ return typeof value === 'string' && value in exports.K_FACTOR_VALUES;
20
+ }
21
+ // ========================================
22
+ // Resolver Functions
23
+ // ========================================
24
+ /** Map a percentile (0-100) to a semantic label */
25
+ function resolvePercentileLabel(percentile) {
26
+ if (percentile >= 99)
27
+ return 'top-1%';
28
+ if (percentile >= 95)
29
+ return 'top-5%';
30
+ if (percentile >= 90)
31
+ return 'top-10%';
32
+ if (percentile >= 75)
33
+ return 'top-25%';
34
+ if (percentile >= 50)
35
+ return 'top-50%';
36
+ return 'bottom-half';
37
+ }
38
+ /** Map rank change to a semantic movement label */
39
+ function resolveMovement(previousRank, currentRank) {
40
+ if (currentRank < previousRank)
41
+ return 'climbed'; // lower rank number = better
42
+ if (currentRank > previousRank)
43
+ return 'dropped';
44
+ return 'steady';
45
+ }
46
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/engines/ranking/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAyCH,0CAEC;AAOD,wDAOC;AAGD,0CAIC;AA7BY,QAAA,eAAe,GAAkC;IAC5D,UAAU,EAAE,EAAE,EAAK,gCAAgC;IACnD,UAAU,EAAE,EAAE,EAAK,UAAU;IAC7B,QAAQ,EAAE,CAAC,CAAQ,mCAAmC;CACvD,CAAC;AAEF,SAAgB,eAAe,CAAC,KAAc;IAC5C,OAAO,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,IAAI,uBAAe,CAAC;AAC/D,CAAC;AAED,2CAA2C;AAC3C,qBAAqB;AACrB,2CAA2C;AAE3C,mDAAmD;AACnD,SAAgB,sBAAsB,CAAC,UAAkB;IACvD,IAAI,UAAU,IAAI,EAAE;QAAE,OAAO,QAAQ,CAAC;IACtC,IAAI,UAAU,IAAI,EAAE;QAAE,OAAO,QAAQ,CAAC;IACtC,IAAI,UAAU,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,UAAU,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACvC,IAAI,UAAU,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACvC,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,mDAAmD;AACnD,SAAgB,eAAe,CAAC,YAAoB,EAAE,WAAmB;IACvE,IAAI,WAAW,GAAG,YAAY;QAAE,OAAO,SAAS,CAAC,CAAG,6BAA6B;IACjF,IAAI,WAAW,GAAG,YAAY;QAAE,OAAO,SAAS,CAAC;IACjD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
package/dist/index.d.ts CHANGED
@@ -55,6 +55,8 @@ export { PricingStrategy, compilePricingRuleSet, compilePricingRule, pricingStra
55
55
  export type { CurrencyCode, CurrencyInfo, PricingRule, PricingRuleSet, PricingConfig, PricingComponent, PricingMode, PricingInput, PricingPackage, FlatPricing, GraduatedTier, GraduatedPricing, VolumeBracket, VolumePricing, Meter, MultiMeterPricing, FormulaPricing, Adjustment, DiscountAdjustment, MinimumAdjustment, MaximumAdjustment, Metric, ScenarioDefinition, ScenarioDefinitions, AttributeSchema, ProductType, ResolvedPricingConfig, CompiledPricingRuleSet, CompiledPricingRule, CompiledPricingComponent, CompiledPricingMode, CompiledAdjustment, CompiledMetric, PricingOptions, PricingResult, ScenarioComparisonResult, ScenarioResult, ComponentResult, AdjustmentResult, TierBreakdown, MeterResult, PricingSummary, CalculatorContext, TierCalculationResult } from './engines/pricing';
56
56
  export { EnsembleStrategy, compileEnsembleRuleSet, ensembleStrategy, summarizeEnsemble, bayesianMember, fuzzyMember, monteCarloMember, expertMember, scoringMember } from './engines/ensemble';
57
57
  export type { FusionStrategy, AgreementLevel, ScoreExtractor, ConfidenceExtractor, ScoringMemberDef, CustomMemberDef, EnsembleMemberDef, StackingConfig, EnsembleConfig, EnsembleRuleSet, CompiledEnsembleMember, CompiledEnsembleRuleSet, EnsembleOptions, MemberResult, EnsembleResult, EnsembleSummaryOptions, BayesianMemberConfig, FuzzyMemberConfig, MonteCarloMemberConfig, ExpertMemberConfig, ScoringMemberConfig } from './engines/ensemble';
58
+ export { RankingEngine, RankingExecutor, compileRankingRuleSet, rankingStrategy, K_FACTOR_VALUES, isKFactorPreset, resolvePercentileLabel, resolveMovement } from './engines/ranking';
59
+ export type { RankingStrategy, RankingDirection, PercentileLabel, Movement, KFactorPreset, RankingCriterion, CompiledRankingCriterion, ScoreRankingConfig, EloConfig, HeadToHeadConfig, ScoreRankingRuleSet, EloRankingRuleSet, HeadToHeadRankingRuleSet, RankingRuleSet, CompiledScoreRankingRuleSet, CompiledEloRankingRuleSet, CompiledHeadToHeadRankingRuleSet, CompiledRankingRuleSet, PreviousRanking, RankingOptions, RankedEntity, RankingResult } from './engines/ranking';
58
60
  export { soundex, nysiis, caverphone2, cosineSimilarity } from './functions';
59
61
  export { BOEError, CompilationError, RuntimeError } from './core/errors';
60
62
  export type { ErrorContext } from './core/errors';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -30,7 +30,8 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
30
30
  };
31
31
  Object.defineProperty(exports, "__esModule", { value: true });
32
32
  exports.UtilityStrategy = exports.SEMANTIC_WEIGHTS = exports.constraintStrategy = exports.compileConstraintRuleSet = exports.ConstraintStrategy = exports.stateMachineStrategy = exports.compileStateMachineDefinition = exports.compileStateMachine = exports.StateMachineStrategy = exports.monteCarloStrategy = exports.compileMonteCarloRuleSet = exports.MonteCarloStrategy = exports.SEMANTIC_LIKELIHOODS = exports.parseLikelihood = exports.bayesianStrategy = exports.compileBayesianRule = exports.compileBayesianRuleSet = exports.BayesianStrategy = exports.autoAdjustCoverage = exports.analyzeCoverage = exports.compileFuzzyVariable = exports.fuzzyStrategy = exports.compileFuzzyRuleSet = exports.FuzzyStrategy = exports.sequentialStrategy = exports.compileSequentialRuleSet = exports.SequentialStrategy = exports.createScoreFunction = exports.scoringStrategy = exports.compileScoringRuleSet = exports.ScoringStrategy = exports.backwardStrategy = exports.compileBackwardRuleSet = exports.BackwardChainingStrategy = exports.forwardStrategy = exports.compileForwardRule = exports.compileForwardRuleSet = exports.ForwardChainingStrategy = exports.EnsembleEngine = exports.PricingEngine = exports.UtilityEngine = exports.ConstraintEngine = exports.StateMachineEngine = exports.MonteCarloEngine = exports.BayesianEngine = exports.FuzzyEngine = exports.SequentialEngine = exports.ScoringEngine = exports.BackwardEngine = exports.ForwardEngine = void 0;
33
- exports.resolveDecayTimestamp = exports.calculateDecayMultiplier = exports.RuntimeError = exports.CompilationError = exports.BOEError = exports.cosineSimilarity = exports.caverphone2 = exports.nysiis = exports.soundex = exports.scoringMember = exports.expertMember = exports.monteCarloMember = exports.fuzzyMember = exports.bayesianMember = exports.summarizeEnsemble = exports.ensembleStrategy = exports.compileEnsembleRuleSet = exports.EnsembleStrategy = exports.getCurrencyInfo = exports.CURRENCIES = exports.applyMinMax = exports.calculateDiscount = exports.round = exports.formatPercent = exports.formatNumber = exports.formatCurrency = exports.calculateVolume = exports.calculateGraduated = exports.calculateFlat = exports.pricingEngine = exports.pricingStrategy = exports.compilePricingRule = exports.compilePricingRuleSet = exports.PricingStrategy = exports.buildAvailableRefs = exports.hasInterpolation = exports.interpolate = exports.compileTemplate = exports.expertStrategy = exports.compileExpertRuleSet = exports.ExpertStrategy = exports.ExpertEngine = exports.compileDefeasibleRuleSet = exports.DefeasibleEngine = exports.utilityStrategy = exports.compileUtilityRule = exports.compileUtilityRuleSet = void 0;
33
+ exports.cosineSimilarity = exports.caverphone2 = exports.nysiis = exports.soundex = exports.resolveMovement = exports.resolvePercentileLabel = exports.isKFactorPreset = exports.K_FACTOR_VALUES = exports.rankingStrategy = exports.compileRankingRuleSet = exports.RankingExecutor = exports.RankingEngine = exports.scoringMember = exports.expertMember = exports.monteCarloMember = exports.fuzzyMember = exports.bayesianMember = exports.summarizeEnsemble = exports.ensembleStrategy = exports.compileEnsembleRuleSet = exports.EnsembleStrategy = exports.getCurrencyInfo = exports.CURRENCIES = exports.applyMinMax = exports.calculateDiscount = exports.round = exports.formatPercent = exports.formatNumber = exports.formatCurrency = exports.calculateVolume = exports.calculateGraduated = exports.calculateFlat = exports.pricingEngine = exports.pricingStrategy = exports.compilePricingRule = exports.compilePricingRuleSet = exports.PricingStrategy = exports.buildAvailableRefs = exports.hasInterpolation = exports.interpolate = exports.compileTemplate = exports.expertStrategy = exports.compileExpertRuleSet = exports.ExpertStrategy = exports.ExpertEngine = exports.compileDefeasibleRuleSet = exports.DefeasibleEngine = exports.utilityStrategy = exports.compileUtilityRule = exports.compileUtilityRuleSet = void 0;
34
+ exports.resolveDecayTimestamp = exports.calculateDecayMultiplier = exports.RuntimeError = exports.CompilationError = exports.BOEError = void 0;
34
35
  // ========================================
35
36
  // Engines
36
37
  // ========================================
@@ -175,6 +176,16 @@ Object.defineProperty(exports, "fuzzyMember", { enumerable: true, get: function
175
176
  Object.defineProperty(exports, "monteCarloMember", { enumerable: true, get: function () { return ensemble_2.monteCarloMember; } });
176
177
  Object.defineProperty(exports, "expertMember", { enumerable: true, get: function () { return ensemble_2.expertMember; } });
177
178
  Object.defineProperty(exports, "scoringMember", { enumerable: true, get: function () { return ensemble_2.scoringMember; } });
179
+ // Ranking
180
+ var ranking_1 = require("./engines/ranking");
181
+ Object.defineProperty(exports, "RankingEngine", { enumerable: true, get: function () { return ranking_1.RankingEngine; } });
182
+ Object.defineProperty(exports, "RankingExecutor", { enumerable: true, get: function () { return ranking_1.RankingExecutor; } });
183
+ Object.defineProperty(exports, "compileRankingRuleSet", { enumerable: true, get: function () { return ranking_1.compileRankingRuleSet; } });
184
+ Object.defineProperty(exports, "rankingStrategy", { enumerable: true, get: function () { return ranking_1.rankingStrategy; } });
185
+ Object.defineProperty(exports, "K_FACTOR_VALUES", { enumerable: true, get: function () { return ranking_1.K_FACTOR_VALUES; } });
186
+ Object.defineProperty(exports, "isKFactorPreset", { enumerable: true, get: function () { return ranking_1.isKFactorPreset; } });
187
+ Object.defineProperty(exports, "resolvePercentileLabel", { enumerable: true, get: function () { return ranking_1.resolvePercentileLabel; } });
188
+ Object.defineProperty(exports, "resolveMovement", { enumerable: true, get: function () { return ranking_1.resolveMovement; } });
178
189
  // ========================================
179
190
  // Utility Functions (from old modules, re-exported for convenience)
180
191
  // ========================================
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@higher.archi/boe",
3
- "version": "1.0.21",
3
+ "version": "1.0.22",
4
4
  "description": "A multi-strategy rule engine supporting forward chaining, backward chaining, scoring, sequential, fuzzy logic, and Bayesian inference",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -37,7 +37,7 @@ export type ValidityDuration = {
37
37
  // Base Rule Types
38
38
  // ========================================
39
39
 
40
- export type RuleSetMode = "forward" | "scoring" | "backward" | "sequential" | "fuzzy" | "bayesian" | "monte-carlo" | "state-machine" | "constraint" | "utility" | "defeasible" | "expert" | "pricing" | "ensemble";
40
+ export type RuleSetMode = "forward" | "scoring" | "backward" | "sequential" | "fuzzy" | "bayesian" | "monte-carlo" | "state-machine" | "constraint" | "utility" | "defeasible" | "expert" | "pricing" | "ensemble" | "ranking";
41
41
 
42
42
  export type BaseRule = {
43
43
  id: string; // Unique identifier (system-generated or explicit)