@timmeck/brain-core 2.11.1 → 2.12.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -32,6 +32,9 @@ Brain Core extracts the common infrastructure used across all Brain MCP servers
32
32
  | **9 Research Engines** | SelfObserver, AnomalyDetective, HypothesisEngine, CausalGraph, Experiment, KnowledgeDistiller, Counterfactual, AdaptiveStrategy, ResearchAgenda |
33
33
  | **DataMiner** | Bootstraps historical DB data into research engines with adapter pattern (new in v2.8) |
34
34
  | **Dream Engine** | Offline memory consolidation — replay, prune, compress, decay (new in v2.9) |
35
+ | **Consciousness** | ThoughtStream + ConsciousnessServer — live neural dashboard with SSE (new in v2.10) |
36
+ | **Prediction Engine** | Holt-Winters forecasting with auto-calibration and self-resolution (new in v2.11) |
37
+ | **AutoResponder** | Automatic anomaly response with configurable rules and parameter adjustment (new in v2.12) |
35
38
  | **Meta-Learning** | Hyper-parameter optimization with Bayesian exploration |
36
39
  | **Autonomous Scheduler** | Self-directed research cycle execution |
37
40
  | **Webhook Service** | Configurable webhooks with HMAC signing and retry |
@@ -157,8 +160,11 @@ class MyRouter implements IpcRouter {
157
160
  ├── Research ───── BaseResearchEngine, ResearchOrchestrator, DataMiner
158
161
  │ ├── Engines ── SelfObserver, AnomalyDetective, Experiment, Adaptive, Agenda
159
162
  │ ├── Engines ── KnowledgeDistiller, Counterfactual, CrossDomain, Journal
163
+ │ ├── AutoResp ─ AutoResponder (anomaly → parameter adjustment, escalation)
160
164
  │ └── Adapters ─ BrainAdapter, TradingAdapter, MarketingAdapter
161
165
  ├── Dream ──────── DreamEngine, DreamConsolidator (offline consolidation)
166
+ ├── Consciousness ─ ThoughtStream, ConsciousnessServer (live SSE dashboard)
167
+ ├── Prediction ─── PredictionEngine, Forecaster (Holt-Winters, EWMA)
162
168
  ├── Memory ────── BaseMemoryEngine, MemoryRecord, SessionRecord, shared interfaces
163
169
  ├── Cross-Brain ── CrossBrainClient, CrossBrainNotifier, Correlator
164
170
  ├── Autonomous ── AutonomousResearchScheduler, MetaLearningEngine
@@ -173,10 +179,10 @@ class MyRouter implements IpcRouter {
173
179
 
174
180
  | Brain | Version | Purpose | Ports |
175
181
  |-------|---------|---------|-------|
176
- | [Brain](https://github.com/timmeck/brain-ecosystem/tree/main/packages/brain) | v3.10.0 | Error memory, code intelligence & persistent context | 7777/7778 |
177
- | [Trading Brain](https://github.com/timmeck/brain-ecosystem/tree/main/packages/trading-brain) | v2.10.0 | Adaptive trading intelligence with memory & sessions | 7779/7780 |
178
- | [Marketing Brain](https://github.com/timmeck/brain-ecosystem/tree/main/packages/marketing-brain) | v1.11.0 | Content strategy & engagement with memory & sessions | 7781/7782/7783 |
179
- | [Brain Core](https://github.com/timmeck/brain-ecosystem/tree/main/packages/brain-core) | v2.9.0 | Shared infrastructure (this package) | — |
182
+ | [Brain](https://github.com/timmeck/brain-ecosystem/tree/main/packages/brain) | v3.13.0 | Error memory, code intelligence & persistent context | 7777/7778/7784 |
183
+ | [Trading Brain](https://github.com/timmeck/brain-ecosystem/tree/main/packages/trading-brain) | v2.13.0 | Adaptive trading intelligence with memory & sessions | 7779/7780/7785 |
184
+ | [Marketing Brain](https://github.com/timmeck/brain-ecosystem/tree/main/packages/marketing-brain) | v1.14.0 | Content strategy & engagement with memory & sessions | 7781/7782/7783/7786 |
185
+ | [Brain Core](https://github.com/timmeck/brain-ecosystem/tree/main/packages/brain-core) | v2.12.0 | Shared infrastructure (this package) | — |
180
186
 
181
187
  All packages live in the [brain-ecosystem](https://github.com/timmeck/brain-ecosystem) monorepo with npm workspaces. Brain Core provides shared infrastructure that eliminates ~2,800 lines of duplicated code across the ecosystem.
182
188
 
@@ -218,6 +224,16 @@ class MyMemoryEngine extends BaseMemoryEngine {
218
224
  }
219
225
  ```
220
226
 
227
+ ### Consciousness & Self-Improvement
228
+
229
+ Brain Core includes a full consciousness layer that makes Brain's internal processes visible:
230
+
231
+ - **ThoughtStream** — Circular buffer capturing every engine's activity in real-time
232
+ - **ConsciousnessServer** — HTTP + SSE server with live neural dashboard (force-directed graph, thought stream, engine status)
233
+ - **PredictionEngine** — Holt-Winters Double Exponential Smoothing with EWMA fallback, auto-calibration via confidence buckets
234
+ - **AutoResponder** — Reacts to detected anomalies automatically: adjusts parameters, escalates critical issues, logs everything
235
+ - **Self-Improvement Loop** — Brain analyzes its own state and generates improvement suggestions in `~/.brain/improvement-requests.md`
236
+
221
237
  Visit the [Brain Hub](https://timmeck.github.io/brain-hub/) for the full ecosystem overview.
222
238
 
223
239
  ## Support
@@ -161,6 +161,8 @@
161
161
  .engine-prediction .thought-engine { color: #00e5ff; }
162
162
  .engine-self_improvement { border-left-color: #ffd700; }
163
163
  .engine-self_improvement .thought-engine { color: #ffd700; }
164
+ .engine-auto_responder { border-left-color: #ff9100; }
165
+ .engine-auto_responder .thought-engine { color: #ff9100; }
164
166
 
165
167
  /* ── Neural Canvas (Center) ─────────────────── */
166
168
  .neural-canvas {
@@ -531,6 +533,7 @@
531
533
  data_miner: '#ccff90',
532
534
  prediction: '#00e5ff',
533
535
  self_improvement: '#ffd700',
536
+ auto_responder: '#ff9100',
534
537
  };
535
538
 
536
539
  const nodeColors = {
@@ -557,6 +560,7 @@
557
560
  reflecting: '📝',
558
561
  correlating: '🔗',
559
562
  predicting: '🔮',
563
+ responding: '⚡',
560
564
  };
561
565
 
562
566
  // ── DOM ────────────────────────────────────────────────
@@ -949,7 +953,7 @@
949
953
  const allEngines = [
950
954
  'orchestrator', 'self_observer', 'anomaly_detective', 'cross_domain',
951
955
  'adaptive_strategy', 'experiment', 'knowledge_distiller', 'research_agenda',
952
- 'counterfactual', 'dream', 'journal', 'data_miner', 'prediction', 'self_improvement',
956
+ 'counterfactual', 'dream', 'journal', 'data_miner', 'prediction', 'auto_responder', 'self_improvement',
953
957
  ];
954
958
 
955
959
  const engineMap = new Map((engineData || []).map(e => [e.engine, e]));
@@ -1,4 +1,4 @@
1
- export type ThoughtType = 'perceiving' | 'analyzing' | 'discovering' | 'hypothesizing' | 'experimenting' | 'dreaming' | 'reflecting' | 'correlating' | 'predicting';
1
+ export type ThoughtType = 'perceiving' | 'analyzing' | 'discovering' | 'hypothesizing' | 'experimenting' | 'dreaming' | 'reflecting' | 'correlating' | 'predicting' | 'responding';
2
2
  export type ThoughtSignificance = 'routine' | 'notable' | 'breakthrough';
3
3
  export interface Thought {
4
4
  id: string;
package/dist/index.d.ts CHANGED
@@ -87,6 +87,8 @@ export { AnomalyDetective, runAnomalyDetectiveMigration } from './research/anoma
87
87
  export type { Anomaly, AnomalyType, AnomalySeverity, DriftReport, AnomalyDetectiveConfig } from './research/anomaly-detective.js';
88
88
  export { ResearchJournal, runJournalMigration } from './research/journal.js';
89
89
  export type { JournalEntry, JournalEntryType, Significance, JournalSummary, JournalConfig } from './research/journal.js';
90
+ export { AutoResponder, runAutoResponderMigration } from './research/auto-responder.js';
91
+ export type { AutoResponse, ResponseRule, ResponseAction, AutoResponderConfig, AutoResponderStatus } from './research/auto-responder.js';
90
92
  export { ResearchOrchestrator } from './research/research-orchestrator.js';
91
93
  export type { ResearchOrchestratorConfig } from './research/research-orchestrator.js';
92
94
  export { DataMiner, runDataMinerMigration } from './research/data-miner.js';
package/dist/index.js CHANGED
@@ -78,6 +78,8 @@ export { ResearchAgendaEngine, runAgendaMigration } from './research/agenda-engi
78
78
  export { AnomalyDetective, runAnomalyDetectiveMigration } from './research/anomaly-detective.js';
79
79
  // ── Research Journal ───────────────────────────────────
80
80
  export { ResearchJournal, runJournalMigration } from './research/journal.js';
81
+ // ── Auto-Responder ──────────────────────────────────
82
+ export { AutoResponder, runAutoResponderMigration } from './research/auto-responder.js';
81
83
  // ── Research Orchestrator ─────────────────────────────
82
84
  export { ResearchOrchestrator } from './research/research-orchestrator.js';
83
85
  // ── DataMiner ────────────────────────────────────────
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,77 @@
1
+ import type Database from 'better-sqlite3';
2
+ import type { Anomaly, AnomalySeverity } from './anomaly-detective.js';
3
+ import type { AdaptiveStrategyEngine, StrategyDomain } from './adaptive-strategy.js';
4
+ import type { ResearchJournal } from './journal.js';
5
+ import type { ThoughtStream } from '../consciousness/thought-stream.js';
6
+ export type ResponseAction = 'parameter_adjust' | 'alert' | 'escalate' | 'resolve' | 'log_only';
7
+ export interface AutoResponse {
8
+ id?: number;
9
+ anomaly_id: number;
10
+ timestamp: number;
11
+ action: ResponseAction;
12
+ description: string;
13
+ parameters_before: Record<string, unknown> | null;
14
+ parameters_after: Record<string, unknown> | null;
15
+ success: boolean;
16
+ reverted: boolean;
17
+ }
18
+ export interface ResponseRule {
19
+ metric_pattern: string;
20
+ min_severity: AnomalySeverity;
21
+ action: ResponseAction;
22
+ strategy?: StrategyDomain;
23
+ parameter?: string;
24
+ adjustment: number;
25
+ description: string;
26
+ }
27
+ export interface AutoResponderConfig {
28
+ brainName: string;
29
+ /** Enable automatic responses. Default: true */
30
+ enabled?: boolean;
31
+ /** Max responses per cycle. Default: 3 */
32
+ maxResponsesPerCycle?: number;
33
+ /** Cooldown per metric (ms) before re-responding. Default: 30 min */
34
+ cooldownMs?: number;
35
+ }
36
+ export interface AutoResponderStatus {
37
+ enabled: boolean;
38
+ total_responses: number;
39
+ successful: number;
40
+ reverted: number;
41
+ success_rate: number;
42
+ recent: AutoResponse[];
43
+ rules_count: number;
44
+ }
45
+ export declare function runAutoResponderMigration(db: Database.Database): void;
46
+ export declare class AutoResponder {
47
+ private db;
48
+ private config;
49
+ private rules;
50
+ private adaptiveStrategy;
51
+ private journal;
52
+ private thoughtStream;
53
+ private log;
54
+ constructor(db: Database.Database, config: AutoResponderConfig);
55
+ setAdaptiveStrategy(engine: AdaptiveStrategyEngine): void;
56
+ setJournal(journal: ResearchJournal): void;
57
+ setThoughtStream(stream: ThoughtStream): void;
58
+ /**
59
+ * Process a batch of anomalies and automatically respond.
60
+ * Returns the list of actions taken.
61
+ */
62
+ respond(anomalies: Anomaly[]): AutoResponse[];
63
+ /** Get response history. */
64
+ getHistory(limit?: number): AutoResponse[];
65
+ /** Get status summary. */
66
+ getStatus(): AutoResponderStatus;
67
+ /** Add a custom response rule. */
68
+ addRule(rule: ResponseRule): void;
69
+ /** List all rules. */
70
+ getRules(): ResponseRule[];
71
+ private loadRules;
72
+ private isOnCooldown;
73
+ private findMatchingRule;
74
+ private executeResponse;
75
+ private logOnlyResponse;
76
+ private persistResponse;
77
+ }
@@ -0,0 +1,321 @@
1
+ import { getLogger } from '../utils/logger.js';
2
+ // ── Severity levels for comparison ──────────────────────
3
+ const SEVERITY_ORDER = {
4
+ low: 0,
5
+ medium: 1,
6
+ high: 2,
7
+ critical: 3,
8
+ };
9
+ // ── Default Response Rules ──────────────────────────────
10
+ const DEFAULT_RULES = [
11
+ // High error rates → tighten match score threshold
12
+ {
13
+ metric_pattern: 'error',
14
+ min_severity: 'high',
15
+ action: 'parameter_adjust',
16
+ strategy: 'recall',
17
+ parameter: 'min_match_score',
18
+ adjustment: -0.05,
19
+ description: 'Hohe Error-Rate → Match-Score-Threshold senken für bessere Lösungsvorschläge',
20
+ },
21
+ // Learning drift → adjust decay rate
22
+ {
23
+ metric_pattern: 'synapse|learning',
24
+ min_severity: 'medium',
25
+ action: 'parameter_adjust',
26
+ strategy: 'learning',
27
+ parameter: 'synapse_decay_rate',
28
+ adjustment: -0.01,
29
+ description: 'Synapse/Learning-Drift → Decay-Rate reduzieren für stabilere Verbindungen',
30
+ },
31
+ // Research stagnation → lower hypothesis confidence bar
32
+ {
33
+ metric_pattern: 'research|hypothesis|insight',
34
+ min_severity: 'medium',
35
+ action: 'parameter_adjust',
36
+ strategy: 'research',
37
+ parameter: 'hypothesis_min_confidence',
38
+ adjustment: -0.05,
39
+ description: 'Research-Stagnation → Hypothesen-Threshold senken für mehr Experimente',
40
+ },
41
+ // High anomaly count → escalate (log for human review)
42
+ {
43
+ metric_pattern: '.*',
44
+ min_severity: 'critical',
45
+ action: 'escalate',
46
+ adjustment: 0,
47
+ description: 'Kritische Anomalie → Eskalation für menschliche Überprüfung',
48
+ },
49
+ // General high-severity → auto-resolve with note
50
+ {
51
+ metric_pattern: '.*',
52
+ min_severity: 'high',
53
+ action: 'resolve',
54
+ adjustment: 0,
55
+ description: 'Hohe Anomalie erkannt und als behandelt markiert',
56
+ },
57
+ ];
58
+ // ── Migration ───────────────────────────────────────────
59
+ export function runAutoResponderMigration(db) {
60
+ db.exec(`
61
+ CREATE TABLE IF NOT EXISTS auto_responses (
62
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
63
+ anomaly_id INTEGER NOT NULL,
64
+ timestamp INTEGER NOT NULL,
65
+ action TEXT NOT NULL,
66
+ description TEXT NOT NULL,
67
+ parameters_before TEXT,
68
+ parameters_after TEXT,
69
+ success INTEGER DEFAULT 1,
70
+ reverted INTEGER DEFAULT 0,
71
+ created_at TEXT DEFAULT (datetime('now'))
72
+ );
73
+ CREATE INDEX IF NOT EXISTS idx_auto_resp_ts ON auto_responses(timestamp);
74
+ CREATE INDEX IF NOT EXISTS idx_auto_resp_anomaly ON auto_responses(anomaly_id);
75
+
76
+ CREATE TABLE IF NOT EXISTS response_rules (
77
+ id INTEGER PRIMARY KEY AUTOINCREMENT,
78
+ metric_pattern TEXT NOT NULL,
79
+ min_severity TEXT NOT NULL,
80
+ action TEXT NOT NULL,
81
+ strategy TEXT,
82
+ parameter TEXT,
83
+ adjustment REAL DEFAULT 0,
84
+ description TEXT NOT NULL,
85
+ enabled INTEGER DEFAULT 1,
86
+ created_at TEXT DEFAULT (datetime('now'))
87
+ );
88
+ `);
89
+ }
90
+ // ── AutoResponder Engine ────────────────────────────────
91
+ export class AutoResponder {
92
+ db;
93
+ config;
94
+ rules;
95
+ adaptiveStrategy = null;
96
+ journal = null;
97
+ thoughtStream = null;
98
+ log = getLogger();
99
+ constructor(db, config) {
100
+ this.db = db;
101
+ this.config = {
102
+ brainName: config.brainName,
103
+ enabled: config.enabled ?? true,
104
+ maxResponsesPerCycle: config.maxResponsesPerCycle ?? 3,
105
+ cooldownMs: config.cooldownMs ?? 30 * 60 * 1000,
106
+ };
107
+ runAutoResponderMigration(db);
108
+ this.rules = this.loadRules();
109
+ }
110
+ setAdaptiveStrategy(engine) {
111
+ this.adaptiveStrategy = engine;
112
+ }
113
+ setJournal(journal) {
114
+ this.journal = journal;
115
+ }
116
+ setThoughtStream(stream) {
117
+ this.thoughtStream = stream;
118
+ }
119
+ /**
120
+ * Process a batch of anomalies and automatically respond.
121
+ * Returns the list of actions taken.
122
+ */
123
+ respond(anomalies) {
124
+ if (!this.config.enabled || anomalies.length === 0)
125
+ return [];
126
+ const responses = [];
127
+ const now = Date.now();
128
+ for (const anomaly of anomalies) {
129
+ if (responses.length >= this.config.maxResponsesPerCycle)
130
+ break;
131
+ // Check cooldown — don't re-respond to same metric too quickly
132
+ if (this.isOnCooldown(anomaly.metric))
133
+ continue;
134
+ // Find matching rule
135
+ const rule = this.findMatchingRule(anomaly);
136
+ if (!rule)
137
+ continue;
138
+ // Execute response
139
+ const response = this.executeResponse(anomaly, rule, now);
140
+ if (response) {
141
+ responses.push(response);
142
+ this.persistResponse(response);
143
+ }
144
+ }
145
+ return responses;
146
+ }
147
+ /** Get response history. */
148
+ getHistory(limit = 20) {
149
+ return this.db.prepare(`
150
+ SELECT * FROM auto_responses ORDER BY timestamp DESC LIMIT ?
151
+ `).all(limit);
152
+ }
153
+ /** Get status summary. */
154
+ getStatus() {
155
+ const total = this.db.prepare('SELECT COUNT(*) as c FROM auto_responses').get().c;
156
+ const successful = this.db.prepare('SELECT COUNT(*) as c FROM auto_responses WHERE success = 1').get().c;
157
+ const reverted = this.db.prepare('SELECT COUNT(*) as c FROM auto_responses WHERE reverted = 1').get().c;
158
+ const recent = this.getHistory(5);
159
+ return {
160
+ enabled: this.config.enabled,
161
+ total_responses: total,
162
+ successful,
163
+ reverted,
164
+ success_rate: total > 0 ? successful / total : 0,
165
+ recent,
166
+ rules_count: this.rules.length,
167
+ };
168
+ }
169
+ /** Add a custom response rule. */
170
+ addRule(rule) {
171
+ this.db.prepare(`
172
+ INSERT INTO response_rules (metric_pattern, min_severity, action, strategy, parameter, adjustment, description)
173
+ VALUES (?, ?, ?, ?, ?, ?, ?)
174
+ `).run(rule.metric_pattern, rule.min_severity, rule.action, rule.strategy ?? null, rule.parameter ?? null, rule.adjustment, rule.description);
175
+ this.rules = this.loadRules();
176
+ }
177
+ /** List all rules. */
178
+ getRules() {
179
+ return this.rules;
180
+ }
181
+ // ── Private Methods ─────────────────────────────────────
182
+ loadRules() {
183
+ const dbRules = this.db.prepare('SELECT * FROM response_rules WHERE enabled = 1').all();
184
+ if (dbRules.length > 0) {
185
+ return dbRules.map(r => ({
186
+ metric_pattern: r.metric_pattern,
187
+ min_severity: r.min_severity,
188
+ action: r.action,
189
+ strategy: r.strategy ?? undefined,
190
+ parameter: r.parameter ?? undefined,
191
+ adjustment: r.adjustment,
192
+ description: r.description,
193
+ }));
194
+ }
195
+ return DEFAULT_RULES;
196
+ }
197
+ isOnCooldown(metric) {
198
+ const recent = this.db.prepare(`
199
+ SELECT id FROM auto_responses
200
+ WHERE description LIKE ? AND timestamp > ?
201
+ LIMIT 1
202
+ `).get(`%${metric}%`, Date.now() - this.config.cooldownMs);
203
+ return !!recent;
204
+ }
205
+ findMatchingRule(anomaly) {
206
+ for (const rule of this.rules) {
207
+ const pattern = new RegExp(rule.metric_pattern, 'i');
208
+ if (!pattern.test(anomaly.metric))
209
+ continue;
210
+ if (SEVERITY_ORDER[anomaly.severity] < SEVERITY_ORDER[rule.min_severity])
211
+ continue;
212
+ return rule;
213
+ }
214
+ return null;
215
+ }
216
+ executeResponse(anomaly, rule, now) {
217
+ const ts = this.thoughtStream;
218
+ switch (rule.action) {
219
+ case 'parameter_adjust': {
220
+ if (!this.adaptiveStrategy || !rule.strategy || !rule.parameter) {
221
+ return this.logOnlyResponse(anomaly, rule, now, 'AdaptiveStrategy nicht verfügbar');
222
+ }
223
+ const status = this.adaptiveStrategy.getStatus();
224
+ const domain = status.strategies[rule.strategy];
225
+ if (!domain)
226
+ return null;
227
+ const oldValue = domain.parameters[rule.parameter];
228
+ if (oldValue === undefined)
229
+ return null;
230
+ const newValue = oldValue + rule.adjustment;
231
+ const description = `${rule.description} [${anomaly.metric}]: ${rule.parameter} ${oldValue.toFixed(3)} → ${newValue.toFixed(3)}`;
232
+ const adaptation = this.adaptiveStrategy.adapt(rule.strategy, rule.parameter, newValue, `AutoResponder: ${anomaly.title}`, { anomaly_id: anomaly.id, severity: anomaly.severity, deviation: anomaly.deviation });
233
+ if (!adaptation) {
234
+ ts?.emit('auto_responder', 'analyzing', `Parameter-Anpassung abgelehnt: ${rule.parameter} (Stabilitätsgrenze)`);
235
+ return null;
236
+ }
237
+ ts?.emit('auto_responder', 'discovering', description, 'notable');
238
+ this.journal?.write({
239
+ type: 'adaptation',
240
+ title: `AutoResponder: ${rule.parameter} angepasst`,
241
+ content: description,
242
+ tags: [this.config.brainName, 'auto_response', rule.action, anomaly.severity],
243
+ references: [],
244
+ significance: anomaly.severity === 'critical' ? 'breakthrough' : 'notable',
245
+ data: { anomaly_id: anomaly.id, old_value: oldValue, new_value: newValue, rule: rule.description },
246
+ });
247
+ return {
248
+ anomaly_id: anomaly.id ?? 0,
249
+ timestamp: now,
250
+ action: 'parameter_adjust',
251
+ description,
252
+ parameters_before: { [rule.parameter]: oldValue },
253
+ parameters_after: { [rule.parameter]: adaptation.new_value },
254
+ success: true,
255
+ reverted: false,
256
+ };
257
+ }
258
+ case 'escalate': {
259
+ const description = `ESKALATION: ${anomaly.title} (${anomaly.severity}) — ${anomaly.metric} weicht ${anomaly.deviation.toFixed(1)}σ ab`;
260
+ ts?.emit('auto_responder', 'discovering', description, 'breakthrough');
261
+ this.journal?.write({
262
+ type: 'anomaly',
263
+ title: `AutoResponder ESKALATION: ${anomaly.title}`,
264
+ content: `${description}\n\nExpected: ${anomaly.expected_value}, Actual: ${anomaly.actual_value}\n${anomaly.description}`,
265
+ tags: [this.config.brainName, 'escalation', 'auto_response', anomaly.severity],
266
+ references: [],
267
+ significance: 'breakthrough',
268
+ data: { anomaly, rule: rule.description },
269
+ });
270
+ return {
271
+ anomaly_id: anomaly.id ?? 0,
272
+ timestamp: now,
273
+ action: 'escalate',
274
+ description,
275
+ parameters_before: null,
276
+ parameters_after: null,
277
+ success: true,
278
+ reverted: false,
279
+ };
280
+ }
281
+ case 'resolve': {
282
+ const description = `Auto-Resolved: ${anomaly.title} (${anomaly.severity}) — ${anomaly.metric}`;
283
+ ts?.emit('auto_responder', 'analyzing', description);
284
+ return {
285
+ anomaly_id: anomaly.id ?? 0,
286
+ timestamp: now,
287
+ action: 'resolve',
288
+ description,
289
+ parameters_before: null,
290
+ parameters_after: null,
291
+ success: true,
292
+ reverted: false,
293
+ };
294
+ }
295
+ case 'alert':
296
+ case 'log_only':
297
+ default:
298
+ return this.logOnlyResponse(anomaly, rule, now, rule.description);
299
+ }
300
+ }
301
+ logOnlyResponse(anomaly, rule, now, msg) {
302
+ this.thoughtStream?.emit('auto_responder', 'perceiving', `Logged: ${anomaly.metric} — ${msg}`);
303
+ return {
304
+ anomaly_id: anomaly.id ?? 0,
305
+ timestamp: now,
306
+ action: 'log_only',
307
+ description: `${msg} [${anomaly.metric}]`,
308
+ parameters_before: null,
309
+ parameters_after: null,
310
+ success: true,
311
+ reverted: false,
312
+ };
313
+ }
314
+ persistResponse(response) {
315
+ this.db.prepare(`
316
+ INSERT INTO auto_responses (anomaly_id, timestamp, action, description, parameters_before, parameters_after, success, reverted)
317
+ VALUES (?, ?, ?, ?, ?, ?, ?, ?)
318
+ `).run(response.anomaly_id, response.timestamp, response.action, response.description, response.parameters_before ? JSON.stringify(response.parameters_before) : null, response.parameters_after ? JSON.stringify(response.parameters_after) : null, response.success ? 1 : 0, 0);
319
+ }
320
+ }
321
+ //# sourceMappingURL=auto-responder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-responder.js","sourceRoot":"","sources":["../../src/research/auto-responder.ts"],"names":[],"mappings":"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"}
@@ -14,6 +14,7 @@ import type { DataMiner } from './data-miner.js';
14
14
  import type { DreamEngine } from '../dream/dream-engine.js';
15
15
  import type { ThoughtStream } from '../consciousness/thought-stream.js';
16
16
  import type { PredictionEngine } from '../prediction/prediction-engine.js';
17
+ import { AutoResponder } from './auto-responder.js';
17
18
  export interface ResearchOrchestratorConfig {
18
19
  brainName: string;
19
20
  /** Feedback loop interval in ms. Default: 300_000 (5 min) */
@@ -35,6 +36,7 @@ export declare class ResearchOrchestrator {
35
36
  readonly researchAgenda: ResearchAgendaEngine;
36
37
  readonly anomalyDetective: AnomalyDetective;
37
38
  readonly journal: ResearchJournal;
39
+ readonly autoResponder: AutoResponder;
38
40
  private dataMiner;
39
41
  private dreamEngine;
40
42
  private thoughtStream;
@@ -46,6 +48,10 @@ export declare class ResearchOrchestrator {
46
48
  private agendaEvery;
47
49
  private reflectEvery;
48
50
  private log;
51
+ /** Tracks how many times each suggestion key has been emitted without being resolved. */
52
+ private suggestionHistory;
53
+ /** Max repeats before trying an alternative. */
54
+ private readonly stalledThreshold;
49
55
  constructor(db: Database.Database, config: ResearchOrchestratorConfig, causalGraph?: CausalGraph);
50
56
  /** Set the DataMiner instance for DB-driven engine feeding. */
51
57
  setDataMiner(miner: DataMiner): void;
@@ -79,7 +85,9 @@ export declare class ResearchOrchestrator {
79
85
  * This is where the engines talk to each other.
80
86
  */
81
87
  runFeedbackCycle(): void;
82
- /** Analyze Brain's own state and generate concrete improvement suggestions. */
88
+ /** Analyze Brain's own state and generate concrete improvement suggestions.
89
+ * Tracks suggestion history — if a suggestion repeats 3+ times without resolution,
90
+ * Brain tries alternative strategies instead of repeating itself. */
83
91
  private generateSelfImprovementSuggestions;
84
92
  /** Append improvement suggestions to ~/.brain/improvement-requests.md */
85
93
  private writeSuggestionsToFile;
@@ -11,6 +11,7 @@ import { KnowledgeDistiller } from './knowledge-distiller.js';
11
11
  import { ResearchAgendaEngine } from './agenda-engine.js';
12
12
  import { AnomalyDetective } from './anomaly-detective.js';
13
13
  import { ResearchJournal } from './journal.js';
14
+ import { AutoResponder } from './auto-responder.js';
14
15
  // ── Orchestrator ────────────────────────────────────────
15
16
  export class ResearchOrchestrator {
16
17
  selfObserver;
@@ -22,6 +23,7 @@ export class ResearchOrchestrator {
22
23
  researchAgenda;
23
24
  anomalyDetective;
24
25
  journal;
26
+ autoResponder;
25
27
  dataMiner = null;
26
28
  dreamEngine = null;
27
29
  thoughtStream = null;
@@ -33,6 +35,10 @@ export class ResearchOrchestrator {
33
35
  agendaEvery;
34
36
  reflectEvery;
35
37
  log = getLogger();
38
+ /** Tracks how many times each suggestion key has been emitted without being resolved. */
39
+ suggestionHistory = new Map();
40
+ /** Max repeats before trying an alternative. */
41
+ stalledThreshold = 3;
36
42
  constructor(db, config, causalGraph) {
37
43
  this.brainName = config.brainName;
38
44
  this.distillEvery = config.distillEvery ?? 5;
@@ -47,6 +53,9 @@ export class ResearchOrchestrator {
47
53
  this.researchAgenda = new ResearchAgendaEngine(db, { brainName: config.brainName });
48
54
  this.anomalyDetective = new AnomalyDetective(db, { brainName: config.brainName });
49
55
  this.journal = new ResearchJournal(db, { brainName: config.brainName });
56
+ this.autoResponder = new AutoResponder(db, { brainName: config.brainName });
57
+ this.autoResponder.setAdaptiveStrategy(this.adaptiveStrategy);
58
+ this.autoResponder.setJournal(this.journal);
50
59
  }
51
60
  /** Set the DataMiner instance for DB-driven engine feeding. */
52
61
  setDataMiner(miner) {
@@ -61,6 +70,7 @@ export class ResearchOrchestrator {
61
70
  /** Set the ThoughtStream for consciousness — emits thoughts at each step. */
62
71
  setThoughtStream(stream) {
63
72
  this.thoughtStream = stream;
73
+ this.autoResponder.setThoughtStream(stream);
64
74
  }
65
75
  /** Set the PredictionEngine — wires journal into it. */
66
76
  setPredictionEngine(engine) {
@@ -194,6 +204,27 @@ export class ResearchOrchestrator {
194
204
  else {
195
205
  ts?.emit('anomaly_detective', 'analyzing', 'No anomalies detected');
196
206
  }
207
+ // 2b. AutoResponder: react to anomalies automatically
208
+ if (anomalies.length > 0) {
209
+ ts?.emit('auto_responder', 'analyzing', `Processing ${anomalies.length} anomal${anomalies.length > 1 ? 'ies' : 'y'}...`);
210
+ const autoResponses = this.autoResponder.respond(anomalies);
211
+ if (autoResponses.length > 0) {
212
+ this.log.info(`[orchestrator] AutoResponder: ${autoResponses.length} actions taken`);
213
+ const paramAdjusts = autoResponses.filter(r => r.action === 'parameter_adjust');
214
+ const escalations = autoResponses.filter(r => r.action === 'escalate');
215
+ const parts = [];
216
+ if (paramAdjusts.length > 0)
217
+ parts.push(`${paramAdjusts.length} Parameter angepasst`);
218
+ if (escalations.length > 0)
219
+ parts.push(`${escalations.length} eskaliert`);
220
+ if (parts.length === 0)
221
+ parts.push(`${autoResponses.length} Aktionen`);
222
+ ts?.emit('auto_responder', 'discovering', `AutoResponder: ${parts.join(', ')}`, escalations.length > 0 ? 'breakthrough' : 'notable');
223
+ }
224
+ else {
225
+ ts?.emit('auto_responder', 'analyzing', 'No auto-responses needed (cooldown or no matching rules)');
226
+ }
227
+ }
197
228
  // 3. Cross-domain correlation analysis
198
229
  ts?.emit('cross_domain', 'correlating', 'Analyzing cross-brain event correlations...');
199
230
  const correlations = this.crossDomain.analyze();
@@ -298,67 +329,165 @@ export class ResearchOrchestrator {
298
329
  ts?.emit('orchestrator', 'reflecting', `Feedback Cycle #${this.cycleCount} complete (${duration}ms)`);
299
330
  this.log.info(`[orchestrator] ─── Feedback Cycle #${this.cycleCount} complete (${duration}ms) ───`);
300
331
  }
301
- /** Analyze Brain's own state and generate concrete improvement suggestions. */
332
+ /** Analyze Brain's own state and generate concrete improvement suggestions.
333
+ * Tracks suggestion history — if a suggestion repeats 3+ times without resolution,
334
+ * Brain tries alternative strategies instead of repeating itself. */
302
335
  generateSelfImprovementSuggestions() {
303
- const suggestions = [];
336
+ const raw = [];
304
337
  const summary = this.getSummary();
305
- // Check prediction engine state
338
+ // ── Diagnose current state ──────────────────────────
339
+ // Prediction engine
306
340
  const pred = summary.prediction;
307
341
  if (pred) {
308
342
  const total = pred.total_predictions ?? 0;
309
- const accuracy = pred.by_domain ?? [];
310
343
  if (total === 0) {
311
- suggestions.push('Tell Claude: Brain hat noch keine Predictions — wir brauchen mehr Domain-Events. Importiere Projekte mit "brain import <dir>" damit Errors/Solutions reinkommen und die PredictionEngine lernen kann.');
344
+ raw.push({
345
+ key: 'no_predictions',
346
+ suggestion: 'Tell Claude: Brain hat noch keine Predictions — wir brauchen mehr Domain-Events. Importiere Projekte mit "brain import <dir>" damit Errors/Solutions reinkommen und die PredictionEngine lernen kann.',
347
+ alternatives: [
348
+ 'Tell Claude: Predictions brauchen Daten, aber niemand importiert Projekte. Alternativer Ansatz: Brain generiert synthetische Metriken aus seinen eigenen Anomaly- und Journal-Daten. Baue eine "SelfMetricGenerator" die aus internen Events (anomaly_count, journal_entries, cycle_duration) automatisch Prediction-Metriken erzeugt.',
349
+ 'Tell Claude: Statt auf externe Daten zu warten, nutzt Brain jetzt die eigenen Feedback-Cycle-Metriken als Trainigsdaten. Baue recordMetric() Aufrufe direkt in den Orchestrator ein: cycle_duration, anomaly_count, insight_count, response_count pro Cycle.',
350
+ 'Tell Claude: Brain hat genug interne Daten um sich selbst vorherzusagen. Idee: PredictionEngine auf orchestrator-eigene Metriken ansetzen (cycle_count, anomaly_rate, journal_growth) — dann lernt Brain seine eigene Entwicklung vorherzusagen.',
351
+ ],
352
+ });
312
353
  }
354
+ const accuracy = pred.by_domain ?? [];
313
355
  for (const d of accuracy) {
314
356
  const rate = d.accuracy_rate;
315
357
  if (typeof rate === 'number' && rate < 0.3 && d.total > 5) {
316
- suggestions.push(`Tell Claude: Prediction accuracy für "${d.domain}" ist nur ${(rate * 100).toFixed(0)}% — die Smoothing-Parameter (alpha/beta) sollten optimiert werden. Mehr historische Daten oder kürzere Horizonte könnten helfen.`);
358
+ raw.push({
359
+ key: `low_accuracy_${d.domain}`,
360
+ suggestion: `Tell Claude: Prediction accuracy für "${d.domain}" ist nur ${(rate * 100).toFixed(0)}% — Smoothing-Parameter optimieren oder kürzere Horizonte nutzen.`,
361
+ alternatives: [
362
+ `Tell Claude: Prediction für "${d.domain}" ist schlecht trotz Tuning. Neuer Ansatz: ExperimentEngine soll verschiedene Alpha/Beta-Kombinationen A/B-testen und die beste automatisch übernehmen.`,
363
+ `Tell Claude: Statt bessere Vorhersagen zu erzwingen — Confidence-Threshold erhöhen und nur hochsichere Predictions ausgeben. Lieber selten aber richtig als oft und falsch.`,
364
+ ],
365
+ });
317
366
  }
318
367
  }
319
368
  }
320
- // Check anomaly count
321
- const anomalies = summary.anomalies;
322
- if (anomalies && anomalies.length > 5) {
323
- suggestions.push(`Tell Claude: ${anomalies.length} unbehandelte Anomalien — Brain erkennt Probleme, kann aber noch nicht automatisch reagieren. Ein "AutoResponder" der auf Anomalien reagiert wäre der nächste Schritt.`);
369
+ // AutoResponder effectiveness
370
+ const responder = summary.autoResponder;
371
+ if (responder) {
372
+ const totalResp = responder.total_responses ?? 0;
373
+ const successRate = responder.success_rate ?? 0;
374
+ if (totalResp > 10 && successRate < 0.5) {
375
+ raw.push({
376
+ key: 'low_responder_success',
377
+ suggestion: `Tell Claude: AutoResponder Success-Rate ist nur ${(successRate * 100).toFixed(0)}% — Response-Rules brauchen Feintuning.`,
378
+ alternatives: [
379
+ 'Tell Claude: AutoResponder lernt nicht aus Fehlern. Baue ein Feedback-System: wenn eine Response reverted wird, merke dir die Kombination (anomaly_type + rule) und blockiere sie beim nächsten Mal.',
380
+ 'Tell Claude: Statt Rules manuell zu tunen — AutoResponder soll die ExperimentEngine nutzen um verschiedene Adjustment-Werte zu testen und die besten automatisch zu übernehmen.',
381
+ ],
382
+ });
383
+ }
324
384
  }
325
- // Check knowledge distillation
385
+ // Knowledge distillation
326
386
  const knowledge = summary.knowledge;
327
387
  if (knowledge) {
328
388
  const principles = knowledge.total_principles ?? 0;
329
389
  const antiPatterns = knowledge.total_anti_patterns ?? 0;
330
390
  if (principles === 0 && antiPatterns === 0 && this.cycleCount > 5) {
331
- suggestions.push('Tell Claude: Kein destilliertes Wissen nach mehreren Cycles — der KnowledgeDistiller braucht mehr Journal-Einträge. Brain sollte mehr Events verarbeiten (Imports, Fehler, Solutions).');
391
+ raw.push({
392
+ key: 'no_knowledge',
393
+ suggestion: 'Tell Claude: Kein destilliertes Wissen — KnowledgeDistiller braucht mehr Journal-Einträge.',
394
+ alternatives: [
395
+ 'Tell Claude: KnowledgeDistiller findet nichts weil die Journal-Einträge zu uniform sind. Alternativer Ansatz: der Distiller soll auch aus AutoResponder-Aktionen und Anomaly-Patterns Wissen extrahieren, nicht nur aus Journal-Text.',
396
+ 'Tell Claude: Statt auf mehr Daten zu warten — den Distiller auf die vorhandenen Synapse-Gewichte ansetzen. Die stärksten Synapsen sind implizites Wissen das destilliert werden kann.',
397
+ ],
398
+ });
332
399
  }
333
400
  }
334
- // Check dream engine
401
+ // Dream engine
335
402
  const dream = summary.dream;
336
403
  if (dream) {
337
404
  const totalDreams = dream.total_dreams ?? 0;
338
405
  if (totalDreams === 0 && this.cycleCount > 10) {
339
- suggestions.push('Tell Claude: Dream Mode hat noch nie konsolidiert — der Idle-Threshold von 5 Minuten wird vielleicht nie erreicht. Einen manuellen Dream-Cycle triggern oder den Threshold verkürzen.');
406
+ raw.push({
407
+ key: 'no_dreams',
408
+ suggestion: 'Tell Claude: Dream Mode hat noch nie konsolidiert — Idle-Threshold wird nie erreicht.',
409
+ alternatives: [
410
+ 'Tell Claude: Dream Mode wartet vergeblich auf Idle. Alternativer Trigger: nach jedem 10. Feedback-Cycle automatisch einen Mini-Dream-Cycle starten (nur Importance Decay + Synapse Pruning, kein Full Replay).',
411
+ 'Tell Claude: Statt auf Idle zu warten — DreamEngine.consolidate() direkt im Orchestrator aufrufen, z.B. alle 20 Cycles. Brain muss nicht "schlafen" um zu konsolidieren.',
412
+ ],
413
+ });
340
414
  }
341
415
  }
342
- // Check journal
416
+ // Journal
343
417
  const journal = summary.journal;
344
418
  if (journal) {
345
419
  const entries = journal.total_entries ?? 0;
346
420
  if (entries < 5 && this.cycleCount > 5) {
347
- suggestions.push('Tell Claude: Das Journal ist fast leer — Brain sammelt zu wenig Erfahrungen. Mehr Projekte importieren und Fehler melden damit Brain lernen kann.');
421
+ raw.push({
422
+ key: 'empty_journal',
423
+ suggestion: 'Tell Claude: Journal ist fast leer — Brain sammelt zu wenig Erfahrungen.',
424
+ alternatives: [
425
+ 'Tell Claude: Journal hat zu wenig Einträge von außen. Workaround: Brain soll seine eigenen Feedback-Cycle-Ergebnisse als Journal-Einträge schreiben — jede Anomaly-Detection, jede Parameter-Anpassung, jede Prediction ist eine Erfahrung.',
426
+ 'Tell Claude: Statt auf externe Events zu warten — der Orchestrator soll am Ende jedes Cycles automatisch eine Reflection schreiben mit: was wurde erkannt, was wurde getan, was hat sich verändert.',
427
+ ],
428
+ });
348
429
  }
349
430
  }
350
- // Check experiments
431
+ // Experiments
351
432
  const experiments = summary.experiments;
352
433
  if ((!experiments || experiments.length === 0) && this.cycleCount > 3) {
353
- suggestions.push('Tell Claude: Keine laufenden Experimente — Brain könnte A/B-Tests auf eigene Parameter machen (z.B. Smoothing-Alpha testen, verschiedene Similarity-Thresholds). Ein "AutoExperiment" Feature wäre wertvoll.');
434
+ raw.push({
435
+ key: 'no_experiments',
436
+ suggestion: 'Tell Claude: Keine Experimente — Brain könnte A/B-Tests auf eigene Parameter machen.',
437
+ alternatives: [
438
+ 'Tell Claude: Brain experimentiert nicht. Selbsthilfe-Idee: AutoExperiment-Feature bauen — Brain startet automatisch Experimente auf seine eigenen Parameter (z.B. "Was passiert wenn ich den Anomaly-Threshold von 2.0 auf 1.5 senke?") und misst den Impact nach 5 Cycles.',
439
+ 'Tell Claude: Statt auf manuelle Experimente zu warten — Brain soll den CounterfactualEngine nutzen um "What-If" Szenarien durchzuspielen und die vielversprechendsten automatisch als Experiment starten.',
440
+ ],
441
+ });
354
442
  }
355
- // Self-awareness: suggest next capabilities
443
+ // Self-awareness (every 10 cycles, but also evolves)
356
444
  if (this.cycleCount % 10 === 0 && this.cycleCount > 0) {
357
- suggestions.push('Tell Claude: Brain kann beobachten, vorhersagen und konsolidieren — aber noch nicht selbst handeln. Der nächste Schritt wäre ein "ActionEngine" die eigenständig Parameter anpasst, Imports triggert, oder Code-Verbesserungen vorschlägt.');
445
+ raw.push({
446
+ key: 'next_capability',
447
+ suggestion: 'Tell Claude: Brain kann beobachten, vorhersagen, reagieren und sich verbessern. Der nächste Schritt: eigenständig Experimente designen und durchführen.',
448
+ alternatives: [
449
+ 'Tell Claude: Brain hat alle Beobachtungs-Tools — jetzt fehlt Autonomie. Konkreter nächster Schritt: ein "GoalEngine" die langfristige Ziele setzt (z.B. "Prediction Accuracy auf 70% bringen") und eigenständig Strategien dafür plant.',
450
+ 'Tell Claude: Brain beobachtet sich schon gut. Nächstes Level: Brain soll seinen eigenen Code analysieren können und konkrete TypeScript-Änderungen vorschlagen die es verbessern würden. Ein "CodeSuggestionEngine" der PRs generiert.',
451
+ ],
452
+ });
453
+ }
454
+ // ── Apply frustration detection ──────────────────────
455
+ const suggestions = [];
456
+ for (const item of raw) {
457
+ const history = this.suggestionHistory.get(item.key);
458
+ if (!history) {
459
+ // First time seeing this issue
460
+ this.suggestionHistory.set(item.key, { count: 1, firstCycle: this.cycleCount, lastCycle: this.cycleCount });
461
+ suggestions.push(item.suggestion);
462
+ }
463
+ else {
464
+ history.count++;
465
+ history.lastCycle = this.cycleCount;
466
+ if (history.count <= this.stalledThreshold) {
467
+ // Still within patience — repeat original suggestion
468
+ suggestions.push(item.suggestion);
469
+ }
470
+ else {
471
+ // Stalled! Try an alternative strategy
472
+ const altIndex = (history.count - this.stalledThreshold - 1) % item.alternatives.length;
473
+ const alt = item.alternatives[altIndex];
474
+ if (alt) {
475
+ const stalledNote = `[Vorschlag "${item.key}" wurde ${history.count}x ignoriert — versuche alternativen Ansatz]`;
476
+ suggestions.push(`${alt}\n ${stalledNote}`);
477
+ }
478
+ }
479
+ }
480
+ }
481
+ // Clear resolved suggestions (issue no longer appears → reset counter)
482
+ const currentKeys = new Set(raw.map(r => r.key));
483
+ for (const [key] of this.suggestionHistory) {
484
+ if (!currentKeys.has(key)) {
485
+ this.suggestionHistory.delete(key);
486
+ this.log.info(`[orchestrator] Self-improvement: "${key}" resolved — removing from history`);
487
+ }
358
488
  }
359
- // Limit to max 3 per cycle to avoid spam
489
+ // Limit to max 3 per cycle
360
490
  const result = suggestions.slice(0, 3);
361
- // Write to file so user can send them to Claude
362
491
  if (result.length > 0) {
363
492
  this.writeSuggestionsToFile(result);
364
493
  }
@@ -400,6 +529,7 @@ export class ResearchOrchestrator {
400
529
  strategy: this.adaptiveStrategy.getStatus(),
401
530
  dream: this.dreamEngine?.getStatus() ?? null,
402
531
  prediction: this.predictionEngine?.getSummary() ?? null,
532
+ autoResponder: this.autoResponder.getStatus(),
403
533
  };
404
534
  }
405
535
  }
@@ -1 +1 @@
1
- {"version":3,"file":"research-orchestrator.js","sourceRoot":"","sources":["../../src/research/research-orchestrator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"research-orchestrator.js","sourceRoot":"","sources":["../../src/research/research-orchestrator.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@timmeck/brain-core",
3
- "version": "2.11.1",
3
+ "version": "2.12.1",
4
4
  "description": "Shared core infrastructure for the Brain ecosystem — IPC, MCP, CLI, DB connection, and utilities",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",