@higher.archi/boe 1.0.19 → 1.0.21

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.
@@ -1,9 +1,11 @@
1
1
  /**
2
2
  * Ensemble Engine — Multi-Model Score Fusion
3
3
  */
4
- export type { FusionStrategy, ScoreExtractor, ConfidenceExtractor, ScoringMemberDef, CustomMemberDef, EnsembleMemberDef, StackingConfig, EnsembleConfig, EnsembleRuleSet, CompiledEnsembleMember, CompiledEnsembleRuleSet, EnsembleOptions, MemberResult, EnsembleResult, EnsembleSummaryOptions } from './types';
4
+ export type { FusionStrategy, AgreementLevel, ScoreExtractor, ConfidenceExtractor, ScoringMemberDef, CustomMemberDef, EnsembleMemberDef, StackingConfig, EnsembleConfig, EnsembleRuleSet, CompiledEnsembleMember, CompiledEnsembleRuleSet, EnsembleOptions, MemberResult, EnsembleResult, EnsembleSummaryOptions } from './types';
5
5
  export { compileEnsembleRuleSet } from './compiler';
6
6
  export { EnsembleStrategy, ensembleStrategy } from './strategy';
7
7
  export { EnsembleEngine } from './engine';
8
8
  export { summarizeEnsemble } from './summary';
9
+ export { bayesianMember, fuzzyMember, monteCarloMember, expertMember, scoringMember } from './members';
10
+ export type { BayesianMemberConfig, FuzzyMemberConfig, MonteCarloMemberConfig, ExpertMemberConfig, ScoringMemberConfig } from './members';
9
11
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engines/ensemble/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGhE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/engines/ensemble/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,YAAY,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AAGpD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAGhE,OAAO,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EACL,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAC3E,MAAM,WAAW,CAAC;AACnB,YAAY,EACV,oBAAoB,EAAE,iBAAiB,EAAE,sBAAsB,EAC/D,kBAAkB,EAAE,mBAAmB,EACxC,MAAM,WAAW,CAAC"}
@@ -3,7 +3,7 @@
3
3
  * Ensemble Engine — Multi-Model Score Fusion
4
4
  */
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.summarizeEnsemble = exports.EnsembleEngine = exports.ensembleStrategy = exports.EnsembleStrategy = exports.compileEnsembleRuleSet = void 0;
6
+ exports.scoringMember = exports.expertMember = exports.monteCarloMember = exports.fuzzyMember = exports.bayesianMember = exports.summarizeEnsemble = exports.EnsembleEngine = exports.ensembleStrategy = exports.EnsembleStrategy = exports.compileEnsembleRuleSet = void 0;
7
7
  // Compiler
8
8
  var compiler_1 = require("./compiler");
9
9
  Object.defineProperty(exports, "compileEnsembleRuleSet", { enumerable: true, get: function () { return compiler_1.compileEnsembleRuleSet; } });
@@ -17,4 +17,11 @@ Object.defineProperty(exports, "EnsembleEngine", { enumerable: true, get: functi
17
17
  // Summary
18
18
  var summary_1 = require("./summary");
19
19
  Object.defineProperty(exports, "summarizeEnsemble", { enumerable: true, get: function () { return summary_1.summarizeEnsemble; } });
20
+ // Member adapter factories
21
+ var members_1 = require("./members");
22
+ Object.defineProperty(exports, "bayesianMember", { enumerable: true, get: function () { return members_1.bayesianMember; } });
23
+ Object.defineProperty(exports, "fuzzyMember", { enumerable: true, get: function () { return members_1.fuzzyMember; } });
24
+ Object.defineProperty(exports, "monteCarloMember", { enumerable: true, get: function () { return members_1.monteCarloMember; } });
25
+ Object.defineProperty(exports, "expertMember", { enumerable: true, get: function () { return members_1.expertMember; } });
26
+ Object.defineProperty(exports, "scoringMember", { enumerable: true, get: function () { return members_1.scoringMember; } });
20
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engines/ensemble/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAqBH,WAAW;AACX,uCAAoD;AAA3C,kHAAA,sBAAsB,OAAA;AAE/B,WAAW;AACX,uCAAgE;AAAvD,4GAAA,gBAAgB,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAE3C,SAAS;AACT,mCAA0C;AAAjC,wGAAA,cAAc,OAAA;AAEvB,UAAU;AACV,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/engines/ensemble/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAsBH,WAAW;AACX,uCAAoD;AAA3C,kHAAA,sBAAsB,OAAA;AAE/B,WAAW;AACX,uCAAgE;AAAvD,4GAAA,gBAAgB,OAAA;AAAE,4GAAA,gBAAgB,OAAA;AAE3C,SAAS;AACT,mCAA0C;AAAjC,wGAAA,cAAc,OAAA;AAEvB,UAAU;AACV,qCAA8C;AAArC,4GAAA,iBAAiB,OAAA;AAE1B,2BAA2B;AAC3B,qCAEmB;AADjB,yGAAA,cAAc,OAAA;AAAE,sGAAA,WAAW,OAAA;AAAE,2GAAA,gBAAgB,OAAA;AAAE,uGAAA,YAAY,OAAA;AAAE,wGAAA,aAAa,OAAA"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Ensemble Member Adapter Factories
3
+ *
4
+ * Factory functions that wrap non-scoring engines (Bayesian, Fuzzy, etc.)
5
+ * into CustomMemberDef or ScoringMemberDef for use in ensemble rulesets.
6
+ */
7
+ import type { ScoreExtractor, ConfidenceExtractor, CustomMemberDef, ScoringMemberDef } from './types';
8
+ import type { CompiledBayesianRuleSet, BayesianOptions, BayesianResult } from '../bayesian';
9
+ import type { CompiledFuzzyRuleSet, FuzzyOptions, FuzzyResult } from '../fuzzy';
10
+ import type { CompiledMonteCarloRuleSet, MonteCarloOptions, MonteCarloResult } from '../monte-carlo';
11
+ import type { CompiledExpertRuleSet, ExpertOptions, ExpertResult } from '../expert';
12
+ import type { CompiledScoringRuleSet, ScoringOptions } from '../scoring/types';
13
+ export type BayesianMemberConfig = {
14
+ id: string;
15
+ name?: string;
16
+ weight: number;
17
+ ruleset: CompiledBayesianRuleSet;
18
+ extractScore: ScoreExtractor<BayesianResult>;
19
+ extractConfidence?: ConfidenceExtractor<BayesianResult>;
20
+ options?: BayesianOptions;
21
+ };
22
+ export type FuzzyMemberConfig = {
23
+ id: string;
24
+ name?: string;
25
+ weight: number;
26
+ ruleset: CompiledFuzzyRuleSet;
27
+ extractScore: ScoreExtractor<FuzzyResult>;
28
+ extractConfidence?: ConfidenceExtractor<FuzzyResult>;
29
+ options?: FuzzyOptions;
30
+ };
31
+ export type MonteCarloMemberConfig = {
32
+ id: string;
33
+ name?: string;
34
+ weight: number;
35
+ ruleset: CompiledMonteCarloRuleSet;
36
+ extractScore: ScoreExtractor<MonteCarloResult>;
37
+ extractConfidence?: ConfidenceExtractor<MonteCarloResult>;
38
+ options?: MonteCarloOptions;
39
+ };
40
+ export type ExpertMemberConfig = {
41
+ id: string;
42
+ name?: string;
43
+ weight: number;
44
+ ruleset: CompiledExpertRuleSet;
45
+ extractScore: ScoreExtractor<ExpertResult>;
46
+ extractConfidence?: ConfidenceExtractor<ExpertResult>;
47
+ options?: ExpertOptions;
48
+ };
49
+ export type ScoringMemberConfig = {
50
+ id: string;
51
+ name?: string;
52
+ weight: number;
53
+ ruleset: CompiledScoringRuleSet;
54
+ options?: ScoringOptions;
55
+ };
56
+ /** Wrap a Bayesian engine as an ensemble member. Default confidence uses result.confidence. */
57
+ export declare function bayesianMember(config: BayesianMemberConfig): CustomMemberDef;
58
+ /** Wrap a Fuzzy engine as an ensemble member. Default confidence is 1.0 (outputs are crisp). */
59
+ export declare function fuzzyMember(config: FuzzyMemberConfig): CustomMemberDef;
60
+ /** Wrap a Monte Carlo engine as an ensemble member. Default confidence is 1.0 (domain-specific). */
61
+ export declare function monteCarloMember(config: MonteCarloMemberConfig): CustomMemberDef;
62
+ /** Wrap an Expert engine as an ensemble member. Default confidence is 1.0 (per-conclusion only). */
63
+ export declare function expertMember(config: ExpertMemberConfig): CustomMemberDef;
64
+ /** Shorthand for creating a ScoringMemberDef. Consistency helper, no wrapping needed. */
65
+ export declare function scoringMember(config: ScoringMemberConfig): ScoringMemberDef;
66
+ //# sourceMappingURL=members.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"members.d.ts","sourceRoot":"","sources":["../../../src/engines/ensemble/members.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ /**
3
+ * Ensemble Member Adapter Factories
4
+ *
5
+ * Factory functions that wrap non-scoring engines (Bayesian, Fuzzy, etc.)
6
+ * into CustomMemberDef or ScoringMemberDef for use in ensemble rulesets.
7
+ */
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.bayesianMember = bayesianMember;
10
+ exports.fuzzyMember = fuzzyMember;
11
+ exports.monteCarloMember = monteCarloMember;
12
+ exports.expertMember = expertMember;
13
+ exports.scoringMember = scoringMember;
14
+ const bayesian_1 = require("../bayesian");
15
+ const fuzzy_1 = require("../fuzzy");
16
+ const monte_carlo_1 = require("../monte-carlo");
17
+ const expert_1 = require("../expert");
18
+ // ========================================
19
+ // Factory Functions
20
+ // ========================================
21
+ /** Wrap a Bayesian engine as an ensemble member. Default confidence uses result.confidence. */
22
+ function bayesianMember(config) {
23
+ const { id, name, weight, ruleset, extractScore, extractConfidence = (r) => r.confidence, options } = config;
24
+ return {
25
+ id, name, weight,
26
+ execute: (facts) => {
27
+ const engine = new bayesian_1.BayesianEngine();
28
+ for (const f of facts)
29
+ engine.add(f);
30
+ return engine.execute(ruleset, options);
31
+ },
32
+ extractScore,
33
+ extractConfidence
34
+ };
35
+ }
36
+ /** Wrap a Fuzzy engine as an ensemble member. Default confidence is 1.0 (outputs are crisp). */
37
+ function fuzzyMember(config) {
38
+ const { id, name, weight, ruleset, extractScore, extractConfidence = () => 1.0, options } = config;
39
+ return {
40
+ id, name, weight,
41
+ execute: (facts) => {
42
+ const engine = new fuzzy_1.FuzzyEngine();
43
+ for (const f of facts)
44
+ engine.add(f);
45
+ return engine.execute(ruleset, options);
46
+ },
47
+ extractScore,
48
+ extractConfidence
49
+ };
50
+ }
51
+ /** Wrap a Monte Carlo engine as an ensemble member. Default confidence is 1.0 (domain-specific). */
52
+ function monteCarloMember(config) {
53
+ const { id, name, weight, ruleset, extractScore, extractConfidence = () => 1.0, options } = config;
54
+ return {
55
+ id, name, weight,
56
+ execute: (facts) => {
57
+ const engine = new monte_carlo_1.MonteCarloEngine();
58
+ for (const f of facts)
59
+ engine.add(f);
60
+ return engine.execute(ruleset, options);
61
+ },
62
+ extractScore,
63
+ extractConfidence
64
+ };
65
+ }
66
+ /** Wrap an Expert engine as an ensemble member. Default confidence is 1.0 (per-conclusion only). */
67
+ function expertMember(config) {
68
+ const { id, name, weight, ruleset, extractScore, extractConfidence = () => 1.0, options } = config;
69
+ return {
70
+ id, name, weight,
71
+ execute: (facts) => {
72
+ const engine = new expert_1.ExpertEngine();
73
+ for (const f of facts)
74
+ engine.add(f);
75
+ return engine.execute(ruleset, options);
76
+ },
77
+ extractScore,
78
+ extractConfidence
79
+ };
80
+ }
81
+ /** Shorthand for creating a ScoringMemberDef. Consistency helper, no wrapping needed. */
82
+ function scoringMember(config) {
83
+ const { id, name, weight, ruleset, options } = config;
84
+ return { id, name, weight, ruleset, options };
85
+ }
86
+ //# sourceMappingURL=members.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"members.js","sourceRoot":"","sources":["../../../src/engines/ensemble/members.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AAuEH,wCAgBC;AAGD,kCAgBC;AAGD,4CAgBC;AAGD,oCAgBC;AAGD,sCAGC;AA7ID,0CAA6C;AAC7C,oCAAuC;AACvC,gDAAkD;AAClD,sCAAyC;AAsDzC,2CAA2C;AAC3C,oBAAoB;AACpB,2CAA2C;AAE3C,+FAA+F;AAC/F,SAAgB,cAAc,CAAC,MAA4B;IACzD,MAAM,EACJ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EACvC,iBAAiB,GAAG,CAAC,CAAiB,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,EACvD,OAAO,EACR,GAAG,MAAM,CAAC;IACX,OAAO;QACL,EAAE,EAAE,IAAI,EAAE,MAAM;QAChB,OAAO,EAAE,CAAC,KAAkB,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,IAAI,yBAAc,EAAE,CAAC;YACpC,KAAK,MAAM,CAAC,IAAI,KAAK;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,YAAY;QACZ,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED,gGAAgG;AAChG,SAAgB,WAAW,CAAC,MAAyB;IACnD,MAAM,EACJ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EACvC,iBAAiB,GAAG,GAAG,EAAE,CAAC,GAAG,EAC7B,OAAO,EACR,GAAG,MAAM,CAAC;IACX,OAAO;QACL,EAAE,EAAE,IAAI,EAAE,MAAM;QAChB,OAAO,EAAE,CAAC,KAAkB,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,IAAI,mBAAW,EAAE,CAAC;YACjC,KAAK,MAAM,CAAC,IAAI,KAAK;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,YAAY;QACZ,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED,oGAAoG;AACpG,SAAgB,gBAAgB,CAAC,MAA8B;IAC7D,MAAM,EACJ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EACvC,iBAAiB,GAAG,GAAG,EAAE,CAAC,GAAG,EAC7B,OAAO,EACR,GAAG,MAAM,CAAC;IACX,OAAO;QACL,EAAE,EAAE,IAAI,EAAE,MAAM;QAChB,OAAO,EAAE,CAAC,KAAkB,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,IAAI,8BAAgB,EAAE,CAAC;YACtC,KAAK,MAAM,CAAC,IAAI,KAAK;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,YAAY;QACZ,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED,oGAAoG;AACpG,SAAgB,YAAY,CAAC,MAA0B;IACrD,MAAM,EACJ,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,YAAY,EACvC,iBAAiB,GAAG,GAAG,EAAE,CAAC,GAAG,EAC7B,OAAO,EACR,GAAG,MAAM,CAAC;IACX,OAAO;QACL,EAAE,EAAE,IAAI,EAAE,MAAM;QAChB,OAAO,EAAE,CAAC,KAAkB,EAAE,EAAE;YAC9B,MAAM,MAAM,GAAG,IAAI,qBAAY,EAAE,CAAC;YAClC,KAAK,MAAM,CAAC,IAAI,KAAK;gBAAE,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,MAAM,CAAC,OAAO,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QAC1C,CAAC;QACD,YAAY;QACZ,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED,yFAAyF;AACzF,SAAgB,aAAa,CAAC,MAA2B;IACvD,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,MAAM,CAAC;IACtD,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;AAChD,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/engines/ensemble/strategy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAoB,cAAc,EAAgB,MAAM,kBAAkB,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EACV,uBAAuB,EACvB,eAAe,EACf,cAAc,EAEf,MAAM,SAAS,CAAC;AAqBjB,qBAAa,gBAAgB;IAC3B,GAAG,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC3C,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,EACnC,KAAK,EAAE,SAAS,EAAE,EAClB,QAAQ,EAAE,eAAe,GACxB,cAAc,CAAC,CAAC,CAAC;CA2LrB;AAiCD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
1
+ {"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/engines/ensemble/strategy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAoB,cAAc,EAAgB,MAAM,kBAAkB,CAAC;AACvF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAE5C,OAAO,KAAK,EACV,uBAAuB,EACvB,eAAe,EACf,cAAc,EAGf,MAAM,SAAS,CAAC;AAqBjB,qBAAa,gBAAgB;IAC3B,GAAG,CAAC,CAAC,SAAS,cAAc,GAAG,cAAc,EAC3C,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,EACnC,KAAK,EAAE,SAAS,EAAE,EAClB,QAAQ,EAAE,eAAe,GACxB,cAAc,CAAC,CAAC,CAAC;CA6LrB;AA2CD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
@@ -146,9 +146,10 @@ class EnsembleStrategy {
146
146
  break;
147
147
  }
148
148
  }
149
- // 3. Compute agreement: 1 - (stddev / (range / 2)), clamped to [0, 1]
149
+ // 3. Compute agreement: CV-based (scale-independent)
150
150
  const scores = memberResults.map(m => m.score);
151
- const agreement = computeAgreement(scores, config.outputBounds);
151
+ const agreement = computeAgreement(scores);
152
+ const agreementLevel = toAgreementLevel(agreement);
152
153
  // 4. Apply output bounds
153
154
  if (config.outputBounds) {
154
155
  const bounds = resolveOutputBounds(config.outputBounds);
@@ -183,6 +184,7 @@ class EnsembleStrategy {
183
184
  strategy: config.strategy,
184
185
  memberResults,
185
186
  agreement,
187
+ agreementLevel,
186
188
  fired: allFired,
187
189
  contributions,
188
190
  executionTimeMs
@@ -193,29 +195,41 @@ exports.EnsembleStrategy = EnsembleStrategy;
193
195
  // ========================================
194
196
  // Agreement Calculation
195
197
  // ========================================
196
- function computeAgreement(scores, outputBounds) {
198
+ /**
199
+ * Compute agreement using coefficient of variation (CV).
200
+ *
201
+ * agreement = 1 - (stddev / mean), clamped to [0, 1]
202
+ *
203
+ * CV-based agreement is scale-independent — scores of [700, 710, 720]
204
+ * produce the same agreement as [7.0, 7.1, 7.2]. No dependency on
205
+ * outputBounds or observed range.
206
+ */
207
+ function computeAgreement(scores) {
197
208
  if (scores.length <= 1)
198
209
  return 1;
199
- // Compute stddev
200
210
  const mean = scores.reduce((sum, s) => sum + s, 0) / scores.length;
211
+ // All scores zero — no signal to compare
212
+ if (mean === 0)
213
+ return 1;
201
214
  const variance = scores.reduce((sum, s) => sum + (s - mean) ** 2, 0) / scores.length;
202
215
  const stddev = Math.sqrt(variance);
203
- // Determine range
204
- let range;
205
- if (outputBounds) {
206
- const bounds = resolveOutputBounds(outputBounds);
207
- range = bounds.max - bounds.min;
208
- }
209
- else {
210
- const minScore = Math.min(...scores);
211
- const maxScore = Math.max(...scores);
212
- range = maxScore - minScore;
213
- }
214
- // Avoid division by zero — all scores identical
215
- if (range === 0)
216
- return 1;
217
- const halfRange = range / 2;
218
- return Math.max(0, Math.min(1, 1 - (stddev / halfRange)));
216
+ // CV = stddev / |mean|; agreement = 1 - CV, clamped to [0, 1]
217
+ const cv = stddev / Math.abs(mean);
218
+ return Math.max(0, Math.min(1, 1 - cv));
219
+ }
220
+ /**
221
+ * Map a numeric agreement value (0-1) to a semantic level.
222
+ */
223
+ function toAgreementLevel(agreement) {
224
+ if (agreement >= 1.0)
225
+ return 'unanimous';
226
+ if (agreement >= 0.90)
227
+ return 'strong';
228
+ if (agreement >= 0.70)
229
+ return 'moderate';
230
+ if (agreement >= 0.50)
231
+ return 'weak';
232
+ return 'divided';
219
233
  }
220
234
  // Export a singleton instance for convenience
221
235
  exports.ensembleStrategy = new EnsembleStrategy();
@@ -1 +1 @@
1
- {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/engines/ensemble/strategy.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/engines/ensemble/strategy.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,8CAAkD;AAYlD,2CAA2C;AAC3C,sCAAsC;AACtC,2CAA2C;AAE3C,SAAS,mBAAmB,CAAC,MAAoB;IAC/C,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,QAAQ,MAAM,EAAE,CAAC;QACf,KAAK,YAAY,CAAC,CAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC;QAChD,KAAK,QAAQ,CAAC,CAAM,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;QACjD,KAAK,QAAQ,CAAC,CAAM,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC;QAC/C,KAAK,OAAO,CAAC,CAAO,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAC9C,KAAK,YAAY,CAAC,CAAE,OAAO,EAAE,GAAG,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;IAChD,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,WAAW;AACX,2CAA2C;AAE3C,MAAa,gBAAgB;IAC3B,GAAG,CACD,OAAmC,EACnC,KAAkB,EAClB,QAAyB;QAEzB,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACpC,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QAEpC,yBAAyB;QACzB,MAAM,aAAa,GAAmB,EAAE,CAAC;QACzC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAE9B,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC7B,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;YACtC,IAAI,KAAa,CAAC;YAClB,IAAI,UAAkB,CAAC;YAEvB,IAAI,MAAM,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC9B,MAAM,MAAM,GAAG,IAAI,sBAAa,EAAE,CAAC;gBACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;gBACD,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;gBAC9D,KAAK,GAAG,MAAM,CAAC,UAAU,CAAC;gBAC1B,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC;gBAE/B,sBAAsB;gBACtB,KAAK,MAAM,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE,CAAC;oBAClC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC;wBAC/B,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;oBACxB,CAAC;gBACH,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,MAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;gBACrC,KAAK,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,CAAC;gBACpC,UAAU,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YACjF,CAAC;YAED,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,GAAG,GAAG,CAAC;YAE7E,aAAa,CAAC,IAAI,CAAC;gBACjB,QAAQ,EAAE,MAAM,CAAC,EAAE;gBACnB,UAAU,EAAE,MAAM,CAAC,IAAI;gBACvB,KAAK;gBACL,UAAU;gBACV,MAAM,EAAE,MAAM,CAAC,MAAM;gBACrB,aAAa,EAAE,KAAK,GAAG,MAAM,CAAC,MAAM;gBACpC,eAAe,EAAE,UAAU;aAC5B,CAAC,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,IAAI,UAAkB,CAAC;QACvB,IAAI,eAAuB,CAAC;QAE5B,QAAQ,MAAM,CAAC,QAAQ,EAAE,CAAC;YACxB,KAAK,kBAAkB,CAAC,CAAC,CAAC;gBACxB,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBAC3E,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;gBACrF,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,MAAM,YAAY,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC;gBAC1E,MAAM,iBAAiB,GAAG,CAAC,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC;gBACzF,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAEhD,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;oBAClC,UAAU,GAAG,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBACzE,eAAe,GAAG,CAAC,iBAAiB,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,UAAU,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;gBACpG,CAAC;qBAAM,CAAC;oBACN,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;oBACrC,eAAe,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAC,UAAU,CAAC;gBACtD,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,IAAI,MAAM,GAAG,CAAC,CAAC;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC9C,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;wBACzD,MAAM,GAAG,CAAC,CAAC;oBACb,CAAC;gBACH,CAAC;gBACD,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;gBACzC,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC;gBACnD,MAAM;YACR,CAAC;YAED,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,IAAI,MAAM,GAAG,CAAC,CAAC;gBACf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC9C,IAAI,aAAa,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,CAAC;wBACzD,MAAM,GAAG,CAAC,CAAC;oBACb,CAAC;gBACH,CAAC;gBACD,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC;gBACzC,eAAe,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC,UAAU,CAAC;gBACnD,MAAM;YACR,CAAC;YAED,KAAK,QAAQ,CAAC,CAAC,CAAC;gBACd,IAAI,SAAS,GAAG,CAAC,CAAC;gBAClB,IAAI,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;gBACvE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC9C,MAAM,OAAO,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,UAAU,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;oBACtE,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;wBACzB,UAAU,GAAG,OAAO,CAAC;wBACrB,SAAS,GAAG,CAAC,CAAC;oBAChB,CAAC;gBACH,CAAC;gBACD,UAAU,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,KAAK,CAAC;gBAC5C,eAAe,GAAG,aAAa,CAAC,SAAS,CAAC,CAAC,UAAU,CAAC;gBACtD,MAAM;YACR,CAAC;YAED,KAAK,UAAU,CAAC,CAAC,CAAC;gBAChB,MAAM,cAAc,GAAG,MAAM,CAAC,QAAS,CAAC;gBACxC,MAAM,WAAW,GAAG,IAAI,sBAAa,EAAE,CAAC;gBAExC,6BAA6B;gBAC7B,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;oBAC/B,WAAW,CAAC,GAAG,CAAC;wBACd,IAAI,EAAE,qBAAqB;wBAC3B,IAAI,EAAE;4BACJ,QAAQ,EAAE,EAAE,CAAC,QAAQ;4BACrB,KAAK,EAAE,EAAE,CAAC,KAAK;4BACf,UAAU,EAAE,EAAE,CAAC,UAAU;yBAC1B;qBACF,CAAC,CAAC;gBACL,CAAC;gBAED,MAAM,WAAW,GAAG,WAAW,CAAC,OAAO,CAAC,cAAc,CAAC,OAAO,EAAE,cAAc,CAAC,OAAO,CAAC,CAAC;gBACxF,UAAU,GAAG,WAAW,CAAC,UAAU,CAAC;gBACpC,eAAe,GAAG,WAAW,CAAC,UAAU,CAAC;gBACzC,MAAM;YACR,CAAC;QACH,CAAC;QAED,qDAAqD;QACrD,MAAM,MAAM,GAAG,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC/C,MAAM,SAAS,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAEnD,yBAAyB;QACzB,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;YACxB,MAAM,MAAM,GAAG,mBAAmB,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YACxD,UAAU,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,gBAAgB;QAChB,IAAI,IAAqC,CAAC;QAC1C,IAAI,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5C,MAAM,gBAAgB,GAAG,CAAC,CAAuB,EAAU,EAAE,CAC3D,CAAC,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC;YAEnD,MAAM,WAAW,GAAG,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,IAAI,CACxC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,SAAS,CAAC,CACxE,CAAC;YAEF,KAAK,MAAM,OAAO,IAAI,WAAW,EAAE,CAAC;gBAClC,MAAM,SAAS,GAAG,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;gBACtD,IAAI,UAAU,IAAI,SAAS,EAAE,CAAC;oBAC5B,IAAI,GAAG;wBACL,GAAG,OAAO;wBACV,SAAS;qBACa,CAAC;oBACzB,MAAM;gBACR,CAAC;YACH,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,MAAM,aAAa,GAA2B,EAAE,CAAC;QACjD,KAAK,MAAM,EAAE,IAAI,aAAa,EAAE,CAAC;YAC/B,aAAa,CAAC,EAAE,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC;QACxC,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,UAAU,EAAE,UAAU;YACtB,UAAU,EAAE,eAAe;YAC3B,IAAI;YACJ,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,aAAa;YACb,SAAS;YACT,cAAc;YACd,KAAK,EAAE,QAAQ;YACf,aAAa;YACb,eAAe;SAChB,CAAC;IACJ,CAAC;CACF;AAlMD,4CAkMC;AAED,2CAA2C;AAC3C,wBAAwB;AACxB,2CAA2C;AAE3C;;;;;;;;GAQG;AACH,SAAS,gBAAgB,CAAC,MAAgB;IACxC,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,CAAC,CAAC;IAEjC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IAEnE,yCAAyC;IACzC,IAAI,IAAI,KAAK,CAAC;QAAE,OAAO,CAAC,CAAC;IAEzB,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;IACrF,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IAEnC,8DAA8D;IAC9D,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC;AAC1C,CAAC;AAED;;GAEG;AACH,SAAS,gBAAgB,CAAC,SAAiB;IACzC,IAAI,SAAS,IAAI,GAAG;QAAE,OAAO,WAAW,CAAC;IACzC,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,QAAQ,CAAC;IACvC,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,UAAU,CAAC;IACzC,IAAI,SAAS,IAAI,IAAI;QAAE,OAAO,MAAM,CAAC;IACrC,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,8CAA8C;AACjC,QAAA,gBAAgB,GAAG,IAAI,gBAAgB,EAAE,CAAC"}
@@ -27,7 +27,7 @@ function summarizeEnsemble(result, options) {
27
27
  const tierLabel = result.tier ? ` (${result.tier.name ?? result.tier.id})` : '';
28
28
  lines.push(`Score: ${result.totalScore}${tierLabel}`);
29
29
  lines.push(`Confidence: ${result.confidence.toFixed(2)}`);
30
- lines.push(`Agreement: ${result.agreement.toFixed(2)}`);
30
+ lines.push(`Agreement: ${result.agreement.toFixed(2)} (${result.agreementLevel})`);
31
31
  // Members
32
32
  const members = maxMembers != null
33
33
  ? result.memberResults.slice(0, maxMembers)
@@ -1 +1 @@
1
- {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/engines/ensemble/summary.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAiBH,8CAoCC;AAjDD;;;;;;;;;;;;GAYG;AACH,SAAgB,iBAAiB,CAC/B,MAAsB,EACtB,OAAgC;IAEhC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS;IACT,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,UAAU,GAAG,SAAS,EAAE,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAEzD,UAAU;IACV,MAAM,OAAO,GAAG,UAAU,IAAI,IAAI;QAChC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;QAC3C,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;IAEzB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC;YACzC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3G,CAAC;QAED,IAAI,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;YACnE,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,aAAa,SAAS,OAAO,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../../src/engines/ensemble/summary.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAiBH,8CAoCC;AAjDD;;;;;;;;;;;;GAYG;AACH,SAAgB,iBAAiB,CAC/B,MAAsB,EACtB,OAAgC;IAEhC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,EAAE,CAAC;IACrC,MAAM,KAAK,GAAa,EAAE,CAAC;IAE3B,SAAS;IACT,KAAK,CAAC,IAAI,CAAC,aAAa,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;IAE3C,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;IAChF,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,UAAU,GAAG,SAAS,EAAE,CAAC,CAAC;IAC3D,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC1D,KAAK,CAAC,IAAI,CAAC,eAAe,MAAM,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,MAAM,CAAC,cAAc,GAAG,CAAC,CAAC;IAEpF,UAAU;IACV,MAAM,OAAO,GAAG,UAAU,IAAI,IAAI;QAChC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC;QAC3C,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;IAEzB,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACvB,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QACf,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvB,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;YACxB,MAAM,KAAK,GAAG,CAAC,CAAC,UAAU,IAAI,CAAC,CAAC,QAAQ,CAAC;YACzC,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YACtC,KAAK,CAAC,IAAI,CAAC,MAAM,SAAS,KAAK,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,KAAK,iBAAiB,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAC3G,CAAC;QAED,IAAI,UAAU,IAAI,IAAI,IAAI,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,UAAU,EAAE,CAAC;YACnE,MAAM,SAAS,GAAG,MAAM,CAAC,aAAa,CAAC,MAAM,GAAG,UAAU,CAAC;YAC3D,KAAK,CAAC,IAAI,CAAC,aAAa,SAAS,OAAO,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC"}
@@ -70,6 +70,8 @@ export type MemberResult = {
70
70
  weightedScore: number;
71
71
  executionTimeMs: number;
72
72
  };
73
+ /** Semantic agreement levels based on coefficient of variation */
74
+ export type AgreementLevel = 'unanimous' | 'strong' | 'moderate' | 'weak' | 'divided';
73
75
  /** Ensemble result — mirrors ScoringResult shape for downstream compatibility */
74
76
  export type EnsembleResult<T extends TierDefinition = TierDefinition> = {
75
77
  totalScore: number;
@@ -78,6 +80,7 @@ export type EnsembleResult<T extends TierDefinition = TierDefinition> = {
78
80
  strategy: FusionStrategy;
79
81
  memberResults: MemberResult[];
80
82
  agreement: number;
83
+ agreementLevel: AgreementLevel;
81
84
  fired: string[];
82
85
  contributions: Record<string, number>;
83
86
  executionTimeMs: number;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/engines/ensemble/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/engines/ensemble/types.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -53,8 +53,8 @@ export { ExpertEngine, ExpertStrategy, compileExpertRuleSet, expertStrategy, com
53
53
  export type { ExpertRule, ExpertRuleSet, ExpertConfig, ExplainBlock, CompiledExpertRuleSet, CompiledExpertRule, CompiledExplainBlock, CompiledTemplate, ExpertOptions, ExpertResult, ExpertQueryResult, InferenceStep, FactIndex, ResultIndex, InterpolationContext } from './engines/expert';
54
54
  export { PricingStrategy, compilePricingRuleSet, compilePricingRule, pricingStrategy, pricingEngine, calculateFlat, calculateGraduated, calculateVolume, formatCurrency, formatNumber, formatPercent, round, calculateDiscount, applyMinMax, CURRENCIES, getCurrencyInfo } from './engines/pricing';
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
- export { EnsembleStrategy, compileEnsembleRuleSet, ensembleStrategy, summarizeEnsemble } from './engines/ensemble';
57
- export type { FusionStrategy, ScoreExtractor, ConfidenceExtractor, ScoringMemberDef, CustomMemberDef, EnsembleMemberDef, StackingConfig, EnsembleConfig, EnsembleRuleSet, CompiledEnsembleMember, CompiledEnsembleRuleSet, EnsembleOptions, MemberResult, EnsembleResult, EnsembleSummaryOptions } from './engines/ensemble';
56
+ export { EnsembleStrategy, compileEnsembleRuleSet, ensembleStrategy, summarizeEnsemble, bayesianMember, fuzzyMember, monteCarloMember, expertMember, scoringMember } from './engines/ensemble';
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
58
  export { soundex, nysiis, caverphone2, cosineSimilarity } from './functions';
59
59
  export { BOEError, CompilationError, RuntimeError } from './core/errors';
60
60
  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":"AAAA;;;;;;;;;;;;;;GAcG;AAOH,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAC9C,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAMpD,cAAc,QAAQ,CAAC;AAOvB,OAAO,EACL,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,mBAAmB,EACnB,cAAc,EACd,aAAa,EACb,cAAc,EACd,aAAa,EACd,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,eAAe,EACf,cAAc,EACd,SAAS,EACT,WAAW,EACZ,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,WAAW,EACX,cAAc,EACd,aAAa,EACb,sBAAsB,EACtB,cAAc,EACd,aAAa,EACb,aAAa,EACb,qBAAqB,EACrB,aAAa,EACb,YAAY,EACZ,eAAe,EACf,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,eAAe,EACf,eAAe,EACf,mBAAmB,EACnB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,0BAA0B,EAC1B,YAAY,EACZ,cAAc,EACd,SAAS,EACT,oBAAoB,EACpB,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,aAAa,EACb,oBAAoB,EACpB,eAAe,EACf,kBAAkB,EACnB,MAAM,iBAAiB,CAAC;AACzB,YAAY,EACV,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,aAAa,EACb,SAAS,EACT,oBAAoB,EACpB,qBAAqB,EACrB,eAAe,EACf,eAAe,EAChB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACrB,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,YAAY,EACZ,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,oBAAoB,EACpB,eAAe,EACf,cAAc,EACd,UAAU,EACV,UAAU,EACV,YAAY,EACZ,eAAe,EACf,aAAa,EACb,kBAAkB,EAClB,aAAa,EACd,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,uBAAuB,CAAC;AAC/B,YAAY,EACV,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,EACjB,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,oBAAoB,EACpB,mBAAmB,EACnB,6BAA6B,EAC7B,oBAAoB,EACrB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,sBAAsB,EACtB,kBAAkB,EAClB,eAAe,EACf,eAAe,EACf,8BAA8B,EAC9B,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACpB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,kBAAkB,EACnB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,kBAAkB,EAClB,UAAU,EACV,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACf,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EACV,gBAAgB,EAChB,WAAW,EACX,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,mBAAmB,EACnB,sBAAsB,EACtB,iBAAiB,EACjB,eAAe,EACf,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,gBAAgB,EAChB,wBAAwB,EACzB,MAAM,sBAAsB,CAAC;AAC9B,YAAY,EACV,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,yBAAyB,EACzB,iBAAiB,EACjB,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EACL,YAAY,EACZ,cAAc,EACd,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,WAAW,EACX,gBAAgB,EAChB,kBAAkB,EACnB,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EACV,UAAU,EACV,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,EACpB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,iBAAiB,EACjB,aAAa,EACb,SAAS,EACT,WAAW,EACX,oBAAoB,EACrB,MAAM,kBAAkB,CAAC;AAO1B,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,aAAa,EACb,kBAAkB,EAClB,eAAe,EACf,cAAc,EACd,YAAY,EACZ,aAAa,EACb,KAAK,EACL,iBAAiB,EACjB,WAAW,EAEX,UAAU,EACV,eAAe,EAChB,MAAM,mBAAmB,CAAC;AAC3B,YAAY,EAEV,YAAY,EACZ,YAAY,EAEZ,WAAW,EACX,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,WAAW,EACX,YAAY,EACZ,cAAc,EACd,WAAW,EACX,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,KAAK,EACL,iBAAiB,EACjB,cAAc,EACd,UAAU,EACV,kBAAkB,EAClB,iBAAiB,EACjB,iBAAiB,EACjB,MAAM,EACN,kBAAkB,EAClB,mBAAmB,EACnB,eAAe,EACf,WAAW,EAEX,qBAAqB,EACrB,sBAAsB,EACtB,mBAAmB,EACnB,wBAAwB,EACxB,mBAAmB,EACnB,kBAAkB,EAClB,cAAc,EAEd,cAAc,EACd,aAAa,EACb,wBAAwB,EACxB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EAAE,WAAW,EAAE,gBAAgB,EAAE,YAAY,EAAE,aAAa,EAC3E,MAAM,oBAAoB,CAAC;AAC5B,YAAY,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,eAAe,EACf,sBAAsB,EACtB,uBAAuB,EACvB,eAAe,EACf,YAAY,EACZ,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EAAE,iBAAiB,EAAE,sBAAsB,EAC/D,kBAAkB,EAAE,mBAAmB,EACxC,MAAM,oBAAoB,CAAC;AAM5B,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG7E,OAAO,EAAE,QAAQ,EAAE,gBAAgB,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACzE,YAAY,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAGlD,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,yBAAyB,CAAC;AACjC,YAAY,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,SAAS,EACV,MAAM,yBAAyB,CAAC;AAMjC,cAAc,UAAU,CAAC;AAMzB,cAAc,aAAa,CAAC;AAM5B,cAAc,WAAW,CAAC;AAM1B,cAAc,aAAa,CAAC"}
package/dist/index.js CHANGED
@@ -30,7 +30,7 @@ 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.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.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;
34
34
  // ========================================
35
35
  // Engines
36
36
  // ========================================
@@ -170,6 +170,11 @@ Object.defineProperty(exports, "EnsembleStrategy", { enumerable: true, get: func
170
170
  Object.defineProperty(exports, "compileEnsembleRuleSet", { enumerable: true, get: function () { return ensemble_2.compileEnsembleRuleSet; } });
171
171
  Object.defineProperty(exports, "ensembleStrategy", { enumerable: true, get: function () { return ensemble_2.ensembleStrategy; } });
172
172
  Object.defineProperty(exports, "summarizeEnsemble", { enumerable: true, get: function () { return ensemble_2.summarizeEnsemble; } });
173
+ Object.defineProperty(exports, "bayesianMember", { enumerable: true, get: function () { return ensemble_2.bayesianMember; } });
174
+ Object.defineProperty(exports, "fuzzyMember", { enumerable: true, get: function () { return ensemble_2.fuzzyMember; } });
175
+ Object.defineProperty(exports, "monteCarloMember", { enumerable: true, get: function () { return ensemble_2.monteCarloMember; } });
176
+ Object.defineProperty(exports, "expertMember", { enumerable: true, get: function () { return ensemble_2.expertMember; } });
177
+ Object.defineProperty(exports, "scoringMember", { enumerable: true, get: function () { return ensemble_2.scoringMember; } });
173
178
  // ========================================
174
179
  // Utility Functions (from old modules, re-exported for convenience)
175
180
  // ========================================
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.19",
3
+ "version": "1.0.21",
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",
@@ -5,6 +5,7 @@
5
5
  // Types
6
6
  export type {
7
7
  FusionStrategy,
8
+ AgreementLevel,
8
9
  ScoreExtractor,
9
10
  ConfidenceExtractor,
10
11
  ScoringMemberDef,
@@ -32,3 +33,12 @@ export { EnsembleEngine } from './engine';
32
33
 
33
34
  // Summary
34
35
  export { summarizeEnsemble } from './summary';
36
+
37
+ // Member adapter factories
38
+ export {
39
+ bayesianMember, fuzzyMember, monteCarloMember, expertMember, scoringMember
40
+ } from './members';
41
+ export type {
42
+ BayesianMemberConfig, FuzzyMemberConfig, MonteCarloMemberConfig,
43
+ ExpertMemberConfig, ScoringMemberConfig
44
+ } from './members';
@@ -0,0 +1,156 @@
1
+ /**
2
+ * Ensemble Member Adapter Factories
3
+ *
4
+ * Factory functions that wrap non-scoring engines (Bayesian, Fuzzy, etc.)
5
+ * into CustomMemberDef or ScoringMemberDef for use in ensemble rulesets.
6
+ */
7
+
8
+ import type { FactInput } from '../../core';
9
+ import type { ScoreExtractor, ConfidenceExtractor, CustomMemberDef, ScoringMemberDef } from './types';
10
+ import type { CompiledBayesianRuleSet, BayesianOptions, BayesianResult } from '../bayesian';
11
+ import type { CompiledFuzzyRuleSet, FuzzyOptions, FuzzyResult } from '../fuzzy';
12
+ import type { CompiledMonteCarloRuleSet, MonteCarloOptions, MonteCarloResult } from '../monte-carlo';
13
+ import type { CompiledExpertRuleSet, ExpertOptions, ExpertResult } from '../expert';
14
+ import type { CompiledScoringRuleSet, ScoringOptions } from '../scoring/types';
15
+ import { BayesianEngine } from '../bayesian';
16
+ import { FuzzyEngine } from '../fuzzy';
17
+ import { MonteCarloEngine } from '../monte-carlo';
18
+ import { ExpertEngine } from '../expert';
19
+
20
+ // ========================================
21
+ // Config Types
22
+ // ========================================
23
+
24
+ export type BayesianMemberConfig = {
25
+ id: string;
26
+ name?: string;
27
+ weight: number;
28
+ ruleset: CompiledBayesianRuleSet;
29
+ extractScore: ScoreExtractor<BayesianResult>;
30
+ extractConfidence?: ConfidenceExtractor<BayesianResult>;
31
+ options?: BayesianOptions;
32
+ };
33
+
34
+ export type FuzzyMemberConfig = {
35
+ id: string;
36
+ name?: string;
37
+ weight: number;
38
+ ruleset: CompiledFuzzyRuleSet;
39
+ extractScore: ScoreExtractor<FuzzyResult>;
40
+ extractConfidence?: ConfidenceExtractor<FuzzyResult>;
41
+ options?: FuzzyOptions;
42
+ };
43
+
44
+ export type MonteCarloMemberConfig = {
45
+ id: string;
46
+ name?: string;
47
+ weight: number;
48
+ ruleset: CompiledMonteCarloRuleSet;
49
+ extractScore: ScoreExtractor<MonteCarloResult>;
50
+ extractConfidence?: ConfidenceExtractor<MonteCarloResult>;
51
+ options?: MonteCarloOptions;
52
+ };
53
+
54
+ export type ExpertMemberConfig = {
55
+ id: string;
56
+ name?: string;
57
+ weight: number;
58
+ ruleset: CompiledExpertRuleSet;
59
+ extractScore: ScoreExtractor<ExpertResult>;
60
+ extractConfidence?: ConfidenceExtractor<ExpertResult>;
61
+ options?: ExpertOptions;
62
+ };
63
+
64
+ export type ScoringMemberConfig = {
65
+ id: string;
66
+ name?: string;
67
+ weight: number;
68
+ ruleset: CompiledScoringRuleSet;
69
+ options?: ScoringOptions;
70
+ };
71
+
72
+ // ========================================
73
+ // Factory Functions
74
+ // ========================================
75
+
76
+ /** Wrap a Bayesian engine as an ensemble member. Default confidence uses result.confidence. */
77
+ export function bayesianMember(config: BayesianMemberConfig): CustomMemberDef {
78
+ const {
79
+ id, name, weight, ruleset, extractScore,
80
+ extractConfidence = (r: BayesianResult) => r.confidence,
81
+ options
82
+ } = config;
83
+ return {
84
+ id, name, weight,
85
+ execute: (facts: FactInput[]) => {
86
+ const engine = new BayesianEngine();
87
+ for (const f of facts) engine.add(f);
88
+ return engine.execute(ruleset, options);
89
+ },
90
+ extractScore,
91
+ extractConfidence
92
+ };
93
+ }
94
+
95
+ /** Wrap a Fuzzy engine as an ensemble member. Default confidence is 1.0 (outputs are crisp). */
96
+ export function fuzzyMember(config: FuzzyMemberConfig): CustomMemberDef {
97
+ const {
98
+ id, name, weight, ruleset, extractScore,
99
+ extractConfidence = () => 1.0,
100
+ options
101
+ } = config;
102
+ return {
103
+ id, name, weight,
104
+ execute: (facts: FactInput[]) => {
105
+ const engine = new FuzzyEngine();
106
+ for (const f of facts) engine.add(f);
107
+ return engine.execute(ruleset, options);
108
+ },
109
+ extractScore,
110
+ extractConfidence
111
+ };
112
+ }
113
+
114
+ /** Wrap a Monte Carlo engine as an ensemble member. Default confidence is 1.0 (domain-specific). */
115
+ export function monteCarloMember(config: MonteCarloMemberConfig): CustomMemberDef {
116
+ const {
117
+ id, name, weight, ruleset, extractScore,
118
+ extractConfidence = () => 1.0,
119
+ options
120
+ } = config;
121
+ return {
122
+ id, name, weight,
123
+ execute: (facts: FactInput[]) => {
124
+ const engine = new MonteCarloEngine();
125
+ for (const f of facts) engine.add(f);
126
+ return engine.execute(ruleset, options);
127
+ },
128
+ extractScore,
129
+ extractConfidence
130
+ };
131
+ }
132
+
133
+ /** Wrap an Expert engine as an ensemble member. Default confidence is 1.0 (per-conclusion only). */
134
+ export function expertMember(config: ExpertMemberConfig): CustomMemberDef {
135
+ const {
136
+ id, name, weight, ruleset, extractScore,
137
+ extractConfidence = () => 1.0,
138
+ options
139
+ } = config;
140
+ return {
141
+ id, name, weight,
142
+ execute: (facts: FactInput[]) => {
143
+ const engine = new ExpertEngine();
144
+ for (const f of facts) engine.add(f);
145
+ return engine.execute(ruleset, options);
146
+ },
147
+ extractScore,
148
+ extractConfidence
149
+ };
150
+ }
151
+
152
+ /** Shorthand for creating a ScoringMemberDef. Consistency helper, no wrapping needed. */
153
+ export function scoringMember(config: ScoringMemberConfig): ScoringMemberDef {
154
+ const { id, name, weight, ruleset, options } = config;
155
+ return { id, name, weight, ruleset, options };
156
+ }
@@ -13,7 +13,8 @@ import type {
13
13
  CompiledEnsembleRuleSet,
14
14
  EnsembleOptions,
15
15
  EnsembleResult,
16
- MemberResult
16
+ MemberResult,
17
+ AgreementLevel
17
18
  } from './types';
18
19
 
19
20
  // ========================================
@@ -175,9 +176,10 @@ export class EnsembleStrategy {
175
176
  }
176
177
  }
177
178
 
178
- // 3. Compute agreement: 1 - (stddev / (range / 2)), clamped to [0, 1]
179
+ // 3. Compute agreement: CV-based (scale-independent)
179
180
  const scores = memberResults.map(m => m.score);
180
- const agreement = computeAgreement(scores, config.outputBounds);
181
+ const agreement = computeAgreement(scores);
182
+ const agreementLevel = toAgreementLevel(agreement);
181
183
 
182
184
  // 4. Apply output bounds
183
185
  if (config.outputBounds) {
@@ -222,6 +224,7 @@ export class EnsembleStrategy {
222
224
  strategy: config.strategy,
223
225
  memberResults,
224
226
  agreement,
227
+ agreementLevel,
225
228
  fired: allFired,
226
229
  contributions,
227
230
  executionTimeMs
@@ -233,30 +236,40 @@ export class EnsembleStrategy {
233
236
  // Agreement Calculation
234
237
  // ========================================
235
238
 
236
- function computeAgreement(scores: number[], outputBounds?: OutputBounds): number {
239
+ /**
240
+ * Compute agreement using coefficient of variation (CV).
241
+ *
242
+ * agreement = 1 - (stddev / mean), clamped to [0, 1]
243
+ *
244
+ * CV-based agreement is scale-independent — scores of [700, 710, 720]
245
+ * produce the same agreement as [7.0, 7.1, 7.2]. No dependency on
246
+ * outputBounds or observed range.
247
+ */
248
+ function computeAgreement(scores: number[]): number {
237
249
  if (scores.length <= 1) return 1;
238
250
 
239
- // Compute stddev
240
251
  const mean = scores.reduce((sum, s) => sum + s, 0) / scores.length;
252
+
253
+ // All scores zero — no signal to compare
254
+ if (mean === 0) return 1;
255
+
241
256
  const variance = scores.reduce((sum, s) => sum + (s - mean) ** 2, 0) / scores.length;
242
257
  const stddev = Math.sqrt(variance);
243
258
 
244
- // Determine range
245
- let range: number;
246
- if (outputBounds) {
247
- const bounds = resolveOutputBounds(outputBounds);
248
- range = bounds.max - bounds.min;
249
- } else {
250
- const minScore = Math.min(...scores);
251
- const maxScore = Math.max(...scores);
252
- range = maxScore - minScore;
253
- }
254
-
255
- // Avoid division by zero — all scores identical
256
- if (range === 0) return 1;
259
+ // CV = stddev / |mean|; agreement = 1 - CV, clamped to [0, 1]
260
+ const cv = stddev / Math.abs(mean);
261
+ return Math.max(0, Math.min(1, 1 - cv));
262
+ }
257
263
 
258
- const halfRange = range / 2;
259
- return Math.max(0, Math.min(1, 1 - (stddev / halfRange)));
264
+ /**
265
+ * Map a numeric agreement value (0-1) to a semantic level.
266
+ */
267
+ function toAgreementLevel(agreement: number): AgreementLevel {
268
+ if (agreement >= 1.0) return 'unanimous';
269
+ if (agreement >= 0.90) return 'strong';
270
+ if (agreement >= 0.70) return 'moderate';
271
+ if (agreement >= 0.50) return 'weak';
272
+ return 'divided';
260
273
  }
261
274
 
262
275
  // Export a singleton instance for convenience
@@ -32,7 +32,7 @@ export function summarizeEnsemble(
32
32
  const tierLabel = result.tier ? ` (${result.tier.name ?? result.tier.id})` : '';
33
33
  lines.push(`Score: ${result.totalScore}${tierLabel}`);
34
34
  lines.push(`Confidence: ${result.confidence.toFixed(2)}`);
35
- lines.push(`Agreement: ${result.agreement.toFixed(2)}`);
35
+ lines.push(`Agreement: ${result.agreement.toFixed(2)} (${result.agreementLevel})`);
36
36
 
37
37
  // Members
38
38
  const members = maxMembers != null
@@ -118,6 +118,18 @@ export type MemberResult = {
118
118
  executionTimeMs: number;
119
119
  };
120
120
 
121
+ // ========================================
122
+ // Agreement Types
123
+ // ========================================
124
+
125
+ /** Semantic agreement levels based on coefficient of variation */
126
+ export type AgreementLevel =
127
+ | 'unanimous' // agreement = 1.0 (all identical)
128
+ | 'strong' // agreement >= 0.90
129
+ | 'moderate' // agreement >= 0.70
130
+ | 'weak' // agreement >= 0.50
131
+ | 'divided'; // agreement < 0.50
132
+
121
133
  /** Ensemble result — mirrors ScoringResult shape for downstream compatibility */
122
134
  export type EnsembleResult<T extends TierDefinition = TierDefinition> = {
123
135
  totalScore: number;
@@ -125,7 +137,8 @@ export type EnsembleResult<T extends TierDefinition = TierDefinition> = {
125
137
  tier?: ScoringTierMatch<T>;
126
138
  strategy: FusionStrategy;
127
139
  memberResults: MemberResult[];
128
- agreement: number; // 0-1 consensus metric
140
+ agreement: number; // 0-1 consensus metric (CV-based, scale-independent)
141
+ agreementLevel: AgreementLevel; // semantic label for agreement
129
142
  fired: string[]; // union of all scoring member fired arrays
130
143
  contributions: Record<string, number>; // memberId → raw score
131
144
  executionTimeMs: number;
package/src/index.ts CHANGED
@@ -385,10 +385,12 @@ export {
385
385
  EnsembleStrategy,
386
386
  compileEnsembleRuleSet,
387
387
  ensembleStrategy,
388
- summarizeEnsemble
388
+ summarizeEnsemble,
389
+ bayesianMember, fuzzyMember, monteCarloMember, expertMember, scoringMember
389
390
  } from './engines/ensemble';
390
391
  export type {
391
392
  FusionStrategy,
393
+ AgreementLevel,
392
394
  ScoreExtractor,
393
395
  ConfidenceExtractor,
394
396
  ScoringMemberDef,
@@ -402,7 +404,9 @@ export type {
402
404
  EnsembleOptions,
403
405
  MemberResult,
404
406
  EnsembleResult,
405
- EnsembleSummaryOptions
407
+ EnsembleSummaryOptions,
408
+ BayesianMemberConfig, FuzzyMemberConfig, MonteCarloMemberConfig,
409
+ ExpertMemberConfig, ScoringMemberConfig
406
410
  } from './engines/ensemble';
407
411
 
408
412
  // ========================================