- Re-architect VoiceSession into full-bleed studio cockpit with overlay slide-over companion drawer - Eliminate width squishing defect on LiveInsightPanel and add native dark/light theme support - Integrate authentic Google Gemini 3.8 Flash TTS with Fenrir persona and fallback audio pipeline - Implement comprehensive Playwright E2E visual regression suite across Desktop, iPad, and iPhone (21 tests, 45 snapshots) - Migrate core application to Svelte 5 runes (, , ) with reactive stores - Maintain .NET 8 Azure Functions serverless endpoints and clean build hygiene
38 lines
1.4 KiB
TypeScript
38 lines
1.4 KiB
TypeScript
/**
|
|
* Headless CBT Session Simulation Helper
|
|
*
|
|
* Simulates a multi-turn roleplay dialogue with clinical turn-by-turn evaluation
|
|
* to test prompt behaviors and scoring rubrics.
|
|
*/
|
|
|
|
import { SCENARIOS, SYSTEM_ANALYSIS_PROMPT } from '../constants';
|
|
|
|
interface SimulatedTurn {
|
|
role: 'user' | 'model';
|
|
text: string;
|
|
}
|
|
|
|
export function generateMockDialogue(): SimulatedTurn[] {
|
|
const scenario = SCENARIOS[0]; // Workplace Critical Review
|
|
return [
|
|
{ role: 'model', text: scenario.initialMessage },
|
|
{
|
|
role: 'user',
|
|
text: "I hear that you're concerned about the deployment delay, Marcus. I want to look at the root cause together so we can fix the pipeline rather than rush into another failure."
|
|
},
|
|
{
|
|
role: 'model',
|
|
text: "Look, root causes don't satisfy the board. But fine—walk me through why the rollback happened and what you're doing right now to secure the release."
|
|
},
|
|
{
|
|
role: 'user',
|
|
text: "The schema migration failed because of a missing index under high load. We've added the migration lock and tested it on staging. I will personally supervise the maintenance window at 8 PM."
|
|
}
|
|
];
|
|
}
|
|
|
|
console.log('🧪 CBT Simulation Test Harness initialized.');
|
|
console.log(`Loaded scenario: "${SCENARIOS[0].title}"`);
|
|
console.log('Mock dialogue generated for test runs:');
|
|
console.log(JSON.stringify(generateMockDialogue(), null, 2));
|