@timmeck/brain-core 2.26.0 → 2.27.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.
Files changed (56) hide show
  1. package/dist/causal/engine.d.ts +47 -0
  2. package/dist/causal/engine.js +142 -0
  3. package/dist/causal/engine.js.map +1 -1
  4. package/dist/codegen/code-generator.d.ts +17 -0
  5. package/dist/codegen/code-generator.js +61 -0
  6. package/dist/codegen/code-generator.js.map +1 -1
  7. package/dist/codegen/index.d.ts +1 -0
  8. package/dist/codegen/index.js.map +1 -1
  9. package/dist/curiosity/curiosity-engine.d.ts +29 -0
  10. package/dist/curiosity/curiosity-engine.js +147 -0
  11. package/dist/curiosity/curiosity-engine.js.map +1 -1
  12. package/dist/curiosity/index.d.ts +1 -1
  13. package/dist/debate/debate-engine.d.ts +27 -0
  14. package/dist/debate/debate-engine.js +169 -0
  15. package/dist/debate/debate-engine.js.map +1 -1
  16. package/dist/debate/index.d.ts +1 -1
  17. package/dist/dream/dream-engine.d.ts +16 -1
  18. package/dist/dream/dream-engine.js +190 -0
  19. package/dist/dream/dream-engine.js.map +1 -1
  20. package/dist/dream/index.d.ts +1 -1
  21. package/dist/dream/types.d.ts +18 -0
  22. package/dist/emergence/emergence-engine.d.ts +19 -0
  23. package/dist/emergence/emergence-engine.js +118 -0
  24. package/dist/emergence/emergence-engine.js.map +1 -1
  25. package/dist/hypothesis/engine.d.ts +38 -0
  26. package/dist/hypothesis/engine.js +167 -0
  27. package/dist/hypothesis/engine.js.map +1 -1
  28. package/dist/index.d.ts +15 -6
  29. package/dist/index.js +5 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/metacognition/index.d.ts +7 -1
  32. package/dist/metacognition/index.js +3 -0
  33. package/dist/metacognition/index.js.map +1 -1
  34. package/dist/metacognition/meta-cognition-layer.d.ts +50 -0
  35. package/dist/metacognition/meta-cognition-layer.js +190 -0
  36. package/dist/metacognition/meta-cognition-layer.js.map +1 -1
  37. package/dist/metacognition/self-test-engine.d.ts +52 -0
  38. package/dist/metacognition/self-test-engine.js +210 -0
  39. package/dist/metacognition/self-test-engine.js.map +1 -0
  40. package/dist/metacognition/simulation-engine.d.ts +71 -0
  41. package/dist/metacognition/simulation-engine.js +267 -0
  42. package/dist/metacognition/simulation-engine.js.map +1 -0
  43. package/dist/metacognition/teach-engine.d.ts +63 -0
  44. package/dist/metacognition/teach-engine.js +185 -0
  45. package/dist/metacognition/teach-engine.js.map +1 -0
  46. package/dist/research/data-scout.d.ts +68 -0
  47. package/dist/research/data-scout.js +254 -0
  48. package/dist/research/data-scout.js.map +1 -0
  49. package/dist/research/research-orchestrator.d.ts +16 -0
  50. package/dist/research/research-orchestrator.js +244 -0
  51. package/dist/research/research-orchestrator.js.map +1 -1
  52. package/dist/transfer/index.d.ts +1 -1
  53. package/dist/transfer/transfer-engine.d.ts +38 -0
  54. package/dist/transfer/transfer-engine.js +138 -0
  55. package/dist/transfer/transfer-engine.js.map +1 -1
  56. package/package.json +1 -1
@@ -40,6 +40,19 @@ export function runCuriosityMigration(db) {
40
40
  timestamp TEXT DEFAULT (datetime('now'))
41
41
  );
42
42
  CREATE INDEX IF NOT EXISTS idx_curiosity_explorations_topic ON curiosity_explorations(topic);
43
+
44
+ CREATE TABLE IF NOT EXISTS blind_spots (
45
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
46
+ topic TEXT NOT NULL,
47
+ hypothesis_count INTEGER NOT NULL DEFAULT 0,
48
+ prediction_count INTEGER NOT NULL DEFAULT 0,
49
+ journal_count INTEGER NOT NULL DEFAULT 0,
50
+ experiment_count INTEGER NOT NULL DEFAULT 0,
51
+ severity REAL NOT NULL DEFAULT 0,
52
+ detected_at TEXT DEFAULT (datetime('now')),
53
+ resolved_at TEXT
54
+ );
55
+ CREATE INDEX IF NOT EXISTS idx_blind_spots_severity ON blind_spots(severity DESC);
43
56
  `);
44
57
  }
45
58
  // ── Engine ──────────────────────────────────────────────
@@ -65,6 +78,11 @@ export class CuriosityEngine {
65
78
  stmtGetExplorations;
66
79
  stmtGetTopicStats;
67
80
  stmtTotalExplorations;
81
+ stmtInsertBlindSpot;
82
+ stmtUpdateBlindSpot;
83
+ stmtGetBlindSpots;
84
+ stmtResolveBlindSpot;
85
+ stmtBlindSpotCount;
68
86
  constructor(db, config) {
69
87
  this.db = db;
70
88
  this.config = {
@@ -113,6 +131,17 @@ export class CuriosityEngine {
113
131
  GROUP BY topic
114
132
  `);
115
133
  this.stmtTotalExplorations = db.prepare('SELECT COUNT(*) as cnt FROM curiosity_explorations');
134
+ this.stmtInsertBlindSpot = db.prepare(`
135
+ INSERT OR REPLACE INTO blind_spots (topic, hypothesis_count, prediction_count, journal_count, experiment_count, severity, detected_at, resolved_at)
136
+ VALUES (?, ?, ?, ?, ?, ?, datetime('now'), NULL)
137
+ `);
138
+ this.stmtUpdateBlindSpot = db.prepare(`
139
+ UPDATE blind_spots SET hypothesis_count = ?, prediction_count = ?, journal_count = ?, experiment_count = ?, severity = ?
140
+ WHERE id = ?
141
+ `);
142
+ this.stmtGetBlindSpots = db.prepare('SELECT * FROM blind_spots WHERE resolved_at IS NULL ORDER BY severity DESC LIMIT ?');
143
+ this.stmtResolveBlindSpot = db.prepare("UPDATE blind_spots SET resolved_at = datetime('now') WHERE id = ?");
144
+ this.stmtBlindSpotCount = db.prepare('SELECT COUNT(*) as cnt FROM blind_spots WHERE resolved_at IS NULL');
116
145
  this.log.debug(`[CuriosityEngine] Initialized for ${this.config.brainName}`);
117
146
  }
118
147
  // ── Setters ──────────────────────────────────────────
@@ -369,6 +398,108 @@ export class CuriosityEngine {
369
398
  }
370
399
  return surprises.sort((a, b) => b.deviation - a.deviation);
371
400
  }
401
+ // ── Core: Blind Spot Detection ──────────────────────
402
+ /**
403
+ * Detect blind spots: topics that exist across attention/journal/hypotheses/experiments
404
+ * but have very low coverage in one or more of those dimensions.
405
+ * severity = 1 - avg(normalized counts). Topics with severity > 0.7 are blind spots.
406
+ */
407
+ detectBlindSpots() {
408
+ this.ts?.emit('curiosity', 'analyzing', 'Scanning for blind spots...', 'routine');
409
+ const blindSpots = [];
410
+ const topicsToCheck = this.gatherTopics();
411
+ // Gather counts per topic across all data sources
412
+ const topicData = new Map();
413
+ for (const topic of topicsToCheck) {
414
+ const data = { hypotheses: 0, predictions: 0, journal: 0, experiments: 0 };
415
+ // Count hypotheses mentioning this topic
416
+ if (this.sources.hypothesisEngine) {
417
+ try {
418
+ const all = this.sources.hypothesisEngine.list(undefined, 100);
419
+ data.hypotheses = all.filter(h => h.statement.toLowerCase().includes(topic.toLowerCase())).length;
420
+ }
421
+ catch { /* not wired */ }
422
+ }
423
+ // Count journal entries (via narrative engine)
424
+ if (this.sources.narrativeEngine) {
425
+ try {
426
+ const explanation = this.sources.narrativeEngine.explain(topic);
427
+ data.journal = explanation.sources?.length ?? 0;
428
+ }
429
+ catch { /* not wired */ }
430
+ }
431
+ // Count experiments
432
+ if (this.sources.experimentEngine) {
433
+ try {
434
+ const allExps = this.sources.experimentEngine.list(undefined, 100);
435
+ data.experiments = allExps.filter(e => e.name.toLowerCase().includes(topic.toLowerCase()) ||
436
+ e.hypothesis.toLowerCase().includes(topic.toLowerCase())).length;
437
+ }
438
+ catch { /* not wired */ }
439
+ }
440
+ // Count predictions (from hypotheses with type 'prediction' or tested status)
441
+ if (this.sources.hypothesisEngine) {
442
+ try {
443
+ const all = this.sources.hypothesisEngine.list(undefined, 100);
444
+ data.predictions = all.filter(h => h.statement.toLowerCase().includes(topic.toLowerCase()) &&
445
+ (h.status === 'confirmed' || h.status === 'rejected')).length;
446
+ }
447
+ catch { /* not wired */ }
448
+ }
449
+ topicData.set(topic, data);
450
+ }
451
+ // Find max counts for normalization
452
+ let maxHypotheses = 0, maxPredictions = 0, maxJournal = 0, maxExperiments = 0;
453
+ for (const data of topicData.values()) {
454
+ maxHypotheses = Math.max(maxHypotheses, data.hypotheses);
455
+ maxPredictions = Math.max(maxPredictions, data.predictions);
456
+ maxJournal = Math.max(maxJournal, data.journal);
457
+ maxExperiments = Math.max(maxExperiments, data.experiments);
458
+ }
459
+ // Normalize and compute severity
460
+ for (const [topic, data] of topicData) {
461
+ const normHypotheses = maxHypotheses > 0 ? data.hypotheses / maxHypotheses : 0;
462
+ const normPredictions = maxPredictions > 0 ? data.predictions / maxPredictions : 0;
463
+ const normJournal = maxJournal > 0 ? data.journal / maxJournal : 0;
464
+ const normExperiments = maxExperiments > 0 ? data.experiments / maxExperiments : 0;
465
+ const avgNormalized = (normHypotheses + normPredictions + normJournal + normExperiments) / 4;
466
+ const severity = 1 - avgNormalized;
467
+ if (severity > 0.7) {
468
+ // Check if already exists (by topic)
469
+ const existing = this.db.prepare('SELECT id FROM blind_spots WHERE topic = ? AND resolved_at IS NULL').get(topic);
470
+ if (existing) {
471
+ this.stmtUpdateBlindSpot.run(data.hypotheses, data.predictions, data.journal, data.experiments, severity, existing.id);
472
+ }
473
+ else {
474
+ this.stmtInsertBlindSpot.run(topic, data.hypotheses, data.predictions, data.journal, data.experiments, severity);
475
+ }
476
+ blindSpots.push({
477
+ topic,
478
+ hypothesisCount: data.hypotheses,
479
+ predictionCount: data.predictions,
480
+ journalCount: data.journal,
481
+ experimentCount: data.experiments,
482
+ severity,
483
+ detectedAt: new Date().toISOString(),
484
+ resolvedAt: null,
485
+ });
486
+ }
487
+ }
488
+ if (blindSpots.length > 0) {
489
+ this.ts?.emit('curiosity', 'discovering', `Found ${blindSpots.length} blind spot(s)`, blindSpots.some(b => b.severity > 0.9) ? 'notable' : 'routine');
490
+ }
491
+ return blindSpots.sort((a, b) => b.severity - a.severity);
492
+ }
493
+ /** Get unresolved blind spots sorted by severity. */
494
+ getBlindSpots(limit = 10) {
495
+ const rows = this.stmtGetBlindSpots.all(limit);
496
+ return rows.map(r => this.toBlindSpot(r));
497
+ }
498
+ /** Mark a blind spot as resolved. */
499
+ resolveBlindSpot(id) {
500
+ const changes = this.stmtResolveBlindSpot.run(id).changes;
501
+ return changes > 0;
502
+ }
372
503
  // ── Query Methods ────────────────────────────────────
373
504
  getGaps(limit = 10) {
374
505
  const rows = this.stmtListGaps.all(limit);
@@ -413,6 +544,7 @@ export class CuriosityEngine {
413
544
  const exploreCount = this.db.prepare("SELECT COUNT(*) as cnt FROM curiosity_explorations WHERE action = 'explore'").get().cnt;
414
545
  const exploitCount = this.db.prepare("SELECT COUNT(*) as cnt FROM curiosity_explorations WHERE action = 'exploit'").get().cnt;
415
546
  const total = exploreCount + exploitCount;
547
+ const blindSpotCount = this.stmtBlindSpotCount.get().cnt;
416
548
  return {
417
549
  totalGaps: totalGaps.cnt,
418
550
  activeGaps: activeGaps.cnt,
@@ -422,6 +554,8 @@ export class CuriosityEngine {
422
554
  explorationRate: total > 0 ? exploreCount / total : 0,
423
555
  topGaps: this.getGaps(5),
424
556
  topArms: this.getArms().sort((a, b) => b.averageReward - a.averageReward).slice(0, 5),
557
+ blindSpots: blindSpotCount,
558
+ topBlindSpots: this.getBlindSpots(5),
425
559
  uptime: Date.now() - this.startTime,
426
560
  };
427
561
  }
@@ -682,5 +816,18 @@ export class CuriosityEngine {
682
816
  answeredAt: row.answered_at || null,
683
817
  };
684
818
  }
819
+ toBlindSpot(row) {
820
+ return {
821
+ id: row.id,
822
+ topic: row.topic,
823
+ hypothesisCount: row.hypothesis_count || 0,
824
+ predictionCount: row.prediction_count || 0,
825
+ journalCount: row.journal_count || 0,
826
+ experimentCount: row.experiment_count || 0,
827
+ severity: row.severity,
828
+ detectedAt: row.detected_at,
829
+ resolvedAt: row.resolved_at || null,
830
+ };
831
+ }
685
832
  }
686
833
  //# sourceMappingURL=curiosity-engine.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"curiosity-engine.js","sourceRoot":"","sources":["../../src/curiosity/curiosity-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"curiosity-engine.js","sourceRoot":"","sources":["../../src/curiosity/curiosity-engine.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export { CuriosityEngine, runCuriosityMigration } from './curiosity-engine.js';
2
- export type { CuriosityEngineConfig, CuriosityDataSources, KnowledgeGap, GapType, CuriosityQuestion, QuestionType, ExplorationRecord, BanditArm, CuriosityStatus, ExplorationDecision, } from './curiosity-engine.js';
2
+ export type { CuriosityEngineConfig, CuriosityDataSources, KnowledgeGap, GapType, CuriosityQuestion, QuestionType, ExplorationRecord, BanditArm, BlindSpot, CuriosityStatus, ExplorationDecision, } from './curiosity-engine.js';
@@ -68,8 +68,21 @@ export interface DebateEngineStatus {
68
68
  avgConfidence: number;
69
69
  avgParticipants: number;
70
70
  recentDebates: Debate[];
71
+ totalChallenges: number;
72
+ vulnerablePrinciples: PrincipleChallenge[];
71
73
  uptime: number;
72
74
  }
75
+ export interface PrincipleChallenge {
76
+ id?: number;
77
+ principleId: number | null;
78
+ principleStatement: string;
79
+ challengeArguments: string[];
80
+ supportingEvidence: string[];
81
+ contradictingEvidence: string[];
82
+ resilienceScore: number;
83
+ outcome: 'pending' | 'survived' | 'weakened' | 'disproved';
84
+ challengedAt: string;
85
+ }
73
86
  export declare function runDebateMigration(db: Database.Database): void;
74
87
  export declare class DebateEngine {
75
88
  private readonly db;
@@ -88,6 +101,10 @@ export declare class DebateEngine {
88
101
  private readonly stmtTotalDebates;
89
102
  private readonly stmtOpenDebates;
90
103
  private readonly stmtSynthesizedDebates;
104
+ private readonly stmtInsertChallenge;
105
+ private readonly stmtGetChallengeHistory;
106
+ private readonly stmtGetMostVulnerable;
107
+ private readonly stmtTotalChallenges;
91
108
  constructor(db: Database.Database, config: DebateEngineConfig);
92
109
  setThoughtStream(stream: ThoughtStream): void;
93
110
  setDataSources(sources: DebateDataSources): void;
@@ -109,6 +126,15 @@ export declare class DebateEngine {
109
126
  * Synthesize all perspectives in a debate: find conflicts, build consensus.
110
127
  */
111
128
  synthesize(debateId: number): DebateSynthesis | null;
129
+ /**
130
+ * Challenge a principle by searching for contradicting evidence.
131
+ * Returns a PrincipleChallenge with a resilience score.
132
+ */
133
+ challenge(principleStatement: string): PrincipleChallenge;
134
+ /** Get recent principle challenges. */
135
+ getChallengeHistory(limit?: number): PrincipleChallenge[];
136
+ /** Get most vulnerable principles (lowest resilience scores). */
137
+ getMostVulnerable(limit?: number): PrincipleChallenge[];
112
138
  getDebate(id: number): Debate | null;
113
139
  listDebates(limit?: number): Debate[];
114
140
  getStatus(): DebateEngineStatus;
@@ -134,4 +160,5 @@ export declare class DebateEngine {
134
160
  private loadPerspectives;
135
161
  private toDebate;
136
162
  private toPerspective;
163
+ private toPrincipleChallenge;
137
164
  }
@@ -24,6 +24,19 @@ export function runDebateMigration(db) {
24
24
  FOREIGN KEY (debate_id) REFERENCES debates(id)
25
25
  );
26
26
  CREATE INDEX IF NOT EXISTS idx_debate_perspectives_debate ON debate_perspectives(debate_id);
27
+
28
+ CREATE TABLE IF NOT EXISTS principle_challenges (
29
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
30
+ principle_id INTEGER,
31
+ principle_statement TEXT NOT NULL,
32
+ challenge_arguments TEXT NOT NULL DEFAULT '[]',
33
+ supporting_evidence TEXT NOT NULL DEFAULT '[]',
34
+ contradicting_evidence TEXT NOT NULL DEFAULT '[]',
35
+ resilience_score REAL NOT NULL DEFAULT 0.5,
36
+ outcome TEXT NOT NULL DEFAULT 'pending',
37
+ challenged_at TEXT DEFAULT (datetime('now'))
38
+ );
39
+ CREATE INDEX IF NOT EXISTS idx_principle_challenges_resilience ON principle_challenges(resilience_score);
27
40
  `);
28
41
  }
29
42
  // ── Engine ──────────────────────────────────────────────
@@ -45,6 +58,10 @@ export class DebateEngine {
45
58
  stmtTotalDebates;
46
59
  stmtOpenDebates;
47
60
  stmtSynthesizedDebates;
61
+ stmtInsertChallenge;
62
+ stmtGetChallengeHistory;
63
+ stmtGetMostVulnerable;
64
+ stmtTotalChallenges;
48
65
  constructor(db, config) {
49
66
  this.db = db;
50
67
  this.config = {
@@ -62,6 +79,10 @@ export class DebateEngine {
62
79
  this.stmtTotalDebates = db.prepare('SELECT COUNT(*) as cnt FROM debates');
63
80
  this.stmtOpenDebates = db.prepare('SELECT COUNT(*) as cnt FROM debates WHERE status = \'open\' OR status = \'deliberating\'');
64
81
  this.stmtSynthesizedDebates = db.prepare('SELECT COUNT(*) as cnt FROM debates WHERE status = \'synthesized\' OR status = \'closed\'');
82
+ this.stmtInsertChallenge = db.prepare('INSERT INTO principle_challenges (principle_id, principle_statement, challenge_arguments, supporting_evidence, contradicting_evidence, resilience_score, outcome) VALUES (?, ?, ?, ?, ?, ?, ?)');
83
+ this.stmtGetChallengeHistory = db.prepare('SELECT * FROM principle_challenges ORDER BY challenged_at DESC LIMIT ?');
84
+ this.stmtGetMostVulnerable = db.prepare('SELECT * FROM principle_challenges ORDER BY resilience_score ASC LIMIT ?');
85
+ this.stmtTotalChallenges = db.prepare('SELECT COUNT(*) as cnt FROM principle_challenges');
65
86
  this.log.debug(`[DebateEngine] Initialized for ${this.config.brainName}`);
66
87
  }
67
88
  // ── Setters ──────────────────────────────────────────
@@ -266,6 +287,122 @@ export class DebateEngine {
266
287
  this.ts?.emit('debate', 'discovering', `Debate synthesized: ${conflicts.length} conflicts, confidence=${(avgConfidence * 100).toFixed(0)}%`, conflicts.length > 0 ? 'notable' : 'routine');
267
288
  return synthesis;
268
289
  }
290
+ // ── Advocatus Diaboli: Principle Challenges ──────────
291
+ /**
292
+ * Challenge a principle by searching for contradicting evidence.
293
+ * Returns a PrincipleChallenge with a resilience score.
294
+ */
295
+ challenge(principleStatement) {
296
+ this.ts?.emit('debate', 'analyzing', `Challenging principle: "${principleStatement.substring(0, 60)}..."`, 'notable');
297
+ const keywords = this.extractKeywords(principleStatement);
298
+ const contradictingEvidence = [];
299
+ const supportingEvidence = [];
300
+ let principleId = null;
301
+ // 1. Search for contradicting rejected hypotheses
302
+ if (this.sources.hypothesisEngine) {
303
+ try {
304
+ const rejected = this.sources.hypothesisEngine.list('rejected', 50);
305
+ for (const h of rejected) {
306
+ if (this.isRelevant(h.statement, keywords)) {
307
+ contradictingEvidence.push(`Rejected hypothesis: ${h.statement}`);
308
+ }
309
+ }
310
+ }
311
+ catch { /* not wired */ }
312
+ }
313
+ // 2. Search for failed predictions that match the principle
314
+ if (this.sources.predictionEngine) {
315
+ try {
316
+ const predictions = this.sources.predictionEngine.list(undefined, 'wrong', 30);
317
+ for (const p of predictions) {
318
+ if (this.isRelevant(`${p.reasoning} ${p.metric} ${p.domain}`, keywords)) {
319
+ contradictingEvidence.push(`Failed prediction: ${p.metric} — ${p.reasoning}`);
320
+ }
321
+ }
322
+ }
323
+ catch { /* not wired */ }
324
+ }
325
+ // 3. Search anomalies that contradict the principle
326
+ if (this.sources.anomalyDetective) {
327
+ try {
328
+ const anomalies = this.sources.anomalyDetective.getAnomalies(undefined, 30);
329
+ for (const a of anomalies) {
330
+ if (this.isRelevant(`${a.title} ${a.metric}`, keywords)) {
331
+ contradictingEvidence.push(`Anomaly: ${a.title} (deviation: ${a.deviation.toFixed(2)})`);
332
+ }
333
+ }
334
+ }
335
+ catch { /* not wired */ }
336
+ }
337
+ // 4. Collect supporting evidence from confirmed hypotheses
338
+ if (this.sources.hypothesisEngine) {
339
+ try {
340
+ const confirmed = this.sources.hypothesisEngine.list('confirmed', 50);
341
+ for (const h of confirmed) {
342
+ if (this.isRelevant(h.statement, keywords)) {
343
+ supportingEvidence.push(`Confirmed hypothesis: ${h.statement}`);
344
+ }
345
+ }
346
+ }
347
+ catch { /* not wired */ }
348
+ }
349
+ // 4b. Supporting evidence from matching principles
350
+ if (this.sources.knowledgeDistiller) {
351
+ try {
352
+ const pkg = this.sources.knowledgeDistiller.getPackage(this.config.brainName);
353
+ for (const p of pkg.principles) {
354
+ if (this.isRelevant(p.statement, keywords)) {
355
+ supportingEvidence.push(`Principle: ${p.statement} (confidence: ${p.confidence.toFixed(2)})`);
356
+ if (principleId === null)
357
+ principleId = Number(p.id) || null;
358
+ }
359
+ }
360
+ }
361
+ catch { /* not wired */ }
362
+ }
363
+ // 5. Calculate resilience score
364
+ const resilienceScore = supportingEvidence.length / (supportingEvidence.length + contradictingEvidence.length + 0.01);
365
+ // 6. Determine outcome
366
+ let outcome;
367
+ if (resilienceScore > 0.7) {
368
+ outcome = 'survived';
369
+ }
370
+ else if (resilienceScore > 0.4) {
371
+ outcome = 'weakened';
372
+ }
373
+ else {
374
+ outcome = 'disproved';
375
+ }
376
+ // 7. Build challenge arguments summary
377
+ const challengeArguments = [
378
+ ...contradictingEvidence.slice(0, 5).map(e => `Against: ${e}`),
379
+ ...supportingEvidence.slice(0, 5).map(e => `For: ${e}`),
380
+ ];
381
+ // Persist
382
+ const info = this.stmtInsertChallenge.run(principleId, principleStatement, JSON.stringify(challengeArguments), JSON.stringify(supportingEvidence), JSON.stringify(contradictingEvidence), resilienceScore, outcome);
383
+ this.ts?.emit('debate', 'discovering', `Challenge result: ${outcome} (resilience=${(resilienceScore * 100).toFixed(0)}%, ${supportingEvidence.length} supporting, ${contradictingEvidence.length} contradicting)`, outcome === 'disproved' ? 'breakthrough' : 'notable');
384
+ return {
385
+ id: Number(info.lastInsertRowid),
386
+ principleId,
387
+ principleStatement,
388
+ challengeArguments,
389
+ supportingEvidence,
390
+ contradictingEvidence,
391
+ resilienceScore,
392
+ outcome,
393
+ challengedAt: new Date().toISOString(),
394
+ };
395
+ }
396
+ /** Get recent principle challenges. */
397
+ getChallengeHistory(limit = 20) {
398
+ const rows = this.stmtGetChallengeHistory.all(limit);
399
+ return rows.map(r => this.toPrincipleChallenge(r));
400
+ }
401
+ /** Get most vulnerable principles (lowest resilience scores). */
402
+ getMostVulnerable(limit = 5) {
403
+ const rows = this.stmtGetMostVulnerable.all(limit);
404
+ return rows.map(r => this.toPrincipleChallenge(r));
405
+ }
269
406
  // ── Query Methods ────────────────────────────────────
270
407
  getDebate(id) {
271
408
  const row = this.stmtGetDebate.get(id);
@@ -295,6 +432,8 @@ export class DebateEngine {
295
432
  const avgParticipants = syntheses.length > 0
296
433
  ? syntheses.reduce((s, syn) => s + syn.participantCount, 0) / syntheses.length
297
434
  : 0;
435
+ const totalChallenges = this.stmtTotalChallenges.get().cnt;
436
+ const vulnerablePrinciples = this.getMostVulnerable(3);
298
437
  return {
299
438
  totalDebates: total,
300
439
  openDebates: open,
@@ -302,6 +441,8 @@ export class DebateEngine {
302
441
  avgConfidence,
303
442
  avgParticipants,
304
443
  recentDebates: recent,
444
+ totalChallenges,
445
+ vulnerablePrinciples,
305
446
  uptime: Date.now() - this.startTime,
306
447
  };
307
448
  }
@@ -536,5 +677,33 @@ export class DebateEngine {
536
677
  created_at: row.created_at,
537
678
  };
538
679
  }
680
+ toPrincipleChallenge(row) {
681
+ let challengeArguments = [];
682
+ let supportingEvidence = [];
683
+ let contradictingEvidence = [];
684
+ try {
685
+ challengeArguments = JSON.parse(row.challenge_arguments || '[]');
686
+ }
687
+ catch { /* ignore */ }
688
+ try {
689
+ supportingEvidence = JSON.parse(row.supporting_evidence || '[]');
690
+ }
691
+ catch { /* ignore */ }
692
+ try {
693
+ contradictingEvidence = JSON.parse(row.contradicting_evidence || '[]');
694
+ }
695
+ catch { /* ignore */ }
696
+ return {
697
+ id: row.id,
698
+ principleId: row.principle_id ?? null,
699
+ principleStatement: row.principle_statement,
700
+ challengeArguments,
701
+ supportingEvidence,
702
+ contradictingEvidence,
703
+ resilienceScore: row.resilience_score,
704
+ outcome: row.outcome,
705
+ challengedAt: row.challenged_at,
706
+ };
707
+ }
539
708
  }
540
709
  //# sourceMappingURL=debate-engine.js.map