# yaml-language-server: $schema=https://promptfoo.dev/config-schema.json
description: ElevenLabs Forced Alignment - Subtitle generation

# Alignment uses audio files + transcripts - pass via vars
prompts:
  - '{{transcript}}'

providers:
  # Basic alignment (JSON output)
  - id: elevenlabs:alignment:json
    label: Alignment (JSON)

  # SRT subtitle format
  - id: elevenlabs:alignment:srt
    label: Alignment (SRT Subtitles)

# Default test configuration
defaultTest:
  # All tests will require alignment to complete
  assert:
    - type: not-contains
      value: error

tests:
  - description: Align Armstrong moon landing speech
    vars:
      audioFile: examples/provider-elevenlabs/stt/audio/sample1.mp3
      transcript: "That's one small step for man, one giant leap for mankind."
      format: json
    assert:
      - type: javascript
        value: output.includes('words')
      - type: not-contains
        value: error

  - description: Align Armstrong to SRT format
    vars:
      audioFile: examples/provider-elevenlabs/stt/audio/sample1.mp3
      transcript: "That's one small step for man, one giant leap for mankind."
      format: srt
    assert:
      - type: javascript
        value: output.includes('-->') && output.includes('small step')

  - description: Align sample2 hello message
    vars:
      audioFile: examples/provider-elevenlabs/stt/audio/sample2.wav
      transcript: "Hello. What's today's date? Could you please let me know?"
      format: json
    assert:
      - type: javascript
        value: output.includes('words')
      - type: not-contains
        value: error
