Skip to content

Commit 3db2ec0

Browse files
committed
fix(gmi): update tests for extracted GMI subsystems and fix case-insensitive mood matching
1 parent 4181176 commit 3db2ec0

2 files changed

Lines changed: 13 additions & 11 deletions

File tree

src/cognitive_substrate/MetapromptExecutor.ts

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -594,11 +594,13 @@ export class MetapromptExecutor {
594594

595595
let stateChanged = false;
596596

597-
// Mood update
598-
if (updates.updatedGmiMood && this.config.getMood() !== updates.updatedGmiMood) {
599-
const validMoods = Object.values(GMIMood);
600-
if (validMoods.includes(updates.updatedGmiMood.toUpperCase())) {
601-
this.config.onMoodUpdate(updates.updatedGmiMood.toUpperCase() as GMIMood);
597+
// Mood update — GMIMood enum values are lowercase (e.g., 'focused'),
598+
// but LLM responses may return either case. Normalize to lowercase for comparison.
599+
if (updates.updatedGmiMood) {
600+
const validMoods = Object.values(GMIMood) as string[];
601+
const normalizedMood = String(updates.updatedGmiMood).toLowerCase();
602+
if (validMoods.includes(normalizedMood) && this.config.getMood() !== normalizedMood) {
603+
this.config.onMoodUpdate(normalizedMood as GMIMood);
602604
stateChanged = true;
603605
}
604606
}

src/cognitive_substrate/tests/GMI.sentiment.test.ts

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,7 @@ describe('GMI Event Detection', () => {
476476
for await (const _chunk of gmi.processTurnStream(input)) { /* consume */ }
477477

478478
// Check internal event was emitted by checking eventHistory
479-
const eventHistory = (gmi as any).eventHistory as Array<{ eventType: GMIEventType }>;
479+
const eventHistory = (gmi as any).sentimentTracker.events as Array<{ eventType: GMIEventType }>;
480480
expect(eventHistory.some((e) => e.eventType === GMIEventType.USER_FRUSTRATED)).toBe(true);
481481
});
482482

@@ -500,7 +500,7 @@ describe('GMI Event Detection', () => {
500500

501501
for await (const _chunk of gmi.processTurnStream(input)) { /* consume */ }
502502

503-
const eventHistory = (gmi as any).eventHistory as Array<{ eventType: GMIEventType }>;
503+
const eventHistory = (gmi as any).sentimentTracker.events as Array<{ eventType: GMIEventType }>;
504504
expect(eventHistory.some((e) => e.eventType === GMIEventType.USER_CONFUSED)).toBe(true);
505505
});
506506

@@ -524,7 +524,7 @@ describe('GMI Event Detection', () => {
524524

525525
for await (const _chunk of gmi.processTurnStream(input)) { /* consume */ }
526526

527-
const eventHistory = (gmi as any).eventHistory as Array<{ eventType: GMIEventType }>;
527+
const eventHistory = (gmi as any).sentimentTracker.events as Array<{ eventType: GMIEventType }>;
528528
expect(eventHistory.some((e) => e.eventType === GMIEventType.USER_SATISFIED)).toBe(true);
529529
});
530530

@@ -548,7 +548,7 @@ describe('GMI Event Detection', () => {
548548

549549
for await (const _chunk of gmi.processTurnStream(input)) { /* consume */ }
550550

551-
const eventHistory = (gmi as any).eventHistory as Array<{ eventType: GMIEventType }>;
551+
const eventHistory = (gmi as any).sentimentTracker.events as Array<{ eventType: GMIEventType }>;
552552
expect(eventHistory.some((e) => e.eventType === GMIEventType.USER_FRUSTRATED)).toBe(false);
553553
});
554554

@@ -576,7 +576,7 @@ describe('GMI Event Detection', () => {
576576

577577
for await (const _chunk of gmi.processTurnStream(input)) { /* consume */ }
578578

579-
const eventHistory = (gmi as any).eventHistory as Array<{ eventType: GMIEventType }>;
579+
const eventHistory = (gmi as any).sentimentTracker.events as Array<{ eventType: GMIEventType }>;
580580
expect(eventHistory.some((e) => e.eventType === GMIEventType.USER_FRUSTRATED)).toBe(true);
581581
});
582582
});
@@ -686,7 +686,7 @@ describe('GMI Metaprompt Trigger System', () => {
686686
for await (const _chunk of gmi.processTurnStream(input)) { /* consume */ }
687687

688688
// Verify event was emitted to history (diagnostic check)
689-
const eventHistory = (gmi as any).eventHistory;
689+
const eventHistory = (gmi as any).sentimentTracker.events;
690690
expect(eventHistory.some((e: any) => e.eventType === GMIEventType.USER_FRUSTRATED)).toBe(true);
691691

692692
// Verify the reasoning trace shows the metaprompt was triggered

0 commit comments

Comments
 (0)