# Phase 6: Frontend — Source Types **Status:** ⬜ Not Started **Parent plan:** [PLAN.md](./PLAN.md) **Domain:** frontend ## Objective Update the audio source UI to support the new `ProcessedAudioSource` and `CaptureAudioSource` types, and remove the old `MonoAudioSource` and `BandExtractAudioSource` UI. ## Tasks - [ ] Task 1: Update audio source TypeScript types/interfaces for new source types - Add `ProcessedAudioSource` type with `audio_source_id` + `audio_processing_template_id` - Rename `MultichannelAudioSource` type to `CaptureAudioSource` (source_type: "capture") - Remove `MonoAudioSource` and `BandExtractAudioSource` types - [ ] Task 2: Create `ProcessedAudioSource` card component - EntitySelect for input audio source (any audio source) - EntitySelect for audio processing template - Show resolved chain info (which capture source at the end) - Create/Edit/Delete actions - [ ] Task 3: Update `CaptureAudioSource` card (relabeled from Multichannel) - Same fields (device selector, loopback toggle, template selector) - Updated label/icon to say "Capture Audio Source" - [ ] Task 4: Remove `MonoAudioSource` card component/rendering - [ ] Task 5: Remove `BandExtractAudioSource` card component/rendering - [ ] Task 6: Update audio source creation dialog/flow - Source type picker now shows: Capture, Processed (instead of Multichannel, Mono, Band Extract) - Type-specific form fields - [ ] Task 7: Update EntitySelect dropdowns that list audio sources - Show type badges (Capture vs Processed) for clarity - Audio source selectors in CSS editor, value source editor, etc. - [ ] Task 8: Update i18n keys for renamed/new source types - [ ] Task 9: Update any inline onclick handlers or window exports in app.js ## Files to Modify/Create - `static/js/features/audio-sources.ts` — **modify** — new types, remove old types - `static/js/features/audio-source-modal.ts` (or equivalent) — **modify** — updated editor - `static/css/dashboard.css` — **modify** — any style updates - `static/js/app.js` — **modify** — update exports if needed - `static/js/core/i18n/en.json` — **modify** — updated keys - `static/js/core/i18n/ru.json` — **modify** — updated keys - `static/js/core/i18n/zh.json` — **modify** — updated keys ## Acceptance Criteria - ProcessedAudioSource can be created/edited/deleted from the UI - CaptureAudioSource shows correctly with updated label - MonoAudioSource and BandExtractAudioSource UI is completely removed - EntitySelect for audio sources shows type badges - Source type picker shows only Capture and Processed - All strings are internationalized ## Notes - NEVER use plain HTML `