@timmeck/brain-core 2.36.58 → 2.36.59

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/dist/action/__tests__/adjust-parameter-handler.test.d.ts +1 -0
  2. package/dist/action/__tests__/adjust-parameter-handler.test.js +138 -0
  3. package/dist/action/__tests__/adjust-parameter-handler.test.js.map +1 -0
  4. package/dist/action/__tests__/creative-seed-handler.test.d.ts +1 -0
  5. package/dist/action/__tests__/creative-seed-handler.test.js +96 -0
  6. package/dist/action/__tests__/creative-seed-handler.test.js.map +1 -0
  7. package/dist/action/handlers/adjust-parameter-handler.d.ts +28 -0
  8. package/dist/action/handlers/adjust-parameter-handler.js +44 -0
  9. package/dist/action/handlers/adjust-parameter-handler.js.map +1 -0
  10. package/dist/action/handlers/creative-seed-handler.d.ts +24 -0
  11. package/dist/action/handlers/creative-seed-handler.js +34 -0
  12. package/dist/action/handlers/creative-seed-handler.js.map +1 -0
  13. package/dist/action/handlers/index.d.ts +4 -0
  14. package/dist/action/handlers/index.js +2 -0
  15. package/dist/action/handlers/index.js.map +1 -1
  16. package/dist/action/index.d.ts +2 -2
  17. package/dist/action/index.js +1 -1
  18. package/dist/action/index.js.map +1 -1
  19. package/dist/chat/__tests__/chat-engine.test.js +81 -0
  20. package/dist/chat/__tests__/chat-engine.test.js.map +1 -1
  21. package/dist/chat/chat-engine.js +37 -1
  22. package/dist/chat/chat-engine.js.map +1 -1
  23. package/dist/codegen/codegen-server.js +2 -2
  24. package/dist/codegen/codegen-server.js.map +1 -1
  25. package/dist/cross-brain/__tests__/signal-router.test.js +59 -0
  26. package/dist/cross-brain/__tests__/signal-router.test.js.map +1 -1
  27. package/dist/index.d.ts +2 -2
  28. package/dist/index.js +1 -1
  29. package/dist/index.js.map +1 -1
  30. package/dist/research/research-orchestrator.js +1 -1
  31. package/dist/research/research-orchestrator.js.map +1 -1
  32. package/dist/self-modification/__tests__/self-modification-engine.test.js +62 -4
  33. package/dist/self-modification/__tests__/self-modification-engine.test.js.map +1 -1
  34. package/dist/self-modification/self-modification-engine.d.ts +4 -1
  35. package/dist/self-modification/self-modification-engine.js +41 -3
  36. package/dist/self-modification/self-modification-engine.js.map +1 -1
  37. package/dist/unified/unified-server.js +2 -2
  38. package/dist/unified/unified-server.js.map +1 -1
  39. package/package.json +1 -1
@@ -0,0 +1,138 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
+ import Database from 'better-sqlite3';
3
+ vi.mock('../../utils/logger.js', () => ({
4
+ getLogger: () => ({ info: vi.fn(), warn: vi.fn(), error: vi.fn(), debug: vi.fn() }),
5
+ }));
6
+ import { createAdjustParameterHandler } from '../handlers/adjust-parameter-handler.js';
7
+ import { ActionBridgeEngine } from '../action-bridge.js';
8
+ describe('AdjustParameterHandler', () => {
9
+ describe('createAdjustParameterHandler', () => {
10
+ it('creates a handler function', () => {
11
+ const handler = createAdjustParameterHandler({
12
+ getParameter: vi.fn(),
13
+ setParameter: vi.fn(),
14
+ });
15
+ expect(typeof handler).toBe('function');
16
+ });
17
+ it('adjusts parameter within bounds', async () => {
18
+ const setParameter = vi.fn();
19
+ const handler = createAdjustParameterHandler({
20
+ getParameter: vi.fn().mockReturnValue({ value: 0.5, min: 0.1, max: 0.9 }),
21
+ setParameter,
22
+ });
23
+ const result = await handler({
24
+ engine: 'dream',
25
+ parameter: 'prune_threshold',
26
+ suggestedValue: 0.7,
27
+ reason: 'improve consolidation',
28
+ });
29
+ expect(result.adjusted).toBe(true);
30
+ expect(result.oldValue).toBe(0.5);
31
+ expect(result.newValue).toBe(0.7);
32
+ expect(setParameter).toHaveBeenCalledWith('dream', 'prune_threshold', 0.7);
33
+ });
34
+ it('clamps value to max bound', async () => {
35
+ const setParameter = vi.fn();
36
+ const handler = createAdjustParameterHandler({
37
+ getParameter: vi.fn().mockReturnValue({ value: 0.5, min: 0.1, max: 0.9 }),
38
+ setParameter,
39
+ });
40
+ const result = await handler({
41
+ engine: 'dream',
42
+ parameter: 'prune_threshold',
43
+ suggestedValue: 1.5,
44
+ reason: 'too high',
45
+ });
46
+ expect(result.adjusted).toBe(true);
47
+ expect(result.newValue).toBe(0.9);
48
+ });
49
+ it('clamps value to min bound', async () => {
50
+ const setParameter = vi.fn();
51
+ const handler = createAdjustParameterHandler({
52
+ getParameter: vi.fn().mockReturnValue({ value: 0.5, min: 0.1, max: 0.9 }),
53
+ setParameter,
54
+ });
55
+ const result = await handler({
56
+ engine: 'dream',
57
+ parameter: 'prune_threshold',
58
+ suggestedValue: -0.5,
59
+ reason: 'too low',
60
+ });
61
+ expect(result.adjusted).toBe(true);
62
+ expect(result.newValue).toBe(0.1);
63
+ });
64
+ it('returns adjusted=false when parameter not found', async () => {
65
+ const handler = createAdjustParameterHandler({
66
+ getParameter: vi.fn().mockReturnValue(undefined),
67
+ setParameter: vi.fn(),
68
+ });
69
+ const result = await handler({
70
+ engine: 'unknown',
71
+ parameter: 'missing',
72
+ suggestedValue: 0.5,
73
+ });
74
+ expect(result.adjusted).toBe(false);
75
+ });
76
+ it('returns adjusted=false when engine/parameter name missing', async () => {
77
+ const handler = createAdjustParameterHandler({
78
+ getParameter: vi.fn(),
79
+ setParameter: vi.fn(),
80
+ });
81
+ const result = await handler({ suggestedValue: 0.5 });
82
+ expect(result.adjusted).toBe(false);
83
+ });
84
+ it('handles setParameter errors gracefully', async () => {
85
+ const handler = createAdjustParameterHandler({
86
+ getParameter: vi.fn().mockReturnValue({ value: 0.5, min: 0.1, max: 0.9 }),
87
+ setParameter: vi.fn().mockImplementation(() => { throw new Error('DB locked'); }),
88
+ });
89
+ const result = await handler({
90
+ engine: 'dream',
91
+ parameter: 'prune_threshold',
92
+ suggestedValue: 0.7,
93
+ reason: 'test',
94
+ });
95
+ expect(result.adjusted).toBe(false);
96
+ });
97
+ });
98
+ describe('Integration with ActionBridgeEngine', () => {
99
+ let db;
100
+ beforeEach(() => { db = new Database(':memory:'); });
101
+ afterEach(() => { db.close(); });
102
+ it('registers and executes adjust_parameter through ActionBridge', async () => {
103
+ const engine = new ActionBridgeEngine(db, { brainName: 'test' });
104
+ const setParameter = vi.fn();
105
+ engine.registerHandler('adjust_parameter', createAdjustParameterHandler({
106
+ getParameter: vi.fn().mockReturnValue({ value: 0.15, min: 0.01, max: 0.5 }),
107
+ setParameter,
108
+ }));
109
+ const id = engine.propose({
110
+ source: 'feedback-router',
111
+ type: 'adjust_parameter',
112
+ title: 'Adjust dream prune threshold',
113
+ confidence: 0.85,
114
+ payload: { engine: 'dream', parameter: 'prune_threshold', suggestedValue: 0.2, reason: 'test' },
115
+ });
116
+ const result = await engine.executeAction(id);
117
+ expect(result.success).toBe(true);
118
+ expect(setParameter).toHaveBeenCalledOnce();
119
+ });
120
+ it('auto-executes when confidence >= 0.8', async () => {
121
+ const engine = new ActionBridgeEngine(db, { brainName: 'test' });
122
+ engine.registerHandler('adjust_parameter', createAdjustParameterHandler({
123
+ getParameter: vi.fn().mockReturnValue({ value: 0.1, min: 0.01, max: 0.5 }),
124
+ setParameter: vi.fn(),
125
+ }));
126
+ engine.propose({
127
+ source: 'feedback-router',
128
+ type: 'adjust_parameter',
129
+ title: 'Auto-adjust',
130
+ confidence: 0.9,
131
+ payload: { engine: 'dream', parameter: 'prune_threshold', suggestedValue: 0.3, reason: 'auto' },
132
+ });
133
+ const executed = await engine.processQueue();
134
+ expect(executed).toBe(1);
135
+ });
136
+ });
137
+ });
138
+ //# sourceMappingURL=adjust-parameter-handler.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adjust-parameter-handler.test.js","sourceRoot":"","sources":["../../../src/action/__tests__/adjust-parameter-handler.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,96 @@
1
+ import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
+ import Database from 'better-sqlite3';
3
+ vi.mock('../../utils/logger.js', () => ({
4
+ getLogger: () => ({ info: vi.fn(), warn: vi.fn(), error: vi.fn(), debug: vi.fn() }),
5
+ }));
6
+ import { createCreativeSeedHandler } from '../handlers/creative-seed-handler.js';
7
+ import { ActionBridgeEngine } from '../action-bridge.js';
8
+ describe('CreativeSeedHandler', () => {
9
+ describe('createCreativeSeedHandler', () => {
10
+ it('creates a handler function', () => {
11
+ const handler = createCreativeSeedHandler({
12
+ pollinate: vi.fn().mockReturnValue({ ideas: [] }),
13
+ });
14
+ expect(typeof handler).toBe('function');
15
+ });
16
+ it('calls pollinate with topic and domains', async () => {
17
+ const pollinate = vi.fn().mockReturnValue({ ideas: [{ title: 'Idea 1', score: 0.8 }] });
18
+ const handler = createCreativeSeedHandler({ pollinate });
19
+ const result = await handler({
20
+ topic: 'crypto-marketing',
21
+ domains: ['trading', 'content'],
22
+ source: 'feedback-router',
23
+ confidence: 0.7,
24
+ });
25
+ expect(pollinate).toHaveBeenCalledWith('crypto-marketing', ['trading', 'content']);
26
+ expect(result.seeded).toBe(true);
27
+ expect(result.topic).toBe('crypto-marketing');
28
+ expect(result.ideasGenerated).toBe(1);
29
+ });
30
+ it('returns seeded=false when no ideas generated', async () => {
31
+ const handler = createCreativeSeedHandler({
32
+ pollinate: vi.fn().mockReturnValue({ ideas: [] }),
33
+ });
34
+ const result = await handler({ topic: 'empty-topic' });
35
+ expect(result.seeded).toBe(false);
36
+ expect(result.ideasGenerated).toBe(0);
37
+ });
38
+ it('defaults topic to "general" when missing', async () => {
39
+ const pollinate = vi.fn().mockReturnValue({ ideas: [] });
40
+ const handler = createCreativeSeedHandler({ pollinate });
41
+ const result = await handler({});
42
+ expect(result.topic).toBe('general');
43
+ expect(pollinate).toHaveBeenCalledWith('general', undefined);
44
+ });
45
+ it('handles pollinate errors gracefully', async () => {
46
+ const handler = createCreativeSeedHandler({
47
+ pollinate: vi.fn().mockImplementation(() => { throw new Error('LLM unavailable'); }),
48
+ });
49
+ const result = await handler({ topic: 'test' });
50
+ expect(result.seeded).toBe(false);
51
+ expect(result.ideasGenerated).toBe(0);
52
+ });
53
+ it('passes empty domains as undefined', async () => {
54
+ const pollinate = vi.fn().mockReturnValue({ ideas: [{ title: 'X', score: 0.5 }] });
55
+ const handler = createCreativeSeedHandler({ pollinate });
56
+ await handler({ topic: 'test', domains: [] });
57
+ expect(pollinate).toHaveBeenCalledWith('test', undefined);
58
+ });
59
+ });
60
+ describe('Integration with ActionBridgeEngine', () => {
61
+ let db;
62
+ beforeEach(() => { db = new Database(':memory:'); });
63
+ afterEach(() => { db.close(); });
64
+ it('registers and executes creative_seed through ActionBridge', async () => {
65
+ const engine = new ActionBridgeEngine(db, { brainName: 'test' });
66
+ const pollinate = vi.fn().mockReturnValue({ ideas: [{ title: 'Idea', score: 0.9 }] });
67
+ engine.registerHandler('creative_seed', createCreativeSeedHandler({ pollinate }));
68
+ const id = engine.propose({
69
+ source: 'feedback-router',
70
+ type: 'creative_seed',
71
+ title: 'Seed creativity for crypto',
72
+ confidence: 0.85,
73
+ payload: { topic: 'crypto', domains: ['trading'] },
74
+ });
75
+ const result = await engine.executeAction(id);
76
+ expect(result.success).toBe(true);
77
+ expect(pollinate).toHaveBeenCalledOnce();
78
+ });
79
+ it('auto-executes when confidence >= 0.8', async () => {
80
+ const engine = new ActionBridgeEngine(db, { brainName: 'test' });
81
+ engine.registerHandler('creative_seed', createCreativeSeedHandler({
82
+ pollinate: vi.fn().mockReturnValue({ ideas: [{ title: 'X', score: 0.5 }] }),
83
+ }));
84
+ engine.propose({
85
+ source: 'feedback-router',
86
+ type: 'creative_seed',
87
+ title: 'Auto-seed',
88
+ confidence: 0.9,
89
+ payload: { topic: 'auto' },
90
+ });
91
+ const executed = await engine.processQueue();
92
+ expect(executed).toBe(1);
93
+ });
94
+ });
95
+ });
96
+ //# sourceMappingURL=creative-seed-handler.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creative-seed-handler.test.js","sourceRoot":"","sources":["../../../src/action/__tests__/creative-seed-handler.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,28 @@
1
+ export interface AdjustParameterPayload {
2
+ engine: string;
3
+ parameter: string;
4
+ currentValue: number;
5
+ suggestedValue: number;
6
+ reason: string;
7
+ }
8
+ export interface AdjustParameterHandlerDeps {
9
+ getParameter: (engine: string, name: string) => {
10
+ value: number;
11
+ min: number;
12
+ max: number;
13
+ } | undefined;
14
+ setParameter: (engine: string, name: string, value: number) => void;
15
+ }
16
+ export interface AdjustParameterHandlerResult {
17
+ adjusted: boolean;
18
+ engine: string;
19
+ parameter: string;
20
+ oldValue: number;
21
+ newValue: number;
22
+ reason: string;
23
+ }
24
+ /**
25
+ * Creates an ActionBridge handler for `adjust_parameter` actions.
26
+ * Translates FeedbackRouter adjust_parameter proposals into ParameterRegistry updates.
27
+ */
28
+ export declare function createAdjustParameterHandler(deps: AdjustParameterHandlerDeps): (payload: Record<string, unknown>) => Promise<AdjustParameterHandlerResult>;
@@ -0,0 +1,44 @@
1
+ import { getLogger } from '../../utils/logger.js';
2
+ // ── Handler Factory ──────────────────────────────────────────
3
+ const log = getLogger();
4
+ /**
5
+ * Creates an ActionBridge handler for `adjust_parameter` actions.
6
+ * Translates FeedbackRouter adjust_parameter proposals into ParameterRegistry updates.
7
+ */
8
+ export function createAdjustParameterHandler(deps) {
9
+ return async (payload) => {
10
+ const engine = payload.engine ?? '';
11
+ const parameter = payload.parameter ?? '';
12
+ const suggestedValue = payload.suggestedValue ?? 0;
13
+ const reason = payload.reason ?? '';
14
+ if (!engine || !parameter) {
15
+ log.warn(`[adjust-parameter-handler] Missing engine or parameter name`);
16
+ return { adjusted: false, engine, parameter, oldValue: 0, newValue: 0, reason };
17
+ }
18
+ const current = deps.getParameter(engine, parameter);
19
+ if (!current) {
20
+ log.warn(`[adjust-parameter-handler] Parameter ${engine}.${parameter} not found`);
21
+ return { adjusted: false, engine, parameter, oldValue: 0, newValue: suggestedValue, reason };
22
+ }
23
+ // Clamp to bounds
24
+ const clamped = Math.max(current.min, Math.min(current.max, suggestedValue));
25
+ const oldValue = current.value;
26
+ try {
27
+ deps.setParameter(engine, parameter, clamped);
28
+ log.info(`[adjust-parameter-handler] Adjusted ${engine}.${parameter}: ${oldValue} → ${clamped} (reason: ${reason})`);
29
+ return {
30
+ adjusted: true,
31
+ engine,
32
+ parameter,
33
+ oldValue,
34
+ newValue: clamped,
35
+ reason,
36
+ };
37
+ }
38
+ catch (err) {
39
+ log.warn(`[adjust-parameter-handler] Failed to adjust: ${err.message}`);
40
+ return { adjusted: false, engine, parameter, oldValue, newValue: clamped, reason };
41
+ }
42
+ };
43
+ }
44
+ //# sourceMappingURL=adjust-parameter-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"adjust-parameter-handler.js","sourceRoot":"","sources":["../../../src/action/handlers/adjust-parameter-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AA0BlD,gEAAgE;AAEhE,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;AAExB;;;GAGG;AACH,MAAM,UAAU,4BAA4B,CAAC,IAAgC;IAC3E,OAAO,KAAK,EAAE,OAAgC,EAAyC,EAAE;QACvF,MAAM,MAAM,GAAI,OAAO,CAAC,MAAiB,IAAI,EAAE,CAAC;QAChD,MAAM,SAAS,GAAI,OAAO,CAAC,SAAoB,IAAI,EAAE,CAAC;QACtD,MAAM,cAAc,GAAI,OAAO,CAAC,cAAyB,IAAI,CAAC,CAAC;QAC/D,MAAM,MAAM,GAAI,OAAO,CAAC,MAAiB,IAAI,EAAE,CAAC;QAEhD,IAAI,CAAC,MAAM,IAAI,CAAC,SAAS,EAAE,CAAC;YAC1B,GAAG,CAAC,IAAI,CAAC,6DAA6D,CAAC,CAAC;YACxE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;QAClF,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,wCAAwC,MAAM,IAAI,SAAS,YAAY,CAAC,CAAC;YAClF,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC;QAC/F,CAAC;QAED,kBAAkB;QAClB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,CAAC;QAC7E,MAAM,QAAQ,GAAG,OAAO,CAAC,KAAK,CAAC;QAE/B,IAAI,CAAC;YACH,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;YAC9C,GAAG,CAAC,IAAI,CAAC,uCAAuC,MAAM,IAAI,SAAS,KAAK,QAAQ,MAAM,OAAO,aAAa,MAAM,GAAG,CAAC,CAAC;YAErH,OAAO;gBACL,QAAQ,EAAE,IAAI;gBACd,MAAM;gBACN,SAAS;gBACT,QAAQ;gBACR,QAAQ,EAAE,OAAO;gBACjB,MAAM;aACP,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,gDAAiD,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YACnF,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QACrF,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -0,0 +1,24 @@
1
+ export interface CreativeSeedPayload {
2
+ topic: string;
3
+ domains: string[];
4
+ source: string;
5
+ confidence: number;
6
+ }
7
+ export interface CreativeSeedHandlerDeps {
8
+ pollinate: (topic: string, domains?: string[]) => {
9
+ ideas: Array<{
10
+ title: string;
11
+ score: number;
12
+ }>;
13
+ };
14
+ }
15
+ export interface CreativeSeedHandlerResult {
16
+ seeded: boolean;
17
+ topic: string;
18
+ ideasGenerated: number;
19
+ }
20
+ /**
21
+ * Creates an ActionBridge handler for `creative_seed` actions.
22
+ * Translates FeedbackRouter creative_seed proposals into CreativeEngine.pollinate() calls.
23
+ */
24
+ export declare function createCreativeSeedHandler(deps: CreativeSeedHandlerDeps): (payload: Record<string, unknown>) => Promise<CreativeSeedHandlerResult>;
@@ -0,0 +1,34 @@
1
+ import { getLogger } from '../../utils/logger.js';
2
+ // ── Handler Factory ──────────────────────────────────────────
3
+ const log = getLogger();
4
+ /**
5
+ * Creates an ActionBridge handler for `creative_seed` actions.
6
+ * Translates FeedbackRouter creative_seed proposals into CreativeEngine.pollinate() calls.
7
+ */
8
+ export function createCreativeSeedHandler(deps) {
9
+ return async (payload) => {
10
+ const topic = payload.topic ?? 'general';
11
+ const domains = payload.domains ?? [];
12
+ const source = payload.source ?? 'unknown';
13
+ log.info(`[creative-seed-handler] Seeding creativity for topic="${topic}" from ${source}`);
14
+ try {
15
+ const result = deps.pollinate(topic, domains.length > 0 ? domains : undefined);
16
+ const count = result.ideas?.length ?? 0;
17
+ log.info(`[creative-seed-handler] Generated ${count} ideas for "${topic}"`);
18
+ return {
19
+ seeded: count > 0,
20
+ topic,
21
+ ideasGenerated: count,
22
+ };
23
+ }
24
+ catch (err) {
25
+ log.warn(`[creative-seed-handler] Failed to seed: ${err.message}`);
26
+ return {
27
+ seeded: false,
28
+ topic,
29
+ ideasGenerated: 0,
30
+ };
31
+ }
32
+ };
33
+ }
34
+ //# sourceMappingURL=creative-seed-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"creative-seed-handler.js","sourceRoot":"","sources":["../../../src/action/handlers/creative-seed-handler.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAqBlD,gEAAgE;AAEhE,MAAM,GAAG,GAAG,SAAS,EAAE,CAAC;AAExB;;;GAGG;AACH,MAAM,UAAU,yBAAyB,CAAC,IAA6B;IACrE,OAAO,KAAK,EAAE,OAAgC,EAAsC,EAAE;QACpF,MAAM,KAAK,GAAI,OAAO,CAAC,KAAgB,IAAI,SAAS,CAAC;QACrD,MAAM,OAAO,GAAI,OAAO,CAAC,OAAoB,IAAI,EAAE,CAAC;QACpD,MAAM,MAAM,GAAI,OAAO,CAAC,MAAiB,IAAI,SAAS,CAAC;QAEvD,GAAG,CAAC,IAAI,CAAC,yDAAyD,KAAK,UAAU,MAAM,EAAE,CAAC,CAAC;QAE3F,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;YAC/E,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,MAAM,IAAI,CAAC,CAAC;YAExC,GAAG,CAAC,IAAI,CAAC,qCAAqC,KAAK,eAAe,KAAK,GAAG,CAAC,CAAC;YAE5E,OAAO;gBACL,MAAM,EAAE,KAAK,GAAG,CAAC;gBACjB,KAAK;gBACL,cAAc,EAAE,KAAK;aACtB,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,GAAG,CAAC,IAAI,CAAC,2CAA4C,GAAa,CAAC,OAAO,EAAE,CAAC,CAAC;YAC9E,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,KAAK;gBACL,cAAc,EAAE,CAAC;aAClB,CAAC;QACJ,CAAC;IACH,CAAC,CAAC;AACJ,CAAC"}
@@ -2,3 +2,7 @@ export { createTradeHandler } from './trade-handler.js';
2
2
  export type { TradeActionPayload, TradeHandlerDeps, TradeHandlerResult } from './trade-handler.js';
3
3
  export { createContentHandler } from './content-handler.js';
4
4
  export type { ContentHandlerDeps, ContentHandlerResult } from './content-handler.js';
5
+ export { createCreativeSeedHandler } from './creative-seed-handler.js';
6
+ export type { CreativeSeedPayload, CreativeSeedHandlerDeps, CreativeSeedHandlerResult } from './creative-seed-handler.js';
7
+ export { createAdjustParameterHandler } from './adjust-parameter-handler.js';
8
+ export type { AdjustParameterPayload, AdjustParameterHandlerDeps, AdjustParameterHandlerResult } from './adjust-parameter-handler.js';
@@ -1,3 +1,5 @@
1
1
  export { createTradeHandler } from './trade-handler.js';
2
2
  export { createContentHandler } from './content-handler.js';
3
+ export { createCreativeSeedHandler } from './creative-seed-handler.js';
4
+ export { createAdjustParameterHandler } from './adjust-parameter-handler.js';
3
5
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/action/handlers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAGxD,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAG5D,OAAO,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAGvE,OAAO,EAAE,4BAA4B,EAAE,MAAM,+BAA+B,CAAC"}
@@ -1,4 +1,4 @@
1
1
  export { ActionBridgeEngine, runActionBridgeMigration } from './action-bridge.js';
2
2
  export type { ProposedAction, ActionOutcome, ActionBridgeConfig, ActionBridgeStatus, } from './action-bridge.js';
3
- export { createTradeHandler, createContentHandler } from './handlers/index.js';
4
- export type { TradeActionPayload, TradeHandlerDeps, TradeHandlerResult, ContentHandlerDeps, ContentHandlerResult } from './handlers/index.js';
3
+ export { createTradeHandler, createContentHandler, createCreativeSeedHandler, createAdjustParameterHandler } from './handlers/index.js';
4
+ export type { TradeActionPayload, TradeHandlerDeps, TradeHandlerResult, ContentHandlerDeps, ContentHandlerResult, CreativeSeedPayload, CreativeSeedHandlerDeps, CreativeSeedHandlerResult, AdjustParameterPayload, AdjustParameterHandlerDeps, AdjustParameterHandlerResult, } from './handlers/index.js';
@@ -1,3 +1,3 @@
1
1
  export { ActionBridgeEngine, runActionBridgeMigration } from './action-bridge.js';
2
- export { createTradeHandler, createContentHandler } from './handlers/index.js';
2
+ export { createTradeHandler, createContentHandler, createCreativeSeedHandler, createAdjustParameterHandler } from './handlers/index.js';
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/action/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAMlF,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/action/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,oBAAoB,CAAC;AAMlF,OAAO,EAAE,kBAAkB,EAAE,oBAAoB,EAAE,yBAAyB,EAAE,4BAA4B,EAAE,MAAM,qBAAqB,CAAC"}
@@ -124,5 +124,86 @@ describe('ChatEngine', () => {
124
124
  const response = await engine.processMessage('s1', 'Status');
125
125
  expect(response.content).toContain('Keine Daten');
126
126
  });
127
+ // ── Extended keyword mapping tests (Session 105) ──
128
+ it('routes error queries to error.query', async () => {
129
+ const engine = new ChatEngine(db, { brainName: 'test' });
130
+ const handler = vi.fn().mockResolvedValue([{ message: 'test error' }]);
131
+ engine.setIpcHandler(handler);
132
+ engine.setAvailableRoutes(['error.query']);
133
+ await engine.processMessage('s1', 'Zeig mir die Fehler');
134
+ expect(handler).toHaveBeenCalledWith('error.query', expect.any(Object));
135
+ });
136
+ it('routes code queries to code.stats', async () => {
137
+ const engine = new ChatEngine(db, { brainName: 'test' });
138
+ const handler = vi.fn().mockResolvedValue({ modules: 5 });
139
+ engine.setIpcHandler(handler);
140
+ engine.setAvailableRoutes(['code.stats']);
141
+ await engine.processMessage('s1', 'Welche Module sind registriert?');
142
+ expect(handler).toHaveBeenCalledWith('code.stats', expect.any(Object));
143
+ });
144
+ it('routes guardrail queries to guardrail.status', async () => {
145
+ const engine = new ChatEngine(db, { brainName: 'test' });
146
+ const handler = vi.fn().mockResolvedValue({ circuitBreaker: 'closed' });
147
+ engine.setIpcHandler(handler);
148
+ engine.setAvailableRoutes(['guardrail.status']);
149
+ await engine.processMessage('s1', 'Wie ist der Guardrail-Status?');
150
+ expect(handler).toHaveBeenCalledWith('guardrail.status', expect.any(Object));
151
+ });
152
+ it('routes goal queries to goal.status', async () => {
153
+ const engine = new ChatEngine(db, { brainName: 'test' });
154
+ const handler = vi.fn().mockResolvedValue({ activeGoals: 2 });
155
+ engine.setIpcHandler(handler);
156
+ engine.setAvailableRoutes(['goal.status']);
157
+ await engine.processMessage('s1', 'Was sind die aktuellen Ziele?');
158
+ expect(handler).toHaveBeenCalledWith('goal.status', expect.any(Object));
159
+ });
160
+ it('routes creative queries to creative.status', async () => {
161
+ const engine = new ChatEngine(db, { brainName: 'test' });
162
+ const handler = vi.fn().mockResolvedValue({ ideas: 10 });
163
+ engine.setIpcHandler(handler);
164
+ engine.setAvailableRoutes(['creative.status']);
165
+ await engine.processMessage('s1', 'Kreative Ideen anzeigen');
166
+ expect(handler).toHaveBeenCalledWith('creative.status', expect.any(Object));
167
+ });
168
+ it('routes LLM queries to llm.status', async () => {
169
+ const engine = new ChatEngine(db, { brainName: 'test' });
170
+ const handler = vi.fn().mockResolvedValue({ calls: 5, tokens: 50000 });
171
+ engine.setIpcHandler(handler);
172
+ engine.setAvailableRoutes(['llm.status']);
173
+ await engine.processMessage('s1', 'LLM Token-Verbrauch');
174
+ expect(handler).toHaveBeenCalledWith('llm.status', expect.any(Object));
175
+ });
176
+ it('routes watchdog queries to watchdog.status', async () => {
177
+ const engine = new ChatEngine(db, { brainName: 'test' });
178
+ const handler = vi.fn().mockResolvedValue({ daemons: 3 });
179
+ engine.setIpcHandler(handler);
180
+ engine.setAvailableRoutes(['watchdog.status']);
181
+ await engine.processMessage('s1', 'Watchdog daemon status');
182
+ expect(handler).toHaveBeenCalledWith('watchdog.status', expect.any(Object));
183
+ });
184
+ it('routes dream queries to dream.status', async () => {
185
+ const engine = new ChatEngine(db, { brainName: 'test' });
186
+ const handler = vi.fn().mockResolvedValue({ cycles: 42 });
187
+ engine.setIpcHandler(handler);
188
+ engine.setAvailableRoutes(['dream.status']);
189
+ await engine.processMessage('s1', 'Dream consolidation status');
190
+ expect(handler).toHaveBeenCalledWith('dream.status', expect.any(Object));
191
+ });
192
+ it('routes prediction queries to prediction.status', async () => {
193
+ const engine = new ChatEngine(db, { brainName: 'test' });
194
+ const handler = vi.fn().mockResolvedValue({ accuracy: 0.7 });
195
+ engine.setIpcHandler(handler);
196
+ engine.setAvailableRoutes(['prediction.status']);
197
+ await engine.processMessage('s1', 'Vorhersage Genauigkeit');
198
+ expect(handler).toHaveBeenCalledWith('prediction.status', expect.any(Object));
199
+ });
200
+ it('routes mission queries to mission.list', async () => {
201
+ const engine = new ChatEngine(db, { brainName: 'test' });
202
+ const handler = vi.fn().mockResolvedValue([]);
203
+ engine.setIpcHandler(handler);
204
+ engine.setAvailableRoutes(['mission.list']);
205
+ await engine.processMessage('s1', 'Zeig mir die research missions');
206
+ expect(handler).toHaveBeenCalledWith('mission.list', expect.any(Object));
207
+ });
127
208
  });
128
209
  //# sourceMappingURL=chat-engine.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chat-engine.test.js","sourceRoot":"","sources":["../../../src/chat/__tests__/chat-engine.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"chat-engine.test.js","sourceRoot":"","sources":["../../../src/chat/__tests__/chat-engine.test.ts"],"names":[],"mappings":"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"}