@mnemopay/sdk 0.9.2 → 1.0.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/adaptive.d.ts +46 -4
- package/dist/adaptive.d.ts.map +1 -1
- package/dist/adaptive.js +147 -27
- package/dist/adaptive.js.map +1 -1
- package/dist/anomaly.d.ts +240 -0
- package/dist/anomaly.d.ts.map +1 -0
- package/dist/anomaly.js +427 -0
- package/dist/anomaly.js.map +1 -0
- package/dist/behavioral.d.ts +253 -0
- package/dist/behavioral.d.ts.map +1 -0
- package/dist/behavioral.js +550 -0
- package/dist/behavioral.js.map +1 -0
- package/dist/commerce.d.ts.map +1 -1
- package/dist/commerce.js +6 -1
- package/dist/commerce.js.map +1 -1
- package/dist/fico.d.ts +136 -0
- package/dist/fico.d.ts.map +1 -0
- package/dist/fico.js +424 -0
- package/dist/fico.js.map +1 -0
- package/dist/fraud.d.ts.map +1 -1
- package/dist/fraud.js +14 -1
- package/dist/fraud.js.map +1 -1
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +16 -3
- package/dist/index.js.map +1 -1
- package/dist/integrity.d.ts +165 -0
- package/dist/integrity.d.ts.map +1 -0
- package/dist/integrity.js +395 -0
- package/dist/integrity.js.map +1 -0
- package/dist/ledger.d.ts.map +1 -1
- package/dist/ledger.js +14 -3
- package/dist/ledger.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +9 -4
- package/dist/mcp/server.js.map +1 -1
- package/dist/network.d.ts +2 -0
- package/dist/network.d.ts.map +1 -1
- package/dist/network.js +63 -50
- package/dist/network.js.map +1 -1
- package/dist/rails/index.d.ts.map +1 -1
- package/dist/rails/index.js +15 -0
- package/dist/rails/index.js.map +1 -1
- package/dist/rails/paystack.d.ts +5 -1
- package/dist/rails/paystack.d.ts.map +1 -1
- package/dist/rails/paystack.js +24 -3
- package/dist/rails/paystack.js.map +1 -1
- package/package.json +2 -2
package/dist/adaptive.d.ts
CHANGED
|
@@ -31,12 +31,24 @@ export interface AdaptiveConfig {
|
|
|
31
31
|
enabled: boolean;
|
|
32
32
|
/** Minimum observations before adapting (default: 10) */
|
|
33
33
|
minObservations: number;
|
|
34
|
-
/** Maximum parameter change per cycle (0.2 = 20%) */
|
|
34
|
+
/** Maximum parameter change per cycle (0.2 = 20%) — used for AIMD increase */
|
|
35
35
|
maxDeltaPercent: number;
|
|
36
|
+
/** Multiplicative decrease factor for tightening (0.5 = halve on anomaly) */
|
|
37
|
+
decreaseFactor: number;
|
|
38
|
+
/** Additive increase per healthy cycle (0.02 = +2%) */
|
|
39
|
+
increaseFactor: number;
|
|
36
40
|
/** Minimum cycle interval in minutes (default: 60) */
|
|
37
41
|
cycleIntervalMinutes: number;
|
|
38
42
|
/** Lock specific parameters from adaptation */
|
|
39
43
|
lockedParams: string[];
|
|
44
|
+
/** Minimum days of consistent behavior for trust tier upgrade */
|
|
45
|
+
minTrustDurationDays: number;
|
|
46
|
+
/** Consecutive worsening cycles before circuit breaker trips */
|
|
47
|
+
circuitBreakerThreshold: number;
|
|
48
|
+
/** PSI threshold for severe drift detection (halt adaptation) */
|
|
49
|
+
psiHaltThreshold: number;
|
|
50
|
+
/** PSI threshold for moderate drift (log warning) */
|
|
51
|
+
psiWarnThreshold: number;
|
|
40
52
|
}
|
|
41
53
|
export declare const DEFAULT_ADAPTIVE_CONFIG: AdaptiveConfig;
|
|
42
54
|
export interface AgentInsight {
|
|
@@ -148,6 +160,16 @@ export declare class AdaptiveEngine {
|
|
|
148
160
|
/** Manual overrides set by admin — these are never auto-changed */
|
|
149
161
|
private adminOverrides;
|
|
150
162
|
private eventCounter;
|
|
163
|
+
/** Circuit breaker: consecutive cycles where metrics worsened */
|
|
164
|
+
private consecutiveWorseningCycles;
|
|
165
|
+
/** Circuit breaker: is the engine halted? */
|
|
166
|
+
private circuitBreakerTripped;
|
|
167
|
+
/** Snapshot of key metrics from previous cycle (for regression detection) */
|
|
168
|
+
private previousCycleMetrics;
|
|
169
|
+
/** PSI: distribution snapshot from previous cycle for drift detection */
|
|
170
|
+
private previousDistribution;
|
|
171
|
+
/** Track first event timestamp per agent for trust duration calculation */
|
|
172
|
+
private agentFirstSeen;
|
|
151
173
|
constructor(config?: Partial<AdaptiveConfig>);
|
|
152
174
|
/**
|
|
153
175
|
* Record an operational event. The engine learns from every operation.
|
|
@@ -163,12 +185,27 @@ export declare class AdaptiveEngine {
|
|
|
163
185
|
*/
|
|
164
186
|
computeMetrics(): BusinessMetrics;
|
|
165
187
|
/**
|
|
166
|
-
* Run an adaptation cycle.
|
|
167
|
-
*
|
|
188
|
+
* Run an adaptation cycle. Uses asymmetric AIMD:
|
|
189
|
+
* - Additive Increase: slow, gradual loosening on sustained good metrics
|
|
190
|
+
* - Multiplicative Decrease: fast, aggressive tightening on anomalies
|
|
168
191
|
*
|
|
169
|
-
*
|
|
192
|
+
* Includes circuit breaker (halt after N consecutive worsening cycles)
|
|
193
|
+
* and PSI drift detection (halt if input distribution shifts too much).
|
|
170
194
|
*/
|
|
171
195
|
runCycle(): AdaptationRecord[];
|
|
196
|
+
/** Reset the circuit breaker, allowing adaptation to resume. */
|
|
197
|
+
resetCircuitBreaker(): void;
|
|
198
|
+
/** Check if circuit breaker is currently tripped. */
|
|
199
|
+
get isCircuitBreakerTripped(): boolean;
|
|
200
|
+
/**
|
|
201
|
+
* Compute the event type distribution for drift detection.
|
|
202
|
+
*/
|
|
203
|
+
private computeEventDistribution;
|
|
204
|
+
/**
|
|
205
|
+
* Compute Population Stability Index between two distributions.
|
|
206
|
+
* PSI > 0.1 = moderate drift, > 0.25 = severe drift.
|
|
207
|
+
*/
|
|
208
|
+
private computePSI;
|
|
172
209
|
/**
|
|
173
210
|
* Lock a parameter from adaptive changes. Admin decisions override AI.
|
|
174
211
|
*/
|
|
@@ -193,12 +230,17 @@ export declare class AdaptiveEngine {
|
|
|
193
230
|
getAdaptations(limit?: number): AdaptationRecord[];
|
|
194
231
|
get totalEvents(): number;
|
|
195
232
|
get secureBounds(): typeof SECURE_BOUNDS;
|
|
233
|
+
/** Backdate an agent's first-seen timestamp (for testing or data migration) */
|
|
234
|
+
setAgentFirstSeen(agentId: string, timestamp: number): void;
|
|
196
235
|
serialize(): {
|
|
197
236
|
config: AdaptiveConfig;
|
|
198
237
|
insights: [string, AgentInsight][];
|
|
199
238
|
adaptations: AdaptationRecord[];
|
|
200
239
|
overrides: [string, number][];
|
|
201
240
|
eventCount: number;
|
|
241
|
+
circuitBreakerTripped: boolean;
|
|
242
|
+
consecutiveWorsening: number;
|
|
243
|
+
agentFirstSeen: [string, number][];
|
|
202
244
|
};
|
|
203
245
|
static deserialize(data: ReturnType<AdaptiveEngine["serialize"]>): AdaptiveEngine;
|
|
204
246
|
private isLocked;
|
package/dist/adaptive.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adaptive.d.ts","sourceRoot":"","sources":["../src/adaptive.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAIH,MAAM,WAAW,cAAc;IAC7B,mDAAmD;IACnD,OAAO,EAAE,OAAO,CAAC;IACjB,yDAAyD;IACzD,eAAe,EAAE,MAAM,CAAC;IACxB,
|
|
1
|
+
{"version":3,"file":"adaptive.d.ts","sourceRoot":"","sources":["../src/adaptive.ts"],"names":[],"mappings":"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"}
|
package/dist/adaptive.js
CHANGED
|
@@ -33,8 +33,14 @@ exports.DEFAULT_ADAPTIVE_CONFIG = {
|
|
|
33
33
|
enabled: true,
|
|
34
34
|
minObservations: 10,
|
|
35
35
|
maxDeltaPercent: 0.2,
|
|
36
|
+
decreaseFactor: 0.5, // halve on anomaly (multiplicative decrease)
|
|
37
|
+
increaseFactor: 0.02, // +2% per healthy cycle (additive increase)
|
|
36
38
|
cycleIntervalMinutes: 60,
|
|
37
39
|
lockedParams: [],
|
|
40
|
+
minTrustDurationDays: 14,
|
|
41
|
+
circuitBreakerThreshold: 3,
|
|
42
|
+
psiHaltThreshold: 0.25,
|
|
43
|
+
psiWarnThreshold: 0.1,
|
|
38
44
|
};
|
|
39
45
|
// ─── Secure Bounds ──────────────────────────────────────────────────────────
|
|
40
46
|
// These are HARD floors and ceilings. The adaptive engine cannot breach them.
|
|
@@ -63,6 +69,16 @@ class AdaptiveEngine {
|
|
|
63
69
|
/** Manual overrides set by admin — these are never auto-changed */
|
|
64
70
|
adminOverrides = new Map();
|
|
65
71
|
eventCounter = 0;
|
|
72
|
+
/** Circuit breaker: consecutive cycles where metrics worsened */
|
|
73
|
+
consecutiveWorseningCycles = 0;
|
|
74
|
+
/** Circuit breaker: is the engine halted? */
|
|
75
|
+
circuitBreakerTripped = false;
|
|
76
|
+
/** Snapshot of key metrics from previous cycle (for regression detection) */
|
|
77
|
+
previousCycleMetrics = null;
|
|
78
|
+
/** PSI: distribution snapshot from previous cycle for drift detection */
|
|
79
|
+
previousDistribution = null;
|
|
80
|
+
/** Track first event timestamp per agent for trust duration calculation */
|
|
81
|
+
agentFirstSeen = new Map();
|
|
66
82
|
constructor(config) {
|
|
67
83
|
this.config = { ...exports.DEFAULT_ADAPTIVE_CONFIG, ...config };
|
|
68
84
|
}
|
|
@@ -73,6 +89,10 @@ class AdaptiveEngine {
|
|
|
73
89
|
observe(event) {
|
|
74
90
|
this.events.push(event);
|
|
75
91
|
this.eventCounter++;
|
|
92
|
+
// Track first-seen timestamp for trust duration calculation
|
|
93
|
+
if (!this.agentFirstSeen.has(event.agentId)) {
|
|
94
|
+
this.agentFirstSeen.set(event.agentId, event.timestamp);
|
|
95
|
+
}
|
|
76
96
|
// Rolling window: keep last 50K events to bound memory usage
|
|
77
97
|
if (this.events.length > 50_000) {
|
|
78
98
|
this.events = this.events.slice(-25_000);
|
|
@@ -102,12 +122,17 @@ class AdaptiveEngine {
|
|
|
102
122
|
const memoryEfficiency = memStores.length > 0
|
|
103
123
|
? Math.min(memRecalls.length / memStores.length, 1.0)
|
|
104
124
|
: 0;
|
|
105
|
-
// Risk tier determination
|
|
125
|
+
// Risk tier determination — velocity-aware trust
|
|
126
|
+
// Anti-gaming: require BOTH sufficient observations AND time duration.
|
|
127
|
+
// A burst of 10 clean settlements in 1 hour should NOT earn "trusted".
|
|
106
128
|
let riskTier = "standard";
|
|
129
|
+
const firstSeen = this.agentFirstSeen.get(agentId) ?? Date.now();
|
|
130
|
+
const agentAgeDays = (Date.now() - firstSeen) / 86_400_000;
|
|
131
|
+
const meetsTimeDuration = agentAgeDays >= this.config.minTrustDurationDays;
|
|
107
132
|
if (disputes.length > 0 || fraudBlocks.length > 2) {
|
|
108
133
|
riskTier = disputes.length >= 3 ? "restricted" : "elevated";
|
|
109
134
|
}
|
|
110
|
-
else if (settlementRate > 0.9 && settles.length >= 10) {
|
|
135
|
+
else if (settlementRate > 0.9 && settles.length >= 10 && meetsTimeDuration) {
|
|
111
136
|
riskTier = "trusted";
|
|
112
137
|
}
|
|
113
138
|
// Recommended fee rate: reward high-volume, high-settlement agents
|
|
@@ -207,14 +232,20 @@ class AdaptiveEngine {
|
|
|
207
232
|
}
|
|
208
233
|
// ── Adaptive Optimization ──────────────────────────────────────────────
|
|
209
234
|
/**
|
|
210
|
-
* Run an adaptation cycle.
|
|
211
|
-
*
|
|
235
|
+
* Run an adaptation cycle. Uses asymmetric AIMD:
|
|
236
|
+
* - Additive Increase: slow, gradual loosening on sustained good metrics
|
|
237
|
+
* - Multiplicative Decrease: fast, aggressive tightening on anomalies
|
|
212
238
|
*
|
|
213
|
-
*
|
|
239
|
+
* Includes circuit breaker (halt after N consecutive worsening cycles)
|
|
240
|
+
* and PSI drift detection (halt if input distribution shifts too much).
|
|
214
241
|
*/
|
|
215
242
|
runCycle() {
|
|
216
243
|
if (!this.config.enabled)
|
|
217
244
|
return [];
|
|
245
|
+
// Circuit breaker: if tripped, refuse to adapt until manually reset
|
|
246
|
+
if (this.circuitBreakerTripped) {
|
|
247
|
+
return [this.createRecord("_circuit_breaker", 0, 0, `Circuit breaker tripped after ${this.config.circuitBreakerThreshold} consecutive worsening cycles. Call resetCircuitBreaker() to resume.`, { consecutiveWorsening: this.consecutiveWorseningCycles })];
|
|
248
|
+
}
|
|
218
249
|
// Enforce minimum cycle interval
|
|
219
250
|
const now = Date.now();
|
|
220
251
|
if (now - this.lastCycleAt < this.config.cycleIntervalMinutes * 60_000) {
|
|
@@ -226,53 +257,128 @@ class AdaptiveEngine {
|
|
|
226
257
|
}
|
|
227
258
|
const metrics = this.computeMetrics();
|
|
228
259
|
const proposals = [];
|
|
229
|
-
// ──
|
|
260
|
+
// ── PSI Drift Detection ──────────────────────────────────────────
|
|
261
|
+
const currentDist = this.computeEventDistribution();
|
|
262
|
+
if (this.previousDistribution) {
|
|
263
|
+
const psi = this.computePSI(this.previousDistribution, currentDist);
|
|
264
|
+
if (psi > this.config.psiHaltThreshold) {
|
|
265
|
+
proposals.push(this.createRecord("_psi_drift", psi, this.config.psiHaltThreshold, `Severe distribution drift detected (PSI=${psi.toFixed(3)} > ${this.config.psiHaltThreshold}). Adaptation halted this cycle.`, { psi, threshold: this.config.psiHaltThreshold }));
|
|
266
|
+
this.previousDistribution = currentDist;
|
|
267
|
+
this.adaptations.push(...proposals);
|
|
268
|
+
return proposals;
|
|
269
|
+
}
|
|
270
|
+
if (psi > this.config.psiWarnThreshold) {
|
|
271
|
+
proposals.push(this.createRecord("_psi_warning", psi, this.config.psiWarnThreshold, `Moderate distribution drift (PSI=${psi.toFixed(3)}). Adapting with caution.`, { psi, threshold: this.config.psiWarnThreshold }));
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
this.previousDistribution = currentDist;
|
|
275
|
+
// ── Circuit Breaker: check if previous cycle's adaptations worsened metrics ──
|
|
276
|
+
if (this.previousCycleMetrics) {
|
|
277
|
+
const worsened = metrics.platformSettlementRate < this.previousCycleMetrics.settlementRate - 0.02 ||
|
|
278
|
+
metrics.systemHealth < this.previousCycleMetrics.systemHealth - 3;
|
|
279
|
+
if (worsened) {
|
|
280
|
+
this.consecutiveWorseningCycles++;
|
|
281
|
+
if (this.consecutiveWorseningCycles >= this.config.circuitBreakerThreshold) {
|
|
282
|
+
this.circuitBreakerTripped = true;
|
|
283
|
+
proposals.push(this.createRecord("_circuit_breaker", this.consecutiveWorseningCycles, this.config.circuitBreakerThreshold, `Circuit breaker TRIPPED: ${this.consecutiveWorseningCycles} consecutive cycles worsened metrics.`, { prevSettlement: this.previousCycleMetrics.settlementRate, currentSettlement: metrics.platformSettlementRate }));
|
|
284
|
+
this.previousCycleMetrics = { settlementRate: metrics.platformSettlementRate, systemHealth: metrics.systemHealth };
|
|
285
|
+
this.adaptations.push(...proposals);
|
|
286
|
+
return proposals;
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
else {
|
|
290
|
+
this.consecutiveWorseningCycles = 0; // Reset on healthy cycle
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
this.previousCycleMetrics = { settlementRate: metrics.platformSettlementRate, systemHealth: metrics.systemHealth };
|
|
294
|
+
// ── Asymmetric AIMD: Adapt fee rate ──────────────────────────────
|
|
230
295
|
if (!this.isLocked("feeRate")) {
|
|
231
|
-
const currentRate = 0.019;
|
|
296
|
+
const currentRate = this.getEffectiveValue("feeRate", 0.019);
|
|
232
297
|
let targetRate = currentRate;
|
|
233
|
-
|
|
234
|
-
if (
|
|
235
|
-
|
|
298
|
+
const disputeRatio = metrics.disputedAgents / Math.max(metrics.totalAgents, 1);
|
|
299
|
+
if (disputeRatio > 0.1) {
|
|
300
|
+
// MULTIPLICATIVE DECREASE: fast tighten (increase fees to cover risk)
|
|
301
|
+
targetRate = currentRate * (1 + this.config.decreaseFactor);
|
|
236
302
|
}
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
targetRate = currentRate *
|
|
303
|
+
else if (metrics.platformSettlementRate > 0.9 && metrics.totalAgents >= 5) {
|
|
304
|
+
// ADDITIVE INCREASE: slow loosen (decrease fees as reward)
|
|
305
|
+
targetRate = currentRate - (currentRate * this.config.increaseFactor);
|
|
240
306
|
}
|
|
241
307
|
targetRate = this.clamp(targetRate, SECURE_BOUNDS.feeRate.min, SECURE_BOUNDS.feeRate.max);
|
|
242
308
|
targetRate = this.limitDelta(currentRate, targetRate);
|
|
243
309
|
if (Math.abs(targetRate - currentRate) > 0.0001) {
|
|
244
|
-
proposals.push(this.createRecord("feeRate", currentRate, targetRate,
|
|
245
|
-
? "
|
|
246
|
-
: "
|
|
310
|
+
proposals.push(this.createRecord("feeRate", currentRate, targetRate, disputeRatio > 0.1
|
|
311
|
+
? "AIMD multiplicative decrease: elevated disputes — increasing fees"
|
|
312
|
+
: "AIMD additive increase: healthy ecosystem — rewarding with lower fees", { settlementRate: metrics.platformSettlementRate, disputeRatio }));
|
|
247
313
|
}
|
|
248
314
|
}
|
|
249
|
-
// ── Adapt risk thresholds
|
|
315
|
+
// ── Asymmetric AIMD: Adapt risk thresholds ───────────────────────
|
|
250
316
|
if (!this.isLocked("blockThreshold")) {
|
|
251
|
-
const currentBlock = 0.75;
|
|
317
|
+
const currentBlock = this.getEffectiveValue("blockThreshold", 0.75);
|
|
252
318
|
let targetBlock = currentBlock;
|
|
253
|
-
// If fraud detection is catching too many (> 10% of charges), system may be too aggressive
|
|
254
319
|
if (metrics.fraudDetectionRate > 0.10) {
|
|
255
|
-
|
|
320
|
+
// ADDITIVE INCREASE: slowly loosen (reduce false positives)
|
|
321
|
+
targetBlock = currentBlock + (currentBlock * this.config.increaseFactor);
|
|
256
322
|
}
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
targetBlock = currentBlock * 0.
|
|
323
|
+
else if (metrics.fraudDetectionRate < 0.001 && metrics.totalAgents > 20) {
|
|
324
|
+
// MULTIPLICATIVE DECREASE: fast tighten (more safety)
|
|
325
|
+
targetBlock = currentBlock * (1 - this.config.decreaseFactor * 0.1);
|
|
260
326
|
}
|
|
261
327
|
targetBlock = this.clamp(targetBlock, SECURE_BOUNDS.blockThreshold.min, SECURE_BOUNDS.blockThreshold.max);
|
|
262
328
|
targetBlock = this.limitDelta(currentBlock, targetBlock);
|
|
263
329
|
if (Math.abs(targetBlock - currentBlock) > 0.001) {
|
|
264
330
|
proposals.push(this.createRecord("blockThreshold", currentBlock, targetBlock, metrics.fraudDetectionRate > 0.10
|
|
265
|
-
? "
|
|
266
|
-
: "
|
|
331
|
+
? "AIMD additive: loosening to reduce false positives"
|
|
332
|
+
: "AIMD multiplicative: tightening for safety", { fraudRate: metrics.fraudDetectionRate, totalAgents: metrics.totalAgents }));
|
|
267
333
|
}
|
|
268
334
|
}
|
|
269
335
|
this.adaptations.push(...proposals);
|
|
270
|
-
// Cap adaptation history at 1000 records
|
|
271
336
|
if (this.adaptations.length > 1000) {
|
|
272
337
|
this.adaptations = this.adaptations.slice(-500);
|
|
273
338
|
}
|
|
274
339
|
return proposals;
|
|
275
340
|
}
|
|
341
|
+
// ── Circuit Breaker Controls ──────────────────────────────────────
|
|
342
|
+
/** Reset the circuit breaker, allowing adaptation to resume. */
|
|
343
|
+
resetCircuitBreaker() {
|
|
344
|
+
this.circuitBreakerTripped = false;
|
|
345
|
+
this.consecutiveWorseningCycles = 0;
|
|
346
|
+
}
|
|
347
|
+
/** Check if circuit breaker is currently tripped. */
|
|
348
|
+
get isCircuitBreakerTripped() {
|
|
349
|
+
return this.circuitBreakerTripped;
|
|
350
|
+
}
|
|
351
|
+
// ── PSI (Population Stability Index) ──────────────────────────────
|
|
352
|
+
/**
|
|
353
|
+
* Compute the event type distribution for drift detection.
|
|
354
|
+
*/
|
|
355
|
+
computeEventDistribution() {
|
|
356
|
+
const dist = new Map();
|
|
357
|
+
const total = this.events.length || 1;
|
|
358
|
+
for (const e of this.events) {
|
|
359
|
+
dist.set(e.type, (dist.get(e.type) ?? 0) + 1);
|
|
360
|
+
}
|
|
361
|
+
// Normalize to proportions
|
|
362
|
+
for (const [key, val] of dist) {
|
|
363
|
+
dist.set(key, val / total);
|
|
364
|
+
}
|
|
365
|
+
return dist;
|
|
366
|
+
}
|
|
367
|
+
/**
|
|
368
|
+
* Compute Population Stability Index between two distributions.
|
|
369
|
+
* PSI > 0.1 = moderate drift, > 0.25 = severe drift.
|
|
370
|
+
*/
|
|
371
|
+
computePSI(prev, current) {
|
|
372
|
+
const allKeys = new Set([...prev.keys(), ...current.keys()]);
|
|
373
|
+
let psi = 0;
|
|
374
|
+
const epsilon = 0.0001; // prevent log(0)
|
|
375
|
+
for (const key of allKeys) {
|
|
376
|
+
const p = Math.max(prev.get(key) ?? 0, epsilon);
|
|
377
|
+
const q = Math.max(current.get(key) ?? 0, epsilon);
|
|
378
|
+
psi += (q - p) * Math.log(q / p);
|
|
379
|
+
}
|
|
380
|
+
return Math.abs(psi);
|
|
381
|
+
}
|
|
276
382
|
// ── Admin Controls ─────────────────────────────────────────────────────
|
|
277
383
|
/**
|
|
278
384
|
* Lock a parameter from adaptive changes. Admin decisions override AI.
|
|
@@ -325,14 +431,21 @@ class AdaptiveEngine {
|
|
|
325
431
|
get secureBounds() {
|
|
326
432
|
return SECURE_BOUNDS;
|
|
327
433
|
}
|
|
434
|
+
/** Backdate an agent's first-seen timestamp (for testing or data migration) */
|
|
435
|
+
setAgentFirstSeen(agentId, timestamp) {
|
|
436
|
+
this.agentFirstSeen.set(agentId, timestamp);
|
|
437
|
+
}
|
|
328
438
|
// ── Serialization ──────────────────────────────────────────────────────
|
|
329
439
|
serialize() {
|
|
330
440
|
return {
|
|
331
441
|
config: this.config,
|
|
332
442
|
insights: Array.from(this.insights.entries()),
|
|
333
|
-
adaptations: this.adaptations.slice(-200),
|
|
443
|
+
adaptations: this.adaptations.slice(-200),
|
|
334
444
|
overrides: Array.from(this.adminOverrides.entries()),
|
|
335
445
|
eventCount: this.eventCounter,
|
|
446
|
+
circuitBreakerTripped: this.circuitBreakerTripped,
|
|
447
|
+
consecutiveWorsening: this.consecutiveWorseningCycles,
|
|
448
|
+
agentFirstSeen: Array.from(this.agentFirstSeen.entries()),
|
|
336
449
|
};
|
|
337
450
|
}
|
|
338
451
|
static deserialize(data) {
|
|
@@ -349,6 +462,13 @@ class AdaptiveEngine {
|
|
|
349
462
|
engine.adminOverrides.set(key, val);
|
|
350
463
|
}
|
|
351
464
|
engine.eventCounter = data.eventCount ?? 0;
|
|
465
|
+
engine.circuitBreakerTripped = data.circuitBreakerTripped ?? false;
|
|
466
|
+
engine.consecutiveWorseningCycles = data.consecutiveWorsening ?? 0;
|
|
467
|
+
if (data.agentFirstSeen) {
|
|
468
|
+
for (const [id, ts] of data.agentFirstSeen) {
|
|
469
|
+
engine.agentFirstSeen.set(id, ts);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
352
472
|
return engine;
|
|
353
473
|
}
|
|
354
474
|
// ── Internal Utilities ─────────────────────────────────────────────────
|
package/dist/adaptive.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"adaptive.js","sourceRoot":"","sources":["../src/adaptive.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"adaptive.js","sourceRoot":"","sources":["../src/adaptive.ts"],"names":[],"mappings":"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"}
|