/**
 * Test scenarios. Each scenario has:
 *   id              short tag for output
 *   description     what we're probing
 *   userMessage     the user turn
 *   expect          { action: 'memory.add'|'memory.list'|'memory.read'|'none', titlePrefix?: 'plan/' }
 *
 * Scoring against `expect`:
 *   - match            +1
 *   - wrong action     0
 *   - tool not called  0 (unless expect.action === 'none', in which case +1)
 *
 * Mix of positive and negative scenarios — we want a variant that
 * scores well WITHOUT going trigger-happy. A variant that calls
 * memory.add on every turn would ace the positive cases and tank
 * the negative one.
 */

export const SCENARIOS = [
  {
    id: 'S1-preference',
    description: 'User states a durable preference. Should record as a memory.',
    userMessage:
      'One ground rule for everything we do together: never use emojis in any code, comments, or commit messages. And always use Tailwind for styling, never Bootstrap.',
    expect: { action: 'memory.add' },
  },
  {
    id: 'S2-multi-part',
    description: 'User issues a multi-bullet plan-worthy ask. Should record as a plan/* memory before doing the work.',
    userMessage: [
      'Please do the following:',
      '1. Add a settings page for notification preferences.',
      '2. Wire it to the existing /api/v1/users/me endpoint.',
      '3. Add e2e tests for the new flow.',
      '4. Update the changelog under "unreleased".',
      'Make sure the test data resets between runs.',
    ].join('\n'),
    expect: { action: 'memory.add', titlePrefix: 'plan/' },
  },
  {
    id: 'S3-finding-recall',
    description: 'User asks a question whose answer was previously recorded. Should consult memory.',
    userMessage:
      'Quick — what did we decide about retries? I forget if we picked exponential backoff or a fixed cap. Check our notes before answering.',
    expect: { action: 'memory.list' }, // memory.read also acceptable; scoring accepts either
  },
  {
    id: 'S4-small-talk',
    description: 'Routine acknowledgement. Should NOT trigger memory writes.',
    userMessage: 'Thanks, sounds good.',
    expect: { action: 'none' },
  },
  {
    id: 'S5-constraint-discovery',
    description: 'User shares a non-obvious system constraint. Should record as a memory.',
    userMessage:
      'Heads up — the rate limit on the upstream provider is 60 req/min and they count failed auth retries against the bucket. That bit us last week.',
    expect: { action: 'memory.add' },
  },
];
