@timmeck/brain-core 2.26.0 → 2.28.0
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/causal/engine.d.ts +47 -0
- package/dist/causal/engine.js +142 -0
- package/dist/causal/engine.js.map +1 -1
- package/dist/codegen/code-generator.d.ts +17 -0
- package/dist/codegen/code-generator.js +61 -0
- package/dist/codegen/code-generator.js.map +1 -1
- package/dist/codegen/index.d.ts +1 -0
- package/dist/codegen/index.js.map +1 -1
- package/dist/curiosity/curiosity-engine.d.ts +29 -0
- package/dist/curiosity/curiosity-engine.js +147 -0
- package/dist/curiosity/curiosity-engine.js.map +1 -1
- package/dist/curiosity/index.d.ts +1 -1
- package/dist/debate/debate-engine.d.ts +27 -0
- package/dist/debate/debate-engine.js +169 -0
- package/dist/debate/debate-engine.js.map +1 -1
- package/dist/debate/index.d.ts +1 -1
- package/dist/dream/dream-engine.d.ts +16 -1
- package/dist/dream/dream-engine.js +190 -0
- package/dist/dream/dream-engine.js.map +1 -1
- package/dist/dream/index.d.ts +1 -1
- package/dist/dream/types.d.ts +18 -0
- package/dist/emergence/emergence-engine.d.ts +19 -0
- package/dist/emergence/emergence-engine.js +118 -0
- package/dist/emergence/emergence-engine.js.map +1 -1
- package/dist/goals/goal-engine.d.ts +127 -0
- package/dist/goals/goal-engine.js +386 -0
- package/dist/goals/goal-engine.js.map +1 -0
- package/dist/goals/index.d.ts +2 -0
- package/dist/goals/index.js +2 -0
- package/dist/goals/index.js.map +1 -0
- package/dist/hypothesis/engine.d.ts +38 -0
- package/dist/hypothesis/engine.js +167 -0
- package/dist/hypothesis/engine.js.map +1 -1
- package/dist/index.d.ts +19 -6
- package/dist/index.js +9 -0
- package/dist/index.js.map +1 -1
- package/dist/memory-palace/index.d.ts +2 -0
- package/dist/memory-palace/index.js +2 -0
- package/dist/memory-palace/index.js.map +1 -0
- package/dist/memory-palace/memory-palace.d.ts +150 -0
- package/dist/memory-palace/memory-palace.js +479 -0
- package/dist/memory-palace/memory-palace.js.map +1 -0
- package/dist/metacognition/index.d.ts +7 -1
- package/dist/metacognition/index.js +3 -0
- package/dist/metacognition/index.js.map +1 -1
- package/dist/metacognition/meta-cognition-layer.d.ts +50 -0
- package/dist/metacognition/meta-cognition-layer.js +190 -0
- package/dist/metacognition/meta-cognition-layer.js.map +1 -1
- package/dist/metacognition/self-test-engine.d.ts +52 -0
- package/dist/metacognition/self-test-engine.js +210 -0
- package/dist/metacognition/self-test-engine.js.map +1 -0
- package/dist/metacognition/simulation-engine.d.ts +71 -0
- package/dist/metacognition/simulation-engine.js +267 -0
- package/dist/metacognition/simulation-engine.js.map +1 -0
- package/dist/metacognition/teach-engine.d.ts +63 -0
- package/dist/metacognition/teach-engine.js +185 -0
- package/dist/metacognition/teach-engine.js.map +1 -0
- package/dist/research/data-scout.d.ts +68 -0
- package/dist/research/data-scout.js +254 -0
- package/dist/research/data-scout.js.map +1 -0
- package/dist/research/research-orchestrator.d.ts +24 -0
- package/dist/research/research-orchestrator.js +331 -0
- package/dist/research/research-orchestrator.js.map +1 -1
- package/dist/transfer/index.d.ts +1 -1
- package/dist/transfer/transfer-engine.d.ts +38 -0
- package/dist/transfer/transfer-engine.js +138 -0
- package/dist/transfer/transfer-engine.js.map +1 -1
- package/package.json +1 -1
|
@@ -37,6 +37,21 @@ export function runMetaCognitionMigration(db) {
|
|
|
37
37
|
reason TEXT NOT NULL,
|
|
38
38
|
created_at TEXT DEFAULT (datetime('now'))
|
|
39
39
|
);
|
|
40
|
+
|
|
41
|
+
CREATE TABLE IF NOT EXISTS meta_trends (
|
|
42
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
43
|
+
cycle INTEGER NOT NULL,
|
|
44
|
+
learning_rate REAL NOT NULL DEFAULT 0,
|
|
45
|
+
discovery_rate REAL NOT NULL DEFAULT 0,
|
|
46
|
+
knowledge_quality REAL NOT NULL DEFAULT 0,
|
|
47
|
+
gap_closure_rate REAL NOT NULL DEFAULT 0,
|
|
48
|
+
total_principles INTEGER NOT NULL DEFAULT 0,
|
|
49
|
+
total_hypotheses INTEGER NOT NULL DEFAULT 0,
|
|
50
|
+
prediction_accuracy REAL NOT NULL DEFAULT 0,
|
|
51
|
+
emergence_count INTEGER NOT NULL DEFAULT 0,
|
|
52
|
+
timestamp TEXT DEFAULT (datetime('now'))
|
|
53
|
+
);
|
|
54
|
+
CREATE INDEX IF NOT EXISTS idx_meta_trends_cycle ON meta_trends(cycle);
|
|
40
55
|
`);
|
|
41
56
|
}
|
|
42
57
|
// ── MetaCognition Layer ─────────────────────────────────
|
|
@@ -182,6 +197,179 @@ export class MetaCognitionLayer {
|
|
|
182
197
|
FROM engine_report_cards WHERE engine = ? ORDER BY id DESC LIMIT ?
|
|
183
198
|
`).all(engine, limit);
|
|
184
199
|
}
|
|
200
|
+
// ── Meta-Trends ────────────────────────────────────────
|
|
201
|
+
/** Record a trend data point for the current cycle. */
|
|
202
|
+
recordTrend(cycle, stats) {
|
|
203
|
+
const learningRate = cycle > 0 ? stats.newPrinciples / cycle : 0;
|
|
204
|
+
const discoveryRate = cycle > 0 ? stats.newHypotheses / cycle : 0;
|
|
205
|
+
const knowledgeQuality = stats.totalPrinciples > 0
|
|
206
|
+
? Math.min(1, stats.predictionAccuracy * 0.5 + (stats.totalPrinciples / Math.max(stats.totalHypotheses, 1)) * 0.5)
|
|
207
|
+
: 0;
|
|
208
|
+
const gapClosureRate = cycle > 0 ? stats.closedGaps / cycle : 0;
|
|
209
|
+
this.db.prepare(`
|
|
210
|
+
INSERT INTO meta_trends (cycle, learning_rate, discovery_rate, knowledge_quality, gap_closure_rate,
|
|
211
|
+
total_principles, total_hypotheses, prediction_accuracy, emergence_count)
|
|
212
|
+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?)
|
|
213
|
+
`).run(cycle, learningRate, discoveryRate, knowledgeQuality, gapClosureRate, stats.totalPrinciples, stats.totalHypotheses, stats.predictionAccuracy, stats.emergenceCount);
|
|
214
|
+
this.log.debug(`[metacognition] Recorded trend for cycle ${cycle}: lr=${learningRate.toFixed(4)}, dr=${discoveryRate.toFixed(4)}`);
|
|
215
|
+
}
|
|
216
|
+
/** Get trend data from the last N cycles. */
|
|
217
|
+
getMetaTrend(windowCycles = 20) {
|
|
218
|
+
const rows = this.db.prepare(`
|
|
219
|
+
SELECT cycle, learning_rate, discovery_rate, knowledge_quality, gap_closure_rate,
|
|
220
|
+
total_principles, total_hypotheses, prediction_accuracy, emergence_count, timestamp
|
|
221
|
+
FROM meta_trends ORDER BY cycle DESC LIMIT ?
|
|
222
|
+
`).all(windowCycles);
|
|
223
|
+
return rows.map(r => this.toMetaTrend(r)).reverse(); // Chronological order
|
|
224
|
+
}
|
|
225
|
+
/** Long-term analysis: aggregate over a time period and determine trend direction. */
|
|
226
|
+
getLongTermAnalysis(days = 7) {
|
|
227
|
+
const rows = this.db.prepare(`
|
|
228
|
+
SELECT learning_rate, discovery_rate, knowledge_quality, gap_closure_rate
|
|
229
|
+
FROM meta_trends
|
|
230
|
+
WHERE timestamp >= datetime('now', '-' || ? || ' days')
|
|
231
|
+
ORDER BY cycle ASC
|
|
232
|
+
`).all(days);
|
|
233
|
+
if (rows.length === 0) {
|
|
234
|
+
return {
|
|
235
|
+
days,
|
|
236
|
+
avgLearningRate: 0,
|
|
237
|
+
avgDiscoveryRate: 0,
|
|
238
|
+
avgKnowledgeQuality: 0,
|
|
239
|
+
avgGapClosureRate: 0,
|
|
240
|
+
trendDirection: 'stagnating',
|
|
241
|
+
peakLearningRate: 0,
|
|
242
|
+
peakDiscoveryRate: 0,
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
let sumLR = 0, sumDR = 0, sumKQ = 0, sumGCR = 0;
|
|
246
|
+
let peakLR = 0, peakDR = 0;
|
|
247
|
+
for (const r of rows) {
|
|
248
|
+
const lr = r.learning_rate;
|
|
249
|
+
const dr = r.discovery_rate;
|
|
250
|
+
const kq = r.knowledge_quality;
|
|
251
|
+
const gcr = r.gap_closure_rate;
|
|
252
|
+
sumLR += lr;
|
|
253
|
+
sumDR += dr;
|
|
254
|
+
sumKQ += kq;
|
|
255
|
+
sumGCR += gcr;
|
|
256
|
+
peakLR = Math.max(peakLR, lr);
|
|
257
|
+
peakDR = Math.max(peakDR, dr);
|
|
258
|
+
}
|
|
259
|
+
const n = rows.length;
|
|
260
|
+
const avgLR = sumLR / n;
|
|
261
|
+
const avgDR = sumDR / n;
|
|
262
|
+
const avgKQ = sumKQ / n;
|
|
263
|
+
const avgGCR = sumGCR / n;
|
|
264
|
+
// Determine direction by comparing first half vs second half
|
|
265
|
+
const mid = Math.floor(n / 2);
|
|
266
|
+
let trendDirection = 'stagnating';
|
|
267
|
+
if (mid > 0 && n - mid > 0) {
|
|
268
|
+
let firstHalfAvg = 0, secondHalfAvg = 0;
|
|
269
|
+
for (let i = 0; i < mid; i++) {
|
|
270
|
+
firstHalfAvg += rows[i].knowledge_quality;
|
|
271
|
+
}
|
|
272
|
+
firstHalfAvg /= mid;
|
|
273
|
+
for (let i = mid; i < n; i++) {
|
|
274
|
+
secondHalfAvg += rows[i].knowledge_quality;
|
|
275
|
+
}
|
|
276
|
+
secondHalfAvg /= (n - mid);
|
|
277
|
+
const diff = secondHalfAvg - firstHalfAvg;
|
|
278
|
+
if (diff > 0.05)
|
|
279
|
+
trendDirection = 'rising';
|
|
280
|
+
else if (diff < -0.05)
|
|
281
|
+
trendDirection = 'falling';
|
|
282
|
+
else
|
|
283
|
+
trendDirection = 'stagnating';
|
|
284
|
+
}
|
|
285
|
+
return {
|
|
286
|
+
days,
|
|
287
|
+
avgLearningRate: avgLR,
|
|
288
|
+
avgDiscoveryRate: avgDR,
|
|
289
|
+
avgKnowledgeQuality: avgKQ,
|
|
290
|
+
avgGapClosureRate: avgGCR,
|
|
291
|
+
trendDirection,
|
|
292
|
+
peakLearningRate: peakLR,
|
|
293
|
+
peakDiscoveryRate: peakDR,
|
|
294
|
+
};
|
|
295
|
+
}
|
|
296
|
+
/** Detect seasonal patterns: which hours/days produce the best metrics. */
|
|
297
|
+
detectSeasonalPatterns() {
|
|
298
|
+
const patterns = [];
|
|
299
|
+
const metrics = ['learning_rate', 'discovery_rate', 'knowledge_quality', 'gap_closure_rate'];
|
|
300
|
+
for (const metric of metrics) {
|
|
301
|
+
// Peak hour of day
|
|
302
|
+
const hourPeak = this.db.prepare(`
|
|
303
|
+
SELECT CAST(strftime('%H', timestamp) AS INTEGER) as hour, AVG(${metric}) as avg_val
|
|
304
|
+
FROM meta_trends
|
|
305
|
+
GROUP BY hour
|
|
306
|
+
ORDER BY avg_val DESC
|
|
307
|
+
LIMIT 1
|
|
308
|
+
`).get();
|
|
309
|
+
// Peak day of week (0=Sunday, 6=Saturday)
|
|
310
|
+
const dayPeak = this.db.prepare(`
|
|
311
|
+
SELECT CAST(strftime('%w', timestamp) AS INTEGER) as dow, AVG(${metric}) as avg_val
|
|
312
|
+
FROM meta_trends
|
|
313
|
+
GROUP BY dow
|
|
314
|
+
ORDER BY avg_val DESC
|
|
315
|
+
LIMIT 1
|
|
316
|
+
`).get();
|
|
317
|
+
if (hourPeak && dayPeak) {
|
|
318
|
+
patterns.push({
|
|
319
|
+
metric: metric.replace(/_/g, ' '),
|
|
320
|
+
peakHour: hourPeak.hour,
|
|
321
|
+
peakDayOfWeek: dayPeak.dow,
|
|
322
|
+
avgAtPeak: hourPeak.avg_val,
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
return patterns;
|
|
327
|
+
}
|
|
328
|
+
// ── Meta-Trend Helpers ─────────────────────────────────
|
|
329
|
+
toMetaTrend(row) {
|
|
330
|
+
return {
|
|
331
|
+
cycle: row.cycle,
|
|
332
|
+
learningRate: row.learning_rate,
|
|
333
|
+
discoveryRate: row.discovery_rate,
|
|
334
|
+
knowledgeQuality: row.knowledge_quality,
|
|
335
|
+
gapClosureRate: row.gap_closure_rate,
|
|
336
|
+
totalPrinciples: row.total_principles,
|
|
337
|
+
totalHypotheses: row.total_hypotheses,
|
|
338
|
+
predictionAccuracy: row.prediction_accuracy,
|
|
339
|
+
emergenceCount: row.emergence_count,
|
|
340
|
+
timestamp: row.timestamp,
|
|
341
|
+
};
|
|
342
|
+
}
|
|
343
|
+
getLatestTrend() {
|
|
344
|
+
const row = this.db.prepare(`
|
|
345
|
+
SELECT cycle, learning_rate, discovery_rate, knowledge_quality, gap_closure_rate,
|
|
346
|
+
total_principles, total_hypotheses, prediction_accuracy, emergence_count, timestamp
|
|
347
|
+
FROM meta_trends ORDER BY cycle DESC LIMIT 1
|
|
348
|
+
`).get();
|
|
349
|
+
return row ? this.toMetaTrend(row) : null;
|
|
350
|
+
}
|
|
351
|
+
getCurrentTrendDirection() {
|
|
352
|
+
const rows = this.db.prepare(`
|
|
353
|
+
SELECT knowledge_quality FROM meta_trends ORDER BY cycle DESC LIMIT 10
|
|
354
|
+
`).all();
|
|
355
|
+
if (rows.length < 4)
|
|
356
|
+
return 'stagnating';
|
|
357
|
+
const mid = Math.floor(rows.length / 2);
|
|
358
|
+
// rows are DESC, so first half = recent, second half = older
|
|
359
|
+
let recentAvg = 0, olderAvg = 0;
|
|
360
|
+
for (let i = 0; i < mid; i++)
|
|
361
|
+
recentAvg += rows[i].knowledge_quality;
|
|
362
|
+
recentAvg /= mid;
|
|
363
|
+
for (let i = mid; i < rows.length; i++)
|
|
364
|
+
olderAvg += rows[i].knowledge_quality;
|
|
365
|
+
olderAvg /= (rows.length - mid);
|
|
366
|
+
const diff = recentAvg - olderAvg;
|
|
367
|
+
if (diff > 0.05)
|
|
368
|
+
return 'rising';
|
|
369
|
+
if (diff < -0.05)
|
|
370
|
+
return 'falling';
|
|
371
|
+
return 'stagnating';
|
|
372
|
+
}
|
|
185
373
|
/** Get status summary. */
|
|
186
374
|
getStatus() {
|
|
187
375
|
const cards = this.getLatestReportCards();
|
|
@@ -195,6 +383,8 @@ export class MetaCognitionLayer {
|
|
|
195
383
|
reportCards: cards,
|
|
196
384
|
recentAdjustments: recentAdj,
|
|
197
385
|
cycleMetrics: totalMetrics,
|
|
386
|
+
latestTrend: this.getLatestTrend(),
|
|
387
|
+
trendDirection: this.getCurrentTrendDirection(),
|
|
198
388
|
};
|
|
199
389
|
}
|
|
200
390
|
scoreToGrade(score) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"meta-cognition-layer.js","sourceRoot":"","sources":["../../src/metacognition/meta-cognition-layer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"meta-cognition-layer.js","sourceRoot":"","sources":["../../src/metacognition/meta-cognition-layer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import type Database from 'better-sqlite3';
|
|
2
|
+
import type { ThoughtStream } from '../consciousness/thought-stream.js';
|
|
3
|
+
import type { KnowledgeDistiller } from '../research/knowledge-distiller.js';
|
|
4
|
+
import type { PredictionEngine } from '../prediction/prediction-engine.js';
|
|
5
|
+
import type { HypothesisEngine } from '../hypothesis/engine.js';
|
|
6
|
+
export interface SelfTest {
|
|
7
|
+
id?: number;
|
|
8
|
+
principleStatement: string;
|
|
9
|
+
derivedPrediction: string;
|
|
10
|
+
predictionResult: 'untested' | 'confirmed' | 'contradicted' | 'inconclusive';
|
|
11
|
+
understandingDepth: number;
|
|
12
|
+
testedAt: string;
|
|
13
|
+
}
|
|
14
|
+
export interface UnderstandingReport {
|
|
15
|
+
totalTested: number;
|
|
16
|
+
deepUnderstanding: number;
|
|
17
|
+
shallowUnderstanding: number;
|
|
18
|
+
untested: number;
|
|
19
|
+
avgDepth: number;
|
|
20
|
+
weakestPrinciples: SelfTest[];
|
|
21
|
+
}
|
|
22
|
+
export interface SelfTestStatus {
|
|
23
|
+
totalTests: number;
|
|
24
|
+
confirmed: number;
|
|
25
|
+
contradicted: number;
|
|
26
|
+
inconclusive: number;
|
|
27
|
+
avgDepth: number;
|
|
28
|
+
}
|
|
29
|
+
export declare function runSelfTestMigration(db: Database.Database): void;
|
|
30
|
+
export declare class SelfTestEngine {
|
|
31
|
+
private db;
|
|
32
|
+
private log;
|
|
33
|
+
private thoughtStream;
|
|
34
|
+
private distiller;
|
|
35
|
+
private predictionEngine;
|
|
36
|
+
private hypothesisEngine;
|
|
37
|
+
constructor(db: Database.Database);
|
|
38
|
+
setThoughtStream(stream: ThoughtStream): void;
|
|
39
|
+
setKnowledgeDistiller(distiller: KnowledgeDistiller): void;
|
|
40
|
+
setPredictionEngine(engine: PredictionEngine): void;
|
|
41
|
+
setHypothesisEngine(engine: HypothesisEngine): void;
|
|
42
|
+
/** Test if brain truly understands a principle by checking predictions + hypotheses. */
|
|
43
|
+
testPrinciple(statement: string): SelfTest;
|
|
44
|
+
/** Test all confirmed principles from KnowledgeDistiller. */
|
|
45
|
+
testAll(): SelfTest[];
|
|
46
|
+
/** Generate an understanding report. */
|
|
47
|
+
getUnderstandingReport(): UnderstandingReport;
|
|
48
|
+
/** Get status summary. */
|
|
49
|
+
getStatus(): SelfTestStatus;
|
|
50
|
+
private toSelfTest;
|
|
51
|
+
private extractKeywords;
|
|
52
|
+
}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import { getLogger } from '../utils/logger.js';
|
|
2
|
+
// ── Migration ───────────────────────────────────────────
|
|
3
|
+
export function runSelfTestMigration(db) {
|
|
4
|
+
db.exec(`
|
|
5
|
+
CREATE TABLE IF NOT EXISTS self_tests (
|
|
6
|
+
id INTEGER PRIMARY KEY AUTOINCREMENT,
|
|
7
|
+
principle_statement TEXT NOT NULL,
|
|
8
|
+
derived_prediction TEXT NOT NULL DEFAULT '',
|
|
9
|
+
prediction_result TEXT NOT NULL DEFAULT 'untested',
|
|
10
|
+
understanding_depth REAL NOT NULL DEFAULT 0,
|
|
11
|
+
tested_at TEXT DEFAULT (datetime('now'))
|
|
12
|
+
);
|
|
13
|
+
CREATE INDEX IF NOT EXISTS idx_self_tests_result ON self_tests(prediction_result);
|
|
14
|
+
`);
|
|
15
|
+
}
|
|
16
|
+
// ── Engine ──────────────────────────────────────────────
|
|
17
|
+
export class SelfTestEngine {
|
|
18
|
+
db;
|
|
19
|
+
log = getLogger();
|
|
20
|
+
thoughtStream = null;
|
|
21
|
+
distiller = null;
|
|
22
|
+
predictionEngine = null;
|
|
23
|
+
hypothesisEngine = null;
|
|
24
|
+
constructor(db) {
|
|
25
|
+
this.db = db;
|
|
26
|
+
runSelfTestMigration(db);
|
|
27
|
+
}
|
|
28
|
+
setThoughtStream(stream) {
|
|
29
|
+
this.thoughtStream = stream;
|
|
30
|
+
}
|
|
31
|
+
setKnowledgeDistiller(distiller) {
|
|
32
|
+
this.distiller = distiller;
|
|
33
|
+
}
|
|
34
|
+
setPredictionEngine(engine) {
|
|
35
|
+
this.predictionEngine = engine;
|
|
36
|
+
}
|
|
37
|
+
setHypothesisEngine(engine) {
|
|
38
|
+
this.hypothesisEngine = engine;
|
|
39
|
+
}
|
|
40
|
+
/** Test if brain truly understands a principle by checking predictions + hypotheses. */
|
|
41
|
+
testPrinciple(statement) {
|
|
42
|
+
const keywords = this.extractKeywords(statement);
|
|
43
|
+
let matchingConfirmed = 0;
|
|
44
|
+
let matchingPredictions = 0;
|
|
45
|
+
let hypothesisConfidence = 0;
|
|
46
|
+
let derivedPrediction = '';
|
|
47
|
+
// 1. Check predictions that match the principle keywords
|
|
48
|
+
if (this.predictionEngine) {
|
|
49
|
+
try {
|
|
50
|
+
const predictions = this.predictionEngine.list(undefined, undefined, 100);
|
|
51
|
+
for (const pred of predictions) {
|
|
52
|
+
const predText = `${pred.metric} ${pred.reasoning ?? ''}`.toLowerCase();
|
|
53
|
+
const matchCount = keywords.filter(kw => predText.includes(kw)).length;
|
|
54
|
+
if (matchCount >= 1) {
|
|
55
|
+
matchingPredictions++;
|
|
56
|
+
if (pred.status === 'correct') {
|
|
57
|
+
matchingConfirmed++;
|
|
58
|
+
if (!derivedPrediction) {
|
|
59
|
+
derivedPrediction = `Prediction "${pred.metric}" (${pred.predicted_direction}) matches this principle`;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
catch { /* predictions table might not exist */ }
|
|
66
|
+
}
|
|
67
|
+
// 2. Check hypotheses that relate to this principle
|
|
68
|
+
if (this.hypothesisEngine) {
|
|
69
|
+
try {
|
|
70
|
+
const hypotheses = this.hypothesisEngine.list(undefined, 100);
|
|
71
|
+
let totalConf = 0;
|
|
72
|
+
let matchCount = 0;
|
|
73
|
+
for (const hyp of hypotheses) {
|
|
74
|
+
const hypText = `${hyp.statement} ${hyp.type}`.toLowerCase();
|
|
75
|
+
const kwMatches = keywords.filter(kw => hypText.includes(kw)).length;
|
|
76
|
+
if (kwMatches >= 1) {
|
|
77
|
+
matchCount++;
|
|
78
|
+
totalConf += hyp.confidence;
|
|
79
|
+
if (hyp.status === 'confirmed' && !derivedPrediction) {
|
|
80
|
+
derivedPrediction = `Hypothesis "${hyp.statement}" confirms understanding`;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
hypothesisConfidence = matchCount > 0 ? totalConf / matchCount : 0;
|
|
85
|
+
}
|
|
86
|
+
catch { /* hypotheses table might not exist */ }
|
|
87
|
+
}
|
|
88
|
+
// 3. Calculate understanding depth
|
|
89
|
+
// depth = (matchingConfirmed * 0.5 + matchingPredictions * 0.3 + hypothesisConfidence * 0.2) normalized 0-1
|
|
90
|
+
const rawDepth = matchingConfirmed * 0.5 + matchingPredictions * 0.3 + hypothesisConfidence * 0.2;
|
|
91
|
+
const understandingDepth = Math.min(1, Math.max(0, rawDepth));
|
|
92
|
+
// 4. Determine result
|
|
93
|
+
let predictionResult;
|
|
94
|
+
if (understandingDepth >= 0.6) {
|
|
95
|
+
predictionResult = 'confirmed';
|
|
96
|
+
}
|
|
97
|
+
else if (understandingDepth <= 0.2) {
|
|
98
|
+
predictionResult = 'contradicted';
|
|
99
|
+
}
|
|
100
|
+
else {
|
|
101
|
+
predictionResult = 'inconclusive';
|
|
102
|
+
}
|
|
103
|
+
if (!derivedPrediction) {
|
|
104
|
+
derivedPrediction = `Depth ${understandingDepth.toFixed(2)}: ${matchingPredictions} predictions, ${matchingConfirmed} confirmed, hypothesis confidence ${hypothesisConfidence.toFixed(2)}`;
|
|
105
|
+
}
|
|
106
|
+
// 5. Persist
|
|
107
|
+
const result = this.db.prepare(`
|
|
108
|
+
INSERT INTO self_tests (principle_statement, derived_prediction, prediction_result, understanding_depth)
|
|
109
|
+
VALUES (?, ?, ?, ?)
|
|
110
|
+
`).run(statement, derivedPrediction, predictionResult, understandingDepth);
|
|
111
|
+
const selfTest = {
|
|
112
|
+
id: result.lastInsertRowid,
|
|
113
|
+
principleStatement: statement,
|
|
114
|
+
derivedPrediction: derivedPrediction,
|
|
115
|
+
predictionResult,
|
|
116
|
+
understandingDepth,
|
|
117
|
+
testedAt: new Date().toISOString(),
|
|
118
|
+
};
|
|
119
|
+
// 6. Emit thought
|
|
120
|
+
this.thoughtStream?.emit('self-test', 'reflecting', `Self-tested principle: "${statement.slice(0, 80)}..." → ${predictionResult} (depth: ${understandingDepth.toFixed(2)})`, predictionResult === 'confirmed' ? 'notable' : 'routine');
|
|
121
|
+
this.log.debug(`[self-test] Tested: "${statement.slice(0, 60)}..." → ${predictionResult} (depth=${understandingDepth.toFixed(3)})`);
|
|
122
|
+
return selfTest;
|
|
123
|
+
}
|
|
124
|
+
/** Test all confirmed principles from KnowledgeDistiller. */
|
|
125
|
+
testAll() {
|
|
126
|
+
if (!this.distiller)
|
|
127
|
+
return [];
|
|
128
|
+
const principles = this.distiller.getPrinciples(undefined, 100);
|
|
129
|
+
const results = [];
|
|
130
|
+
for (const p of principles) {
|
|
131
|
+
const test = this.testPrinciple(p.statement);
|
|
132
|
+
results.push(test);
|
|
133
|
+
}
|
|
134
|
+
this.log.info(`[self-test] Tested ${results.length} principles: ${results.filter(t => t.predictionResult === 'confirmed').length} confirmed, ${results.filter(t => t.predictionResult === 'contradicted').length} contradicted`);
|
|
135
|
+
return results;
|
|
136
|
+
}
|
|
137
|
+
/** Generate an understanding report. */
|
|
138
|
+
getUnderstandingReport() {
|
|
139
|
+
const allTests = this.db.prepare(`
|
|
140
|
+
SELECT * FROM self_tests ORDER BY tested_at DESC
|
|
141
|
+
`).all();
|
|
142
|
+
const tests = allTests.map(r => this.toSelfTest(r));
|
|
143
|
+
const confirmed = tests.filter(t => t.predictionResult === 'confirmed');
|
|
144
|
+
const contradicted = tests.filter(t => t.predictionResult === 'contradicted');
|
|
145
|
+
const inconclusive = tests.filter(t => t.predictionResult === 'inconclusive');
|
|
146
|
+
const untested = tests.filter(t => t.predictionResult === 'untested');
|
|
147
|
+
const avgDepth = tests.length > 0
|
|
148
|
+
? tests.reduce((s, t) => s + t.understandingDepth, 0) / tests.length
|
|
149
|
+
: 0;
|
|
150
|
+
// Weakest = lowest depth, exclude untested
|
|
151
|
+
const testedTests = tests.filter(t => t.predictionResult !== 'untested');
|
|
152
|
+
testedTests.sort((a, b) => a.understandingDepth - b.understandingDepth);
|
|
153
|
+
return {
|
|
154
|
+
totalTested: testedTests.length,
|
|
155
|
+
deepUnderstanding: confirmed.length,
|
|
156
|
+
shallowUnderstanding: inconclusive.length,
|
|
157
|
+
untested: untested.length,
|
|
158
|
+
avgDepth,
|
|
159
|
+
weakestPrinciples: testedTests.slice(0, 5),
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
/** Get status summary. */
|
|
163
|
+
getStatus() {
|
|
164
|
+
const total = this.db.prepare('SELECT COUNT(*) as c FROM self_tests').get().c;
|
|
165
|
+
const confirmed = this.db.prepare("SELECT COUNT(*) as c FROM self_tests WHERE prediction_result = 'confirmed'").get().c;
|
|
166
|
+
const contradicted = this.db.prepare("SELECT COUNT(*) as c FROM self_tests WHERE prediction_result = 'contradicted'").get().c;
|
|
167
|
+
const inconclusive = this.db.prepare("SELECT COUNT(*) as c FROM self_tests WHERE prediction_result = 'inconclusive'").get().c;
|
|
168
|
+
const avgRow = this.db.prepare('SELECT AVG(understanding_depth) as avg FROM self_tests').get();
|
|
169
|
+
return {
|
|
170
|
+
totalTests: total,
|
|
171
|
+
confirmed,
|
|
172
|
+
contradicted,
|
|
173
|
+
inconclusive,
|
|
174
|
+
avgDepth: avgRow.avg ?? 0,
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
// ── Private ─────────────────────────────────────────────
|
|
178
|
+
toSelfTest(row) {
|
|
179
|
+
return {
|
|
180
|
+
id: row.id,
|
|
181
|
+
principleStatement: row.principle_statement,
|
|
182
|
+
derivedPrediction: row.derived_prediction,
|
|
183
|
+
predictionResult: row.prediction_result,
|
|
184
|
+
understandingDepth: row.understanding_depth,
|
|
185
|
+
testedAt: row.tested_at,
|
|
186
|
+
};
|
|
187
|
+
}
|
|
188
|
+
extractKeywords(statement) {
|
|
189
|
+
const stopwords = new Set([
|
|
190
|
+
'the', 'a', 'an', 'is', 'are', 'was', 'were', 'be', 'been', 'being',
|
|
191
|
+
'have', 'has', 'had', 'do', 'does', 'did', 'will', 'would', 'could',
|
|
192
|
+
'should', 'may', 'might', 'can', 'shall', 'to', 'of', 'in', 'for',
|
|
193
|
+
'on', 'with', 'at', 'by', 'from', 'as', 'into', 'through', 'during',
|
|
194
|
+
'before', 'after', 'above', 'below', 'between', 'out', 'off', 'over',
|
|
195
|
+
'under', 'again', 'further', 'then', 'once', 'here', 'there', 'when',
|
|
196
|
+
'where', 'why', 'how', 'all', 'each', 'every', 'both', 'few', 'more',
|
|
197
|
+
'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own',
|
|
198
|
+
'same', 'so', 'than', 'too', 'very', 'just', 'because', 'but', 'and',
|
|
199
|
+
'or', 'if', 'while', 'that', 'this', 'these', 'those', 'it', 'its',
|
|
200
|
+
'der', 'die', 'das', 'ein', 'eine', 'und', 'oder', 'aber', 'wenn',
|
|
201
|
+
'ist', 'sind', 'war', 'hat', 'mit', 'auf', 'fur', 'von', 'bei',
|
|
202
|
+
]);
|
|
203
|
+
return statement
|
|
204
|
+
.toLowerCase()
|
|
205
|
+
.replace(/[^a-z0-9\s_-]/g, ' ')
|
|
206
|
+
.split(/\s+/)
|
|
207
|
+
.filter(w => w.length > 2 && !stopwords.has(w));
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
//# sourceMappingURL=self-test-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"self-test-engine.js","sourceRoot":"","sources":["../../src/metacognition/self-test-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import type Database from 'better-sqlite3';
|
|
2
|
+
import type { ThoughtStream } from '../consciousness/thought-stream.js';
|
|
3
|
+
import type { PredictionEngine } from '../prediction/prediction-engine.js';
|
|
4
|
+
import type { CausalGraph } from '../causal/engine.js';
|
|
5
|
+
import type { MetaCognitionLayer } from './meta-cognition-layer.js';
|
|
6
|
+
export interface SimulationOutcome {
|
|
7
|
+
metric: string;
|
|
8
|
+
predicted: number;
|
|
9
|
+
direction: 'increase' | 'decrease' | 'stable';
|
|
10
|
+
confidence: number;
|
|
11
|
+
}
|
|
12
|
+
export interface Simulation {
|
|
13
|
+
id?: number;
|
|
14
|
+
scenario: string;
|
|
15
|
+
parameters: Record<string, unknown>;
|
|
16
|
+
predictedOutcomes: SimulationOutcome[];
|
|
17
|
+
actualOutcomes: SimulationOutcome[] | null;
|
|
18
|
+
accuracy: number | null;
|
|
19
|
+
simulatedAt: string;
|
|
20
|
+
validatedAt: string | null;
|
|
21
|
+
}
|
|
22
|
+
export interface SimulationStatus {
|
|
23
|
+
totalSimulations: number;
|
|
24
|
+
validatedCount: number;
|
|
25
|
+
avgAccuracy: number;
|
|
26
|
+
recentSimulations: Simulation[];
|
|
27
|
+
}
|
|
28
|
+
export declare function runSimulationMigration(db: Database.Database): void;
|
|
29
|
+
export declare class SimulationEngine {
|
|
30
|
+
private db;
|
|
31
|
+
private thoughtStream;
|
|
32
|
+
private predictionEngine;
|
|
33
|
+
private causalGraph;
|
|
34
|
+
private metaCognition;
|
|
35
|
+
private log;
|
|
36
|
+
constructor(db: Database.Database);
|
|
37
|
+
setThoughtStream(stream: ThoughtStream): void;
|
|
38
|
+
setPredictionEngine(engine: PredictionEngine): void;
|
|
39
|
+
setCausalGraph(graph: CausalGraph): void;
|
|
40
|
+
setMetaCognitionLayer(layer: MetaCognitionLayer): void;
|
|
41
|
+
/**
|
|
42
|
+
* Simulate a scenario: parse key metrics, find downstream causal effects,
|
|
43
|
+
* predict directions and magnitudes, persist and return.
|
|
44
|
+
*/
|
|
45
|
+
simulate(scenario: string): Simulation;
|
|
46
|
+
/** Shortcut: simulate what happens when a metric changes by a multiplier. */
|
|
47
|
+
whatIf(metric: string, multiplier: number): Simulation;
|
|
48
|
+
/** Validate a simulation against actual outcomes. */
|
|
49
|
+
validateSimulation(id: number, actualOutcomes: SimulationOutcome[]): Simulation | null;
|
|
50
|
+
/** List recent simulations. */
|
|
51
|
+
listSimulations(limit?: number): Simulation[];
|
|
52
|
+
/** Get overall accuracy metrics. */
|
|
53
|
+
getAccuracy(): {
|
|
54
|
+
avgAccuracy: number;
|
|
55
|
+
validatedCount: number;
|
|
56
|
+
totalSimulations: number;
|
|
57
|
+
};
|
|
58
|
+
/** Get status summary. */
|
|
59
|
+
getStatus(): SimulationStatus;
|
|
60
|
+
private toSimulation;
|
|
61
|
+
/**
|
|
62
|
+
* Parse a scenario string into metric+multiplier pairs.
|
|
63
|
+
* Supports patterns like:
|
|
64
|
+
* "error_rate doubles" → { metric: 'error_rate', multiplier: 2 }
|
|
65
|
+
* "error_rate triples" → { metric: 'error_rate', multiplier: 3 }
|
|
66
|
+
* "error_rate halves" → { metric: 'error_rate', multiplier: 0.5 }
|
|
67
|
+
* "error_rate increases by 50%" → { metric: 'error_rate', multiplier: 1.5 }
|
|
68
|
+
* "error_rate decreases by 30%" → { metric: 'error_rate', multiplier: 0.7 }
|
|
69
|
+
*/
|
|
70
|
+
private parseScenario;
|
|
71
|
+
}
|