@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
@@ -21,7 +21,7 @@ export type ValidityDuration = {
21
21
  months?: number;
22
22
  from: string;
23
23
  };
24
- export type RuleSetMode = "forward" | "scoring" | "backward" | "sequential" | "fuzzy" | "bayesian" | "monte-carlo" | "state-machine" | "constraint" | "utility" | "defeasible" | "expert" | "pricing" | "ensemble";
24
+ export type RuleSetMode = "forward" | "scoring" | "backward" | "sequential" | "fuzzy" | "bayesian" | "monte-carlo" | "state-machine" | "constraint" | "utility" | "defeasible" | "expert" | "pricing" | "ensemble" | "ranking";
25
25
  export type BaseRule = {
26
26
  id: string;
27
27
  name?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../src/core/types/rule.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAM7C,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAMF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAMF,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,eAAe,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,CAAC;AAEnN,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IAGjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IAGd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAMF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,CAAC;AAMF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IAGzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IAGnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC"}
1
+ {"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../src/core/types/rule.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,UAAU,CAAC;AAM7C,MAAM,MAAM,cAAc,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAAC;AAMF;;;GAGG;AACH,MAAM,MAAM,gBAAgB,GAAG;IAC7B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAMF,MAAM,MAAM,WAAW,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,aAAa,GAAG,eAAe,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,QAAQ,GAAG,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;AAE/N,MAAM,MAAM,QAAQ,GAAG;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,MAAM,EAAE,cAAc,EAAE,CAAC;IACzB,IAAI,CAAC,EAAE,SAAS,CAAC;IAGjB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,KAAK,CAAC,EAAE,KAAK,CAAC;IAGd,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAMF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,CAAC,EAAE,iBAAiB,CAAC;IAC1B,IAAI,CAAC,EAAE,YAAY,CAAC;CACrB,CAAC;AAMF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,sBAAsB,EAAE,CAAC;IACjC,IAAI,CAAC,EAAE,iBAAiB,CAAC;IAGzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,gBAAgB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,UAAU,CAAC;IAGnB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Ranking Engine Compiler
3
+ *
4
+ * Validates ranking rulesets and resolves defaults.
5
+ */
6
+ import type { TierDefinition } from '../scoring/types';
7
+ import type { RankingRuleSet, CompiledRankingRuleSet } from './types';
8
+ /**
9
+ * Compile and validate a ranking ruleset.
10
+ */
11
+ export declare function compileRankingRuleSet<T extends TierDefinition = TierDefinition>(ruleSet: RankingRuleSet<T>): CompiledRankingRuleSet<T>;
12
+ //# sourceMappingURL=compiler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/engines/ranking/compiler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,KAAK,EACV,cAAc,EACd,sBAAsB,EAMvB,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC7E,OAAO,EAAE,cAAc,CAAC,CAAC,CAAC,GACzB,sBAAsB,CAAC,CAAC,CAAC,CAuB3B"}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+ /**
3
+ * Ranking Engine Compiler
4
+ *
5
+ * Validates ranking rulesets and resolves defaults.
6
+ */
7
+ Object.defineProperty(exports, "__esModule", { value: true });
8
+ exports.compileRankingRuleSet = compileRankingRuleSet;
9
+ const errors_1 = require("../../core/errors");
10
+ const types_1 = require("../utility/types");
11
+ const types_2 = require("./types");
12
+ /**
13
+ * Compile and validate a ranking ruleset.
14
+ */
15
+ function compileRankingRuleSet(ruleSet) {
16
+ if (!ruleSet.id) {
17
+ throw new errors_1.CompilationError('Ranking ruleset requires an id');
18
+ }
19
+ if (ruleSet.mode !== 'ranking') {
20
+ throw new errors_1.CompilationError(`Expected mode 'ranking', got '${ruleSet.mode}'`);
21
+ }
22
+ if (!ruleSet.entityType || ruleSet.entityType.trim() === '') {
23
+ throw new errors_1.CompilationError('entityType is required and must be non-empty');
24
+ }
25
+ switch (ruleSet.strategy) {
26
+ case 'score':
27
+ return compileScore(ruleSet);
28
+ case 'elo':
29
+ return compileElo(ruleSet);
30
+ case 'head-to-head':
31
+ return compileHeadToHead(ruleSet);
32
+ default:
33
+ throw new errors_1.CompilationError(`Unknown ranking strategy: '${ruleSet.strategy}'`);
34
+ }
35
+ }
36
+ function compileScore(ruleSet) {
37
+ if (!ruleSet.scoringRuleset) {
38
+ throw new errors_1.CompilationError('Score strategy requires a scoringRuleset');
39
+ }
40
+ if (ruleSet.scoringRuleset.mode !== 'scoring') {
41
+ throw new errors_1.CompilationError(`scoringRuleset must have mode 'scoring', got '${ruleSet.scoringRuleset.mode}'`);
42
+ }
43
+ // Validate tier IDs are unique
44
+ const tiers = ruleSet.config?.tiers;
45
+ if (tiers) {
46
+ const tierIds = new Set();
47
+ for (const tier of tiers) {
48
+ if (tierIds.has(tier.id)) {
49
+ throw new errors_1.CompilationError(`Duplicate tier id: '${tier.id}'`);
50
+ }
51
+ tierIds.add(tier.id);
52
+ }
53
+ }
54
+ return {
55
+ id: ruleSet.id,
56
+ name: ruleSet.name,
57
+ mode: 'ranking',
58
+ strategy: 'score',
59
+ scoringRuleset: ruleSet.scoringRuleset,
60
+ scoringOptions: ruleSet.scoringOptions,
61
+ entityType: ruleSet.entityType,
62
+ config: {
63
+ direction: ruleSet.config?.direction ?? 'highest-first',
64
+ tiers: ruleSet.config?.tiers
65
+ }
66
+ };
67
+ }
68
+ function compileElo(ruleSet) {
69
+ const config = ruleSet.config ?? {};
70
+ // Resolve kFactor
71
+ let kFactor;
72
+ if (config.kFactor === undefined) {
73
+ kFactor = types_2.K_FACTOR_VALUES['standard'];
74
+ }
75
+ else if ((0, types_2.isKFactorPreset)(config.kFactor)) {
76
+ kFactor = types_2.K_FACTOR_VALUES[config.kFactor];
77
+ }
78
+ else if (typeof config.kFactor === 'number') {
79
+ if (config.kFactor <= 0) {
80
+ throw new errors_1.CompilationError('kFactor must be a positive number');
81
+ }
82
+ kFactor = config.kFactor;
83
+ }
84
+ else {
85
+ throw new errors_1.CompilationError(`Invalid kFactor: '${config.kFactor}'`);
86
+ }
87
+ const initialRating = config.initialRating ?? 1500;
88
+ if (initialRating <= 0) {
89
+ throw new errors_1.CompilationError('initialRating must be a positive number');
90
+ }
91
+ return {
92
+ id: ruleSet.id,
93
+ name: ruleSet.name,
94
+ mode: 'ranking',
95
+ strategy: 'elo',
96
+ entityType: ruleSet.entityType,
97
+ matchType: ruleSet.matchType ?? 'MatchResult',
98
+ config: {
99
+ initialRating,
100
+ kFactor,
101
+ direction: config.direction ?? 'highest-first'
102
+ }
103
+ };
104
+ }
105
+ function compileHeadToHead(ruleSet) {
106
+ const criteria = ruleSet.criteria;
107
+ if (!criteria || !Array.isArray(criteria) || criteria.length === 0) {
108
+ throw new errors_1.CompilationError('Head-to-head strategy requires at least one criterion');
109
+ }
110
+ // Validate no duplicate criterion IDs
111
+ const criterionIds = new Set();
112
+ for (const c of criteria) {
113
+ if (!c.id) {
114
+ throw new errors_1.CompilationError('Each criterion requires an id');
115
+ }
116
+ if (criterionIds.has(c.id)) {
117
+ throw new errors_1.CompilationError(`Duplicate criterion id: '${c.id}'`);
118
+ }
119
+ criterionIds.add(c.id);
120
+ }
121
+ // Resolve semantic weights to numeric
122
+ const resolvedCriteria = criteria.map((c) => {
123
+ let weight;
124
+ if ((0, types_1.isSemanticPriority)(c.weight)) {
125
+ weight = types_1.SEMANTIC_PRIORITY_VALUES[c.weight];
126
+ }
127
+ else if (typeof c.weight === 'number') {
128
+ weight = c.weight;
129
+ }
130
+ else {
131
+ throw new errors_1.CompilationError(`Invalid weight for criterion '${c.id}': '${c.weight}'`);
132
+ }
133
+ if (!c.direction) {
134
+ throw new errors_1.CompilationError(`Criterion '${c.id}' requires a direction`);
135
+ }
136
+ return {
137
+ id: c.id,
138
+ name: c.name,
139
+ weight,
140
+ direction: c.direction
141
+ };
142
+ });
143
+ // Normalize weights to sum to 1.0
144
+ const totalWeight = resolvedCriteria.reduce((sum, c) => sum + c.weight, 0);
145
+ if (totalWeight === 0) {
146
+ throw new errors_1.CompilationError('Criteria weights must not all be zero');
147
+ }
148
+ for (const c of resolvedCriteria) {
149
+ c.weight = c.weight / totalWeight;
150
+ }
151
+ return {
152
+ id: ruleSet.id,
153
+ name: ruleSet.name,
154
+ mode: 'ranking',
155
+ strategy: 'head-to-head',
156
+ entityType: ruleSet.entityType,
157
+ criteria: resolvedCriteria,
158
+ config: {
159
+ direction: ruleSet.config?.direction ?? 'highest-first'
160
+ }
161
+ };
162
+ }
163
+ //# sourceMappingURL=compiler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/engines/ranking/compiler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Ranking Engine
3
+ *
4
+ * Comparative scoring engine that ranks N entities relative to each other.
5
+ * Supports score-based ranking, Elo ratings, and head-to-head comparison.
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const engine = new RankingEngine();
10
+ * engine.add({ type: 'Vendor', data: { id: 'v1', revenue: 500000 } });
11
+ * engine.add({ type: 'Vendor', data: { id: 'v2', revenue: 120000 } });
12
+ *
13
+ * const result = engine.execute(compiledRanking);
14
+ * console.log(result.rankings[0]); // { rank: 1, entityId: 'v1', percentileLabel: 'top-1%', ... }
15
+ * ```
16
+ */
17
+ import { WorkingMemory, Fact, FactInput, FactChange } from '../../core';
18
+ import type { TierDefinition } from '../scoring/types';
19
+ import type { CompiledRankingRuleSet, RankingOptions, RankingResult } from './types';
20
+ export declare class RankingEngine {
21
+ private wm;
22
+ private strategy;
23
+ constructor(workingMemory?: WorkingMemory);
24
+ add<T = Record<string, any>>(input: FactInput<T>): Fact<T>;
25
+ remove(factId: string): Fact | undefined;
26
+ update<T = Record<string, any>>(input: FactInput<T>): Fact<T>;
27
+ get(factId: string): Fact | undefined;
28
+ getByType(type: string): Fact[];
29
+ getAll(): Fact[];
30
+ has(factId: string): boolean;
31
+ size(): number;
32
+ clear(): void;
33
+ getChanges(): FactChange[];
34
+ clearChanges(): void;
35
+ /**
36
+ * Execute a ranking ruleset.
37
+ *
38
+ * Scores all entities of the configured type and produces
39
+ * a ranked list with percentiles and optional tier/movement tracking.
40
+ *
41
+ * @param ruleSet - Compiled ranking ruleset
42
+ * @param options - Runtime options (previousRankings for movement, onRank callback)
43
+ * @returns Ranking result with sorted entities
44
+ */
45
+ execute<T extends TierDefinition = TierDefinition>(ruleSet: CompiledRankingRuleSet<T>, options?: RankingOptions): RankingResult<T>;
46
+ getWorkingMemory(): WorkingMemory;
47
+ }
48
+ //# sourceMappingURL=engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.d.ts","sourceRoot":"","sources":["../../../src/engines/ranking/engine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,aAAa,EACb,IAAI,EACJ,SAAS,EACT,UAAU,EACX,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAEvD,OAAO,KAAK,EACV,sBAAsB,EACtB,cAAc,EACd,aAAa,EACd,MAAM,SAAS,CAAC;AAIjB,qBAAa,aAAa;IACxB,OAAO,CAAC,EAAE,CAAgB;IAC1B,OAAO,CAAC,QAAQ,CAAkB;gBAEtB,aAAa,CAAC,EAAE,aAAa;IASzC,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAI1D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIxC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;IAI7D,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS;IAIrC,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE;IAI/B,MAAM,IAAI,IAAI,EAAE;IAIhB,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IAI5B,IAAI,IAAI,MAAM;IAId,KAAK,IAAI,IAAI;IAIb,UAAU,IAAI,UAAU,EAAE;IAI1B,YAAY,IAAI,IAAI;IAQpB;;;;;;;;;OASG;IACH,OAAO,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC/C,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAClC,OAAO,GAAE,cAAmB,GAC3B,aAAa,CAAC,CAAC,CAAC;IAQnB,gBAAgB,IAAI,aAAa;CAGlC"}
@@ -0,0 +1,89 @@
1
+ "use strict";
2
+ /**
3
+ * Ranking Engine
4
+ *
5
+ * Comparative scoring engine that ranks N entities relative to each other.
6
+ * Supports score-based ranking, Elo ratings, and head-to-head comparison.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const engine = new RankingEngine();
11
+ * engine.add({ type: 'Vendor', data: { id: 'v1', revenue: 500000 } });
12
+ * engine.add({ type: 'Vendor', data: { id: 'v2', revenue: 120000 } });
13
+ *
14
+ * const result = engine.execute(compiledRanking);
15
+ * console.log(result.rankings[0]); // { rank: 1, entityId: 'v1', percentileLabel: 'top-1%', ... }
16
+ * ```
17
+ */
18
+ Object.defineProperty(exports, "__esModule", { value: true });
19
+ exports.RankingEngine = void 0;
20
+ const core_1 = require("../../core");
21
+ const strategy_1 = require("./strategy");
22
+ class RankingEngine {
23
+ wm;
24
+ strategy;
25
+ constructor(workingMemory) {
26
+ this.wm = workingMemory ?? new core_1.WorkingMemory();
27
+ this.strategy = new strategy_1.RankingExecutor();
28
+ }
29
+ // ========================================
30
+ // IWorkingMemory Implementation
31
+ // ========================================
32
+ add(input) {
33
+ return this.wm.add(input);
34
+ }
35
+ remove(factId) {
36
+ return this.wm.remove(factId);
37
+ }
38
+ update(input) {
39
+ return this.wm.update(input);
40
+ }
41
+ get(factId) {
42
+ return this.wm.get(factId);
43
+ }
44
+ getByType(type) {
45
+ return this.wm.getByType(type);
46
+ }
47
+ getAll() {
48
+ return this.wm.getAll();
49
+ }
50
+ has(factId) {
51
+ return this.wm.has(factId);
52
+ }
53
+ size() {
54
+ return this.wm.size();
55
+ }
56
+ clear() {
57
+ this.wm.clear();
58
+ }
59
+ getChanges() {
60
+ return this.wm.getChanges();
61
+ }
62
+ clearChanges() {
63
+ this.wm.clearChanges();
64
+ }
65
+ // ========================================
66
+ // Engine Execution
67
+ // ========================================
68
+ /**
69
+ * Execute a ranking ruleset.
70
+ *
71
+ * Scores all entities of the configured type and produces
72
+ * a ranked list with percentiles and optional tier/movement tracking.
73
+ *
74
+ * @param ruleSet - Compiled ranking ruleset
75
+ * @param options - Runtime options (previousRankings for movement, onRank callback)
76
+ * @returns Ranking result with sorted entities
77
+ */
78
+ execute(ruleSet, options = {}) {
79
+ return this.strategy.run(ruleSet, this.wm, options);
80
+ }
81
+ // ========================================
82
+ // Utility Methods
83
+ // ========================================
84
+ getWorkingMemory() {
85
+ return this.wm;
86
+ }
87
+ }
88
+ exports.RankingEngine = RankingEngine;
89
+ //# sourceMappingURL=engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../src/engines/ranking/engine.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;;;;;GAeG;;;AAEH,qCAKoB;AAUpB,yCAA6C;AAE7C,MAAa,aAAa;IAChB,EAAE,CAAgB;IAClB,QAAQ,CAAkB;IAElC,YAAY,aAA6B;QACvC,IAAI,CAAC,EAAE,GAAG,aAAa,IAAI,IAAI,oBAAa,EAAE,CAAC;QAC/C,IAAI,CAAC,QAAQ,GAAG,IAAI,0BAAe,EAAE,CAAC;IACxC,CAAC;IAED,2CAA2C;IAC3C,gCAAgC;IAChC,2CAA2C;IAE3C,GAAG,CAA0B,KAAmB;QAC9C,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,CAAC,MAAc;QACnB,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAED,MAAM,CAA0B,KAAmB;QACjD,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,GAAG,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,SAAS,CAAC,IAAY;QACpB,OAAO,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC;IAC1B,CAAC;IAED,GAAG,CAAC,MAAc;QAChB,OAAO,IAAI,CAAC,EAAE,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC;IACxB,CAAC;IAED,KAAK;QACH,IAAI,CAAC,EAAE,CAAC,KAAK,EAAE,CAAC;IAClB,CAAC;IAED,UAAU;QACR,OAAO,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;IAC9B,CAAC;IAED,YAAY;QACV,IAAI,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC;IACzB,CAAC;IAED,2CAA2C;IAC3C,mBAAmB;IACnB,2CAA2C;IAE3C;;;;;;;;;OASG;IACH,OAAO,CACL,OAAkC,EAClC,UAA0B,EAAE;QAE5B,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,2CAA2C;IAC3C,kBAAkB;IAClB,2CAA2C;IAE3C,gBAAgB;QACd,OAAO,IAAI,CAAC,EAAE,CAAC;IACjB,CAAC;CACF;AArFD,sCAqFC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * Ranking Engine — Comparative Entity Ranking
3
+ */
4
+ 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 './types';
5
+ export { K_FACTOR_VALUES, isKFactorPreset, resolvePercentileLabel, resolveMovement } from './types';
6
+ export { compileRankingRuleSet } from './compiler';
7
+ export { RankingExecutor, rankingStrategy } from './strategy';
8
+ export { RankingEngine } from './engine';
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engines/ranking/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,aAAa,EACb,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,SAAS,EACT,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,wBAAwB,EACxB,cAAc,EACd,2BAA2B,EAC3B,yBAAyB,EACzB,gCAAgC,EAChC,sBAAsB,EACtB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,aAAa,EACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,eAAe,EACf,eAAe,EACf,sBAAsB,EACtB,eAAe,EAChB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAGnD,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAG9D,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ /**
3
+ * Ranking Engine — Comparative Entity Ranking
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.RankingEngine = exports.rankingStrategy = exports.RankingExecutor = exports.compileRankingRuleSet = exports.resolveMovement = exports.resolvePercentileLabel = exports.isKFactorPreset = exports.K_FACTOR_VALUES = void 0;
7
+ // Constants & utilities
8
+ var types_1 = require("./types");
9
+ Object.defineProperty(exports, "K_FACTOR_VALUES", { enumerable: true, get: function () { return types_1.K_FACTOR_VALUES; } });
10
+ Object.defineProperty(exports, "isKFactorPreset", { enumerable: true, get: function () { return types_1.isKFactorPreset; } });
11
+ Object.defineProperty(exports, "resolvePercentileLabel", { enumerable: true, get: function () { return types_1.resolvePercentileLabel; } });
12
+ Object.defineProperty(exports, "resolveMovement", { enumerable: true, get: function () { return types_1.resolveMovement; } });
13
+ // Compiler
14
+ var compiler_1 = require("./compiler");
15
+ Object.defineProperty(exports, "compileRankingRuleSet", { enumerable: true, get: function () { return compiler_1.compileRankingRuleSet; } });
16
+ // Strategy
17
+ var strategy_1 = require("./strategy");
18
+ Object.defineProperty(exports, "RankingExecutor", { enumerable: true, get: function () { return strategy_1.RankingExecutor; } });
19
+ Object.defineProperty(exports, "rankingStrategy", { enumerable: true, get: function () { return strategy_1.rankingStrategy; } });
20
+ // Engine
21
+ var engine_1 = require("./engine");
22
+ Object.defineProperty(exports, "RankingEngine", { enumerable: true, get: function () { return engine_1.RankingEngine; } });
23
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engines/ranking/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA4BH,wBAAwB;AACxB,iCAKiB;AAJf,wGAAA,eAAe,OAAA;AACf,wGAAA,eAAe,OAAA;AACf,+GAAA,sBAAsB,OAAA;AACtB,wGAAA,eAAe,OAAA;AAGjB,WAAW;AACX,uCAAmD;AAA1C,iHAAA,qBAAqB,OAAA;AAE9B,WAAW;AACX,uCAA8D;AAArD,2GAAA,eAAe,OAAA;AAAE,2GAAA,eAAe,OAAA;AAEzC,SAAS;AACT,mCAAyC;AAAhC,uGAAA,aAAa,OAAA"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * Ranking Engine Strategy
3
+ *
4
+ * Core execution logic for all ranking strategies:
5
+ * - score: Delegates to ScoringEngine, ranks by totalScore
6
+ * - elo: Processes match history, computes Elo ratings
7
+ * - head-to-head: Pairwise comparison on weighted criteria
8
+ */
9
+ import type { IWorkingMemory } from '../../core';
10
+ import type { TierDefinition } from '../scoring/types';
11
+ import type { CompiledRankingRuleSet, RankingOptions, RankingResult } from './types';
12
+ export declare class RankingExecutor {
13
+ run<T extends TierDefinition = TierDefinition>(ruleSet: CompiledRankingRuleSet<T>, wm: IWorkingMemory, options?: RankingOptions): RankingResult<T>;
14
+ private runScore;
15
+ private runElo;
16
+ private runHeadToHead;
17
+ private buildRankedEntities;
18
+ }
19
+ /** Singleton instance */
20
+ export declare const rankingStrategy: RankingExecutor;
21
+ //# sourceMappingURL=strategy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/engines/ranking/strategy.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAQ,MAAM,YAAY,CAAC;AAEvD,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,kBAAkB,CAAC;AAEzE,OAAO,KAAK,EACV,sBAAsB,EAItB,cAAc,EACd,aAAa,EAId,MAAM,SAAS,CAAC;AAGjB,qBAAa,eAAe;IAC1B,GAAG,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC3C,OAAO,EAAE,sBAAsB,CAAC,CAAC,CAAC,EAClC,EAAE,EAAE,cAAc,EAClB,OAAO,GAAE,cAAmB,GAC3B,aAAa,CAAC,CAAC,CAAC;IAiCnB,OAAO,CAAC,QAAQ;IA0ChB,OAAO,CAAC,MAAM;IAuDd,OAAO,CAAC,aAAa;IAiErB,OAAO,CAAC,mBAAmB;CAoF5B;AAqBD,yBAAyB;AACzB,eAAO,MAAM,eAAe,iBAAwB,CAAC"}