@timmeck/brain-core 2.10.0 → 2.11.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.
@@ -39,7 +39,7 @@
39
39
  .dashboard {
40
40
  display: grid;
41
41
  grid-template-columns: 280px 1fr 280px;
42
- grid-template-rows: 1fr 48px;
42
+ grid-template-rows: 1fr 140px 48px;
43
43
  height: 100vh;
44
44
  gap: 2px;
45
45
  }
@@ -157,6 +157,10 @@
157
157
  .engine-counterfactual .thought-engine { color: #80d8ff; }
158
158
  .engine-data_miner { border-left-color: #ccff90; }
159
159
  .engine-data_miner .thought-engine { color: #ccff90; }
160
+ .engine-prediction { border-left-color: #00e5ff; }
161
+ .engine-prediction .thought-engine { color: #00e5ff; }
162
+ .engine-self_improvement { border-left-color: #ffd700; }
163
+ .engine-self_improvement .thought-engine { color: #ffd700; }
160
164
 
161
165
  /* ── Neural Canvas (Center) ─────────────────── */
162
166
  .neural-canvas {
@@ -254,12 +258,78 @@
254
258
  .engine-metric-value { color: var(--text-secondary); font-weight: 600; }
255
259
 
256
260
  /* ── Status Bar (Bottom) ────────────────────── */
257
- .status-bar {
261
+ /* ── Brain Insights (Bottom) ───────────────── */
262
+ .insights-panel {
258
263
  grid-row: 2;
259
264
  grid-column: 1 / -1;
260
265
  background: var(--bg-secondary);
261
266
  border-top: 1px solid var(--border);
262
267
  display: flex;
268
+ flex-direction: column;
269
+ overflow: hidden;
270
+ }
271
+ .insights-header {
272
+ padding: 6px 16px;
273
+ font-size: 10px;
274
+ text-transform: uppercase;
275
+ letter-spacing: 1.5px;
276
+ color: var(--gold);
277
+ border-bottom: 1px solid var(--border);
278
+ flex-shrink: 0;
279
+ display: flex;
280
+ align-items: center;
281
+ gap: 8px;
282
+ }
283
+ .insights-list {
284
+ flex: 1;
285
+ overflow-y: auto;
286
+ padding: 6px 16px;
287
+ display: flex;
288
+ flex-wrap: wrap;
289
+ gap: 6px;
290
+ align-content: flex-start;
291
+ }
292
+ .insight-chip {
293
+ font-size: 10px;
294
+ padding: 3px 10px;
295
+ border-radius: 12px;
296
+ background: rgba(255, 215, 0, 0.08);
297
+ border: 1px solid rgba(255, 215, 0, 0.2);
298
+ color: var(--text-primary);
299
+ animation: thought-in 0.3s ease;
300
+ max-width: 400px;
301
+ overflow: hidden;
302
+ text-overflow: ellipsis;
303
+ white-space: nowrap;
304
+ }
305
+ .insight-chip.anomaly { background: rgba(255, 82, 82, 0.1); border-color: rgba(255, 82, 82, 0.3); }
306
+ .insight-chip.prediction { background: rgba(0, 229, 255, 0.08); border-color: rgba(0, 229, 255, 0.2); }
307
+ .insight-chip.experiment { background: rgba(105, 240, 174, 0.08); border-color: rgba(105, 240, 174, 0.2); }
308
+ .insight-chip.self_improvement { background: rgba(234, 128, 252, 0.08); border-color: rgba(234, 128, 252, 0.2); }
309
+ .trigger-btn {
310
+ margin-left: auto;
311
+ padding: 2px 12px;
312
+ font-size: 10px;
313
+ font-family: inherit;
314
+ background: rgba(0, 229, 255, 0.1);
315
+ border: 1px solid rgba(0, 229, 255, 0.3);
316
+ border-radius: 10px;
317
+ color: var(--cyan);
318
+ cursor: pointer;
319
+ transition: all 0.2s;
320
+ text-transform: uppercase;
321
+ letter-spacing: 1px;
322
+ }
323
+ .trigger-btn:hover { background: rgba(0, 229, 255, 0.2); box-shadow: var(--glow-cyan); }
324
+ .trigger-btn:active { transform: scale(0.95); }
325
+ .trigger-btn.running { color: var(--gold); border-color: rgba(255, 215, 0, 0.3); background: rgba(255, 215, 0, 0.1); pointer-events: none; }
326
+
327
+ .status-bar {
328
+ grid-row: 3;
329
+ grid-column: 1 / -1;
330
+ background: var(--bg-secondary);
331
+ border-top: 1px solid var(--border);
332
+ display: flex;
263
333
  align-items: center;
264
334
  justify-content: space-between;
265
335
  padding: 0 16px;
@@ -352,11 +422,12 @@
352
422
  <div class="flash-overlay" id="flash-overlay"></div>
353
423
  <div class="canvas-overlay" id="canvas-info">Neural Network — Loading...</div>
354
424
  <div class="canvas-legend">
355
- <div class="legend-item"><div class="legend-dot" style="background:var(--cyan)"></div>Memory</div>
356
- <div class="legend-item"><div class="legend-dot" style="background:var(--magenta)"></div>Rule</div>
357
- <div class="legend-item"><div class="legend-dot" style="background:var(--gold)"></div>Principle</div>
358
- <div class="legend-item"><div class="legend-dot" style="background:var(--green)"></div>Insight</div>
359
- <div class="legend-item"><div class="legend-dot" style="background:var(--purple)"></div>Pattern</div>
425
+ <div class="legend-item"><div class="legend-dot" style="background:#448aff"></div>Project</div>
426
+ <div class="legend-item"><div class="legend-dot" style="background:#ff5252"></div>Error</div>
427
+ <div class="legend-item"><div class="legend-dot" style="background:#69f0ae"></div>Solution</div>
428
+ <div class="legend-item"><div class="legend-dot" style="background:#80d8ff"></div>Module</div>
429
+ <div class="legend-item"><div class="legend-dot" style="background:#00ff88"></div>Insight</div>
430
+ <div class="legend-item"><div class="legend-dot" style="background:#00e5ff"></div>Memory</div>
360
431
  </div>
361
432
  </div>
362
433
 
@@ -370,6 +441,16 @@
370
441
  </div>
371
442
 
372
443
  <!-- Bottom: Status Bar -->
444
+ <!-- Bottom: Brain Insights -->
445
+ <div class="insights-panel">
446
+ <div class="insights-header">
447
+ <span>Brain Insights</span>
448
+ <span id="insight-count" style="color:var(--text-muted)">0</span>
449
+ <button class="trigger-btn" id="trigger-btn" onclick="triggerFeedbackCycle()">⚡ Trigger Cycle</button>
450
+ </div>
451
+ <div class="insights-list" id="insights-list"></div>
452
+ </div>
453
+
373
454
  <div class="status-bar">
374
455
  <div class="status-left">
375
456
  <div class="status-item">
@@ -448,6 +529,8 @@
448
529
  research_agenda: '#ea80fc',
449
530
  counterfactual: '#80d8ff',
450
531
  data_miner: '#ccff90',
532
+ prediction: '#00e5ff',
533
+ self_improvement: '#ffd700',
451
534
  };
452
535
 
453
536
  const nodeColors = {
@@ -473,6 +556,7 @@
473
556
  dreaming: '💭',
474
557
  reflecting: '📝',
475
558
  correlating: '🔗',
559
+ predicting: '🔮',
476
560
  };
477
561
 
478
562
  // ── DOM ────────────────────────────────────────────────
@@ -770,6 +854,9 @@
770
854
  // Activate nodes on canvas related to this thought
771
855
  activateRelatedNodes(thought);
772
856
 
857
+ // Extract insights for bottom panel
858
+ extractInsightsFromThought(thought);
859
+
773
860
  // Dream mode detection
774
861
  if (thought.engine === 'dream') {
775
862
  isDreaming = true;
@@ -805,13 +892,64 @@
805
892
  }
806
893
  }
807
894
 
895
+ // ── Brain Insights Panel ─────────────────────────────
896
+ const insightsList = document.getElementById('insights-list');
897
+ const insightCountEl = document.getElementById('insight-count');
898
+ let brainInsights = [];
899
+
900
+ function triggerFeedbackCycle() {
901
+ const btn = document.getElementById('trigger-btn');
902
+ btn.classList.add('running');
903
+ btn.textContent = '⏳ Running...';
904
+ fetch('/api/trigger', { method: 'POST' })
905
+ .then(r => r.json())
906
+ .then(d => {
907
+ btn.textContent = d.triggered ? '✓ Triggered' : '✗ Failed';
908
+ setTimeout(() => { btn.classList.remove('running'); btn.textContent = '⚡ Trigger Cycle'; }, 5000);
909
+ })
910
+ .catch(() => {
911
+ btn.textContent = '✗ Error';
912
+ setTimeout(() => { btn.classList.remove('running'); btn.textContent = '⚡ Trigger Cycle'; }, 3000);
913
+ });
914
+ }
915
+
916
+ function addInsight(text, category) {
917
+ // Deduplicate
918
+ if (brainInsights.some(i => i.text === text)) return;
919
+ brainInsights.unshift({ text, category, time: Date.now() });
920
+ if (brainInsights.length > 50) brainInsights.pop();
921
+
922
+ const chip = document.createElement('div');
923
+ chip.className = `insight-chip ${category || ''}`;
924
+ chip.textContent = text;
925
+ chip.title = text;
926
+ insightsList.insertBefore(chip, insightsList.firstChild);
927
+ while (insightsList.children.length > 50) insightsList.removeChild(insightsList.lastChild);
928
+ insightCountEl.textContent = brainInsights.length;
929
+ }
930
+
931
+ function extractInsightsFromThought(thought) {
932
+ // Notable and breakthrough thoughts → insights
933
+ if (thought.significance === 'breakthrough') {
934
+ addInsight(`${thought.engine}: ${thought.content}`, 'breakthrough');
935
+ } else if (thought.significance === 'notable') {
936
+ // Categorize by engine type
937
+ const cat = thought.engine === 'anomaly_detective' ? 'anomaly'
938
+ : thought.engine === 'prediction' || thought.type === 'predicting' ? 'prediction'
939
+ : thought.engine === 'experiment' ? 'experiment'
940
+ : thought.engine === 'self_observer' || thought.engine === 'adaptive_strategy' || thought.engine === 'self_improvement' ? 'self_improvement'
941
+ : '';
942
+ addInsight(`${thought.content}`, cat);
943
+ }
944
+ }
945
+
808
946
  // ── Engine Status Rendering ────────────────────────────
809
947
  function renderEngines(engineData) {
810
948
  engineList.innerHTML = '';
811
949
  const allEngines = [
812
950
  'orchestrator', 'self_observer', 'anomaly_detective', 'cross_domain',
813
951
  'adaptive_strategy', 'experiment', 'knowledge_distiller', 'research_agenda',
814
- 'counterfactual', 'dream', 'journal', 'data_miner',
952
+ 'counterfactual', 'dream', 'journal', 'data_miner', 'prediction', 'self_improvement',
815
953
  ];
816
954
 
817
955
  const engineMap = new Map((engineData || []).map(e => [e.engine, e]));
@@ -4,6 +4,7 @@ export interface ConsciousnessServerOptions {
4
4
  thoughtStream: ThoughtStream;
5
5
  getNetworkState: () => unknown;
6
6
  getEngineStatus: () => unknown;
7
+ onTriggerFeedback?: () => void;
7
8
  }
8
9
  export declare class ConsciousnessServer {
9
10
  private options;
@@ -55,6 +55,25 @@ export class ConsciousnessServer {
55
55
  res.end(JSON.stringify(state));
56
56
  return;
57
57
  }
58
+ // Trigger feedback cycle
59
+ if (url.pathname === '/api/trigger' && req.method === 'POST') {
60
+ if (this.options.onTriggerFeedback) {
61
+ try {
62
+ this.options.onTriggerFeedback();
63
+ res.writeHead(200, { 'Content-Type': 'application/json' });
64
+ res.end(JSON.stringify({ triggered: true }));
65
+ }
66
+ catch (err) {
67
+ res.writeHead(500, { 'Content-Type': 'application/json' });
68
+ res.end(JSON.stringify({ error: err.message }));
69
+ }
70
+ }
71
+ else {
72
+ res.writeHead(501, { 'Content-Type': 'application/json' });
73
+ res.end(JSON.stringify({ error: 'Feedback trigger not configured' }));
74
+ }
75
+ return;
76
+ }
58
77
  // SSE stream
59
78
  if (url.pathname === '/events') {
60
79
  res.writeHead(200, {
@@ -1 +1 @@
1
- {"version":3,"file":"consciousness-server.js","sourceRoot":"","sources":["../../src/consciousness/consciousness-server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"consciousness-server.js","sourceRoot":"","sources":["../../src/consciousness/consciousness-server.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- export type ThoughtType = 'perceiving' | 'analyzing' | 'discovering' | 'hypothesizing' | 'experimenting' | 'dreaming' | 'reflecting' | 'correlating';
1
+ export type ThoughtType = 'perceiving' | 'analyzing' | 'discovering' | 'hypothesizing' | 'experimenting' | 'dreaming' | 'reflecting' | 'correlating' | 'predicting';
2
2
  export type ThoughtSignificance = 'routine' | 'notable' | 'breakthrough';
3
3
  export interface Thought {
4
4
  id: string;
package/dist/index.d.ts CHANGED
@@ -97,3 +97,7 @@ export { DreamConsolidator } from './dream/index.js';
97
97
  export type { DreamEngineConfig, DreamCycleReport, DreamStatus, DreamHistoryEntry, DreamTrigger, MemoryReplayResult, SynapsePruneResult, MemoryCompressionResult, MemoryCluster, ImportanceDecayResult } from './dream/index.js';
98
98
  export { ThoughtStream, ConsciousnessServer } from './consciousness/index.js';
99
99
  export type { ConsciousnessServerOptions, Thought, ThoughtType, ThoughtSignificance, ConsciousnessConfig, ConsciousnessStatus, EngineActivity } from './consciousness/index.js';
100
+ export { PredictionEngine, runPredictionMigration } from './prediction/index.js';
101
+ export { PredictionTracker } from './prediction/index.js';
102
+ export { holtWintersForecast, ewmaForecast, calibrateConfidence } from './prediction/index.js';
103
+ export type { PredictionDomain, PredictionStatus, PredictionEngineConfig, Prediction, PredictionAccuracy, PredictionSummary, ForecastResult, PredictionInput, MetricDataPoint, CalibrationBucket } from './prediction/index.js';
package/dist/index.js CHANGED
@@ -88,4 +88,8 @@ export { DreamEngine, runDreamMigration } from './dream/index.js';
88
88
  export { DreamConsolidator } from './dream/index.js';
89
89
  // ── Consciousness ───────────────────────────────────
90
90
  export { ThoughtStream, ConsciousnessServer } from './consciousness/index.js';
91
+ // ── Prediction Engine ──────────────────────────────
92
+ export { PredictionEngine, runPredictionMigration } from './prediction/index.js';
93
+ export { PredictionTracker } from './prediction/index.js';
94
+ export { holtWintersForecast, ewmaForecast, calibrateConfidence } from './prediction/index.js';
91
95
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,22 @@
1
+ import type { ForecastResult, CalibrationBucket } from './types.js';
2
+ /**
3
+ * Holt-Winters Double Exponential Smoothing.
4
+ * Requires ≥ 5 data points. Returns forecast + trend + confidence.
5
+ *
6
+ * Level: l_t = α * y_t + (1-α) * (l_{t-1} + b_{t-1})
7
+ * Trend: b_t = β * (l_t - l_{t-1}) + (1-β) * b_{t-1}
8
+ * Forecast: ŷ_{t+h} = l_t + h * b_t
9
+ */
10
+ export declare function holtWintersForecast(data: number[], stepsAhead: number, alpha?: number, beta?: number): ForecastResult;
11
+ /**
12
+ * Exponentially Weighted Moving Average.
13
+ * Fallback for < 5 data points.
14
+ */
15
+ export declare function ewmaForecast(data: number[], alpha?: number): ForecastResult;
16
+ /**
17
+ * Calibrate raw confidence using historical accuracy buckets.
18
+ * If the model was overconfident in a range, it adjusts downward — and vice versa.
19
+ *
20
+ * Returns value clamped to [0.01, 0.99].
21
+ */
22
+ export declare function calibrateConfidence(rawConfidence: number, buckets: CalibrationBucket[]): number;
@@ -0,0 +1,120 @@
1
+ // ── Prediction Forecaster — Pure Math ────────────────────────
2
+ //
3
+ // Holt-Winters Double Exponential Smoothing + EWMA fallback.
4
+ // No DB dependency — pure functions, easy to test.
5
+ /**
6
+ * Holt-Winters Double Exponential Smoothing.
7
+ * Requires ≥ 5 data points. Returns forecast + trend + confidence.
8
+ *
9
+ * Level: l_t = α * y_t + (1-α) * (l_{t-1} + b_{t-1})
10
+ * Trend: b_t = β * (l_t - l_{t-1}) + (1-β) * b_{t-1}
11
+ * Forecast: ŷ_{t+h} = l_t + h * b_t
12
+ */
13
+ export function holtWintersForecast(data, stepsAhead, alpha = 0.3, beta = 0.1) {
14
+ if (data.length < 2) {
15
+ return { value: data[0] ?? 0, trend: 0, confidence: 0.1, direction: 'stable', method: 'holt_winters', dataPoints: data.length };
16
+ }
17
+ // Initialize level and trend
18
+ let level = data[0];
19
+ let trend = data[1] - data[0];
20
+ const residuals = [];
21
+ for (let t = 1; t < data.length; t++) {
22
+ const y = data[t];
23
+ const prevLevel = level;
24
+ // Update level
25
+ level = alpha * y + (1 - alpha) * (prevLevel + trend);
26
+ // Update trend
27
+ trend = beta * (level - prevLevel) + (1 - beta) * trend;
28
+ // Track residuals for confidence calculation
29
+ const predicted = prevLevel + trend;
30
+ residuals.push(Math.abs(y - predicted));
31
+ }
32
+ // Forecast
33
+ const value = level + stepsAhead * trend;
34
+ // Confidence based on normalized MAE (1 - MAE/range)
35
+ const mae = residuals.length > 0
36
+ ? residuals.reduce((a, b) => a + b, 0) / residuals.length
37
+ : 0;
38
+ const range = Math.max(...data) - Math.min(...data);
39
+ const normalizedMae = range > 0 ? mae / range : 0;
40
+ const confidence = Math.max(0.05, Math.min(0.95, 1 - normalizedMae));
41
+ // Direction
42
+ const trendRatio = range > 0 ? Math.abs(trend) / range : 0;
43
+ let direction;
44
+ if (trendRatio < 0.02) {
45
+ direction = 'stable';
46
+ }
47
+ else {
48
+ direction = trend > 0 ? 'up' : 'down';
49
+ }
50
+ return {
51
+ value,
52
+ trend,
53
+ confidence,
54
+ direction,
55
+ method: 'holt_winters',
56
+ dataPoints: data.length,
57
+ };
58
+ }
59
+ /**
60
+ * Exponentially Weighted Moving Average.
61
+ * Fallback for < 5 data points.
62
+ */
63
+ export function ewmaForecast(data, alpha = 0.3) {
64
+ if (data.length === 0) {
65
+ return { value: 0, trend: 0, confidence: 0.1, direction: 'stable', method: 'ewma', dataPoints: 0 };
66
+ }
67
+ if (data.length === 1) {
68
+ return { value: data[0], trend: 0, confidence: 0.15, direction: 'stable', method: 'ewma', dataPoints: 1 };
69
+ }
70
+ let ewma = data[0];
71
+ for (let i = 1; i < data.length; i++) {
72
+ ewma = alpha * data[i] + (1 - alpha) * ewma;
73
+ }
74
+ // Simple trend from last two values
75
+ const last = data[data.length - 1];
76
+ const prev = data[data.length - 2];
77
+ const trend = last - prev;
78
+ // Low confidence for few data points
79
+ const confidence = Math.min(0.5, 0.15 + data.length * 0.08);
80
+ // Direction
81
+ const range = Math.max(...data) - Math.min(...data);
82
+ const trendRatio = range > 0 ? Math.abs(trend) / range : 0;
83
+ let direction;
84
+ if (trendRatio < 0.05) {
85
+ direction = 'stable';
86
+ }
87
+ else {
88
+ direction = trend > 0 ? 'up' : 'down';
89
+ }
90
+ return {
91
+ value: ewma,
92
+ trend,
93
+ confidence,
94
+ direction,
95
+ method: 'ewma',
96
+ dataPoints: data.length,
97
+ };
98
+ }
99
+ /**
100
+ * Calibrate raw confidence using historical accuracy buckets.
101
+ * If the model was overconfident in a range, it adjusts downward — and vice versa.
102
+ *
103
+ * Returns value clamped to [0.01, 0.99].
104
+ */
105
+ export function calibrateConfidence(rawConfidence, buckets) {
106
+ if (buckets.length === 0)
107
+ return Math.max(0.01, Math.min(0.99, rawConfidence));
108
+ // Find the matching bucket
109
+ const bucket = buckets.find(b => rawConfidence >= b.range_start && rawConfidence < b.range_end);
110
+ if (!bucket || bucket.predicted_count < 3) {
111
+ // Not enough data in this bucket — return raw
112
+ return Math.max(0.01, Math.min(0.99, rawConfidence));
113
+ }
114
+ // Adjust: if predicted 0.8 confidence but actual accuracy was 0.6, offset = -0.2
115
+ const midpoint = (bucket.range_start + bucket.range_end) / 2;
116
+ const offset = bucket.actual_accuracy - midpoint;
117
+ const adjusted = rawConfidence + offset;
118
+ return Math.max(0.01, Math.min(0.99, adjusted));
119
+ }
120
+ //# sourceMappingURL=forecaster.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"forecaster.js","sourceRoot":"","sources":["../../src/prediction/forecaster.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,4 @@
1
+ export { PredictionEngine, runPredictionMigration } from './prediction-engine.js';
2
+ export { PredictionTracker } from './tracker.js';
3
+ export { holtWintersForecast, ewmaForecast, calibrateConfidence } from './forecaster.js';
4
+ export type { PredictionDomain, PredictionStatus, PredictionEngineConfig, Prediction, PredictionAccuracy, PredictionSummary, ForecastResult, PredictionInput, MetricDataPoint, CalibrationBucket, } from './types.js';
@@ -0,0 +1,4 @@
1
+ export { PredictionEngine, runPredictionMigration } from './prediction-engine.js';
2
+ export { PredictionTracker } from './tracker.js';
3
+ export { holtWintersForecast, ewmaForecast, calibrateConfidence } from './forecaster.js';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/prediction/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAClF,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,59 @@
1
+ import type Database from 'better-sqlite3';
2
+ import type { ThoughtStream } from '../consciousness/thought-stream.js';
3
+ import type { ResearchJournal } from '../research/journal.js';
4
+ import type { PredictionEngineConfig, Prediction, PredictionDomain, PredictionStatus, PredictionAccuracy, PredictionSummary, PredictionInput, ForecastResult, MetricDataPoint } from './types.js';
5
+ export declare function runPredictionMigration(db: Database.Database): void;
6
+ export declare class PredictionEngine {
7
+ private db;
8
+ private config;
9
+ private tracker;
10
+ private thoughtStream;
11
+ private journal;
12
+ private timer;
13
+ private calibrationOffset;
14
+ private log;
15
+ constructor(db: Database.Database, config: PredictionEngineConfig);
16
+ /** Set the ThoughtStream for consciousness integration. */
17
+ setThoughtStream(stream: ThoughtStream): void;
18
+ /** Set the Research Journal for logging notable predictions. */
19
+ setJournal(journal: ResearchJournal): void;
20
+ /** Start periodic resolution timer. */
21
+ start(): void;
22
+ /** Stop the resolution timer. */
23
+ stop(): void;
24
+ /** Record a metric data point. Called by domain event handlers. */
25
+ recordMetric(metric: string, value: number, domain?: PredictionDomain): void;
26
+ /**
27
+ * Generate a prediction for a specific metric.
28
+ * Returns null if insufficient data or confidence too low.
29
+ */
30
+ predict(input: PredictionInput): Prediction | null;
31
+ /**
32
+ * Auto-predict for all tracked metrics that have enough data.
33
+ * Skips metrics with pending predictions. Respects maxPredictionsPerCycle.
34
+ */
35
+ autoPredictAll(): Prediction[];
36
+ /**
37
+ * Resolve expired/due predictions against current metric values.
38
+ * Returns count of resolved predictions.
39
+ */
40
+ resolveExpired(): number;
41
+ /** List predictions with optional filters. */
42
+ list(domain?: PredictionDomain, status?: PredictionStatus, limit?: number): Prediction[];
43
+ /** Get accuracy statistics. */
44
+ getAccuracy(domain?: PredictionDomain): PredictionAccuracy[];
45
+ /** Get full prediction summary. */
46
+ getSummary(): PredictionSummary;
47
+ /** Run a forecast on raw data. Uses Holt-Winters (≥ minDataPoints) or EWMA. */
48
+ forecast(data: number[], _horizonMs: number): ForecastResult;
49
+ /** Get metric history as time series. */
50
+ getMetricHistory(metric: string, limit?: number): MetricDataPoint[];
51
+ /** Periodic cycle: resolve + auto-predict. */
52
+ private cycle;
53
+ /** Recalibrate confidence offset based on historical accuracy. */
54
+ private recalibrate;
55
+ /** Apply calibration to raw confidence. */
56
+ private applyCalibration;
57
+ /** Get all unique tracked metrics with their domains. */
58
+ private getTrackedMetrics;
59
+ }