@timmeck/brain-core 2.36.64 → 2.36.65
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/command-center.html +59 -2
- package/dist/dashboard/command-center-server.d.ts +1 -0
- package/dist/dashboard/command-center-server.js +13 -1
- package/dist/dashboard/command-center-server.js.map +1 -1
- package/dist/governance/engine-registry.d.ts +61 -0
- package/dist/governance/engine-registry.js +301 -0
- package/dist/governance/engine-registry.js.map +1 -0
- package/dist/governance/governance-layer.d.ts +75 -0
- package/dist/governance/governance-layer.js +231 -0
- package/dist/governance/governance-layer.js.map +1 -0
- package/dist/governance/index.d.ts +8 -0
- package/dist/governance/index.js +5 -0
- package/dist/governance/index.js.map +1 -0
- package/dist/governance/loop-detector.d.ts +46 -0
- package/dist/governance/loop-detector.js +266 -0
- package/dist/governance/loop-detector.js.map +1 -0
- package/dist/governance/runtime-influence-tracker.d.ts +50 -0
- package/dist/governance/runtime-influence-tracker.js +163 -0
- package/dist/governance/runtime-influence-tracker.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.js +5 -0
- package/dist/index.js.map +1 -1
- package/dist/research/research-orchestrator.d.ts +12 -0
- package/dist/research/research-orchestrator.js +68 -0
- package/dist/research/research-orchestrator.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"engine-registry.js","sourceRoot":"","sources":["../../src/governance/engine-registry.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* GovernanceLayer — Active engine control with throttle, cooldown, isolate, escalate, restore.
|
|
3
|
+
* Responds to LoopDetector findings and MetaCognition grades.
|
|
4
|
+
*/
|
|
5
|
+
import type Database from 'better-sqlite3';
|
|
6
|
+
import type { LoopDetector } from './loop-detector.js';
|
|
7
|
+
import type { EngineRegistry } from './engine-registry.js';
|
|
8
|
+
export type GovernanceActionType = 'throttle' | 'cooldown' | 'isolate' | 'escalate' | 'restore';
|
|
9
|
+
export interface GovernanceAction {
|
|
10
|
+
id: number;
|
|
11
|
+
engine: string;
|
|
12
|
+
actionType: GovernanceActionType;
|
|
13
|
+
reason: string;
|
|
14
|
+
source: string;
|
|
15
|
+
expiresAt: string | null;
|
|
16
|
+
active: boolean;
|
|
17
|
+
cycle: number;
|
|
18
|
+
createdAt: string;
|
|
19
|
+
}
|
|
20
|
+
export interface GovernanceDecision {
|
|
21
|
+
engine: string;
|
|
22
|
+
action: GovernanceActionType;
|
|
23
|
+
reason: string;
|
|
24
|
+
}
|
|
25
|
+
export interface GovernanceLayerStatus {
|
|
26
|
+
totalActions: number;
|
|
27
|
+
activeActions: number;
|
|
28
|
+
byType: Record<GovernanceActionType, number>;
|
|
29
|
+
throttledEngines: string[];
|
|
30
|
+
isolatedEngines: string[];
|
|
31
|
+
}
|
|
32
|
+
export declare function runGovernanceMigration(db: Database.Database): void;
|
|
33
|
+
export declare class GovernanceLayer {
|
|
34
|
+
private db;
|
|
35
|
+
private log;
|
|
36
|
+
private loopDetector;
|
|
37
|
+
private engineRegistry;
|
|
38
|
+
private metaCognitionLayer;
|
|
39
|
+
private journalWriter;
|
|
40
|
+
constructor(db: Database.Database);
|
|
41
|
+
setLoopDetector(detector: LoopDetector): void;
|
|
42
|
+
setEngineRegistry(registry: EngineRegistry): void;
|
|
43
|
+
setMetaCognitionLayer(layer: {
|
|
44
|
+
evaluate: (windowCycles?: number) => Array<{
|
|
45
|
+
engine: string;
|
|
46
|
+
grade: string;
|
|
47
|
+
combined_score: number;
|
|
48
|
+
}>;
|
|
49
|
+
}): void;
|
|
50
|
+
setJournalWriter(writer: {
|
|
51
|
+
write: (entry: Record<string, unknown>) => void;
|
|
52
|
+
}): void;
|
|
53
|
+
/** Check if an engine should run this cycle. Respects throttle/cooldown/isolate. */
|
|
54
|
+
shouldRun(engineId: string, cycle: number): boolean;
|
|
55
|
+
/** Apply throttle — engine runs at reduced frequency. */
|
|
56
|
+
throttle(engineId: string, reason: string, cycle?: number, source?: string): void;
|
|
57
|
+
/** Apply cooldown — engine pauses for N cycles. */
|
|
58
|
+
cooldown(engineId: string, reason: string, cyclesToCool?: number, cycle?: number, source?: string): void;
|
|
59
|
+
/** Isolate — engine completely stopped, manual restore required. */
|
|
60
|
+
isolate(engineId: string, reason: string, cycle?: number, source?: string): void;
|
|
61
|
+
/** Escalate — log to journal + notification, no runtime change. */
|
|
62
|
+
escalate(engineId: string, reason: string, cycle?: number, source?: string): void;
|
|
63
|
+
/** Restore — re-enable an engine, clear active actions. */
|
|
64
|
+
restore(engineId: string, reason: string, cycle?: number, source?: string): void;
|
|
65
|
+
/** Periodic auto-governance review. */
|
|
66
|
+
review(cycle: number): GovernanceDecision[];
|
|
67
|
+
/** Get action history. */
|
|
68
|
+
getHistory(limit?: number): GovernanceAction[];
|
|
69
|
+
/** Get active actions for a specific engine. */
|
|
70
|
+
getActiveActions(engineId?: string): GovernanceAction[];
|
|
71
|
+
/** Get status summary. */
|
|
72
|
+
getStatus(): GovernanceLayerStatus;
|
|
73
|
+
private recordAction;
|
|
74
|
+
private rowToAction;
|
|
75
|
+
}
|
|
@@ -0,0 +1,231 @@
|
|
|
1
|
+
import { getLogger } from '../utils/logger.js';
|
|
2
|
+
// ── Migration ───────────────────────────────────────────
|
|
3
|
+
export function runGovernanceMigration(db) {
|
|
4
|
+
db.exec(`
|
|
5
|
+
CREATE TABLE IF NOT EXISTS governance_actions (
|
|
6
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
7
|
+
engine TEXT NOT NULL,
|
|
8
|
+
action_type TEXT NOT NULL,
|
|
9
|
+
reason TEXT NOT NULL,
|
|
10
|
+
source TEXT NOT NULL DEFAULT 'auto',
|
|
11
|
+
expires_at TEXT,
|
|
12
|
+
active INTEGER NOT NULL DEFAULT 1,
|
|
13
|
+
cycle INTEGER NOT NULL,
|
|
14
|
+
created_at TEXT DEFAULT (datetime('now'))
|
|
15
|
+
);
|
|
16
|
+
CREATE INDEX IF NOT EXISTS idx_governance_actions_engine ON governance_actions(engine, active);
|
|
17
|
+
`);
|
|
18
|
+
}
|
|
19
|
+
// ── GovernanceLayer ─────────────────────────────────────
|
|
20
|
+
export class GovernanceLayer {
|
|
21
|
+
db;
|
|
22
|
+
log = getLogger();
|
|
23
|
+
loopDetector = null;
|
|
24
|
+
engineRegistry = null;
|
|
25
|
+
metaCognitionLayer = null;
|
|
26
|
+
journalWriter = null;
|
|
27
|
+
constructor(db) {
|
|
28
|
+
this.db = db;
|
|
29
|
+
runGovernanceMigration(db);
|
|
30
|
+
}
|
|
31
|
+
setLoopDetector(detector) { this.loopDetector = detector; }
|
|
32
|
+
setEngineRegistry(registry) { this.engineRegistry = registry; }
|
|
33
|
+
setMetaCognitionLayer(layer) { this.metaCognitionLayer = layer; }
|
|
34
|
+
setJournalWriter(writer) { this.journalWriter = writer; }
|
|
35
|
+
/** Check if an engine should run this cycle. Respects throttle/cooldown/isolate. */
|
|
36
|
+
shouldRun(engineId, cycle) {
|
|
37
|
+
// Check for active isolate
|
|
38
|
+
const isolated = this.db.prepare("SELECT id FROM governance_actions WHERE engine = ? AND action_type = 'isolate' AND active = 1 LIMIT 1").get(engineId);
|
|
39
|
+
if (isolated)
|
|
40
|
+
return false;
|
|
41
|
+
// Check for active cooldown (with expiry check)
|
|
42
|
+
const cooldown = this.db.prepare("SELECT id, expires_at FROM governance_actions WHERE engine = ? AND action_type = 'cooldown' AND active = 1 LIMIT 1").get(engineId);
|
|
43
|
+
if (cooldown) {
|
|
44
|
+
if (cooldown.expires_at) {
|
|
45
|
+
const now = new Date().toISOString();
|
|
46
|
+
if (now < cooldown.expires_at)
|
|
47
|
+
return false;
|
|
48
|
+
// Expired → auto-restore
|
|
49
|
+
this.db.prepare('UPDATE governance_actions SET active = 0 WHERE id = ?').run(cooldown.id);
|
|
50
|
+
}
|
|
51
|
+
else {
|
|
52
|
+
return false;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
// Check for throttle (skip every Nth cycle)
|
|
56
|
+
const throttle = this.db.prepare("SELECT id FROM governance_actions WHERE engine = ? AND action_type = 'throttle' AND active = 1 LIMIT 1").get(engineId);
|
|
57
|
+
if (throttle && cycle % 2 !== 0)
|
|
58
|
+
return false; // throttle = skip odd cycles
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
/** Apply throttle — engine runs at reduced frequency. */
|
|
62
|
+
throttle(engineId, reason, cycle = 0, source = 'auto') {
|
|
63
|
+
this.recordAction(engineId, 'throttle', reason, source, null, cycle);
|
|
64
|
+
}
|
|
65
|
+
/** Apply cooldown — engine pauses for N cycles. */
|
|
66
|
+
cooldown(engineId, reason, cyclesToCool = 10, cycle = 0, source = 'auto') {
|
|
67
|
+
const expiresAt = new Date(Date.now() + cyclesToCool * 60_000).toISOString(); // ~1min per cycle
|
|
68
|
+
this.recordAction(engineId, 'cooldown', reason, source, expiresAt, cycle);
|
|
69
|
+
}
|
|
70
|
+
/** Isolate — engine completely stopped, manual restore required. */
|
|
71
|
+
isolate(engineId, reason, cycle = 0, source = 'auto') {
|
|
72
|
+
this.recordAction(engineId, 'isolate', reason, source, null, cycle);
|
|
73
|
+
if (this.engineRegistry)
|
|
74
|
+
this.engineRegistry.disable(engineId);
|
|
75
|
+
}
|
|
76
|
+
/** Escalate — log to journal + notification, no runtime change. */
|
|
77
|
+
escalate(engineId, reason, cycle = 0, source = 'auto') {
|
|
78
|
+
this.recordAction(engineId, 'escalate', reason, source, null, cycle);
|
|
79
|
+
if (this.journalWriter) {
|
|
80
|
+
this.journalWriter.write({
|
|
81
|
+
title: `Governance Escalation: ${engineId}`,
|
|
82
|
+
content: reason,
|
|
83
|
+
type: 'insight',
|
|
84
|
+
significance: 'critical',
|
|
85
|
+
tags: ['governance', 'escalation', engineId],
|
|
86
|
+
references: [],
|
|
87
|
+
data: { engine: engineId, source },
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
/** Restore — re-enable an engine, clear active actions. */
|
|
92
|
+
restore(engineId, reason, cycle = 0, source = 'auto') {
|
|
93
|
+
this.db.prepare('UPDATE governance_actions SET active = 0 WHERE engine = ? AND active = 1').run(engineId);
|
|
94
|
+
this.recordAction(engineId, 'restore', reason, source, null, cycle);
|
|
95
|
+
if (this.engineRegistry)
|
|
96
|
+
this.engineRegistry.enable(engineId);
|
|
97
|
+
this.log.info(`[governance] Restored: ${engineId} — ${reason}`);
|
|
98
|
+
}
|
|
99
|
+
/** Periodic auto-governance review. */
|
|
100
|
+
review(cycle) {
|
|
101
|
+
const decisions = [];
|
|
102
|
+
// 1. LoopDetector findings
|
|
103
|
+
if (this.loopDetector) {
|
|
104
|
+
const active = this.loopDetector.getActive();
|
|
105
|
+
for (const detection of active) {
|
|
106
|
+
for (const engine of detection.enginesInvolved) {
|
|
107
|
+
switch (detection.loopType) {
|
|
108
|
+
case 'retrigger_spiral':
|
|
109
|
+
decisions.push({ engine, action: 'throttle', reason: detection.description });
|
|
110
|
+
this.throttle(engine, detection.description, cycle);
|
|
111
|
+
break;
|
|
112
|
+
case 'stagnation':
|
|
113
|
+
decisions.push({ engine, action: 'cooldown', reason: detection.description });
|
|
114
|
+
this.cooldown(engine, detection.description, 10, cycle);
|
|
115
|
+
break;
|
|
116
|
+
case 'kpi_gaming':
|
|
117
|
+
decisions.push({ engine, action: 'escalate', reason: detection.description });
|
|
118
|
+
this.escalate(engine, detection.description, cycle);
|
|
119
|
+
break;
|
|
120
|
+
case 'epistemic_drift':
|
|
121
|
+
decisions.push({ engine, action: 'isolate', reason: detection.description });
|
|
122
|
+
this.isolate(engine, detection.description, cycle);
|
|
123
|
+
break;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
// 2. MetaCognition Grade F 3× in a row → cooldown
|
|
129
|
+
if (this.metaCognitionLayer) {
|
|
130
|
+
try {
|
|
131
|
+
const fEngines = this.db.prepare(`
|
|
132
|
+
SELECT engine, COUNT(*) as f_count FROM engine_report_cards
|
|
133
|
+
WHERE grade = 'F' AND rowid > (SELECT MAX(rowid) - 30 FROM engine_report_cards)
|
|
134
|
+
GROUP BY engine HAVING f_count >= 3
|
|
135
|
+
`).all();
|
|
136
|
+
for (const { engine, f_count } of fEngines) {
|
|
137
|
+
// Check if already has active action
|
|
138
|
+
const existing = this.db.prepare('SELECT id FROM governance_actions WHERE engine = ? AND active = 1 LIMIT 1').get(engine);
|
|
139
|
+
if (!existing) {
|
|
140
|
+
decisions.push({ engine, action: 'cooldown', reason: `Grade F ${f_count}× in recent evaluations` });
|
|
141
|
+
this.cooldown(engine, `Grade F ${f_count}× in recent evaluations`, 15, cycle);
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
catch {
|
|
146
|
+
// engine_report_cards may not exist
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
// 3. Expire old cooldowns
|
|
150
|
+
const expired = this.db.prepare("SELECT DISTINCT engine FROM governance_actions WHERE action_type = 'cooldown' AND active = 1 AND expires_at IS NOT NULL AND expires_at < datetime('now')").all();
|
|
151
|
+
for (const { engine } of expired) {
|
|
152
|
+
decisions.push({ engine, action: 'restore', reason: 'Cooldown expired' });
|
|
153
|
+
this.restore(engine, 'Cooldown expired', cycle);
|
|
154
|
+
}
|
|
155
|
+
// 4. Multiple throttles → escalate to isolate
|
|
156
|
+
try {
|
|
157
|
+
const multiThrottle = this.db.prepare(`
|
|
158
|
+
SELECT engine, COUNT(*) as t_count FROM governance_actions
|
|
159
|
+
WHERE action_type = 'throttle' AND cycle > ? - 50
|
|
160
|
+
GROUP BY engine HAVING t_count >= 3
|
|
161
|
+
`).all(cycle);
|
|
162
|
+
for (const { engine, t_count } of multiThrottle) {
|
|
163
|
+
const isIsolated = this.db.prepare("SELECT id FROM governance_actions WHERE engine = ? AND action_type = 'isolate' AND active = 1 LIMIT 1").get(engine);
|
|
164
|
+
if (!isIsolated) {
|
|
165
|
+
decisions.push({ engine, action: 'isolate', reason: `${t_count} throttles in recent cycles — escalating` });
|
|
166
|
+
this.isolate(engine, `${t_count} throttles in recent cycles — escalating to isolate`, cycle);
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
catch { /* ignore */ }
|
|
171
|
+
if (decisions.length > 0) {
|
|
172
|
+
this.log.info(`[governance] Review cycle ${cycle}: ${decisions.length} decisions`);
|
|
173
|
+
}
|
|
174
|
+
return decisions;
|
|
175
|
+
}
|
|
176
|
+
/** Get action history. */
|
|
177
|
+
getHistory(limit = 50) {
|
|
178
|
+
const rows = this.db.prepare('SELECT * FROM governance_actions ORDER BY id DESC LIMIT ?').all(limit);
|
|
179
|
+
return rows.map(r => this.rowToAction(r));
|
|
180
|
+
}
|
|
181
|
+
/** Get active actions for a specific engine. */
|
|
182
|
+
getActiveActions(engineId) {
|
|
183
|
+
const sql = engineId
|
|
184
|
+
? 'SELECT * FROM governance_actions WHERE active = 1 AND engine = ? ORDER BY id DESC'
|
|
185
|
+
: 'SELECT * FROM governance_actions WHERE active = 1 ORDER BY id DESC';
|
|
186
|
+
const rows = (engineId
|
|
187
|
+
? this.db.prepare(sql).all(engineId)
|
|
188
|
+
: this.db.prepare(sql).all());
|
|
189
|
+
return rows.map(r => this.rowToAction(r));
|
|
190
|
+
}
|
|
191
|
+
/** Get status summary. */
|
|
192
|
+
getStatus() {
|
|
193
|
+
const total = this.db.prepare('SELECT COUNT(*) as c FROM governance_actions').get().c;
|
|
194
|
+
const active = this.db.prepare('SELECT COUNT(*) as c FROM governance_actions WHERE active = 1').get().c;
|
|
195
|
+
const byTypeRows = this.db.prepare('SELECT action_type, COUNT(*) as c FROM governance_actions WHERE active = 1 GROUP BY action_type').all();
|
|
196
|
+
const byType = { throttle: 0, cooldown: 0, isolate: 0, escalate: 0, restore: 0 };
|
|
197
|
+
for (const r of byTypeRows)
|
|
198
|
+
byType[r.action_type] = r.c;
|
|
199
|
+
const throttled = this.db.prepare("SELECT DISTINCT engine FROM governance_actions WHERE action_type = 'throttle' AND active = 1").all();
|
|
200
|
+
const isolated = this.db.prepare("SELECT DISTINCT engine FROM governance_actions WHERE action_type = 'isolate' AND active = 1").all();
|
|
201
|
+
return {
|
|
202
|
+
totalActions: total,
|
|
203
|
+
activeActions: active,
|
|
204
|
+
byType: byType,
|
|
205
|
+
throttledEngines: throttled.map(r => r.engine),
|
|
206
|
+
isolatedEngines: isolated.map(r => r.engine),
|
|
207
|
+
};
|
|
208
|
+
}
|
|
209
|
+
// ── Private ─────────────────────────────────────────────
|
|
210
|
+
recordAction(engine, actionType, reason, source, expiresAt, cycle) {
|
|
211
|
+
this.db.prepare(`
|
|
212
|
+
INSERT INTO governance_actions (engine, action_type, reason, source, expires_at, active, cycle)
|
|
213
|
+
VALUES (?, ?, ?, ?, ?, 1, ?)
|
|
214
|
+
`).run(engine, actionType, reason, source, expiresAt, cycle);
|
|
215
|
+
this.log.info(`[governance] ${actionType} → ${engine}: ${reason}`);
|
|
216
|
+
}
|
|
217
|
+
rowToAction(row) {
|
|
218
|
+
return {
|
|
219
|
+
id: row.id,
|
|
220
|
+
engine: row.engine,
|
|
221
|
+
actionType: row.action_type,
|
|
222
|
+
reason: row.reason,
|
|
223
|
+
source: row.source,
|
|
224
|
+
expiresAt: row.expires_at,
|
|
225
|
+
active: row.active === 1,
|
|
226
|
+
cycle: row.cycle,
|
|
227
|
+
createdAt: row.created_at,
|
|
228
|
+
};
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
//# sourceMappingURL=governance-layer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"governance-layer.js","sourceRoot":"","sources":["../../src/governance/governance-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { EngineRegistry, runEngineRegistryMigration, getDefaultEngineProfiles } from './engine-registry.js';
|
|
2
|
+
export type { EngineProfile, EngineRegistryStatus } from './engine-registry.js';
|
|
3
|
+
export { RuntimeInfluenceTracker, runRuntimeInfluenceMigration } from './runtime-influence-tracker.js';
|
|
4
|
+
export type { InfluenceEdge, InfluenceGraph, RuntimeInfluenceStatus } from './runtime-influence-tracker.js';
|
|
5
|
+
export { LoopDetector, runLoopDetectorMigration } from './loop-detector.js';
|
|
6
|
+
export type { LoopDetection, LoopType, LoopSeverity, LoopDetectorStatus } from './loop-detector.js';
|
|
7
|
+
export { GovernanceLayer, runGovernanceMigration } from './governance-layer.js';
|
|
8
|
+
export type { GovernanceAction, GovernanceActionType, GovernanceDecision, GovernanceLayerStatus } from './governance-layer.js';
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { EngineRegistry, runEngineRegistryMigration, getDefaultEngineProfiles } from './engine-registry.js';
|
|
2
|
+
export { RuntimeInfluenceTracker, runRuntimeInfluenceMigration } from './runtime-influence-tracker.js';
|
|
3
|
+
export { LoopDetector, runLoopDetectorMigration } from './loop-detector.js';
|
|
4
|
+
export { GovernanceLayer, runGovernanceMigration } from './governance-layer.js';
|
|
5
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/governance/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAG5G,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,gCAAgC,CAAC;AAGvG,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAG5E,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LoopDetector — Anti-pattern detection for the engine ecosystem.
|
|
3
|
+
* Detects: retrigger spirals, stagnation, KPI gaming, epistemic drift.
|
|
4
|
+
*/
|
|
5
|
+
import type Database from 'better-sqlite3';
|
|
6
|
+
import type { RuntimeInfluenceTracker } from './runtime-influence-tracker.js';
|
|
7
|
+
export type LoopType = 'retrigger_spiral' | 'stagnation' | 'kpi_gaming' | 'epistemic_drift';
|
|
8
|
+
export type LoopSeverity = 'low' | 'medium' | 'high' | 'critical';
|
|
9
|
+
export interface LoopDetection {
|
|
10
|
+
id: number;
|
|
11
|
+
loopType: LoopType;
|
|
12
|
+
severity: LoopSeverity;
|
|
13
|
+
enginesInvolved: string[];
|
|
14
|
+
description: string;
|
|
15
|
+
evidence: Record<string, unknown>;
|
|
16
|
+
cycle: number;
|
|
17
|
+
resolved: boolean;
|
|
18
|
+
createdAt: string;
|
|
19
|
+
}
|
|
20
|
+
export interface LoopDetectorStatus {
|
|
21
|
+
totalDetections: number;
|
|
22
|
+
activeDetections: number;
|
|
23
|
+
byType: Record<LoopType, number>;
|
|
24
|
+
}
|
|
25
|
+
export declare function runLoopDetectorMigration(db: Database.Database): void;
|
|
26
|
+
export declare class LoopDetector {
|
|
27
|
+
private db;
|
|
28
|
+
private log;
|
|
29
|
+
private influenceTracker;
|
|
30
|
+
constructor(db: Database.Database);
|
|
31
|
+
setInfluenceTracker(tracker: RuntimeInfluenceTracker): void;
|
|
32
|
+
/** Run all 4 detectors and record findings. Returns new detections. */
|
|
33
|
+
detect(cycle: number): LoopDetection[];
|
|
34
|
+
/** Get all active (unresolved) detections. */
|
|
35
|
+
getActive(): LoopDetection[];
|
|
36
|
+
/** Resolve a detection. */
|
|
37
|
+
resolve(id: number): void;
|
|
38
|
+
/** Get status summary. */
|
|
39
|
+
getStatus(): LoopDetectorStatus;
|
|
40
|
+
private detectRetriggerSpirals;
|
|
41
|
+
private detectStagnation;
|
|
42
|
+
private detectKpiGaming;
|
|
43
|
+
private detectEpistemicDrift;
|
|
44
|
+
private record;
|
|
45
|
+
private rowToDetection;
|
|
46
|
+
}
|