@timmeck/brain-core 2.36.67 → 2.36.68

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.
@@ -27,6 +27,8 @@ export declare class ChatEngine {
27
27
  private readonly config;
28
28
  private ipcHandler;
29
29
  private availableRoutes;
30
+ private multiBrainRouter;
31
+ private crossBrainQuery;
30
32
  private readonly stmtInsert;
31
33
  private readonly stmtGetSession;
32
34
  private readonly stmtCountSessions;
@@ -36,6 +38,10 @@ export declare class ChatEngine {
36
38
  setIpcHandler(handler: IpcHandler): void;
37
39
  /** Set the list of available IPC routes for NLU matching */
38
40
  setAvailableRoutes(routes: string[]): void;
41
+ /** Set the cross-brain query function for multi-brain chat. */
42
+ setCrossBrainQuery(fn: (brain: string, method: string, params?: unknown) => Promise<unknown>): void;
43
+ /** Process a multi-brain query — routes message to 1+ brains and aggregates results. */
44
+ processMultiBrain(sessionId: string, content: string): Promise<ChatMessage>;
39
45
  /** Process a user message and generate a response */
40
46
  processMessage(sessionId: string, content: string): Promise<ChatMessage>;
41
47
  /** Get chat history for a session */
@@ -1,4 +1,5 @@
1
1
  import { getLogger } from '../utils/logger.js';
2
+ import { MultiBrainRouter } from './multi-brain-router.js';
2
3
  // ── Migration ──────────────────────────────────────────────
3
4
  export function runChatMigration(db) {
4
5
  db.exec(`
@@ -25,6 +26,8 @@ export class ChatEngine {
25
26
  config;
26
27
  ipcHandler = null;
27
28
  availableRoutes = [];
29
+ multiBrainRouter = new MultiBrainRouter();
30
+ crossBrainQuery = null;
28
31
  stmtInsert;
29
32
  stmtGetSession;
30
33
  stmtCountSessions;
@@ -49,6 +52,55 @@ export class ChatEngine {
49
52
  setAvailableRoutes(routes) {
50
53
  this.availableRoutes = routes;
51
54
  }
55
+ /** Set the cross-brain query function for multi-brain chat. */
56
+ setCrossBrainQuery(fn) {
57
+ this.crossBrainQuery = fn;
58
+ }
59
+ /** Process a multi-brain query — routes message to 1+ brains and aggregates results. */
60
+ async processMultiBrain(sessionId, content) {
61
+ const userMsg = {
62
+ id: `msg-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`,
63
+ sessionId, role: 'user', content, timestamp: Date.now(),
64
+ };
65
+ this.storeMessage(userMsg);
66
+ let responseContent;
67
+ let toolCalls;
68
+ try {
69
+ const routing = this.multiBrainRouter.route(content);
70
+ if (routing.brains.length === 1 && routing.brains[0] === this.config.brainName) {
71
+ // Single brain — use local routing
72
+ const route = this.matchRoute(content);
73
+ if (route && this.ipcHandler) {
74
+ const params = this.extractParams(content, route);
75
+ const result = await this.ipcHandler(route, params);
76
+ toolCalls = JSON.stringify({ route, params, result });
77
+ responseContent = this.formatResult(route, result);
78
+ }
79
+ else {
80
+ responseContent = this.generateFallback(content);
81
+ }
82
+ }
83
+ else if (this.crossBrainQuery && this.ipcHandler) {
84
+ // Multi-brain query
85
+ const method = this.matchRoute(content) ?? 'status';
86
+ const aggregated = await this.multiBrainRouter.queryMultiple(routing.brains, this.config.brainName, (m, p) => Promise.resolve(this.ipcHandler(m, p)), this.crossBrainQuery, method);
87
+ toolCalls = JSON.stringify({ routing, method, responses: aggregated.responses.length });
88
+ responseContent = aggregated.markdown;
89
+ }
90
+ else {
91
+ responseContent = this.generateFallback(content);
92
+ }
93
+ }
94
+ catch (err) {
95
+ responseContent = `Fehler: ${err.message}`;
96
+ }
97
+ const assistantMsg = {
98
+ id: `msg-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`,
99
+ sessionId, role: 'assistant', content: responseContent, toolCalls, timestamp: Date.now(),
100
+ };
101
+ this.storeMessage(assistantMsg);
102
+ return assistantMsg;
103
+ }
52
104
  /** Process a user message and generate a response */
53
105
  async processMessage(sessionId, content) {
54
106
  // Store user message
@@ -1 +1 @@
1
- {"version":3,"file":"chat-engine.js","sourceRoot":"","sources":["../../src/chat/chat-engine.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-engine.js","sourceRoot":"","sources":["../../src/chat/chat-engine.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,4 @@
1
1
  export { ChatEngine, runChatMigration } from './chat-engine.js';
2
2
  export type { ChatMessage, ChatEngineConfig, ChatEngineStatus } from './chat-engine.js';
3
+ export { MultiBrainRouter } from './multi-brain-router.js';
4
+ export type { MultiBrainRoute, MultiBrainResponse, AggregatedResponse } from './multi-brain-router.js';
@@ -1,2 +1,3 @@
1
1
  export { ChatEngine, runChatMigration } from './chat-engine.js';
2
+ export { MultiBrainRouter } from './multi-brain-router.js';
2
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/chat/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAGhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,25 @@
1
+ export interface MultiBrainRoute {
2
+ brains: string[];
3
+ intent: string;
4
+ }
5
+ export interface MultiBrainResponse {
6
+ brain: string;
7
+ response: unknown;
8
+ error?: string;
9
+ durationMs: number;
10
+ }
11
+ export interface AggregatedResponse {
12
+ responses: MultiBrainResponse[];
13
+ markdown: string;
14
+ }
15
+ type CrossBrainQuery = (brain: string, method: string, params?: unknown) => Promise<unknown>;
16
+ export declare class MultiBrainRouter {
17
+ /** Route a message to one or more brains. */
18
+ route(message: string): MultiBrainRoute;
19
+ /** Query multiple brains in parallel and aggregate responses. */
20
+ queryMultiple(brains: string[], localBrain: string, localHandler: (method: string, params?: unknown) => Promise<unknown>, crossBrainQuery: CrossBrainQuery, method: string, params?: unknown, timeoutMs?: number): Promise<AggregatedResponse>;
21
+ /** Aggregate responses into markdown. */
22
+ private aggregate;
23
+ private brainDisplayName;
24
+ }
25
+ export {};
@@ -0,0 +1,88 @@
1
+ import { getLogger } from '../utils/logger.js';
2
+ // ── Router ──────────────────────────────────────────────
3
+ const BRAIN_KEYWORDS = {
4
+ 'brain': ['error', 'fehler', 'bug', 'code', 'synapse', 'dream', 'solution', 'memory', 'pattern', 'modul'],
5
+ 'trading-brain': ['trade', 'signal', 'strategy', 'price', 'backtest', 'paper', 'portfolio', 'market', 'position', 'crypto', 'btc'],
6
+ 'marketing-brain': ['content', 'post', 'campaign', 'engagement', 'marketing', 'audience', 'social', 'publish', 'bluesky'],
7
+ };
8
+ const MULTI_BRAIN_KEYWORDS = ['system', 'overview', 'übersicht', 'gesamtsystem', 'alle', 'all brains', 'ecosystem', 'performt', 'performance', 'status gesamt', 'wie läuft'];
9
+ const log = getLogger();
10
+ export class MultiBrainRouter {
11
+ /** Route a message to one or more brains. */
12
+ route(message) {
13
+ const lower = message.toLowerCase();
14
+ // Check multi-brain triggers first
15
+ if (MULTI_BRAIN_KEYWORDS.some(kw => lower.includes(kw))) {
16
+ return { brains: ['brain', 'trading-brain', 'marketing-brain'], intent: 'multi-status' };
17
+ }
18
+ // Score each brain by keyword matches
19
+ const scores = {};
20
+ for (const [brain, keywords] of Object.entries(BRAIN_KEYWORDS)) {
21
+ scores[brain] = keywords.filter(kw => lower.includes(kw)).length;
22
+ }
23
+ const matched = Object.entries(scores)
24
+ .filter(([, score]) => score > 0)
25
+ .sort(([, a], [, b]) => b - a)
26
+ .map(([brain]) => brain);
27
+ if (matched.length === 0) {
28
+ // Default: route to the local brain
29
+ return { brains: ['brain'], intent: 'unknown' };
30
+ }
31
+ const intent = matched.length > 1 ? 'cross-brain' : matched[0];
32
+ return { brains: matched, intent };
33
+ }
34
+ /** Query multiple brains in parallel and aggregate responses. */
35
+ async queryMultiple(brains, localBrain, localHandler, crossBrainQuery, method, params, timeoutMs = 5000) {
36
+ const responses = [];
37
+ const promises = brains.map(async (brain) => {
38
+ const start = Date.now();
39
+ try {
40
+ let result;
41
+ if (brain === localBrain) {
42
+ result = await localHandler(method, params);
43
+ }
44
+ else {
45
+ result = await Promise.race([
46
+ crossBrainQuery(brain, method, params),
47
+ new Promise((_, reject) => setTimeout(() => reject(new Error('timeout')), timeoutMs)),
48
+ ]);
49
+ }
50
+ responses.push({ brain, response: result, durationMs: Date.now() - start });
51
+ }
52
+ catch (err) {
53
+ responses.push({ brain, response: null, error: err.message, durationMs: Date.now() - start });
54
+ }
55
+ });
56
+ await Promise.all(promises);
57
+ return {
58
+ responses,
59
+ markdown: this.aggregate(responses),
60
+ };
61
+ }
62
+ /** Aggregate responses into markdown. */
63
+ aggregate(responses) {
64
+ const sections = [];
65
+ for (const r of responses) {
66
+ const title = this.brainDisplayName(r.brain);
67
+ if (r.error) {
68
+ sections.push(`## ${title}\n*Fehler: ${r.error}*`);
69
+ }
70
+ else {
71
+ const content = typeof r.response === 'string'
72
+ ? r.response
73
+ : JSON.stringify(r.response, null, 2).substring(0, 800);
74
+ sections.push(`## ${title}\n${content}`);
75
+ }
76
+ }
77
+ return sections.join('\n\n');
78
+ }
79
+ brainDisplayName(brain) {
80
+ switch (brain) {
81
+ case 'brain': return 'Brain (Code & Errors)';
82
+ case 'trading-brain': return 'Trading Brain';
83
+ case 'marketing-brain': return 'Marketing Brain';
84
+ default: return brain;
85
+ }
86
+ }
87
+ }
88
+ //# sourceMappingURL=multi-brain-router.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-brain-router.js","sourceRoot":"","sources":["../../src/chat/multi-brain-router.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -277,10 +277,12 @@ export { ContentForge, runContentForgeMigration, AutoPublisher } from './content
277
277
  export type { ContentPiece, ContentEngagement, ContentForgeConfig, ContentForgeStatus, AutoPublisherConfig, AutoPublisherStats, } from './content/index.js';
278
278
  export { CodeForge, runCodeForgeMigration } from './codegen/code-forge.js';
279
279
  export type { CodeProduct, CodePattern, CodeForgeConfig, CodeForgeStatus, } from './codegen/code-forge.js';
280
- export { StrategyForge, runStrategyForgeMigration, StrategyMutator } from './strategy/index.js';
281
- export type { Strategy as ForgeStrategy, StrategyRule, StrategyPerformance, BacktestResult, StrategyForgeConfig, StrategyForgeStatus, MutationConfig, MutationResult, } from './strategy/index.js';
282
- export { ChatEngine, runChatMigration } from './chat/index.js';
283
- export type { ChatMessage, ChatEngineConfig, ChatEngineStatus } from './chat/index.js';
280
+ export { StrategyForge, runStrategyForgeMigration, StrategyMutator, StrategyExporter, StrategyImporter } from './strategy/index.js';
281
+ export type { Strategy as ForgeStrategy, StrategyRule, StrategyPerformance, BacktestResult, StrategyForgeConfig, StrategyForgeStatus, MutationConfig, MutationResult, StrategyExportFormat, ImportResult, } from './strategy/index.js';
282
+ export { AdaptiveScheduler } from './research/adaptive-scheduler.js';
283
+ export type { AdaptiveSchedulerConfig, AdaptiveSchedulerStatus, SchedulerBucket, CycleOutcome } from './research/adaptive-scheduler.js';
284
+ export { ChatEngine, runChatMigration, MultiBrainRouter } from './chat/index.js';
285
+ export type { ChatMessage, ChatEngineConfig, ChatEngineStatus, MultiBrainRoute, MultiBrainResponse, AggregatedResponse } from './chat/index.js';
284
286
  export { EngineRegistry, runEngineRegistryMigration, getDefaultEngineProfiles } from './governance/index.js';
285
287
  export type { EngineProfile, EngineRegistryStatus } from './governance/index.js';
286
288
  export { RuntimeInfluenceTracker, runRuntimeInfluenceMigration } from './governance/index.js';
package/dist/index.js CHANGED
@@ -240,9 +240,11 @@ export { ContentForge, runContentForgeMigration, AutoPublisher } from './content
240
240
  // ── Code Forge ────────────────────────────────────────────
241
241
  export { CodeForge, runCodeForgeMigration } from './codegen/code-forge.js';
242
242
  // ── Strategy Forge ────────────────────────────────────────
243
- export { StrategyForge, runStrategyForgeMigration, StrategyMutator } from './strategy/index.js';
243
+ export { StrategyForge, runStrategyForgeMigration, StrategyMutator, StrategyExporter, StrategyImporter } from './strategy/index.js';
244
+ // ── Adaptive Scheduler ───────────────────────────────────
245
+ export { AdaptiveScheduler } from './research/adaptive-scheduler.js';
244
246
  // ── Chat Engine ──────────────────────────────────────────
245
- export { ChatEngine, runChatMigration } from './chat/index.js';
247
+ export { ChatEngine, runChatMigration, MultiBrainRouter } from './chat/index.js';
246
248
  // ── Governance ──────────────────────────────────────────
247
249
  export { EngineRegistry, runEngineRegistryMigration, getDefaultEngineProfiles } from './governance/index.js';
248
250
  export { RuntimeInfluenceTracker, runRuntimeInfluenceMigration } from './governance/index.js';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAGA,8DAA8D;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAEzE,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAC1E,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAG5D,8DAA8D;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,8DAA8D;AAC9D,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,iBAAiB,CAAC;AAElH,8DAA8D;AAC9D,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAEjD,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAC;AAGrD,8DAA8D;AAC9D,OAAO,EAAE,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAEtH,8DAA8D;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAG3F,8DAA8D;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAEvD,8DAA8D;AAC9D,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAQ/D,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAC3D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,QAAQ,EAAE,MAAM,0BAA0B,CAAC;AACpD,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;AAEnE,6DAA6D;AAC7D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAG/D,2DAA2D;AAC3D,OAAO,EAAE,mBAAmB,EAAE,MAAM,wBAAwB,CAAC;AAU7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gCAAgC,CAAC;AAElE,4DAA4D;AAC5D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAE/D,OAAO,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAEzE,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAG3E,8DAA8D;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,6BAA6B,EAAE,MAAM,+BAA+B,CAAC;AAE9E,OAAO,EAAE,oBAAoB,EAAE,MAAM,6BAA6B,CAAC;AAEnE,OAAO,EAAE,cAAc,EAAE,MAAM,mCAAmC,CAAC;AAEnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAElE,OAAO,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,MAAM,gCAAgC,CAAC;AAGlG,6DAA6D;AAC7D,OAAO,EAAE,eAAe,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAE9F,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAEtE,6DAA6D;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAG5F,8DAA8D;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAG1D,6DAA6D;AAC7D,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5E,6DAA6D;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,6DAA6D;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAGpD,4DAA4D;AAC5D,OAAO,EAAE,2BAA2B,EAAE,6BAA6B,EAAE,MAAM,oCAAoC,CAAC;AAGhH,4DAA4D;AAC5D,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAGzF,4DAA4D;AAC5D,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGrE,4DAA4D;AAC5D,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGlF,2DAA2D;AAC3D,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAGrF,0DAA0D;AAC1D,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAGvG,0DAA0D;AAC1D,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAG3F,0DAA0D;AAC1D,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,mCAAmC,CAAC;AAG/F,0DAA0D;AAC1D,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAGvG,0DAA0D;AAC1D,OAAO,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAGvG,0DAA0D;AAC1D,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAGvF,0DAA0D;AAC1D,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,iCAAiC,CAAC;AAGjG,0DAA0D;AAC1D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG7E,uDAAuD;AACvD,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAGxF,yDAAyD;AACzD,OAAO,EAAE,oBAAoB,EAAE,MAAM,qCAAqC,CAAC;AAG3E,wDAAwD;AACxD,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAE5E,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,yBAAyB,EAAE,uBAAuB,EAAE,MAAM,8BAA8B,CAAC;AAElJ,wDAAwD;AACxD,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AAG1F,uDAAuD;AACvD,OAAO,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAGrD,uDAAuD;AACvD,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG9E,sDAAsD;AACtD,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AACjF,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG/F,4DAA4D;AAC5D,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,oBAAoB,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC9E,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAUnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAElD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,yDAAyD;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAMvD,wDAAwD;AACxD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAOrD,yDAAyD;AACzD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAOvD,yDAAyD;AACzD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAO9E,yDAAyD;AACzD,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAO9E,0DAA0D;AAC1D,OAAO,EAAE,YAAY,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAQrE,2DAA2D;AAC3D,OAAO,EAAE,iBAAiB,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;AAG5F,OAAO,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;AAGzF,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AAG5F,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAGhF,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAGhF,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGpF,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAGlF,0DAA0D;AAC1D,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,0BAA0B,CAAC;AAOlF,4DAA4D;AAC5D,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAOtE,4DAA4D;AAC5D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAQ9E,2DAA2D;AAC3D,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAO7E,0DAA0D;AAC1D,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,qBAAqB,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAEvI,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,6CAA6C,CAAC;AACpG,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0CAA0C,CAAC;AAG5E,yDAAyD;AACzD,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,8BAA8B,CAAC;AAG1F,0DAA0D;AAC1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAG5D,4DAA4D;AAC5D,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAM/E,4DAA4D;AAC5D,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,EAAE,MAAM,8BAA8B,CAAC;AAMpG,2DAA2D;AAC3D,OAAO,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,MAAM,gCAAgC,CAAC;AAOpG,2DAA2D;AAC3D,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAGtD,4DAA4D;AAC5D,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACpE,OAAO,EAAE,UAAU,EAAE,iBAAiB,EAAE,cAAc,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAQxG,8DAA8D;AAC9D,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,kBAAkB,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAM/I,8DAA8D;AAC9D,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,iBAAiB,EAAE,8BAA8B,EAAE,MAAM,gBAAgB,CAAC;AAO1L,4DAA4D;AAC5D,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,sBAAsB,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAQlH,YAAY;AACZ,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,WAAW,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAO7H,gBAAgB;AAChB,OAAO,EAAE,mBAAmB,EAAE,wBAAwB,EAAE,eAAe,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAO3I,iEAAiE;AACjE,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAE5D,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C,gEAAgE;AAChE,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAE9F,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAE3D,OAAO,EAAE,qBAAqB,EAAE,iCAAiC,EAAE,MAAM,4BAA4B,CAAC;AAGtG,gEAAgE;AAChE,OAAO,EAAE,kBAAkB,EAAE,8BAA8B,EAAE,MAAM,mCAAmC,CAAC;AAGvG,gEAAgE;AAChE,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE3E,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AAGjF,gEAAgE;AAChE,OAAO,EAAE,WAAW,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,gEAAgE;AAChE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG9E,gEAAgE;AAChE,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAGxD,gEAAgE;AAChE,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,wBAAwB,CAAC;AAGnF,gEAAgE;AAChE,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAE7E,OAAO,EAAE,UAAU,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAGzE,gEAAgE;AAChE,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAG9E,gEAAgE;AAChE,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAGvF,+DAA+D;AAC/D,OAAO,EAAE,iBAAiB,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAGlF,+DAA+D;AAC/D,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAG7E,+DAA+D;AAC/D,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAM9E,+DAA+D;AAC/D,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAKlF,OAAO,EAAE,YAAY,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAI9E,OAAO,EAAE,QAAQ,EAAE,oBAAoB,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAK5F,+DAA+D;AAC/D,OAAO,EAAE,gBAAgB,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAKpF,+DAA+D;AAC/D,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAMtE,+DAA+D;AAC/D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAM/E,+DAA+D;AAC/D,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,wBAAwB,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG7H,+DAA+D;AAC/D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAG3D,+DAA+D;AAC/D,OAAO,EAAE,eAAe,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAKnF,+DAA+D;AAC/D,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAM3E,6DAA6D;AAC7D,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAU1M,6DAA6D;AAC7D,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAO3F,6DAA6D;AAC7D,OAAO,EAAE,SAAS,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAM3E,6DAA6D;AAC7D,OAAO,EAAE,aAAa,EAAE,yBAAyB,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAMhG,4DAA4D;AAC5D,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAG/D,2DAA2D;AAC3D,OAAO,EAAE,cAAc,EAAE,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAE7G,OAAO,EAAE,uBAAuB,EAAE,4BAA4B,EAAE,MAAM,uBAAuB,CAAC;AAE9F,OAAO,EAAE,YAAY,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAE/E,OAAO,EAAE,eAAe,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ export interface SchedulerBucket {
2
+ cycleCount: number;
3
+ insightsFound: number;
4
+ rulesLearned: number;
5
+ anomaliesDetected: number;
6
+ avgDurationMs: number;
7
+ }
8
+ export interface CycleOutcome {
9
+ insightsFound: number;
10
+ rulesLearned: number;
11
+ anomaliesDetected: number;
12
+ durationMs: number;
13
+ }
14
+ export interface AdaptiveSchedulerConfig {
15
+ baseIntervalMs?: number;
16
+ minIntervalMs?: number;
17
+ maxIntervalMs?: number;
18
+ productiveMultiplier?: number;
19
+ idleMultiplier?: number;
20
+ idleThreshold?: number;
21
+ }
22
+ export interface AdaptiveSchedulerStatus {
23
+ currentIntervalMs: number;
24
+ baseIntervalMs: number;
25
+ minIntervalMs: number;
26
+ maxIntervalMs: number;
27
+ totalCycles: number;
28
+ productiveBuckets: number;
29
+ idleBuckets: number;
30
+ }
31
+ export declare class AdaptiveScheduler {
32
+ private buckets;
33
+ private currentIntervalMs;
34
+ private readonly config;
35
+ private readonly log;
36
+ constructor(config?: AdaptiveSchedulerConfig);
37
+ /** Get bucket index for a given time. */
38
+ private getBucketIndex;
39
+ /** Record outcome of a completed cycle. */
40
+ recordOutcome(outcome: CycleOutcome, date?: Date): void;
41
+ /** Compute next interval based on current bucket's productivity. */
42
+ private computeInterval;
43
+ /** Get the recommended interval for the next cycle. */
44
+ getNextInterval(): number;
45
+ /** Update base config from ParameterRegistry values. */
46
+ updateConfig(partial: Partial<AdaptiveSchedulerConfig>): void;
47
+ /** Get status summary. */
48
+ getStatus(): AdaptiveSchedulerStatus;
49
+ /** Reset all bucket data. */
50
+ reset(): void;
51
+ /** Get raw bucket data (for dashboard/debugging). */
52
+ getBuckets(): readonly SchedulerBucket[];
53
+ }
@@ -0,0 +1,122 @@
1
+ import { getLogger } from '../utils/logger.js';
2
+ // ── Scheduler ───────────────────────────────────────
3
+ const HOURS_PER_DAY = 24;
4
+ const DAYS_PER_WEEK = 7;
5
+ const TOTAL_BUCKETS = HOURS_PER_DAY * DAYS_PER_WEEK; // 168
6
+ export class AdaptiveScheduler {
7
+ buckets;
8
+ currentIntervalMs;
9
+ config;
10
+ log = getLogger();
11
+ constructor(config = {}) {
12
+ this.config = {
13
+ baseIntervalMs: config.baseIntervalMs ?? 300_000,
14
+ minIntervalMs: config.minIntervalMs ?? 120_000,
15
+ maxIntervalMs: config.maxIntervalMs ?? 900_000,
16
+ productiveMultiplier: config.productiveMultiplier ?? 0.7,
17
+ idleMultiplier: config.idleMultiplier ?? 1.5,
18
+ idleThreshold: config.idleThreshold ?? 3,
19
+ };
20
+ this.currentIntervalMs = this.config.baseIntervalMs;
21
+ this.buckets = Array.from({ length: TOTAL_BUCKETS }, () => ({
22
+ cycleCount: 0,
23
+ insightsFound: 0,
24
+ rulesLearned: 0,
25
+ anomaliesDetected: 0,
26
+ avgDurationMs: 0,
27
+ }));
28
+ }
29
+ /** Get bucket index for a given time. */
30
+ getBucketIndex(date = new Date()) {
31
+ const day = date.getDay(); // 0=Sunday
32
+ const hour = date.getHours();
33
+ return day * HOURS_PER_DAY + hour;
34
+ }
35
+ /** Record outcome of a completed cycle. */
36
+ recordOutcome(outcome, date = new Date()) {
37
+ const idx = this.getBucketIndex(date);
38
+ const bucket = this.buckets[idx];
39
+ // Running average for duration
40
+ const totalDuration = bucket.avgDurationMs * bucket.cycleCount + outcome.durationMs;
41
+ bucket.cycleCount++;
42
+ bucket.avgDurationMs = totalDuration / bucket.cycleCount;
43
+ bucket.insightsFound += outcome.insightsFound;
44
+ bucket.rulesLearned += outcome.rulesLearned;
45
+ bucket.anomaliesDetected += outcome.anomaliesDetected;
46
+ // Recalculate interval
47
+ this.currentIntervalMs = this.computeInterval(idx);
48
+ this.log.debug(`[adaptive-scheduler] Bucket ${idx} (day=${date.getDay()},h=${date.getHours()}): cycles=${bucket.cycleCount}, interval=${this.currentIntervalMs}ms`);
49
+ }
50
+ /** Compute next interval based on current bucket's productivity. */
51
+ computeInterval(bucketIndex) {
52
+ const bucket = this.buckets[bucketIndex];
53
+ const { baseIntervalMs, minIntervalMs, maxIntervalMs, productiveMultiplier, idleMultiplier, idleThreshold } = this.config;
54
+ const isProductive = bucket.insightsFound > 0 || bucket.anomaliesDetected > 0 || bucket.rulesLearned > 0;
55
+ const isIdle = !isProductive && bucket.cycleCount >= idleThreshold;
56
+ let interval = baseIntervalMs;
57
+ if (isProductive) {
58
+ interval = Math.round(baseIntervalMs * productiveMultiplier);
59
+ }
60
+ else if (isIdle) {
61
+ interval = Math.round(baseIntervalMs * idleMultiplier);
62
+ }
63
+ return Math.max(minIntervalMs, Math.min(maxIntervalMs, interval));
64
+ }
65
+ /** Get the recommended interval for the next cycle. */
66
+ getNextInterval() {
67
+ return this.currentIntervalMs;
68
+ }
69
+ /** Update base config from ParameterRegistry values. */
70
+ updateConfig(partial) {
71
+ if (partial.baseIntervalMs !== undefined)
72
+ this.config.baseIntervalMs = partial.baseIntervalMs;
73
+ if (partial.minIntervalMs !== undefined)
74
+ this.config.minIntervalMs = partial.minIntervalMs;
75
+ if (partial.maxIntervalMs !== undefined)
76
+ this.config.maxIntervalMs = partial.maxIntervalMs;
77
+ if (partial.productiveMultiplier !== undefined)
78
+ this.config.productiveMultiplier = partial.productiveMultiplier;
79
+ if (partial.idleMultiplier !== undefined)
80
+ this.config.idleMultiplier = partial.idleMultiplier;
81
+ if (partial.idleThreshold !== undefined)
82
+ this.config.idleThreshold = partial.idleThreshold;
83
+ }
84
+ /** Get status summary. */
85
+ getStatus() {
86
+ let productive = 0;
87
+ let idle = 0;
88
+ for (const b of this.buckets) {
89
+ if (b.cycleCount === 0)
90
+ continue;
91
+ if (b.insightsFound > 0 || b.anomaliesDetected > 0 || b.rulesLearned > 0)
92
+ productive++;
93
+ else if (b.cycleCount >= this.config.idleThreshold)
94
+ idle++;
95
+ }
96
+ return {
97
+ currentIntervalMs: this.currentIntervalMs,
98
+ baseIntervalMs: this.config.baseIntervalMs,
99
+ minIntervalMs: this.config.minIntervalMs,
100
+ maxIntervalMs: this.config.maxIntervalMs,
101
+ totalCycles: this.buckets.reduce((s, b) => s + b.cycleCount, 0),
102
+ productiveBuckets: productive,
103
+ idleBuckets: idle,
104
+ };
105
+ }
106
+ /** Reset all bucket data. */
107
+ reset() {
108
+ for (const b of this.buckets) {
109
+ b.cycleCount = 0;
110
+ b.insightsFound = 0;
111
+ b.rulesLearned = 0;
112
+ b.anomaliesDetected = 0;
113
+ b.avgDurationMs = 0;
114
+ }
115
+ this.currentIntervalMs = this.config.baseIntervalMs;
116
+ }
117
+ /** Get raw bucket data (for dashboard/debugging). */
118
+ getBuckets() {
119
+ return this.buckets;
120
+ }
121
+ }
122
+ //# sourceMappingURL=adaptive-scheduler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adaptive-scheduler.js","sourceRoot":"","sources":["../../src/research/adaptive-scheduler.ts"],"names":[],"mappings":"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"}
@@ -52,6 +52,7 @@ import type { CodeHealthMonitor } from '../code-health/health-monitor.js';
52
52
  import type { KnowledgeGraphEngine } from '../knowledge-graph/graph-engine.js';
53
53
  import type { RepoAbsorber } from '../codegen/repo-absorber.js';
54
54
  import { AutoResponder } from './auto-responder.js';
55
+ import { AdaptiveScheduler } from './adaptive-scheduler.js';
55
56
  export interface ResearchOrchestratorConfig {
56
57
  brainName: string;
57
58
  /** Feedback loop interval in ms. Default: 300_000 (5 min) */
@@ -140,6 +141,7 @@ export declare class ResearchOrchestrator {
140
141
  private runtimeInfluenceTracker;
141
142
  private loopDetector;
142
143
  private governanceLayer;
144
+ private adaptiveScheduler;
143
145
  private lastAutoMissionTime;
144
146
  private lastGoalMissionTime;
145
147
  private roadmapBootstrapped;
@@ -167,6 +169,10 @@ export declare class ResearchOrchestrator {
167
169
  constructor(db: Database.Database, config: ResearchOrchestratorConfig, causalGraph?: CausalGraph);
168
170
  /** Set callback for self-improvement suggestions (e.g. to create notifications). */
169
171
  setOnSuggestion(callback: (suggestions: string[]) => void): void;
172
+ /** Set the AdaptiveScheduler for dynamic cycle intervals. */
173
+ setAdaptiveScheduler(scheduler: AdaptiveScheduler): void;
174
+ /** Get the AdaptiveScheduler instance. */
175
+ getAdaptiveScheduler(): AdaptiveScheduler | null;
170
176
  /** Set the DataMiner instance for DB-driven engine feeding. */
171
177
  setDataMiner(miner: DataMiner): void;
172
178
  /** Set the DreamEngine — wires journal + knowledgeDistiller into it. */
@@ -296,6 +302,9 @@ export declare class ResearchOrchestrator {
296
302
  setPredictionEngine(engine: PredictionEngine): void;
297
303
  /** Start the autonomous feedback loop timer. */
298
304
  start(intervalMs?: number): void;
305
+ /** Schedule the next feedback cycle (supports adaptive intervals). */
306
+ private scheduleNextCycle;
307
+ private startIntervalMs;
299
308
  /** Stop the feedback loop. */
300
309
  stop(): void;
301
310
  /**