AI Interview component
npm install @testgorilla/tgo-ai-interview-testAI Interview component for TestGorilla assessments.
``bash`
npm install @testgorilla/tgo-ai-interview-test
`typescript
import { AiInterviewTestComponent } from '@testgorilla/tgo-ai-interview-test';
@Component({
imports: [AiInterviewTestComponent],
template:
[test]="test"
[isFirstQuestion]="false"
[conversationUrl]="conversationUrl"
[selectedMediaDevices]="selectedMediaDevices"
[mediaAccessChanged]="mediaAccessChanged"
(submissionStateChanged)="onSubmissionStateChanged($event)"
(loadingStateChanged)="onLoadingStateChanged($event)"
(requestMediaAccess)="onRequestMediaAccess()"
>
,`
})
export class MyComponent {}
This package ships its translations under assets/i18n. Consumer apps must copy these assets into their build output so Transloco can load them at runtime.
- Angular CLI / Nx: add an assets entry pointing at the package:
`json`
{
"assets": [
"src/favicon.ico",
"src/assets",
{
"glob": "*/",
"input": "node_modules/@testgorilla/tgo-ai-interview-test/assets",
"output": "assets/tgo-ai-interview-test"
}
]
}
If you develop inside this repo (consuming the workspace sources), also include the local path:
`json`
{
"glob": "*/",
"input": "packages/tgo-ai-interview-test/src/assets",
"output": "assets/tgo-ai-interview-test"
}
After adding the asset entries, rebuild/re-serve your app so /assets/tgo-ai-interview-test/i18n/en.json is available.
| Name | Type | Required | Default | Description |
| ------------------- | --------------------------------- | -------- | ------- | ------------------------------------------------ |
| question | Question | Yes | - | Question data containing text/media content |
| test | TestResultRead | Yes | - | Test configuration and metadata |
| isFirstQuestion | boolean | No | false | Whether this is the first question in the test |
| conversationUrl | string | No | - | Daily.co conversation URL for the AI interview |
| selectedMediaDevices| SelectedMediaDevices | No | - | Selected audio/video device IDs |
| mediaAccessChanged | Observable\
| Name | Type | Description |
| -------------------- | --------------------------- | ---------------------------------------------- |
| submissionStateChanged| EventEmitter\
| loadingStateChanged | EventEmitter\
| requestMediaAccess | EventEmitter\
This library requires the following peer dependencies:
- @angular/common ~18.2.13@angular/core
- ~18.2.13@angular/animations
- ~18.2.13@angular/material
- ~18.2.14 (for dialog support)@ngneat/transloco
- ~4.3.0@testgorilla/tgo-ui
- ~3.14.10@daily-co/daily-js
- ^0.79.0rxjs
- ~7.8.1
All required services, models, and components are included within this library:
- MediaService - Handles audio/video recording and playbackThemeService
- - Provides theme/company color configurationQuestion
- , TestResultRead, SelectedMediaDevices, ISubmissionState - Type definitionsAudioAnimationComponent
- , VideoCountdownComponent, VimeoVideoComponent - UI componentsInterviewStreamComponent
- - Daily.co video call integration componentInterviewVideoComponent
- - Video display componentReviewInstructionsDialogComponent
- - Dialog component for review instructionsTranslocoLazyModuleUtils
- , getAvailableLangs` - Translation utilities
- AI-powered interview via Daily.co video calls
- Candidate video recording
- Real-time video/audio stream handling
- Media device selection
- Translation support via Transloco
- Review instructions dialog
- Preview mode support