@higher.archi/boe 1.0.6 → 1.0.8
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.
- package/dist/core/evaluation/decay.d.ts +60 -0
- package/dist/core/evaluation/decay.d.ts.map +1 -0
- package/dist/core/evaluation/decay.js +111 -0
- package/dist/core/evaluation/decay.js.map +1 -0
- package/dist/core/evaluation/index.d.ts +2 -0
- package/dist/core/evaluation/index.d.ts.map +1 -1
- package/dist/core/evaluation/index.js +5 -1
- package/dist/core/evaluation/index.js.map +1 -1
- package/dist/engines/bayesian/compiler.d.ts.map +1 -1
- package/dist/engines/bayesian/compiler.js +14 -2
- package/dist/engines/bayesian/compiler.js.map +1 -1
- package/dist/engines/bayesian/strategy.d.ts.map +1 -1
- package/dist/engines/bayesian/strategy.js +41 -4
- package/dist/engines/bayesian/strategy.js.map +1 -1
- package/dist/engines/bayesian/types.d.ts +16 -0
- package/dist/engines/bayesian/types.d.ts.map +1 -1
- package/dist/engines/bayesian/types.js.map +1 -1
- package/dist/engines/defeasible/compiler.d.ts.map +1 -1
- package/dist/engines/defeasible/compiler.js +16 -2
- package/dist/engines/defeasible/compiler.js.map +1 -1
- package/dist/engines/defeasible/strategy.d.ts.map +1 -1
- package/dist/engines/defeasible/strategy.js +47 -2
- package/dist/engines/defeasible/strategy.js.map +1 -1
- package/dist/engines/defeasible/types.d.ts +29 -1
- package/dist/engines/defeasible/types.d.ts.map +1 -1
- package/dist/engines/defeasible/types.js.map +1 -1
- package/dist/engines/scoring/compiler.d.ts.map +1 -1
- package/dist/engines/scoring/compiler.js +17 -4
- package/dist/engines/scoring/compiler.js.map +1 -1
- package/dist/engines/scoring/strategy.d.ts.map +1 -1
- package/dist/engines/scoring/strategy.js +82 -2
- package/dist/engines/scoring/strategy.js.map +1 -1
- package/dist/engines/scoring/types.d.ts +17 -0
- package/dist/engines/scoring/types.d.ts.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
- package/src/core/evaluation/decay.ts +165 -0
- package/src/core/evaluation/index.ts +13 -0
- package/src/engines/bayesian/compiler.ts +15 -2
- package/src/engines/bayesian/strategy.ts +54 -4
- package/src/engines/bayesian/types.ts +17 -0
- package/src/engines/defeasible/compiler.ts +17 -2
- package/src/engines/defeasible/strategy.ts +62 -2
- package/src/engines/defeasible/types.ts +33 -0
- package/src/engines/scoring/compiler.ts +18 -4
- package/src/engines/scoring/strategy.ts +101 -3
- package/src/engines/scoring/types.ts +18 -0
- package/src/index.ts +12 -0
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Temporal Decay Utilities
|
|
3
|
+
*
|
|
4
|
+
* Provides continuous decay multipliers (0→1) that degrade a rule's
|
|
5
|
+
* contribution based on how old its underlying data is.
|
|
6
|
+
*
|
|
7
|
+
* Complementary to temporal validity (binary gate) — validity runs first,
|
|
8
|
+
* decay modifies strength continuously.
|
|
9
|
+
*/
|
|
10
|
+
import { BindingContext } from '../types';
|
|
11
|
+
/**
|
|
12
|
+
* Decay curve shape
|
|
13
|
+
* - exponential: e^(-ln(2)/halfLife * age), smooth asymptotic decay
|
|
14
|
+
* - linear: 1 - age/maxAge, straight-line to zero
|
|
15
|
+
* - step: binary cutoff at threshold age
|
|
16
|
+
*/
|
|
17
|
+
export type DecayCurve = 'exponential' | 'linear' | 'step';
|
|
18
|
+
/**
|
|
19
|
+
* Time unit for decay calculations
|
|
20
|
+
*/
|
|
21
|
+
export type DecayTimeUnit = 'hours' | 'days' | 'weeks' | 'months';
|
|
22
|
+
/**
|
|
23
|
+
* Configuration for temporal decay
|
|
24
|
+
*/
|
|
25
|
+
export type DecayConfig = {
|
|
26
|
+
curve: DecayCurve;
|
|
27
|
+
timeUnit: DecayTimeUnit;
|
|
28
|
+
halfLife?: number;
|
|
29
|
+
maxAge?: number;
|
|
30
|
+
threshold?: number;
|
|
31
|
+
floor?: number;
|
|
32
|
+
};
|
|
33
|
+
/**
|
|
34
|
+
* Decay calculation result with audit trail
|
|
35
|
+
*/
|
|
36
|
+
export type DecayInfo = {
|
|
37
|
+
multiplier: number;
|
|
38
|
+
ageInUnits: number;
|
|
39
|
+
curve: DecayCurve;
|
|
40
|
+
timestamp: string;
|
|
41
|
+
fullyDecayed: boolean;
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Calculate a decay multiplier based on age and configuration
|
|
45
|
+
*
|
|
46
|
+
* @param dataTimestamp - When the data was collected/created
|
|
47
|
+
* @param now - Current time reference point
|
|
48
|
+
* @param config - Decay configuration
|
|
49
|
+
* @returns DecayInfo with multiplier and audit data
|
|
50
|
+
*/
|
|
51
|
+
export declare function calculateDecayMultiplier(dataTimestamp: Date, now: Date, config: DecayConfig): DecayInfo;
|
|
52
|
+
/**
|
|
53
|
+
* Resolve a decay timestamp from a $-prefixed path in the binding context
|
|
54
|
+
*
|
|
55
|
+
* @param ref - A $-prefixed path like '$inspection.date'
|
|
56
|
+
* @param context - The current binding context
|
|
57
|
+
* @returns Resolved Date, or null if path is missing/invalid
|
|
58
|
+
*/
|
|
59
|
+
export declare function resolveDecayTimestamp(ref: string, context: BindingContext): Date | null;
|
|
60
|
+
//# sourceMappingURL=decay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decay.d.ts","sourceRoot":"","sources":["../../../src/core/evaluation/decay.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,cAAc,EAAQ,MAAM,UAAU,CAAC;AAMhD;;;;;GAKG;AACH,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,QAAQ,GAAG,MAAM,CAAC;AAE3D;;GAEG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,QAAQ,CAAC;AAElE;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,aAAa,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,SAAS,GAAG;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAwBF;;;;;;;GAOG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,EAAE,IAAI,EACnB,GAAG,EAAE,IAAI,EACT,MAAM,EAAE,WAAW,GAClB,SAAS,CAsCX;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,cAAc,GAAG,IAAI,GAAG,IAAI,CA+BvF"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Temporal Decay Utilities
|
|
4
|
+
*
|
|
5
|
+
* Provides continuous decay multipliers (0→1) that degrade a rule's
|
|
6
|
+
* contribution based on how old its underlying data is.
|
|
7
|
+
*
|
|
8
|
+
* Complementary to temporal validity (binary gate) — validity runs first,
|
|
9
|
+
* decay modifies strength continuously.
|
|
10
|
+
*/
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.calculateDecayMultiplier = calculateDecayMultiplier;
|
|
13
|
+
exports.resolveDecayTimestamp = resolveDecayTimestamp;
|
|
14
|
+
// ========================================
|
|
15
|
+
// Time Unit Conversion
|
|
16
|
+
// ========================================
|
|
17
|
+
const MS_PER_HOUR = 3_600_000;
|
|
18
|
+
const MS_PER_DAY = 86_400_000;
|
|
19
|
+
const MS_PER_WEEK = 604_800_000;
|
|
20
|
+
const MS_PER_MONTH = 2_592_000_000; // 30 days
|
|
21
|
+
function msPerUnit(unit) {
|
|
22
|
+
switch (unit) {
|
|
23
|
+
case 'hours': return MS_PER_HOUR;
|
|
24
|
+
case 'days': return MS_PER_DAY;
|
|
25
|
+
case 'weeks': return MS_PER_WEEK;
|
|
26
|
+
case 'months': return MS_PER_MONTH;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
// ========================================
|
|
30
|
+
// Core Calculation
|
|
31
|
+
// ========================================
|
|
32
|
+
/**
|
|
33
|
+
* Calculate a decay multiplier based on age and configuration
|
|
34
|
+
*
|
|
35
|
+
* @param dataTimestamp - When the data was collected/created
|
|
36
|
+
* @param now - Current time reference point
|
|
37
|
+
* @param config - Decay configuration
|
|
38
|
+
* @returns DecayInfo with multiplier and audit data
|
|
39
|
+
*/
|
|
40
|
+
function calculateDecayMultiplier(dataTimestamp, now, config) {
|
|
41
|
+
const ageMs = now.getTime() - dataTimestamp.getTime();
|
|
42
|
+
const ageInUnits = ageMs / msPerUnit(config.timeUnit);
|
|
43
|
+
const floor = config.floor ?? 0;
|
|
44
|
+
let rawMultiplier;
|
|
45
|
+
switch (config.curve) {
|
|
46
|
+
case 'exponential': {
|
|
47
|
+
const halfLife = config.halfLife ?? 1;
|
|
48
|
+
// e^(-ln(2)/halfLife * age)
|
|
49
|
+
rawMultiplier = Math.exp(-Math.LN2 / halfLife * ageInUnits);
|
|
50
|
+
break;
|
|
51
|
+
}
|
|
52
|
+
case 'linear': {
|
|
53
|
+
const maxAge = config.maxAge ?? 1;
|
|
54
|
+
rawMultiplier = 1 - ageInUnits / maxAge;
|
|
55
|
+
break;
|
|
56
|
+
}
|
|
57
|
+
case 'step': {
|
|
58
|
+
const threshold = config.threshold ?? 1;
|
|
59
|
+
rawMultiplier = ageInUnits < threshold ? 1.0 : 0.0;
|
|
60
|
+
break;
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
// Clamp to [floor, 1]
|
|
64
|
+
const multiplier = Math.max(floor, Math.min(1, rawMultiplier));
|
|
65
|
+
return {
|
|
66
|
+
multiplier,
|
|
67
|
+
ageInUnits,
|
|
68
|
+
curve: config.curve,
|
|
69
|
+
timestamp: dataTimestamp.toISOString(),
|
|
70
|
+
fullyDecayed: multiplier <= floor
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Resolve a decay timestamp from a $-prefixed path in the binding context
|
|
75
|
+
*
|
|
76
|
+
* @param ref - A $-prefixed path like '$inspection.date'
|
|
77
|
+
* @param context - The current binding context
|
|
78
|
+
* @returns Resolved Date, or null if path is missing/invalid
|
|
79
|
+
*/
|
|
80
|
+
function resolveDecayTimestamp(ref, context) {
|
|
81
|
+
if (!ref.startsWith('$'))
|
|
82
|
+
return null;
|
|
83
|
+
const stripped = ref.slice(1);
|
|
84
|
+
const parts = stripped.split('.');
|
|
85
|
+
const param = parts[0];
|
|
86
|
+
const path = parts.slice(1);
|
|
87
|
+
const fact = context[param];
|
|
88
|
+
if (!fact)
|
|
89
|
+
return null;
|
|
90
|
+
let value = fact.data;
|
|
91
|
+
for (const key of path) {
|
|
92
|
+
if (value === null || value === undefined)
|
|
93
|
+
return null;
|
|
94
|
+
value = value[key];
|
|
95
|
+
}
|
|
96
|
+
if (value === null || value === undefined)
|
|
97
|
+
return null;
|
|
98
|
+
// Accept Date objects, ISO strings, or numeric timestamps
|
|
99
|
+
if (value instanceof Date)
|
|
100
|
+
return value;
|
|
101
|
+
if (typeof value === 'string') {
|
|
102
|
+
const parsed = new Date(value);
|
|
103
|
+
return isNaN(parsed.getTime()) ? null : parsed;
|
|
104
|
+
}
|
|
105
|
+
if (typeof value === 'number') {
|
|
106
|
+
const parsed = new Date(value);
|
|
107
|
+
return isNaN(parsed.getTime()) ? null : parsed;
|
|
108
|
+
}
|
|
109
|
+
return null;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=decay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decay.js","sourceRoot":"","sources":["../../../src/core/evaluation/decay.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,4 +4,6 @@
|
|
|
4
4
|
export { evaluateCondition, evaluateExpression, resolveOperand, setValueAtPath } from './condition.evaluator';
|
|
5
5
|
export { injectRulesetContext, injectTemporalContext, // deprecated, use injectRulesetContext
|
|
6
6
|
isRuleTemporallyValid, filterTemporallyValidRules, getRuleTemporalInfo, RulesetMetadata } from './temporal';
|
|
7
|
+
export { calculateDecayMultiplier, resolveDecayTimestamp } from './decay';
|
|
8
|
+
export type { DecayCurve, DecayTimeUnit, DecayConfig, DecayInfo } from './decay';
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/evaluation/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACf,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EAAG,uCAAuC;AAC/D,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,eAAe,EAChB,MAAM,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/core/evaluation/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,cAAc,EACd,cAAc,EACf,MAAM,uBAAuB,CAAC;AAG/B,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EAAG,uCAAuC;AAC/D,qBAAqB,EACrB,0BAA0B,EAC1B,mBAAmB,EACnB,eAAe,EAChB,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,wBAAwB,EACxB,qBAAqB,EACtB,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,UAAU,EACV,aAAa,EACb,WAAW,EACX,SAAS,EACV,MAAM,SAAS,CAAC"}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Core evaluation module - shared across all engines
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
-
exports.getRuleTemporalInfo = exports.filterTemporallyValidRules = exports.isRuleTemporallyValid = exports.injectTemporalContext = exports.injectRulesetContext = exports.setValueAtPath = exports.resolveOperand = exports.evaluateExpression = exports.evaluateCondition = void 0;
|
|
6
|
+
exports.resolveDecayTimestamp = exports.calculateDecayMultiplier = exports.getRuleTemporalInfo = exports.filterTemporallyValidRules = exports.isRuleTemporallyValid = exports.injectTemporalContext = exports.injectRulesetContext = exports.setValueAtPath = exports.resolveOperand = exports.evaluateExpression = exports.evaluateCondition = void 0;
|
|
7
7
|
var condition_evaluator_1 = require("./condition.evaluator");
|
|
8
8
|
Object.defineProperty(exports, "evaluateCondition", { enumerable: true, get: function () { return condition_evaluator_1.evaluateCondition; } });
|
|
9
9
|
Object.defineProperty(exports, "evaluateExpression", { enumerable: true, get: function () { return condition_evaluator_1.evaluateExpression; } });
|
|
@@ -16,4 +16,8 @@ Object.defineProperty(exports, "injectTemporalContext", { enumerable: true, get:
|
|
|
16
16
|
Object.defineProperty(exports, "isRuleTemporallyValid", { enumerable: true, get: function () { return temporal_1.isRuleTemporallyValid; } });
|
|
17
17
|
Object.defineProperty(exports, "filterTemporallyValidRules", { enumerable: true, get: function () { return temporal_1.filterTemporallyValidRules; } });
|
|
18
18
|
Object.defineProperty(exports, "getRuleTemporalInfo", { enumerable: true, get: function () { return temporal_1.getRuleTemporalInfo; } });
|
|
19
|
+
// Temporal decay utilities
|
|
20
|
+
var decay_1 = require("./decay");
|
|
21
|
+
Object.defineProperty(exports, "calculateDecayMultiplier", { enumerable: true, get: function () { return decay_1.calculateDecayMultiplier; } });
|
|
22
|
+
Object.defineProperty(exports, "resolveDecayTimestamp", { enumerable: true, get: function () { return decay_1.resolveDecayTimestamp; } });
|
|
19
23
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/evaluation/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,6DAK+B;AAJ7B,wHAAA,iBAAiB,OAAA;AACjB,yHAAA,kBAAkB,OAAA;AAClB,qHAAA,cAAc,OAAA;AACd,qHAAA,cAAc,OAAA;AAGhB,8BAA8B;AAC9B,uCAOoB;AANlB,gHAAA,oBAAoB,OAAA;AACpB,iHAAA,qBAAqB,OAAA;AACrB,iHAAA,qBAAqB,OAAA;AACrB,sHAAA,0BAA0B,OAAA;AAC1B,+GAAA,mBAAmB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/core/evaluation/index.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAEH,6DAK+B;AAJ7B,wHAAA,iBAAiB,OAAA;AACjB,yHAAA,kBAAkB,OAAA;AAClB,qHAAA,cAAc,OAAA;AACd,qHAAA,cAAc,OAAA;AAGhB,8BAA8B;AAC9B,uCAOoB;AANlB,gHAAA,oBAAoB,OAAA;AACpB,iHAAA,qBAAqB,OAAA;AACrB,iHAAA,qBAAqB,OAAA;AACrB,sHAAA,0BAA0B,OAAA;AAC1B,+GAAA,mBAAmB,OAAA;AAIrB,2BAA2B;AAC3B,iCAGiB;AAFf,iHAAA,wBAAwB,OAAA;AACxB,8GAAA,qBAAqB,OAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/engines/bayesian/compiler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EACL,YAAY,EACZ,eAAe,EAEf,oBAAoB,EACpB,uBAAuB,EAIvB,eAAe,EAKhB,MAAM,SAAS,CAAC;AA2DjB;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAmC9D;AA+MD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,GAC3B,oBAAoB,
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/engines/bayesian/compiler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EACL,YAAY,EACZ,eAAe,EAEf,oBAAoB,EACpB,uBAAuB,EAIvB,eAAe,EAKhB,MAAM,SAAS,CAAC;AA2DjB;;;;;;;;;;GAUG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CAmC9D;AA+MD,wBAAgB,mBAAmB,CACjC,IAAI,EAAE,YAAY,EAClB,KAAK,EAAE,MAAM,EACb,eAAe,EAAE,GAAG,CAAC,MAAM,CAAC,GAC3B,oBAAoB,CA0BtB;AAMD,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,eAAe,GAAG,uBAAuB,CAsCxF"}
|
|
@@ -265,6 +265,16 @@ function validatePriorInputs(hypotheses, inputs, ruleSetId) {
|
|
|
265
265
|
function compileBayesianRule(rule, index, hypothesisNames) {
|
|
266
266
|
const inputs = rule.inputs.map(compileInputParameter);
|
|
267
267
|
const when = rule.when ? (0, core_1.compileCondition)(rule.when) : undefined;
|
|
268
|
+
// Compile decay — only pass through $-prefixed string timestamps
|
|
269
|
+
let compiledDecay;
|
|
270
|
+
if (rule.decay) {
|
|
271
|
+
const ts = rule.decay.timestamp;
|
|
272
|
+
if (typeof ts === 'string') {
|
|
273
|
+
compiledDecay = { timestamp: ts, config: rule.decay.config };
|
|
274
|
+
}
|
|
275
|
+
// Expression timestamps for Bayesian are not supported (would need runtime eval);
|
|
276
|
+
// only $-prefixed paths are supported
|
|
277
|
+
}
|
|
268
278
|
return {
|
|
269
279
|
id: rule.id,
|
|
270
280
|
name: rule.name,
|
|
@@ -273,7 +283,8 @@ function compileBayesianRule(rule, index, hypothesisNames) {
|
|
|
273
283
|
index,
|
|
274
284
|
inputs,
|
|
275
285
|
when,
|
|
276
|
-
likelihood: compileLikelihoodMap(rule.likelihood, hypothesisNames, rule.id)
|
|
286
|
+
likelihood: compileLikelihoodMap(rule.likelihood, hypothesisNames, rule.id),
|
|
287
|
+
decay: compiledDecay
|
|
277
288
|
};
|
|
278
289
|
}
|
|
279
290
|
// ========================================
|
|
@@ -286,7 +297,8 @@ function compileBayesianRuleSet(ruleSet) {
|
|
|
286
297
|
const config = {
|
|
287
298
|
mode: 'bayesian',
|
|
288
299
|
threshold: ruleSet.config?.threshold,
|
|
289
|
-
priorDefault: ruleSet.config?.priorDefault ?? 'uniform'
|
|
300
|
+
priorDefault: ruleSet.config?.priorDefault ?? 'uniform',
|
|
301
|
+
decay: ruleSet.config?.decay
|
|
290
302
|
};
|
|
291
303
|
// Get hypothesis names for validation
|
|
292
304
|
const hypothesisNames = new Set(ruleSet.hypotheses.map(h => typeof h === 'string' ? h : h.name));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/engines/bayesian/compiler.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA6FH,0CAmCC;AA+MD,
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/engines/bayesian/compiler.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;AA6FH,0CAmCC;AA+MD,kDA8BC;AAMD,wDAsCC;AAvZD,qCAKoB;AAEpB,mCAciB;AAEjB,2CAA2C;AAC3C,mBAAmB;AACnB,2CAA2C;AAE3C,SAAS,eAAe,CAAC,SAAe;IACtC,IAAI,CAAC,SAAS;QAAE,OAAO,CAAC,CAAC;IACzB,IAAI,SAAS,CAAC,QAAQ,EAAE,CAAC;QACvB,OAAO,CAAC,GAAG,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAW,EAAE,CAAM,EAAE,EAAE,CAAC,GAAG,GAAG,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,CAAC;IACD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,SAAS,mBAAmB,CAAC,MAAa,EAAE,IAAU;IACpD,IAAI,KAAK,GAAG,CAAC,CAAC;IACd,KAAK,IAAI,MAAM,CAAC,MAAM,GAAG,EAAE,CAAC;IAC5B,KAAK,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACnC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;QAC3B,KAAK,IAAI,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC5C,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,WAAW,CAAC,IAAY;IAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACxD,MAAM,KAAK,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO;QACL,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;QACf,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;KACrB,CAAC;AACJ,CAAC;AAED,2CAA2C;AAC3C,wBAAwB;AACxB,2CAA2C;AAE3C,SAAS,qBAAqB,CAAC,KAAU;IACvC,MAAM,QAAQ,GAAQ;QACpB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,qBAAc,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;KACvE,CAAC;IAEF,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAChB,QAAQ,CAAC,KAAK,GAAG,IAAA,uBAAgB,EAAC,KAAK,CAAC,KAAK,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,QAAQ,CAAC,IAAI,GAAG,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,2CAA2C;AAC3C,qBAAqB;AACrB,2CAA2C;AAE3C;;;;;;;;;;GAUG;AACH,SAAgB,eAAe,CAAC,KAAsB;IACpD,aAAa;IACb,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB;IAChB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,8BAA8B;QAC9B,IAAI,KAAK,IAAI,4BAAoB,EAAE,CAAC;YAClC,OAAO,4BAAoB,CAAC,KAA2B,CAAC,CAAC;QAC3D,CAAC;QAED,yBAAyB;QACzB,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QACtD,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,EAAE,IAAI,EAAE,GAAG,CAAC,GAAG,KAAK,CAAC;YAC5B,MAAM,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;YAC1B,OAAO,IAAI,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,8BAA8B,KAAK,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,gBAAgB;IAChB,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;QAChD,IAAI,QAAQ,IAAI,KAAK,EAAE,CAAC;YACtB,OAAQ,KAA4B,CAAC,MAAM,CAAC;QAC9C,CAAC;QACD,IAAI,SAAS,IAAI,KAAK,EAAE,CAAC;YACvB,OAAO,CAAC,GAAI,KAA6B,CAAC,OAAO,CAAC;QACpD,CAAC;IACH,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,8BAA8B,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACzE,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAC3B,UAAyB,EACzB,eAA4B,EAC5B,MAAc;IAEd,MAAM,QAAQ,GAA0B,EAAE,CAAC;IAE3C,KAAK,MAAM,CAAC,UAAU,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QAC7D,6BAA6B;QAC7B,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE,CAAC;YACrC,MAAM,IAAI,KAAK,CACb,SAAS,MAAM,oCAAoC,UAAU,KAAK;gBAClE,cAAc,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CACvD,CAAC;QACJ,CAAC;QAED,QAAQ,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAChD,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,2CAA2C;AAC3C,yBAAyB;AACzB,2CAA2C;AAE3C;;GAEG;AACH,SAAS,iBAAiB,CAAC,CAAa;IACtC,OAAO,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC5C,CAAC;AAED;;GAEG;AACH,SAAS,YAAY,CAAC,KAA6B;IACjD,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,SAAS,CAAC,CAAC,4BAA4B;IAChD,CAAC;IAED,gBAAgB;IAChB,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,qDAAqD;IACrD,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACvD,OAAO,IAAA,gBAAS,EAAC,KAAK,CAAC,CAAC,CAAE,uBAAuB;IACnD,CAAC;IAED,mDAAmD;IACnD,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,IAAA,uBAAgB,EAAC,KAAmB,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,wBAAwB,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACnE,CAAC;AAED;;GAEG;AACH,SAAS,iBAAiB,CACxB,UAAwB,EACxB,YAAoB;IAEpB,MAAM,QAAQ,GAAyB,EAAE,CAAC;IAC1C,IAAI,gBAAgB,GAAG,CAAC,CAAC;IACzB,MAAM,mBAAmB,GAAa,EAAE,CAAC;IAEzC,kCAAkC;IAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QAC3C,MAAM,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QACxB,MAAM,IAAI,GAAG,iBAAiB,CAAC,CAAC,CAAC,CAAC;QAClC,MAAM,UAAU,GAAG,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;QAC/D,MAAM,aAAa,GAAG,YAAY,CAAC,UAAU,CAAC,CAAC;QAE/C,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,aAAa,EAAE,CAAC,CAAC;QAE9C,IAAI,OAAO,aAAa,KAAK,QAAQ,EAAE,CAAC;YACtC,gBAAgB,IAAI,aAAa,CAAC;QACpC,CAAC;aAAM,IAAI,aAAa,KAAK,SAAS,EAAE,CAAC;YACvC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAC9B,CAAC;QACD,+DAA+D;IACjE,CAAC;IAED,qDAAqD;IACrD,IAAI,mBAAmB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACnC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC;QAEpD,QAAQ,YAAY,EAAE,CAAC;YACrB,KAAK,SAAS,CAAC,CAAC,CAAC;gBACf,wCAAwC;gBACxC,MAAM,UAAU,GAAG,SAAS,GAAG,mBAAmB,CAAC,MAAM,CAAC;gBAC1D,KAAK,MAAM,CAAC,IAAI,mBAAmB,EAAE,CAAC;oBACpC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC;gBACjC,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,WAAW,CAAC,CAAC,CAAC;gBACjB,4DAA4D;gBAC5D,MAAM,cAAc,GAAG,mBAAmB,CAAC,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAC3E,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;gBAEnD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;oBACpB,MAAM,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC;oBAClC,MAAM,UAAU,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,WAAW,CAAC;oBAEnD,KAAK,MAAM,CAAC,IAAI,mBAAmB,EAAE,CAAC;wBACpC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;oBACpE,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,cAAc,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC;gBAC7C,CAAC;gBACD,MAAM;YACR,CAAC;YAED,KAAK,YAAY,CAAC,CAAC,CAAC;gBAClB,6DAA6D;gBAC7D,MAAM,eAAe,GAAG,mBAAmB,CAAC,CAAC,CAAC,CAAC;gBAC/C,MAAM,WAAW,GAAG,mBAAmB,CAAC,MAAM,GAAG,CAAC,CAAC;gBAEnD,IAAI,WAAW,GAAG,CAAC,EAAE,CAAC;oBACpB,MAAM,SAAS,GAAG,SAAS,GAAG,GAAG,CAAC;oBAClC,MAAM,UAAU,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC,GAAG,WAAW,CAAC;oBAEnD,KAAK,MAAM,CAAC,IAAI,mBAAmB,EAAE,CAAC;wBACpC,QAAQ,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,KAAK,eAAe,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,UAAU,CAAC;oBACrE,CAAC;gBACH,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,eAAe,CAAC,CAAC,KAAK,GAAG,SAAS,CAAC;gBAC9C,CAAC;gBACD,MAAM;YACR,CAAC;YAED;gBACE,MAAM,IAAI,KAAK,CAAC,kCAAkC,YAAY,EAAE,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,2CAA2C;AAC3C,aAAa;AACb,2CAA2C;AAE3C;;GAEG;AACH,SAAS,sBAAsB,CAAC,UAAwB;IACtD,MAAM,IAAI,GAAa,EAAE,CAAC;IAE1B,SAAS,gBAAgB,CAAC,KAAU;QAClC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YACvD,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;YAC9C,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;aAAM,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,gBAAgB,CAAC,IAAI,CAAC,CAAC;YACzB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;QAC3B,IAAI,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YACnD,gBAAgB,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;QAC5B,CAAC;IACH,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;GAEG;AACH,SAAS,mBAAmB,CAC1B,UAAwB,EACxB,MAAyB,EACzB,SAAiB;IAEjB,MAAM,SAAS,GAAG,sBAAsB,CAAC,UAAU,CAAC,CAAC;IACrD,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO;IAEnC,MAAM,aAAa,GAAG,IAAI,GAAG,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAM,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IAEtE,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC5B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CACb,YAAY,SAAS,oCAAoC,GAAG,2BAA2B;gBACvF,0BAA0B,GAAG,mBAAmB,CACjD,CAAC;QACJ,CAAC;IACH,CAAC;AACH,CAAC;AAED,2CAA2C;AAC3C,mBAAmB;AACnB,2CAA2C;AAE3C,SAAgB,mBAAmB,CACjC,IAAkB,EAClB,KAAa,EACb,eAA4B;IAE5B,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,qBAAqB,CAAC,CAAC;IACtD,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAA,uBAAgB,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IAEjE,iEAAiE;IACjE,IAAI,aAA8D,CAAC;IACnE,IAAI,IAAI,CAAC,KAAK,EAAE,CAAC;QACf,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC;QAChC,IAAI,OAAO,EAAE,KAAK,QAAQ,EAAE,CAAC;YAC3B,aAAa,GAAG,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAC/D,CAAC;QACD,kFAAkF;QAClF,sCAAsC;IACxC,CAAC;IAED,OAAO;QACL,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,QAAQ,EAAE,IAAI,CAAC,QAAQ,IAAI,CAAC;QAC5B,UAAU,EAAE,mBAAmB,CAAC,MAAM,EAAE,IAAI,CAAC;QAC7C,KAAK;QACL,MAAM;QACN,IAAI;QACJ,UAAU,EAAE,oBAAoB,CAAC,IAAI,CAAC,UAAU,EAAE,eAAe,EAAE,IAAI,CAAC,EAAE,CAAC;QAC3E,KAAK,EAAE,aAAa;KACrB,CAAC;AACJ,CAAC;AAED,2CAA2C;AAC3C,sBAAsB;AACtB,2CAA2C;AAE3C,SAAgB,sBAAsB,CAAC,OAAwB;IAC7D,wBAAwB;IACxB,mBAAmB,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,CAAC;IAEpE,6BAA6B;IAC7B,MAAM,MAAM,GAAmB;QAC7B,IAAI,EAAE,UAAU;QAChB,SAAS,EAAE,OAAO,CAAC,MAAM,EAAE,SAAS;QACpC,YAAY,EAAE,OAAO,CAAC,MAAM,EAAE,YAAY,IAAI,SAAS;QACvD,KAAK,EAAE,OAAO,CAAC,MAAM,EAAE,KAAK;KAC7B,CAAC;IAEF,sCAAsC;IACtC,MAAM,eAAe,GAAG,IAAI,GAAG,CAC7B,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAChE,CAAC;IAEF,qBAAqB;IACrB,MAAM,UAAU,GAAG,iBAAiB,CAClC,OAAO,CAAC,UAAU,EAClB,MAAM,CAAC,YAAa,CACrB,CAAC;IAEF,gBAAgB;IAChB,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAC9C,mBAAmB,CAAC,IAAI,EAAE,KAAK,EAAE,eAAe,CAAC,CAClD,CAAC;IAEF,OAAO;QACL,EAAE,EAAE,OAAO,CAAC,EAAE;QACd,IAAI,EAAE,OAAO,CAAC,IAAI;QAClB,IAAI,EAAE,UAAU;QAChB,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,IAAA,qBAAc,EAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC1E,MAAM,EAAE,OAAO,CAAC,MAAM,IAAI,EAAE;QAC5B,UAAU;QACV,KAAK;QACL,MAAM;KACP,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/engines/bayesian/strategy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/engines/bayesian/strategy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AASH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAQnD,OAAO,EACL,uBAAuB,EAGvB,eAAe,EACf,cAAc,EAEf,MAAM,SAAS,CAAC;AAgJjB,qBAAa,gBAAgB;IAC3B,GAAG,CACD,OAAO,EAAE,uBAAuB,EAChC,EAAE,EAAE,cAAc,EAClB,OAAO,GAAE,eAAoB,GAC5B,cAAc;CA6IlB;AAGD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
|
|
@@ -8,6 +8,7 @@
|
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
9
|
exports.bayesianStrategy = exports.BayesianStrategy = void 0;
|
|
10
10
|
const core_1 = require("../../core");
|
|
11
|
+
const decay_1 = require("../../core/evaluation/decay");
|
|
11
12
|
/**
|
|
12
13
|
* Check if value is a CompiledPath (fact reference)
|
|
13
14
|
*/
|
|
@@ -141,6 +142,8 @@ class BayesianStrategy {
|
|
|
141
142
|
const fired = [];
|
|
142
143
|
const evidence = [];
|
|
143
144
|
let thresholdExceeded;
|
|
145
|
+
const decayInfoMap = {};
|
|
146
|
+
const now = new Date();
|
|
144
147
|
// Track which hypotheses were below threshold initially
|
|
145
148
|
// (so we can detect when they cross it)
|
|
146
149
|
const belowThreshold = new Set();
|
|
@@ -159,18 +162,50 @@ class BayesianStrategy {
|
|
|
159
162
|
if (!fired.includes(rule.id)) {
|
|
160
163
|
fired.push(rule.id);
|
|
161
164
|
}
|
|
165
|
+
// Compute decay for this rule's evidence
|
|
166
|
+
let effectiveLikelihoods = rule.likelihood;
|
|
167
|
+
let likelihoodsBeforeDecay;
|
|
168
|
+
let ruleDecayInfo;
|
|
169
|
+
const ruleDecay = rule.decay;
|
|
170
|
+
const engineDecay = config.decay;
|
|
171
|
+
if (ruleDecay || engineDecay) {
|
|
172
|
+
const tsRef = ruleDecay?.timestamp ?? engineDecay?.timestamp;
|
|
173
|
+
if (typeof tsRef === 'string') {
|
|
174
|
+
const dataTimestamp = (0, decay_1.resolveDecayTimestamp)(tsRef, activation.facts);
|
|
175
|
+
if (dataTimestamp) {
|
|
176
|
+
const decayConfig = {
|
|
177
|
+
...(engineDecay?.config ?? { curve: 'exponential', timeUnit: 'days' }),
|
|
178
|
+
...ruleDecay?.config
|
|
179
|
+
};
|
|
180
|
+
const info = (0, decay_1.calculateDecayMultiplier)(dataTimestamp, now, decayConfig);
|
|
181
|
+
ruleDecayInfo = info;
|
|
182
|
+
decayInfoMap[rule.id] = info;
|
|
183
|
+
// Decay likelihoods toward 1.0 (neutral)
|
|
184
|
+
// decayedLikelihood = 1.0 + (originalLikelihood - 1.0) * multiplier
|
|
185
|
+
if (info.multiplier < 1.0) {
|
|
186
|
+
likelihoodsBeforeDecay = { ...rule.likelihood };
|
|
187
|
+
effectiveLikelihoods = {};
|
|
188
|
+
for (const [h, lh] of Object.entries(rule.likelihood)) {
|
|
189
|
+
effectiveLikelihoods[h] = 1.0 + (lh - 1.0) * info.multiplier;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
}
|
|
162
195
|
// Record evidence
|
|
163
196
|
evidence.push({
|
|
164
197
|
ruleId: rule.id,
|
|
165
198
|
ruleName: rule.name,
|
|
166
|
-
likelihoods:
|
|
199
|
+
likelihoods: effectiveLikelihoods,
|
|
200
|
+
likelihoodsBeforeDecay,
|
|
201
|
+
decayInfo: ruleDecayInfo
|
|
167
202
|
});
|
|
168
203
|
// Callback
|
|
169
204
|
if (onFire) {
|
|
170
|
-
onFire(rule.id, activation.facts,
|
|
205
|
+
onFire(rule.id, activation.facts, effectiveLikelihoods);
|
|
171
206
|
}
|
|
172
|
-
// Update posteriors with this evidence
|
|
173
|
-
posteriors = applyEvidence(posteriors,
|
|
207
|
+
// Update posteriors with this evidence (using decayed likelihoods)
|
|
208
|
+
posteriors = applyEvidence(posteriors, effectiveLikelihoods);
|
|
174
209
|
// Check if any hypothesis crossed the threshold (from below to above)
|
|
175
210
|
if (threshold !== undefined && thresholdExceeded === undefined) {
|
|
176
211
|
for (const [hypothesis, posterior] of Object.entries(posteriors)) {
|
|
@@ -194,6 +229,7 @@ class BayesianStrategy {
|
|
|
194
229
|
// Store normalized priors for result
|
|
195
230
|
const normalizedPriors = normalizePosteriors(priors);
|
|
196
231
|
const executionTimeMs = Math.round((performance.now() - startTime) * 100) / 100;
|
|
232
|
+
const hasDecay = Object.keys(decayInfoMap).length > 0;
|
|
197
233
|
return {
|
|
198
234
|
priors: normalizedPriors,
|
|
199
235
|
posteriors,
|
|
@@ -202,6 +238,7 @@ class BayesianStrategy {
|
|
|
202
238
|
fired,
|
|
203
239
|
evidence,
|
|
204
240
|
thresholdExceeded,
|
|
241
|
+
...(hasDecay ? { decayInfo: decayInfoMap } : {}),
|
|
205
242
|
iterations: 1,
|
|
206
243
|
executionTimeMs
|
|
207
244
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/engines/bayesian/strategy.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAEH,qCAMoB;
|
|
1
|
+
{"version":3,"file":"strategy.js","sourceRoot":"","sources":["../../../src/engines/bayesian/strategy.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
* Updates belief in hypotheses based on evidence from rules.
|
|
6
6
|
*/
|
|
7
7
|
import { BaseRule, BaseRuleSet, InputParameter, CompiledBaseRule, CompiledBaseRuleSet, CompiledCondition, CompiledPath, Expression, BindingContext } from '../../core';
|
|
8
|
+
import { DecayConfig, DecayInfo } from '../../core/evaluation/decay';
|
|
8
9
|
/**
|
|
9
10
|
* Semantic likelihood labels - human-readable strength indicators
|
|
10
11
|
*/
|
|
@@ -56,6 +57,10 @@ export type PriorDefault = 'uniform' | 'skeptical' | 'optimistic';
|
|
|
56
57
|
*/
|
|
57
58
|
export type BayesianRule = BaseRule & {
|
|
58
59
|
likelihood: LikelihoodMap;
|
|
60
|
+
decay?: {
|
|
61
|
+
timestamp: string | Expression;
|
|
62
|
+
config?: Partial<DecayConfig>;
|
|
63
|
+
};
|
|
59
64
|
};
|
|
60
65
|
/**
|
|
61
66
|
* Bayesian ruleset configuration
|
|
@@ -64,6 +69,10 @@ export type BayesianConfig = {
|
|
|
64
69
|
mode: 'bayesian';
|
|
65
70
|
threshold?: number;
|
|
66
71
|
priorDefault?: PriorDefault;
|
|
72
|
+
decay?: {
|
|
73
|
+
timestamp?: string | Expression;
|
|
74
|
+
config: DecayConfig;
|
|
75
|
+
};
|
|
67
76
|
};
|
|
68
77
|
/**
|
|
69
78
|
* Bayesian ruleset
|
|
@@ -98,6 +107,10 @@ export type CompiledLikelihoodMap = Record<string, number>;
|
|
|
98
107
|
*/
|
|
99
108
|
export type CompiledBayesianRule = CompiledBaseRule & {
|
|
100
109
|
likelihood: CompiledLikelihoodMap;
|
|
110
|
+
decay?: {
|
|
111
|
+
timestamp: string;
|
|
112
|
+
config?: Partial<DecayConfig>;
|
|
113
|
+
};
|
|
101
114
|
};
|
|
102
115
|
/**
|
|
103
116
|
* Compiled Bayesian ruleset
|
|
@@ -116,6 +129,8 @@ export type EvidenceEntry = {
|
|
|
116
129
|
ruleId: string;
|
|
117
130
|
ruleName?: string;
|
|
118
131
|
likelihoods: CompiledLikelihoodMap;
|
|
132
|
+
likelihoodsBeforeDecay?: CompiledLikelihoodMap;
|
|
133
|
+
decayInfo?: DecayInfo;
|
|
119
134
|
};
|
|
120
135
|
/**
|
|
121
136
|
* Runtime options for Bayesian execution
|
|
@@ -135,6 +150,7 @@ export type BayesianResult = {
|
|
|
135
150
|
fired: string[];
|
|
136
151
|
evidence: EvidenceEntry[];
|
|
137
152
|
thresholdExceeded?: string;
|
|
153
|
+
decayInfo?: Record<string, DecayInfo>;
|
|
138
154
|
iterations: 1;
|
|
139
155
|
executionTimeMs: number;
|
|
140
156
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/engines/bayesian/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EACL,QAAQ,EACR,WAAW,EACX,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,iBAAiB,EACjB,YAAY,EACZ,UAAU,EACV,cAAc,EACf,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/engines/bayesian/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/engines/bayesian/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/engines/bayesian/types.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAuNH,2CAA2C;AAC3C,+BAA+B;AAC/B,2CAA2C;AAE3C;;GAEG;AACU,QAAA,oBAAoB,GAAuC;IACtE,aAAa,EAAE,GAAG;IAClB,aAAa,EAAE,GAAG;IAClB,sBAAsB,EAAE,GAAG;IAC3B,SAAS,EAAE,GAAG;IACd,sBAAsB,EAAE,CAAC,GAAG,GAAG,EAAG,SAAS;IAC3C,aAAa,EAAE,CAAC,GAAG,GAAG,EAAY,SAAS;IAC3C,cAAc,EAAE,CAAC,GAAG,GAAG,CAAW,MAAM;CACzC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/engines/defeasible/compiler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EACL,iBAAiB,EAEjB,yBAAyB,EAW1B,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"compiler.d.ts","sourceRoot":"","sources":["../../../src/engines/defeasible/compiler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAOH,OAAO,EACL,iBAAiB,EAEjB,yBAAyB,EAW1B,MAAM,SAAS,CAAC;AAmPjB;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,GAAG,yBAAyB,CA0B9F"}
|
|
@@ -16,7 +16,8 @@ const DEFAULT_CONFIG = {
|
|
|
16
16
|
aggregation: 'average',
|
|
17
17
|
threshold: 0.5,
|
|
18
18
|
conflictResolution: 'specificity',
|
|
19
|
-
maxIterations: 100
|
|
19
|
+
maxIterations: 100,
|
|
20
|
+
decay: undefined // Optional at runtime; Required<> demands a key
|
|
20
21
|
};
|
|
21
22
|
// ========================================
|
|
22
23
|
// Helper Functions
|
|
@@ -155,6 +156,18 @@ function countConditionNodes(condition) {
|
|
|
155
156
|
function compileRule(rule, index) {
|
|
156
157
|
const inputs = (rule.inputs || []).map(compileInputParameter);
|
|
157
158
|
const when = rule.when ? (0, core_1.compileCondition)(rule.when) : undefined;
|
|
159
|
+
// Compile decay — only pass through $-prefixed string timestamps
|
|
160
|
+
let compiledDecay;
|
|
161
|
+
if (rule.decay) {
|
|
162
|
+
const ts = rule.decay.timestamp;
|
|
163
|
+
if (typeof ts === 'string') {
|
|
164
|
+
compiledDecay = {
|
|
165
|
+
timestamp: ts,
|
|
166
|
+
config: rule.decay.config,
|
|
167
|
+
target: rule.decay.target
|
|
168
|
+
};
|
|
169
|
+
}
|
|
170
|
+
}
|
|
158
171
|
return {
|
|
159
172
|
id: rule.id,
|
|
160
173
|
name: rule.name,
|
|
@@ -167,7 +180,8 @@ function compileRule(rule, index) {
|
|
|
167
180
|
credibility: normalizeCredibility(rule.credibility),
|
|
168
181
|
conclusion: compileConclusion(rule.conclude),
|
|
169
182
|
defeats: (rule.defeats || []).map(normalizeDefeat),
|
|
170
|
-
specificity: countSpecificity(rule)
|
|
183
|
+
specificity: countSpecificity(rule),
|
|
184
|
+
decay: compiledDecay
|
|
171
185
|
};
|
|
172
186
|
}
|
|
173
187
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/engines/defeasible/compiler.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;
|
|
1
|
+
{"version":3,"file":"compiler.js","sourceRoot":"","sources":["../../../src/engines/defeasible/compiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/engines/defeasible/strategy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"strategy.d.ts","sourceRoot":"","sources":["../../../src/engines/defeasible/strategy.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAQnD,OAAO,EACL,yBAAyB,EAEzB,iBAAiB,EACjB,gBAAgB,EAOjB,MAAM,SAAS,CAAC;AAqEjB,qBAAa,kBAAkB;IAC7B,GAAG,CACD,OAAO,EAAE,yBAAyB,EAClC,EAAE,EAAE,cAAc,EAClB,OAAO,GAAE,iBAAsB,GAC9B,gBAAgB;IA0QnB;;OAEG;IACH,OAAO,CAAC,eAAe;IA8IvB;;OAEG;IACH,OAAO,CAAC,cAAc;IA0BtB;;OAEG;IACH,OAAO,CAAC,aAAa;CAqFtB;AAGD,eAAO,MAAM,kBAAkB,oBAA2B,CAAC"}
|