SYMBOL INDEX (1248 symbols across 240 files) FILE: app/plugins/changelog.ts function changelogPlugin (line 6) | function changelogPlugin(repoRoot: string): Plugin { FILE: app/src/App.tsx constant LOADING_MESSAGES (line 14) | const LOADING_MESSAGES = [ function App (line 37) | function App() { FILE: app/src/components/AppFrame/AppFrame.tsx type AppFrameProps (line 10) | interface AppFrameProps { function AppFrame (line 14) | function AppFrame({ children }: AppFrameProps) { FILE: app/src/components/AudioPlayer/AudioPlayer.tsx function AudioPlayer (line 13) | function AudioPlayer() { FILE: app/src/components/AudioTab/AudioTab.tsx type AudioDevice (line 29) | interface AudioDevice { function AudioTab (line 35) | function AudioTab() { function ChannelVoicesList (line 396) | function ChannelVoicesList({ channelId }: { channelId: string }) { type CreateChannelDialogProps (line 425) | interface CreateChannelDialogProps { function CreateChannelDialog (line 432) | function CreateChannelDialog({ open, onOpenChange, devices, onCreate }: ... type EditChannelDialogProps (line 523) | interface EditChannelDialogProps { function EditChannelDialog (line 538) | function EditChannelDialog({ FILE: app/src/components/Effects/EffectsChainEditor.tsx type EffectWithId (line 36) | interface EffectWithId extends EffectConfig { function makeId (line 41) | function makeId() { type EffectsChainEditorProps (line 45) | interface EffectsChainEditorProps { function EffectsChainEditor (line 52) | function EffectsChainEditor({ type SortableEffectItemProps (line 251) | interface SortableEffectItemProps { function SortableEffectItem (line 263) | function SortableEffectItem({ FILE: app/src/components/Effects/GenerationPicker.tsx type GenerationPickerProps (line 10) | interface GenerationPickerProps { function GenerationPicker (line 16) | function GenerationPicker({ selectedId, onSelect, className }: Generatio... FILE: app/src/components/EffectsTab/EffectsDetail.tsx function EffectsDetail (line 27) | function EffectsDetail() { FILE: app/src/components/EffectsTab/EffectsList.tsx function EffectsList (line 9) | function EffectsList() { function PresetCard (line 116) | function PresetCard({ FILE: app/src/components/EffectsTab/EffectsTab.tsx function EffectsTab (line 4) | function EffectsTab() { FILE: app/src/components/Generation/EngineModelSelector.tsx constant ENGINE_OPTIONS (line 19) | const ENGINE_OPTIONS = [ constant ENGINE_DESCRIPTIONS (line 30) | const ENGINE_DESCRIPTIONS: Record = { constant ENGLISH_ONLY_ENGINES (line 40) | const ENGLISH_ONLY_ENGINES = new Set(['luxtts', 'chatterbox_turbo']); constant CLONING_ENGINES (line 43) | const CLONING_ENGINES = new Set(['qwen', 'luxtts', 'chatterbox', 'chatte... function getAvailableOptions (line 45) | function getAvailableOptions(selectedProfile?: VoiceProfileResponse | nu... function getSelectValue (line 50) | function getSelectValue(engine: string, modelSize?: string): string { function handleEngineChange (line 56) | function handleEngineChange(form: UseFormReturn, v... type EngineModelSelectorProps (line 97) | interface EngineModelSelectorProps { function EngineModelSelector (line 103) | function EngineModelSelector({ form, compact, selectedProfile }: EngineM... function getEngineDescription (line 141) | function getEngineDescription(engine: string): string { function isProfileCompatibleWithEngine (line 149) | function isProfileCompatibleWithEngine( FILE: app/src/components/Generation/FloatingGenerateBox.tsx type FloatingGenerateBoxProps (line 28) | interface FloatingGenerateBoxProps { function FloatingGenerateBox (line 33) | function FloatingGenerateBox({ FILE: app/src/components/Generation/GenerationForm.tsx function GenerationForm (line 29) | function GenerationForm() { FILE: app/src/components/Generation/ParalinguisticInput.tsx constant PARALINGUISTIC_TAGS (line 16) | const PARALINGUISTIC_TAGS = [ constant TAG_REGEX (line 28) | const TAG_REGEX = /\[(laugh|chuckle|gasp|cough|sigh|groan|sniff|shush|cl... constant BADGE_ATTR (line 31) | const BADGE_ATTR = 'data-ptag'; function makeBadgeHTML (line 36) | function makeBadgeHTML(tag: string): string { function textToHTML (line 46) | function textToHTML(text: string): string { function htmlToText (line 54) | function htmlToText(container: HTMLElement): string { function getWordBeforeCaret (line 77) | function getWordBeforeCaret(_container: HTMLElement): { word: string; ra... type ParalinguisticInputProps (line 109) | interface ParalinguisticInputProps { type ParalinguisticInputRef (line 120) | interface ParalinguisticInputRef { FILE: app/src/components/History/HistoryTable.tsx function AudioBars (line 61) | function AudioBars({ mode }: { mode: 'idle' | 'generating' | 'playing' }) { function HistoryTable (line 90) | function HistoryTable() { FILE: app/src/components/MainEditor/MainEditor.tsx function MainEditor (line 22) | function MainEditor() { FILE: app/src/components/ModelsTab/ModelsTab.tsx function ModelsTab (line 3) | function ModelsTab() { FILE: app/src/components/ServerSettings/ConnectionForm.tsx type ConnectionFormValues (line 29) | type ConnectionFormValues = z.infer; function ConnectionForm (line 31) | function ConnectionForm() { FILE: app/src/components/ServerSettings/GenerationSettings.tsx function GenerationSettings (line 6) | function GenerationSettings() { FILE: app/src/components/ServerSettings/GpuAcceleration.tsx type RestartPhase (line 13) | type RestartPhase = 'idle' | 'stopping' | 'waiting' | 'ready'; function GpuAcceleration (line 15) | function GpuAcceleration() { FILE: app/src/components/ServerSettings/ModelManagement.tsx function fetchHuggingFaceModelInfo (line 48) | async function fetchHuggingFaceModelInfo(repoId: string): Promise = { function formatDownloads (line 83) | function formatDownloads(n: number): string { function formatLicense (line 89) | function formatLicense(license: string): string { function formatPipelineTag (line 102) | function formatPipelineTag(tag: string): string { function formatBytes (line 109) | function formatBytes(bytes: number): string { function ModelManagement (line 117) | function ModelManagement() { type ModelItemProps (line 1062) | interface ModelItemProps { function ModelItem (line 1077) | function ModelItem({ model, onDownload, onDelete, isDownloading, formatS... FILE: app/src/components/ServerSettings/ModelProgress.tsx type ModelProgressProps (line 8) | interface ModelProgressProps { function ModelProgress (line 15) | function ModelProgress({ modelName, displayName, isDownloading = false }... FILE: app/src/components/ServerSettings/ServerStatus.tsx function ServerStatus (line 7) | function ServerStatus() { FILE: app/src/components/ServerSettings/UpdateStatus.tsx function UpdateStatus (line 10) | function UpdateStatus() { FILE: app/src/components/ServerTab/AboutPage.tsx function FadeIn (line 7) | function FadeIn({ delay = 0, children }: { delay?: number; children: Rea... function AboutPage (line 18) | function AboutPage() { FILE: app/src/components/ServerTab/ChangelogPage.tsx function renderMarkdown (line 6) | function renderMarkdown(md: string): React.ReactNode[] { function renderTable (line 83) | function renderTable(tableLines: string[], keyBase: number): React.React... function inlineMarkdown (line 125) | function inlineMarkdown(text: string): React.ReactNode { function ChangelogEntryCard (line 178) | function ChangelogEntryCard({ entry }: { entry: ChangelogEntry }) { function ChangelogPage (line 210) | function ChangelogPage() { FILE: app/src/components/ServerTab/GeneralPage.tsx type ConnectionFormValues (line 22) | type ConnectionFormValues = z.infer; function GeneralPage (line 24) | function GeneralPage() { function ConnectionStatus (line 186) | function ConnectionStatus({ function UpdatesSection (line 228) | function UpdatesSection() { constant API_ENDPOINTS (line 335) | const API_ENDPOINTS = [ function ApiReferenceCard (line 342) | function ApiReferenceCard({ serverUrl }: { serverUrl: string }) { FILE: app/src/components/ServerTab/GenerationPage.tsx function GenerationPage (line 10) | function GenerationPage() { FILE: app/src/components/ServerTab/GpuPage.tsx type RestartPhase (line 13) | type RestartPhase = 'idle' | 'stopping' | 'waiting' | 'ready'; function AppleLogo (line 15) | function AppleLogo({ className }: { className?: string }) { function GpuIcon (line 23) | function GpuIcon({ className }: { className?: string }) { function GpuInfoCard (line 42) | function GpuInfoCard({ health }: { health: HealthResponse }) { function GpuPage (line 104) | function GpuPage() { FILE: app/src/components/ServerTab/LogsPage.tsx function formatTime (line 6) | function formatTime(timestamp: number): string { function LogLine (line 16) | function LogLine({ entry }: { entry: LogEntry }) { function LogsPage (line 34) | function LogsPage() { FILE: app/src/components/ServerTab/ServerTab.tsx type SettingsTab (line 7) | interface SettingsTab { function SettingsLayout (line 28) | function SettingsLayout() { FILE: app/src/components/ServerTab/SettingRow.tsx function SettingSection (line 6) | function SettingSection({ function SettingRow (line 30) | function SettingRow({ FILE: app/src/components/ShinyText.tsx type ShinyTextProps (line 5) | interface ShinyTextProps { FILE: app/src/components/Sidebar.tsx type SidebarProps (line 11) | interface SidebarProps { function Sidebar (line 25) | function Sidebar({ isMacOS }: SidebarProps) { FILE: app/src/components/StoriesTab/StoriesTab.tsx function StoriesTab (line 6) | function StoriesTab() { FILE: app/src/components/StoriesTab/StoryChatItem.tsx type StoryChatItemProps (line 18) | interface StoryChatItemProps { function StoryChatItem (line 29) | function StoryChatItem({ function SortableStoryChatItem (line 142) | function SortableStoryChatItem(props: Omit; function fileToBase64 (line 99) | async function fileToBase64(file: File): Promise { function base64ToFile (line 109) | function base64ToFile(base64: string, fileName: string, fileType: string... function ProfileForm (line 120) | function ProfileForm() { FILE: app/src/components/VoiceProfiles/ProfileList.tsx constant PRESET_ENGINES (line 10) | const PRESET_ENGINES = new Set(['kokoro']); constant ENGINE_NAMES (line 13) | const ENGINE_NAMES: Record = { function ProfileList (line 17) | function ProfileList() { FILE: app/src/components/VoiceProfiles/SampleList.tsx type MiniSamplePlayerProps (line 22) | interface MiniSamplePlayerProps { function MiniSamplePlayer (line 26) | function MiniSamplePlayer({ audioUrl }: MiniSamplePlayerProps) { type SampleListProps (line 143) | interface SampleListProps { function SampleList (line 147) | function SampleList({ profileId }: SampleListProps) { FILE: app/src/components/VoiceProfiles/SampleUpload.tsx type SampleFormValues (line 43) | type SampleFormValues = z.infer; type SampleUploadProps (line 45) | interface SampleUploadProps { function SampleUpload (line 51) | function SampleUpload({ profileId, open, onOpenChange }: SampleUploadPro... FILE: app/src/components/VoicesTab/VoiceInspector.tsx type ProfileFormValues (line 47) | type ProfileFormValues = z.infer; type VoiceInspectorProps (line 49) | interface VoiceInspectorProps { function VoiceInspector (line 53) | function VoiceInspector({ profileId }: VoiceInspectorProps) { FILE: app/src/components/VoicesTab/VoicesTab.tsx function VoicesTab (line 27) | function VoicesTab() { type VoiceRowProps (line 180) | interface VoiceRowProps { function VoiceRow (line 189) | function VoiceRow({ FILE: app/src/components/ui/badge.tsx type BadgeProps (line 24) | interface BadgeProps function Badge (line 28) | function Badge({ className, variant, ...props }: BadgeProps) { FILE: app/src/components/ui/button.tsx type ButtonProps (line 32) | interface ButtonProps FILE: app/src/components/ui/checkbox.tsx type CheckboxProps (line 5) | interface CheckboxProps { FILE: app/src/components/ui/circle-button.tsx type CircleButtonProps (line 4) | interface CircleButtonProps extends React.ButtonHTMLAttributes {} FILE: app/src/components/ui/multi-select.tsx type MultiSelectOption (line 11) | interface MultiSelectOption { type MultiSelectProps (line 16) | interface MultiSelectProps { function MultiSelect (line 47) | function MultiSelect({ FILE: app/src/components/ui/textarea.tsx type TextareaProps (line 4) | interface TextareaProps extends React.TextareaHTMLAttributes; type ToastActionElement (line 109) | type ToastActionElement = React.ReactElement; FILE: app/src/components/ui/toaster.tsx function Toaster (line 12) | function Toaster() { FILE: app/src/components/ui/toggle.tsx type ToggleProps (line 4) | interface ToggleProps { FILE: app/src/components/ui/use-toast.ts constant TOAST_LIMIT (line 4) | const TOAST_LIMIT = 1; constant TOAST_REMOVE_DELAY (line 5) | const TOAST_REMOVE_DELAY = 1000000; type ToasterToast (line 7) | type ToasterToast = ToastProps & { function genId (line 23) | function genId() { type ActionType (line 28) | type ActionType = typeof actionTypes; type Action (line 30) | type Action = type State (line 48) | interface State { function dispatch (line 125) | function dispatch(action: Action) { type Toast (line 132) | type Toast = Omit; function toast (line 134) | function toast({ ...props }: Toast) { function useToast (line 163) | function useToast() { FILE: app/src/global.d.ts type Window (line 1) | interface Window { FILE: app/src/hooks/useAutoUpdater.ts function useAutoUpdater (line 8) | function useAutoUpdater(checkOnMount = false) { FILE: app/src/hooks/useAutoUpdater.tsx type UseAutoUpdaterOptions (line 12) | interface UseAutoUpdaterOptions { function useAutoUpdater (line 17) | function useAutoUpdater(options: boolean | UseAutoUpdaterOptions = false) { FILE: app/src/lib/api/client.ts function formatErrorDetail (line 39) | function formatErrorDetail(detail: unknown, fallback: string): string { class ApiClient (line 54) | class ApiClient { method getBaseUrl (line 55) | private getBaseUrl(): string { method request (line 60) | private async request(endpoint: string, options?: RequestInit): Pro... method getHealth (line 81) | async getHealth(): Promise { method createProfile (line 86) | async createProfile(data: VoiceProfileCreate): Promise { method getProfile (line 97) | async getProfile(profileId: string): Promise { method listPresetVoices (line 101) | async listPresetVoices(engine: string): Promise<{ engine: string; voic... method seedPresetProfiles (line 105) | async seedPresetProfiles( method updateProfile (line 111) | async updateProfile(profileId: string, data: VoiceProfileCreate): Prom... method deleteProfile (line 118) | async deleteProfile(profileId: string): Promise { method addProfileSample (line 124) | async addProfileSample( method listProfileSamples (line 149) | async listProfileSamples(profileId: string): Promise { method updateProfileSample (line 159) | async updateProfileSample( method exportProfile (line 169) | async exportProfile(profileId: string): Promise { method importProfile (line 183) | async importProfile(file: File): Promise { method uploadAvatar (line 203) | async uploadAvatar(profileId: string, file: File): Promise { method generateSpeech (line 230) | async generateSpeech(data: GenerationRequest): Promise { method getGeneration (line 269) | async getGeneration(generationId: string): Promise { method deleteGeneration (line 273) | async deleteGeneration(generationId: string): Promise { method exportGeneration (line 279) | async exportGeneration(generationId: string): Promise { method exportGenerationAudio (line 293) | async exportGenerationAudio(generationId: string): Promise { method importGeneration (line 307) | async importGeneration(file: File): Promise<{ method getGenerationStatusUrl (line 334) | getGenerationStatusUrl(generationId: string): string { method getAudioUrl (line 339) | getAudioUrl(audioId: string): string { method getSampleUrl (line 343) | getSampleUrl(sampleId: string): string { method transcribeAudio (line 348) | async transcribeAudio( method getModelStatus (line 379) | async getModelStatus(): Promise { method getModelsCacheDir (line 383) | async getModelsCacheDir(): Promise<{ path: string }> { method migrateModels (line 387) | async migrateModels(destination: string): Promise<{ source: string; de... method getMigrationProgressUrl (line 394) | getMigrationProgressUrl(): string { method triggerModelDownload (line 398) | async triggerModelDownload(modelName: string): Promise<{ message: stri... method deleteModel (line 413) | async deleteModel(modelName: string): Promise<{ message: string }> { method unloadModel (line 419) | async unloadModel(modelName: string): Promise<{ message: string }> { method cancelDownload (line 425) | async cancelDownload(modelName: string): Promise<{ message: string }> { method getActiveTasks (line 433) | async getActiveTasks(): Promise { method clearAllTasks (line 437) | async clearAllTasks(): Promise<{ message: string }> { method listChannels (line 442) | async listChannels(): Promise< method createChannel (line 454) | async createChannel(data: { name: string; device_ids: string[] }): Pro... method updateChannel (line 467) | async updateChannel( method deleteChannel (line 486) | async deleteChannel(channelId: string): Promise<{ message: string }> { method getChannelVoices (line 492) | async getChannelVoices(channelId: string): Promise<{ profile_ids: stri... method setChannelVoices (line 496) | async setChannelVoices(channelId: string, profileIds: string[]): Promi... method getProfileChannels (line 503) | async getProfileChannels(profileId: string): Promise<{ channel_ids: st... method setProfileChannels (line 507) | async setProfileChannels(profileId: string, channelIds: string[]): Pro... method getCudaStatus (line 515) | async getCudaStatus(): Promise { method downloadCudaBackend (line 519) | async downloadCudaBackend(): Promise<{ message: string; progress_key: ... method deleteCudaBackend (line 525) | async deleteCudaBackend(): Promise<{ message: string }> { method listStories (line 532) | async listStories(): Promise { method createStory (line 536) | async createStory(data: StoryCreate): Promise { method getStory (line 543) | async getStory(storyId: string): Promise { method updateStory (line 547) | async updateStory(storyId: string, data: StoryCreate): Promise { method addStoryItem (line 560) | async addStoryItem(storyId: string, data: StoryItemCreate): Promise { method updateStoryItemTimes (line 573) | async updateStoryItemTimes(storyId: string, data: StoryItemBatchUpdate... method reorderStoryItems (line 580) | async reorderStoryItems(storyId: string, data: StoryItemReorder): Prom... method moveStoryItem (line 587) | async moveStoryItem( method trimStoryItem (line 598) | async trimStoryItem( method splitStoryItem (line 609) | async splitStoryItem( method duplicateStoryItem (line 620) | async duplicateStoryItem(storyId: string, itemId: string): Promise { method getAvailableEffects (line 652) | async getAvailableEffects(): Promise { method listEffectPresets (line 656) | async listEffectPresets(): Promise { method createEffectPreset (line 660) | async createEffectPreset(data: EffectPresetCreate): Promise { method listGenerationVersions (line 683) | async listGenerationVersions(generationId: string): Promise implements Promise { method constructor (line 33) | constructor( method then (line 91) | public then( method catch (line 98) | public catch( method finally (line 104) | public finally(onFinally?: (() => void) | null): Promise { method cancel (line 108) | public cancel(): void { method isCancelled (line 127) | public get isCancelled(): boolean { method [Symbol.toStringTag] (line 87) | get [Symbol.toStringTag]() { FILE: app/src/lib/api/core/OpenAPI.ts type Resolver (line 7) | type Resolver = (options: ApiRequestOptions) => Promise; type Headers (line 8) | type Headers = Record; type OpenAPIConfig (line 10) | type OpenAPIConfig = { FILE: app/src/lib/api/core/request.ts type Resolver (line 132) | type Resolver = (options: ApiRequestOptions) => Promise; FILE: app/src/lib/api/models/Body_add_profile_sample_profiles__profile_id__samples_post.ts type Body_add_profile_sample_profiles__profile_id__samples_post (line 5) | type Body_add_profile_sample_profiles__profile_id__samples_post = { FILE: app/src/lib/api/models/Body_transcribe_audio_transcribe_post.ts type Body_transcribe_audio_transcribe_post (line 5) | type Body_transcribe_audio_transcribe_post = { FILE: app/src/lib/api/models/GenerationRequest.ts type GenerationRequest (line 8) | type GenerationRequest = { FILE: app/src/lib/api/models/GenerationResponse.ts type GenerationResponse (line 8) | type GenerationResponse = { FILE: app/src/lib/api/models/HTTPValidationError.ts type HTTPValidationError (line 6) | type HTTPValidationError = { FILE: app/src/lib/api/models/HealthResponse.ts type HealthResponse (line 8) | type HealthResponse = { FILE: app/src/lib/api/models/HistoryListResponse.ts type HistoryListResponse (line 9) | type HistoryListResponse = { FILE: app/src/lib/api/models/HistoryResponse.ts type HistoryResponse (line 8) | type HistoryResponse = { FILE: app/src/lib/api/models/ModelDownloadRequest.ts type ModelDownloadRequest (line 8) | type ModelDownloadRequest = { FILE: app/src/lib/api/models/ModelStatus.ts type ModelStatus (line 8) | type ModelStatus = { FILE: app/src/lib/api/models/ModelStatusListResponse.ts type ModelStatusListResponse (line 9) | type ModelStatusListResponse = { FILE: app/src/lib/api/models/ProfileSampleResponse.ts type ProfileSampleResponse (line 8) | type ProfileSampleResponse = { FILE: app/src/lib/api/models/TranscriptionResponse.ts type TranscriptionResponse (line 8) | type TranscriptionResponse = { FILE: app/src/lib/api/models/ValidationError.ts type ValidationError (line 5) | type ValidationError = { FILE: app/src/lib/api/models/VoiceProfileCreate.ts type VoiceProfileCreate (line 8) | type VoiceProfileCreate = { FILE: app/src/lib/api/models/VoiceProfileResponse.ts type VoiceProfileResponse (line 8) | type VoiceProfileResponse = { FILE: app/src/lib/api/services/DefaultService.ts class DefaultService (line 21) | class DefaultService { method rootGet (line 28) | public static rootGet(): CancelablePromise { method healthHealthGet (line 40) | public static healthHealthGet(): CancelablePromise { method listProfilesProfilesGet (line 52) | public static listProfilesProfilesGet(): CancelablePromise { method transcribeAudioTranscribePost (line 333) | public static transcribeAudioTranscribePost({ method getAudioAudioGenerationIdGet (line 354) | public static getAudioAudioGenerationIdGet({ method loadModelModelsLoadPost (line 376) | public static loadModelModelsLoadPost({ method unloadModelModelsUnloadPost (line 398) | public static unloadModelModelsUnloadPost(): CancelablePromise { method getModelProgressModelsProgressModelNameGet (line 410) | public static getModelProgressModelsProgressModelNameGet({ method getModelStatusModelsStatusGet (line 432) | public static getModelStatusModelsStatusGet(): CancelablePromise = { function getLanguageOptionsForEngine (line 75) | function getLanguageOptionsForEngine(engine: string) { constant SUPPORTED_LANGUAGES (line 84) | const SUPPORTED_LANGUAGES = ALL_LANGUAGES; constant LANGUAGE_CODES (line 85) | const LANGUAGE_CODES = Object.keys(ALL_LANGUAGES) as LanguageCode[]; constant LANGUAGE_OPTIONS (line 86) | const LANGUAGE_OPTIONS = LANGUAGE_CODES.map((code) => ({ FILE: app/src/lib/constants/ui.ts constant TOP_SAFE_AREA_PADDING (line 12) | const TOP_SAFE_AREA_PADDING = isWindows ? 'pt-8' : 'pt-12'; constant BOTTOM_SAFE_AREA_PADDING (line 18) | const BOTTOM_SAFE_AREA_PADDING = 'pb-32'; FILE: app/src/lib/hooks/useAudioPlayer.ts function useAudioPlayer (line 4) | function useAudioPlayer() { FILE: app/src/lib/hooks/useAudioRecording.ts type UseAudioRecordingOptions (line 5) | interface UseAudioRecordingOptions { function useAudioRecording (line 10) | function useAudioRecording({ FILE: app/src/lib/hooks/useGeneration.ts function useGeneration (line 5) | function useGeneration() { FILE: app/src/lib/hooks/useGenerationForm.ts type GenerationFormValues (line 23) | type GenerationFormValues = z.infer; type UseGenerationFormOptions (line 25) | interface UseGenerationFormOptions { function useGenerationForm (line 31) | function useGenerationForm(options: UseGenerationFormOptions = {}) { FILE: app/src/lib/hooks/useGenerationProgress.ts type GenerationStatusEvent (line 9) | interface GenerationStatusEvent { function useGenerationProgress (line 21) | function useGenerationProgress() { FILE: app/src/lib/hooks/useHistory.ts function useHistory (line 6) | function useHistory(query?: HistoryQuery) { function useGenerationDetail (line 13) | function useGenerationDetail(generationId: string) { function useDeleteGeneration (line 21) | function useDeleteGeneration() { function useExportGeneration (line 32) | function useExportGeneration() { function useExportGenerationAudio (line 58) | function useExportGenerationAudio() { function useImportGeneration (line 84) | function useImportGeneration() { FILE: app/src/lib/hooks/useModelDownloadToast.tsx type UseModelDownloadToastOptions (line 8) | interface UseModelDownloadToastOptions { function useModelDownloadToast (line 20) | function useModelDownloadToast({ FILE: app/src/lib/hooks/useProfiles.ts function useProfiles (line 6) | function useProfiles() { function useProfile (line 13) | function useProfile(profileId: string) { function useCreateProfile (line 21) | function useCreateProfile() { function useUpdateProfile (line 32) | function useUpdateProfile() { function useDeleteProfile (line 47) | function useDeleteProfile() { function useProfileSamples (line 58) | function useProfileSamples(profileId: string) { function useAddSample (line 66) | function useAddSample() { function useDeleteSample (line 90) | function useDeleteSample() { function useUpdateSample (line 101) | function useUpdateSample() { function useExportProfile (line 119) | function useExportProfile() { function useImportProfile (line 143) | function useImportProfile() { function useUploadAvatar (line 154) | function useUploadAvatar() { function useDeleteAvatar (line 169) | function useDeleteAvatar() { FILE: app/src/lib/hooks/useRestoreActiveTasks.tsx constant POLL_INTERVAL (line 7) | const POLL_INTERVAL = 30000; function useRestoreActiveTasks (line 16) | function useRestoreActiveTasks() { constant MODEL_DISPLAY_NAMES (line 80) | const MODEL_DISPLAY_NAMES: Record = { FILE: app/src/lib/hooks/useServer.ts function useServerHealth (line 5) | function useServerHealth() { FILE: app/src/lib/hooks/useStories.ts function useStories (line 15) | function useStories() { function useStory (line 22) | function useStory(storyId: string | null) { function useCreateStory (line 30) | function useCreateStory() { function useUpdateStory (line 41) | function useUpdateStory() { function useDeleteStory (line 54) | function useDeleteStory() { function useAddStoryItem (line 65) | function useAddStoryItem() { function useRemoveStoryItem (line 78) | function useRemoveStoryItem() { function useUpdateStoryItemTimes (line 91) | function useUpdateStoryItemTimes() { function useReorderStoryItems (line 104) | function useReorderStoryItems() { function useMoveStoryItem (line 117) | function useMoveStoryItem() { function useTrimStoryItem (line 137) | function useTrimStoryItem() { function useSplitStoryItem (line 157) | function useSplitStoryItem() { function useDuplicateStoryItem (line 177) | function useDuplicateStoryItem() { function useSetStoryItemVersion (line 190) | function useSetStoryItemVersion() { function useExportStoryAudio (line 210) | function useExportStoryAudio() { FILE: app/src/lib/hooks/useStoryPlayback.ts type ActiveSource (line 6) | interface ActiveSource { function useStoryPlayback (line 19) | function useStoryPlayback(items: StoryItemDetail[] | undefined) { FILE: app/src/lib/hooks/useSystemAudioCapture.ts type UseSystemAudioCaptureOptions (line 4) | interface UseSystemAudioCaptureOptions { function useSystemAudioCapture (line 13) | function useSystemAudioCapture({ FILE: app/src/lib/hooks/useTranscription.ts function useTranscription (line 6) | function useTranscription() { FILE: app/src/lib/utils/audio.ts function createAudioUrl (line 1) | function createAudioUrl(audioId: string, serverUrl: string): string { function downloadAudio (line 5) | function downloadAudio(url: string, filename: string): void { function formatAudioDuration (line 14) | function formatAudioDuration(seconds: number): string { function getAudioDuration (line 31) | async function getAudioDuration( function convertToWav (line 77) | async function convertToWav(audioBlob: Blob): Promise { function audioBufferToWav (line 99) | function audioBufferToWav(buffer: AudioBuffer): Blob { function interleaveChannels (line 140) | function interleaveChannels(buffer: AudioBuffer): Float32Array { function writeString (line 158) | function writeString(view: DataView, offset: number, string: string): vo... function floatTo16BitPCM (line 167) | function floatTo16BitPCM(view: DataView, offset: number, input: Float32A... FILE: app/src/lib/utils/cn.ts function cn (line 4) | function cn(...inputs: ClassValue[]) { FILE: app/src/lib/utils/debug.ts constant DEBUG (line 1) | const DEBUG = import.meta.env.DEV; FILE: app/src/lib/utils/format.ts function formatDuration (line 3) | function formatDuration(seconds: number): string { function formatDate (line 9) | function formatDate(date: string | Date): string { constant ENGINE_DISPLAY_NAMES (line 28) | const ENGINE_DISPLAY_NAMES: Record = { function formatEngineName (line 35) | function formatEngineName(engine?: string, modelSize?: string): string { function formatFileSize (line 43) | function formatFileSize(bytes: number): string { FILE: app/src/lib/utils/parseChangelog.ts type ChangelogEntry (line 1) | interface ChangelogEntry { function parseChangelog (line 14) | function parseChangelog(raw: string): ChangelogEntry[] { FILE: app/src/platform/PlatformContext.tsx type PlatformProviderProps (line 6) | interface PlatformProviderProps { function PlatformProvider (line 11) | function PlatformProvider({ platform, children }: PlatformProviderProps) { function usePlatform (line 19) | function usePlatform(): Platform { FILE: app/src/platform/types.ts type FileFilter (line 6) | interface FileFilter { type PlatformFilesystem (line 11) | interface PlatformFilesystem { type UpdateStatus (line 17) | interface UpdateStatus { type PlatformUpdater (line 30) | interface PlatformUpdater { type AudioDevice (line 38) | interface AudioDevice { type PlatformAudio (line 44) | interface PlatformAudio { type ServerLogEntry (line 53) | interface ServerLogEntry { type PlatformLifecycle (line 58) | interface PlatformLifecycle { type PlatformMetadata (line 68) | interface PlatformMetadata { type Platform (line 73) | interface Platform { FILE: app/src/router.tsx function RootLayout (line 32) | function RootLayout() { function DownloadToastRestorer (line 71) | function DownloadToastRestorer({ type Register (line 212) | interface Register { FILE: app/src/stores/audioChannelStore.ts type AudioChannel (line 4) | interface AudioChannel { type AudioChannelStore (line 12) | interface AudioChannelStore { FILE: app/src/stores/effectsStore.ts type EffectsStore (line 4) | interface EffectsStore { FILE: app/src/stores/generationStore.ts type GenerationState (line 3) | interface GenerationState { FILE: app/src/stores/logStore.ts constant MAX_LOG_ENTRIES (line 4) | const MAX_LOG_ENTRIES = 2000; type LogEntry (line 8) | interface LogEntry extends ServerLogEntry { type LogStore (line 13) | interface LogStore { FILE: app/src/stores/playerStore.ts type PlayerState (line 3) | interface PlayerState { FILE: app/src/stores/serverStore.ts type ServerStore (line 4) | interface ServerStore { FILE: app/src/stores/storyStore.ts type StoryPlaybackState (line 4) | interface StoryPlaybackState { constant DEFAULT_TRACK_EDITOR_HEIGHT (line 34) | const DEFAULT_TRACK_EDITOR_HEIGHT = 250; FILE: app/src/stores/uiStore.ts type ProfileFormDraft (line 4) | interface ProfileFormDraft { type UIStore (line 16) | interface UIStore { FILE: app/src/types/index.ts type VoiceProfile (line 3) | interface VoiceProfile { type Generation (line 12) | interface Generation { type ServerConfig (line 23) | interface ServerConfig { FILE: backend/app.py class ColoredFormatter (line 10) | class ColoredFormatter(logging.Formatter): method format (line 22) | def format(self, record): function safe_content_disposition (line 58) | def safe_content_disposition(disposition_type: str, filename: str) -> str: function create_app (line 69) | def create_app() -> FastAPI: function _configure_cors (line 85) | def _configure_cors(application: FastAPI) -> None: function _mount_frontend (line 108) | def _mount_frontend(application: FastAPI) -> None: function _get_gpu_status (line 145) | def _get_gpu_status() -> str: function _register_lifecycle (line 161) | def _register_lifecycle(application: FastAPI) -> None: FILE: backend/backends/__init__.py class ModelConfig (line 39) | class ModelConfig: class TTSBackend (line 54) | class TTSBackend(Protocol): method load_model (line 60) | async def load_model(self, model_size: str) -> None: method create_voice_prompt (line 64) | async def create_voice_prompt( method combine_voice_prompts (line 78) | async def combine_voice_prompts( method generate (line 91) | async def generate( method unload_model (line 107) | def unload_model(self) -> None: method is_loaded (line 111) | def is_loaded(self) -> bool: method _get_model_path (line 115) | def _get_model_path(self, model_size: str) -> str: class STTBackend (line 126) | class STTBackend(Protocol): method load_model (line 129) | async def load_model(self, model_size: str) -> None: method transcribe (line 133) | async def transcribe( method unload_model (line 147) | def unload_model(self) -> None: method is_loaded (line 151) | def is_loaded(self) -> bool: function _get_qwen_model_configs (line 174) | def _get_qwen_model_configs() -> list[ModelConfig]: function _get_non_qwen_tts_configs (line 208) | def _get_non_qwen_tts_configs() -> list[ModelConfig]: function _get_whisper_configs (line 293) | def _get_whisper_configs() -> list[ModelConfig]: function get_all_model_configs (line 334) | def get_all_model_configs() -> list[ModelConfig]: function get_tts_model_configs (line 339) | def get_tts_model_configs() -> list[ModelConfig]: function get_model_config (line 347) | def get_model_config(model_name: str) -> Optional[ModelConfig]: function engine_needs_trim (line 355) | def engine_needs_trim(engine: str) -> bool: function engine_has_model_sizes (line 363) | def engine_has_model_sizes(engine: str) -> bool: function load_engine_model (line 369) | async def load_engine_model(engine: str, model_size: str = "default") ->... function ensure_model_cached_or_raise (line 380) | async def ensure_model_cached_or_raise(engine: str, model_size: str = "d... function unload_model_by_config (line 406) | def unload_model_by_config(config: ModelConfig) -> bool: function check_model_loaded (line 434) | def check_model_loaded(config: ModelConfig) -> bool: function get_model_load_func (line 455) | def get_model_load_func(config: ModelConfig): function get_tts_backend (line 469) | def get_tts_backend() -> TTSBackend: function get_tts_backend_for_engine (line 479) | def get_tts_backend_for_engine(engine: str) -> TTSBackend: function get_stt_backend (line 538) | def get_stt_backend() -> STTBackend: function reset_backends (line 562) | def reset_backends(): FILE: backend/backends/base.py function is_model_cached (line 24) | def is_model_cached( function get_torch_device (line 80) | def get_torch_device( function combine_voice_prompts (line 129) | async def combine_voice_prompts( function model_load_progress (line 161) | def model_load_progress( function patch_chatterbox_f32 (line 224) | def patch_chatterbox_f32(model) -> None: FILE: backend/backends/chatterbox_backend.py class ChatterboxTTSBackend (line 38) | class ChatterboxTTSBackend: method __init__ (line 44) | def __init__(self): method _get_device (line 50) | def _get_device(self) -> str: method is_loaded (line 53) | def is_loaded(self) -> bool: method _get_model_path (line 56) | def _get_model_path(self, model_size: str = "default") -> str: method _is_model_cached (line 59) | def _is_model_cached(self, model_size: str = "default") -> bool: method load_model (line 62) | async def load_model(self, model_size: str = "default") -> None: method _load_model_sync (line 71) | def _load_model_sync(self): method unload_model (line 113) | def unload_model(self) -> None: method create_voice_prompt (line 126) | async def create_voice_prompt( method combine_voice_prompts (line 145) | async def combine_voice_prompts( method generate (line 168) | async def generate( FILE: backend/backends/chatterbox_turbo_backend.py class ChatterboxTurboTTSBackend (line 38) | class ChatterboxTurboTTSBackend: method __init__ (line 44) | def __init__(self): method _get_device (line 50) | def _get_device(self) -> str: method is_loaded (line 53) | def is_loaded(self) -> bool: method _get_model_path (line 56) | def _get_model_path(self, model_size: str = "default") -> str: method _is_model_cached (line 59) | def _is_model_cached(self, model_size: str = "default") -> bool: method load_model (line 62) | async def load_model(self, model_size: str = "default") -> None: method _load_model_sync (line 71) | def _load_model_sync(self): method unload_model (line 112) | def unload_model(self) -> None: method create_voice_prompt (line 125) | async def create_voice_prompt( method combine_voice_prompts (line 143) | async def combine_voice_prompts( method generate (line 150) | async def generate( FILE: backend/backends/hume_backend.py class HumeTadaBackend (line 54) | class HumeTadaBackend: method __init__ (line 59) | def __init__(self): method _get_device (line 66) | def _get_device(self) -> str: method is_loaded (line 71) | def is_loaded(self) -> bool: method _get_model_path (line 74) | def _get_model_path(self, model_size: str = "1B") -> str: method _is_model_cached (line 77) | def _is_model_cached(self, model_size: str = "1B") -> bool: method load_model (line 83) | async def load_model(self, model_size: str = "1B") -> None: method _load_model_sync (line 96) | def _load_model_sync(self, model_size: str = "1B"): method unload_model (line 182) | def unload_model(self) -> None: method create_voice_prompt (line 199) | async def create_voice_prompt( method combine_voice_prompts (line 267) | async def combine_voice_prompts( method generate (line 274) | async def generate( FILE: backend/backends/kokoro_backend.py class KokoroTTSBackend (line 119) | class KokoroTTSBackend: method __init__ (line 122) | def __init__(self): method _get_device (line 128) | def _get_device(self) -> str: method device (line 136) | def device(self) -> str: method is_loaded (line 141) | def is_loaded(self) -> bool: method _get_model_path (line 144) | def _get_model_path(self, model_size: str) -> str: method _is_model_cached (line 147) | def _is_model_cached(self, model_size: str = "default") -> bool: method load_model (line 156) | async def load_model(self, model_size: str = "default") -> None: method _load_model_sync (line 162) | def _load_model_sync(self): method _get_pipeline (line 177) | def _get_pipeline(self, lang_code: str): method unload_model (line 193) | def unload_model(self) -> None: method create_voice_prompt (line 207) | async def create_voice_prompt( method combine_voice_prompts (line 227) | async def combine_voice_prompts( method generate (line 237) | async def generate( FILE: backend/backends/luxtts_backend.py class LuxTTSBackend (line 24) | class LuxTTSBackend: method __init__ (line 27) | def __init__(self): method _get_device (line 32) | def _get_device(self) -> str: method is_loaded (line 35) | def is_loaded(self) -> bool: method device (line 39) | def device(self) -> str: method _get_model_path (line 44) | def _get_model_path(self, model_size: str) -> str: method _is_model_cached (line 47) | def _is_model_cached(self, model_size: str = "default") -> bool: method load_model (line 53) | async def load_model(self, model_size: str = "default") -> None: method _load_model_sync (line 60) | def _load_model_sync(self): method unload_model (line 81) | def unload_model(self) -> None: method create_voice_prompt (line 93) | async def create_voice_prompt( method combine_voice_prompts (line 130) | async def combine_voice_prompts(self, audio_paths, reference_texts): method generate (line 133) | async def generate( FILE: backend/backends/mlx_backend.py class MLXTTSBackend (line 26) | class MLXTTSBackend: method __init__ (line 29) | def __init__(self, model_size: str = "1.7B"): method is_loaded (line 34) | def is_loaded(self) -> bool: method _get_model_path (line 38) | def _get_model_path(self, model_size: str) -> str: method _is_model_cached (line 63) | def _is_model_cached(self, model_size: str) -> bool: method load_model_async (line 69) | async def load_model_async(self, model_size: Optional[str] = None): method _load_model_sync (line 93) | def _load_model_sync(self, model_size: str): method unload_model (line 130) | def unload_model(self): method create_voice_prompt (line 138) | async def create_voice_prompt( method combine_voice_prompts (line 189) | async def combine_voice_prompts(self, audio_paths, reference_texts): method generate (line 192) | async def generate( class MLXSTTBackend (line 288) | class MLXSTTBackend: method __init__ (line 291) | def __init__(self, model_size: str = "base"): method is_loaded (line 295) | def is_loaded(self) -> bool: method _is_model_cached (line 299) | def _is_model_cached(self, model_size: str) -> bool: method load_model_async (line 303) | async def load_model_async(self, model_size: Optional[str] = None): method _load_model_sync (line 322) | def _load_model_sync(self, model_size: str): method unload_model (line 337) | def unload_model(self): method transcribe (line 344) | async def transcribe( FILE: backend/backends/pytorch_backend.py class PyTorchTTSBackend (line 24) | class PyTorchTTSBackend: method __init__ (line 27) | def __init__(self, model_size: str = "1.7B"): method _get_device (line 33) | def _get_device(self) -> str: method is_loaded (line 37) | def is_loaded(self) -> bool: method _get_model_path (line 41) | def _get_model_path(self, model_size: str) -> str: method _is_model_cached (line 61) | def _is_model_cached(self, model_size: str) -> bool: method load_model_async (line 64) | async def load_model_async(self, model_size: Optional[str] = None): method _load_model_sync (line 88) | def _load_model_sync(self, model_size: str): method unload_model (line 116) | def unload_model(self): method create_voice_prompt (line 128) | async def create_voice_prompt( method combine_voice_prompts (line 181) | async def combine_voice_prompts( method generate (line 188) | async def generate( class PyTorchSTTBackend (line 235) | class PyTorchSTTBackend: method __init__ (line 238) | def __init__(self, model_size: str = "base"): method _get_device (line 244) | def _get_device(self) -> str: method is_loaded (line 248) | def is_loaded(self) -> bool: method _is_model_cached (line 252) | def _is_model_cached(self, model_size: str) -> bool: method load_model_async (line 256) | async def load_model_async(self, model_size: Optional[str] = None): method _load_model_sync (line 274) | def _load_model_sync(self, model_size: str): method unload_model (line 292) | def unload_model(self): method transcribe (line 305) | async def transcribe( FILE: backend/build_binary.py function is_apple_silicon (line 20) | def is_apple_silicon(): function build_server (line 25) | def build_server(cuda=False): FILE: backend/config.py function set_data_dir (line 25) | def set_data_dir(path: str | Path): function get_data_dir (line 38) | def get_data_dir() -> Path: function get_db_path (line 48) | def get_db_path() -> Path: function get_profiles_dir (line 53) | def get_profiles_dir() -> Path: function get_generations_dir (line 60) | def get_generations_dir() -> Path: function get_cache_dir (line 67) | def get_cache_dir() -> Path: function get_models_dir (line 74) | def get_models_dir() -> Path: FILE: backend/database/migrations.py function run_migrations (line 27) | def run_migrations(engine) -> None: function _get_columns (line 42) | def _get_columns(inspector, table: str) -> set[str]: function _add_column (line 46) | def _add_column(engine, table: str, column_sql: str, label: str) -> None: function _migrate_story_items (line 56) | def _migrate_story_items(engine, inspector, tables: set[str]) -> None: function _migrate_profiles (line 130) | def _migrate_profiles(engine, inspector, tables: set[str]) -> None: function _migrate_generations (line 151) | def _migrate_generations(engine, inspector, tables: set[str]) -> None: function _migrate_effect_presets (line 169) | def _migrate_effect_presets(engine, inspector, tables: set[str]) -> None: function _migrate_generation_versions (line 177) | def _migrate_generation_versions(engine, inspector, tables: set[str]) ->... function _resolve_relative_paths (line 185) | def _resolve_relative_paths(engine, tables: set[str]) -> None: FILE: backend/database/models.py class VoiceProfile (line 12) | class VoiceProfile(Base): class ProfileSample (line 41) | class ProfileSample(Base): class Generation (line 52) | class Generation(Base): class Story (line 73) | class Story(Base): class StoryItem (line 85) | class StoryItem(Base): class Project (line 101) | class Project(Base): class GenerationVersion (line 113) | class GenerationVersion(Base): class EffectPreset (line 128) | class EffectPreset(Base): class AudioChannel (line 142) | class AudioChannel(Base): class ChannelDeviceMapping (line 153) | class ChannelDeviceMapping(Base): class ProfileChannelMapping (line 163) | class ProfileChannelMapping(Base): FILE: backend/database/seed.py function backfill_generation_versions (line 11) | def backfill_generation_versions(SessionLocal, Generation, GenerationVer... function seed_builtin_presets (line 48) | def seed_builtin_presets(SessionLocal, EffectPreset) -> None: FILE: backend/database/session.py function init_db (line 30) | def init_db() -> None: function get_db (line 72) | def get_db(): FILE: backend/models.py class VoiceProfileCreate (line 10) | class VoiceProfileCreate(BaseModel): class VoiceProfileResponse (line 25) | class VoiceProfileResponse(BaseModel): class Config (line 44) | class Config: class ProfileSampleCreate (line 48) | class ProfileSampleCreate(BaseModel): class ProfileSampleUpdate (line 54) | class ProfileSampleUpdate(BaseModel): class ProfileSampleResponse (line 60) | class ProfileSampleResponse(BaseModel): class Config (line 68) | class Config: class GenerationRequest (line 72) | class GenerationRequest(BaseModel): class GenerationResponse (line 94) | class GenerationResponse(BaseModel): class Config (line 114) | class Config: class HistoryQuery (line 118) | class HistoryQuery(BaseModel): class HistoryResponse (line 127) | class HistoryResponse(BaseModel): class Config (line 148) | class Config: class HistoryListResponse (line 152) | class HistoryListResponse(BaseModel): class TranscriptionRequest (line 159) | class TranscriptionRequest(BaseModel): class TranscriptionResponse (line 166) | class TranscriptionResponse(BaseModel): class HealthResponse (line 173) | class HealthResponse(BaseModel): class DirectoryCheck (line 187) | class DirectoryCheck(BaseModel): class FilesystemHealthResponse (line 196) | class FilesystemHealthResponse(BaseModel): class ModelStatus (line 205) | class ModelStatus(BaseModel): class ModelStatusListResponse (line 217) | class ModelStatusListResponse(BaseModel): class ModelDownloadRequest (line 223) | class ModelDownloadRequest(BaseModel): class ModelMigrateRequest (line 229) | class ModelMigrateRequest(BaseModel): class ActiveDownloadTask (line 235) | class ActiveDownloadTask(BaseModel): class ActiveGenerationTask (line 248) | class ActiveGenerationTask(BaseModel): class ActiveTasksResponse (line 257) | class ActiveTasksResponse(BaseModel): class AudioChannelCreate (line 264) | class AudioChannelCreate(BaseModel): class AudioChannelUpdate (line 271) | class AudioChannelUpdate(BaseModel): class AudioChannelResponse (line 278) | class AudioChannelResponse(BaseModel): class Config (line 287) | class Config: class ChannelVoiceAssignment (line 291) | class ChannelVoiceAssignment(BaseModel): class ProfileChannelAssignment (line 297) | class ProfileChannelAssignment(BaseModel): class StoryCreate (line 303) | class StoryCreate(BaseModel): class StoryResponse (line 310) | class StoryResponse(BaseModel): class Config (line 320) | class Config: class StoryItemDetail (line 324) | class StoryItemDetail(BaseModel): class Config (line 350) | class Config: class StoryDetailResponse (line 354) | class StoryDetailResponse(BaseModel): class Config (line 364) | class Config: class StoryItemCreate (line 368) | class StoryItemCreate(BaseModel): class StoryItemUpdateTime (line 376) | class StoryItemUpdateTime(BaseModel): class StoryItemBatchUpdate (line 383) | class StoryItemBatchUpdate(BaseModel): class StoryItemReorder (line 389) | class StoryItemReorder(BaseModel): class StoryItemMove (line 395) | class StoryItemMove(BaseModel): class StoryItemTrim (line 402) | class StoryItemTrim(BaseModel): class StoryItemSplit (line 409) | class StoryItemSplit(BaseModel): class StoryItemVersionUpdate (line 415) | class StoryItemVersionUpdate(BaseModel): class EffectConfig (line 421) | class EffectConfig(BaseModel): class EffectsChain (line 429) | class EffectsChain(BaseModel): class EffectPresetCreate (line 435) | class EffectPresetCreate(BaseModel): class EffectPresetUpdate (line 443) | class EffectPresetUpdate(BaseModel): class EffectPresetResponse (line 451) | class EffectPresetResponse(BaseModel): class Config (line 461) | class Config: class GenerationVersionResponse (line 465) | class GenerationVersionResponse(BaseModel): class Config (line 477) | class Config: class ApplyEffectsRequest (line 481) | class ApplyEffectsRequest(BaseModel): class ProfileEffectsUpdate (line 492) | class ProfileEffectsUpdate(BaseModel): class AvailableEffectParam (line 498) | class AvailableEffectParam(BaseModel): class AvailableEffect (line 508) | class AvailableEffect(BaseModel): class AvailableEffectsResponse (line 517) | class AvailableEffectsResponse(BaseModel): FILE: backend/routes/__init__.py function register_routers (line 6) | def register_routers(app: FastAPI) -> None: FILE: backend/routes/audio.py function get_version_audio (line 17) | async def get_version_audio(version_id: str, db: Session = Depends(get_d... function get_audio (line 37) | async def get_audio(generation_id: str, db: Session = Depends(get_db)): function get_sample_audio (line 55) | async def get_sample_audio(sample_id: str, db: Session = Depends(get_db)): FILE: backend/routes/channels.py function list_channels (line 14) | async def list_channels(db: Session = Depends(get_db)): function create_channel (line 20) | async def create_channel( function get_channel (line 32) | async def get_channel( function update_channel (line 44) | async def update_channel( function delete_channel (line 60) | async def delete_channel( function get_channel_voices (line 75) | async def get_channel_voices( function set_channel_voices (line 88) | async def set_channel_voices( FILE: backend/routes/cuda.py function get_cuda_status (line 17) | async def get_cuda_status(): function download_cuda_backend (line 25) | async def download_cuda_backend(): function delete_cuda_backend (line 48) | async def delete_cuda_backend(): function get_cuda_download_progress (line 66) | async def get_cuda_download_progress(): FILE: backend/routes/effects.py function preview_effects (line 20) | async def preview_effects( function get_available_effects (line 67) | async def get_available_effects(): function list_effect_presets (line 75) | async def list_effect_presets(db: Session = Depends(get_db)): function get_effect_preset (line 83) | async def get_effect_preset(preset_id: str, db: Session = Depends(get_db)): function create_effect_preset (line 94) | async def create_effect_preset( function update_effect_preset (line 108) | async def update_effect_preset( function delete_effect_preset (line 126) | async def delete_effect_preset(preset_id: str, db: Session = Depends(get... function list_generation_versions (line 142) | async def list_generation_versions( function apply_effects_to_generation (line 160) | async def apply_effects_to_generation( function set_default_version (line 225) | async def set_default_version( function delete_generation_version (line 244) | async def delete_generation_version( FILE: backend/routes/generations.py function generate_speech (line 24) | async def generate_speech( function retry_generation (line 97) | async def retry_generation(generation_id: str, db: Session = Depends(get... function regenerate_generation (line 141) | async def regenerate_generation(generation_id: str, db: Session = Depend... function get_generation_status (line 182) | async def get_generation_status(generation_id: str, db: Session = Depend... function stream_speech (line 222) | async def stream_speech( FILE: backend/routes/health.py function root (line 25) | async def root(): function shutdown (line 36) | async def shutdown(): function watchdog_disable (line 48) | async def watchdog_disable(): function health (line 57) | async def health(): function filesystem_health (line 170) | async def filesystem_health(): FILE: backend/routes/history.py function list_history (line 19) | async def list_history( function get_stats (line 37) | async def get_stats(db: Session = Depends(get_db)): function import_generation (line 43) | async def import_generation( function get_generation (line 67) | async def get_generation( function toggle_favorite (line 98) | async def toggle_favorite( function delete_generation (line 112) | async def delete_generation( function export_generation (line 124) | async def export_generation( function export_generation_audio (line 153) | async def export_generation_audio( FILE: backend/routes/models.py function _get_dir_size (line 20) | def _get_dir_size(path: Path) -> int: function _copy_with_progress (line 29) | def _copy_with_progress(src: Path, dst: Path, progress_manager, copied_s... function load_model (line 51) | async def load_model(model_size: str = "1.7B"): function unload_model (line 64) | async def unload_model(): function unload_model_by_name (line 76) | async def unload_model_by_name(model_name: str): function get_model_progress (line 94) | async def get_model_progress(model_name: str): function get_models_cache_dir (line 114) | async def get_models_cache_dir(): function migrate_models (line 122) | async def migrate_models(request: models.ModelMigrateRequest): function get_migration_progress (line 206) | async def get_migration_progress(): function get_model_status (line 226) | async def get_model_status(): function trigger_model_download (line 387) | async def trigger_model_download(request: models.ModelDownloadRequest): function cancel_model_download (line 425) | async def cancel_model_download(request: models.ModelDownloadRequest): function delete_model (line 444) | async def delete_model(model_name: str): FILE: backend/routes/profiles.py function create_profile (line 27) | async def create_profile( function list_profiles (line 41) | async def list_profiles(db: Session = Depends(get_db)): function import_profile (line 47) | async def import_profile( function list_preset_voices (line 76) | async def list_preset_voices(engine: str): function seed_preset_profiles_route (line 97) | async def seed_preset_profiles_route( function get_profile (line 164) | async def get_profile( function update_profile (line 176) | async def update_profile( function delete_profile (line 192) | async def delete_profile( function add_profile_sample (line 208) | async def add_profile_sample( function get_profile_samples (line 249) | async def get_profile_samples( function delete_profile_sample (line 258) | async def delete_profile_sample( function update_profile_sample (line 270) | async def update_profile_sample( function upload_profile_avatar (line 283) | async def upload_profile_avatar( function get_profile_avatar (line 304) | async def get_profile_avatar( function delete_profile_avatar (line 324) | async def delete_profile_avatar( function export_profile (line 336) | async def export_profile( function get_profile_channels (line 365) | async def get_profile_channels( function set_profile_channels (line 378) | async def set_profile_channels( function update_profile_effects (line 392) | async def update_profile_effects( FILE: backend/routes/stories.py function list_stories (line 18) | async def list_stories(db: Session = Depends(get_db)): function create_story (line 24) | async def create_story( function get_story (line 36) | async def get_story( function update_story (line 48) | async def update_story( function delete_story (line 61) | async def delete_story( function add_story_item (line 73) | async def add_story_item( function remove_story_item (line 86) | async def remove_story_item( function update_story_item_times (line 99) | async def update_story_item_times( function reorder_story_items (line 112) | async def reorder_story_items( function move_story_item (line 127) | async def move_story_item( function trim_story_item (line 141) | async def trim_story_item( function split_story_item (line 155) | async def split_story_item( function duplicate_story_item (line 169) | async def duplicate_story_item( function set_story_item_version (line 182) | async def set_story_item_version( function export_story_audio (line 196) | async def export_story_audio( FILE: backend/routes/tasks.py function clear_all_tasks (line 17) | async def clear_all_tasks(): function clear_cache (line 33) | async def clear_cache(): function get_active_tasks (line 46) | async def get_active_tasks(): FILE: backend/routes/transcription.py function transcribe_audio (line 20) | async def transcribe_audio( FILE: backend/server.py function _is_writable (line 14) | def _is_writable(stream): function disable_watchdog (line 90) | def disable_watchdog(): function _start_parent_watchdog (line 102) | def _start_parent_watchdog(parent_pid, data_dir=None): function _on_startup (line 249) | async def _on_startup(): FILE: backend/services/channels.py function list_channels (line 25) | async def list_channels(db: Session) -> List[AudioChannelResponse]: function get_channel (line 48) | async def get_channel(channel_id: str, db: Session) -> Optional[AudioCha... function create_channel (line 69) | async def create_channel( function update_channel (line 110) | async def update_channel( function delete_channel (line 166) | async def delete_channel(channel_id: str, db: Session) -> bool: function get_channel_voices (line 188) | async def get_channel_voices(channel_id: str, db: Session) -> List[str]: function set_channel_voices (line 196) | async def set_channel_voices( function get_profile_channels (line 227) | async def get_profile_channels(profile_id: str, db: Session) -> List[str]: function set_profile_channels (line 235) | async def set_profile_channels( FILE: backend/services/cuda.py function get_backends_dir (line 38) | def get_backends_dir() -> Path: function get_cuda_dir (line 45) | def get_cuda_dir() -> Path: function get_cuda_exe_name (line 52) | def get_cuda_exe_name() -> str: function get_cuda_binary_path (line 59) | def get_cuda_binary_path() -> Optional[Path]: function get_cuda_libs_manifest_path (line 67) | def get_cuda_libs_manifest_path() -> Path: function get_installed_cuda_libs_version (line 72) | def get_installed_cuda_libs_version() -> Optional[str]: function is_cuda_active (line 85) | def is_cuda_active() -> bool: function get_cuda_status (line 93) | def get_cuda_status() -> dict: function _needs_server_download (line 110) | def _needs_server_download(version: Optional[str] = None) -> bool: function _needs_cuda_libs_download (line 123) | def _needs_cuda_libs_download() -> bool: function _download_and_extract_archive (line 131) | async def _download_and_extract_archive( function download_cuda_binary (line 231) | async def download_cuda_binary(version: Optional[str] = None): function get_cuda_binary_version (line 340) | def get_cuda_binary_version() -> Optional[str]: function check_and_update_cuda_binary (line 364) | async def check_and_update_cuda_binary(): function delete_cuda_binary (line 397) | async def delete_cuda_binary() -> bool: FILE: backend/services/effects.py function _preset_response (line 18) | def _preset_response(p: DBEffectPreset) -> EffectPresetResponse: function list_presets (line 31) | def list_presets(db: Session) -> List[EffectPresetResponse]: function get_preset (line 37) | def get_preset(preset_id: str, db: Session) -> Optional[EffectPresetResp... function get_preset_by_name (line 45) | def get_preset_by_name(name: str, db: Session) -> Optional[EffectPresetR... function create_preset (line 53) | def create_preset(data: EffectPresetCreate, db: Session) -> EffectPreset... function update_preset (line 84) | def update_preset(preset_id: str, data: EffectPresetUpdate, db: Session)... function delete_preset (line 110) | def delete_preset(preset_id: str, db: Session) -> bool: FILE: backend/services/export_import.py function _get_unique_profile_name (line 22) | def _get_unique_profile_name(name: str, db: Session) -> str: function export_profile_to_zip (line 45) | def export_profile_to_zip(profile_id: str, db: Session) -> bytes: function import_profile_from_zip (line 121) | async def import_profile_from_zip(file_bytes: bytes, db: Session) -> Voi... function export_generation_to_zip (line 243) | def export_generation_to_zip(generation_id: str, db: Session) -> bytes: function import_generation_from_zip (line 331) | async def import_generation_from_zip(file_bytes: bytes, db: Session) -> ... FILE: backend/services/generation.py function run_generation (line 28) | async def run_generation( function _save_generate (line 142) | def _save_generate( function _save_retry (line 201) | def _save_retry( function _save_regenerate (line 217) | def _save_regenerate( FILE: backend/services/history.py function _get_versions_for_generation (line 18) | def _get_versions_for_generation(generation_id: str, db: Session) -> tuple: function create_generation (line 55) | async def create_generation( function update_generation_status (line 111) | async def update_generation_status( function get_generation (line 137) | async def get_generation( function list_generations (line 158) | async def list_generations( function delete_generation (line 232) | async def delete_generation( function delete_generations_by_profile (line 267) | async def delete_generations_by_profile( function get_generation_stats (line 299) | async def get_generation_stats(db: Session) -> dict: FILE: backend/services/profiles.py function _profile_to_response (line 30) | def _profile_to_response( function _validate_profile_fields (line 64) | def _validate_profile_fields( function create_profile (line 95) | async def create_profile( function add_profile_sample (line 156) | async def add_profile_sample( function get_profile (line 215) | async def get_profile( function get_profile_samples (line 236) | async def get_profile_samples( function list_profiles (line 254) | async def list_profiles(db: Session) -> list[VoiceProfileResponse]: function update_profile (line 291) | async def update_profile( function delete_profile (line 348) | async def delete_profile( function delete_profile_sample (line 381) | async def delete_profile_sample( function update_profile_sample (line 416) | async def update_profile_sample( function create_voice_prompt_for_profile (line 450) | async def create_voice_prompt_for_profile( function upload_avatar (line 552) | async def upload_avatar( function delete_avatar (line 608) | async def delete_avatar( FILE: backend/services/stories.py function _build_item_detail (line 36) | def _build_item_detail( function create_story (line 77) | async def create_story( function list_stories (line 110) | async def list_stories( function get_story (line 135) | async def get_story( function update_story (line 171) | async def update_story( function delete_story (line 205) | async def delete_story( function add_item_to_story (line 233) | async def add_item_to_story( function move_story_item (line 318) | async def move_story_item( function remove_item_from_story (line 371) | async def remove_item_from_story( function trim_story_item (line 410) | async def trim_story_item( function split_story_item (line 468) | async def split_story_item( function duplicate_story_item (line 553) | async def duplicate_story_item( function update_story_item_times (line 621) | async def update_story_item_times( function reorder_story_items (line 658) | async def reorder_story_items( function set_story_item_version (line 722) | async def set_story_item_version( function export_story_audio (line 785) | async def export_story_audio( FILE: backend/services/task_queue.py function create_background_task (line 16) | def create_background_task(coro) -> asyncio.Task: function _generation_worker (line 24) | async def _generation_worker(): function enqueue_generation (line 36) | def enqueue_generation(coro): function init_queue (line 41) | def init_queue(): FILE: backend/services/transcribe.py function get_whisper_model (line 9) | def get_whisper_model() -> STTBackend: function unload_whisper_model (line 19) | def unload_whisper_model(): FILE: backend/services/tts.py function get_tts_model (line 13) | def get_tts_model() -> TTSBackend: function unload_tts_model (line 23) | def unload_tts_model(): function audio_to_wav_bytes (line 29) | def audio_to_wav_bytes(audio: np.ndarray, sample_rate: int) -> bytes: FILE: backend/services/versions.py function _version_response (line 25) | def _version_response(v: DBGenerationVersion) -> GenerationVersionResponse: function list_versions (line 43) | def list_versions(generation_id: str, db: Session) -> List[GenerationVer... function get_version (line 54) | def get_version(version_id: str, db: Session) -> Optional[GenerationVers... function get_default_version (line 62) | def get_default_version(generation_id: str, db: Session) -> Optional[Gen... function create_version (line 82) | def create_version( function set_default_version (line 122) | def set_default_version(version_id: str, db: Session) -> Optional[Genera... function delete_version (line 142) | def delete_version(version_id: str, db: Session) -> bool: function delete_versions_for_generation (line 187) | def delete_versions_for_generation(generation_id: str, db: Session) -> int: function _clear_defaults (line 206) | def _clear_defaults(generation_id: str, db: Session) -> None: FILE: backend/tests/test_cors.py function _build_app (line 23) | def _build_app(env_origins: str = "") -> FastAPI: function client (line 58) | def client(): function client_with_custom_origins (line 63) | def client_with_custom_origins(): function _get_with_origin (line 67) | def _get_with_origin(client: TestClient, origin: str) -> dict: function _preflight (line 73) | def _preflight(client: TestClient, origin: str) -> dict: class TestCORSDefaultOrigins (line 85) | class TestCORSDefaultOrigins: method test_allowed_origins (line 96) | def test_allowed_origins(self, client, origin): method test_blocked_origins (line 106) | def test_blocked_origins(self, client, origin): method test_preflight_allowed (line 110) | def test_preflight_allowed(self, client): method test_preflight_blocked (line 114) | def test_preflight_blocked(self, client): method test_credentials_header_present (line 118) | def test_credentials_header_present(self, client): class TestCORSCustomOrigins (line 123) | class TestCORSCustomOrigins: method test_custom_origin_allowed (line 126) | def test_custom_origin_allowed(self, client_with_custom_origins): method test_other_custom_origin_allowed (line 130) | def test_other_custom_origin_allowed(self, client_with_custom_origins): method test_default_origins_still_work (line 134) | def test_default_origins_still_work(self, client_with_custom_origins): method test_unlisted_origin_still_blocked (line 138) | def test_unlisted_origin_still_blocked(self, client_with_custom_origins): class TestCORSEnvVarParsing (line 143) | class TestCORSEnvVarParsing: method test_empty_env_var (line 146) | def test_empty_env_var(self): method test_whitespace_trimmed (line 152) | def test_whitespace_trimmed(self): method test_trailing_comma_ignored (line 158) | def test_trailing_comma_ignored(self): FILE: backend/tests/test_generation_download.py function monitor_sse_stream (line 15) | async def monitor_sse_stream(model_name: str, timeout: int = 120): function trigger_generation (line 65) | async def trigger_generation(profile_id: str, text: str, model_size: str... function get_first_profile (line 109) | async def get_first_profile(): function check_server (line 126) | async def check_server(): function _timestamp (line 137) | def _timestamp(): function test_generation_with_cached_model (line 142) | async def test_generation_with_cached_model(): function test_generation_with_fresh_download (line 196) | async def test_generation_with_fresh_download(): function main (line 257) | async def main(): FILE: backend/tests/test_profile_duplicate_names.py function test_db (line 25) | def test_db(): function mock_profiles_dir (line 46) | def mock_profiles_dir(monkeypatch, tmp_path): function test_create_profile_duplicate_name_raises_error (line 54) | async def test_create_profile_duplicate_name_raises_error(test_db, mock_... function test_create_profile_different_names_succeeds (line 83) | async def test_create_profile_different_names_succeeds(test_db, mock_pro... function test_update_profile_to_duplicate_name_raises_error (line 110) | async def test_update_profile_to_duplicate_name_raises_error(test_db, mo... function test_update_profile_keep_same_name_succeeds (line 143) | async def test_update_profile_keep_same_name_succeeds(test_db, mock_prof... function test_update_profile_to_new_unique_name_succeeds (line 170) | async def test_update_profile_to_new_unique_name_succeeds(test_db, mock_... function test_case_sensitive_names_allowed (line 196) | async def test_case_sensitive_names_allowed(test_db, mock_profiles_dir): FILE: backend/tests/test_progress.py function test_progress_manager_basic (line 21) | def test_progress_manager_basic(): function test_progress_manager_sse (line 57) | async def test_progress_manager_sse(): function test_hf_progress_tracker (line 120) | def test_hf_progress_tracker(): function test_full_integration (line 166) | async def test_full_integration(): function main (line 252) | async def main(): FILE: backend/tests/test_qwen_download.py function monitor_sse_stream (line 23) | async def monitor_sse_stream(model_name: str, timeout: int = 600) -> Lis... function trigger_download (line 95) | async def trigger_download(model_name: str) -> bool: function delete_model (line 112) | async def delete_model(model_name: str) -> bool: function check_model_status (line 135) | async def check_model_status(model_name: str) -> Optional[Dict]: function check_server (line 150) | async def check_server() -> bool: function main (line 160) | async def main(): FILE: backend/tests/test_whisper_download.py function monitor_sse_stream (line 11) | async def monitor_sse_stream(model_name: str, timeout: int = 300): function trigger_download (line 53) | async def trigger_download(model_name: str): function check_server (line 65) | async def check_server(): function main (line 76) | async def main(): FILE: backend/utils/audio.py function normalize_audio (line 11) | def normalize_audio( function load_audio (line 47) | def load_audio( function save_audio (line 67) | def save_audio( function trim_tts_output (line 113) | def trim_tts_output( function validate_reference_audio (line 202) | def validate_reference_audio( function validate_and_load_reference_audio (line 226) | def validate_and_load_reference_audio( FILE: backend/utils/cache.py function _get_cache_dir (line 16) | def _get_cache_dir() -> Path: function get_cache_key (line 25) | def get_cache_key(audio_path: str, reference_text: str) -> str: function get_cached_voice_prompt (line 47) | def get_cached_voice_prompt( function cache_voice_prompt (line 77) | def cache_voice_prompt( function clear_voice_prompt_cache (line 96) | def clear_voice_prompt_cache() -> int: function clear_profile_cache (line 130) | def clear_profile_cache(profile_id: str) -> int: FILE: backend/utils/chunked_tts.py function split_text_into_chunks (line 61) | def split_text_into_chunks(text: str, max_chars: int = DEFAULT_MAX_CHUNK... function _find_last_sentence_end (line 107) | def _find_last_sentence_end(text: str) -> int: function _find_last_clause_boundary (line 142) | def _find_last_clause_boundary(text: str) -> int: function _inside_bracket_tag (line 154) | def _inside_bracket_tag(text: str, pos: int) -> bool: function _safe_hard_cut (line 162) | def _safe_hard_cut(segment: str, max_chars: int) -> int: function concatenate_audio_chunks (line 172) | def concatenate_audio_chunks( function generate_chunked (line 204) | async def generate_chunked( FILE: backend/utils/dac_shim.py function snake (line 30) | def snake(x: torch.Tensor, alpha: torch.Tensor) -> torch.Tensor: class Snake1d (line 38) | class Snake1d(nn.Module): method __init__ (line 39) | def __init__(self, channels: int): method forward (line 43) | def forward(self, x: torch.Tensor) -> torch.Tensor: function install_dac_shim (line 49) | def install_dac_shim() -> None: FILE: backend/utils/effects.py function get_available_effects (line 258) | def get_available_effects() -> List[Dict[str, Any]]: function get_builtin_presets (line 276) | def get_builtin_presets() -> Dict[str, Dict[str, Any]]: function validate_effects_chain (line 281) | def validate_effects_chain(effects_chain: List[Dict[str, Any]]) -> Optio... function build_pedalboard (line 318) | def build_pedalboard(effects_chain: List[Dict[str, Any]]) -> Pedalboard: function apply_effects (line 342) | def apply_effects( FILE: backend/utils/hf_offline_patch.py function patch_huggingface_hub_offline (line 15) | def patch_huggingface_hub_offline(): function ensure_original_qwen_config_cached (line 58) | def ensure_original_qwen_config_cached(): FILE: backend/utils/hf_progress.py class HFProgressTracker (line 14) | class HFProgressTracker: method __init__ (line 17) | def __init__(self, progress_callback: Optional[Callable] = None, filte... method _create_tracked_tqdm_class (line 30) | def _create_tracked_tqdm_class(self): method patch_download (line 217) | def patch_download(self): function create_hf_progress_callback (line 365) | def create_hf_progress_callback(model_name: str, progress_manager): FILE: backend/utils/images.py function validate_image (line 13) | def validate_image(file_path: str) -> Tuple[bool, Optional[str]]: function process_avatar (line 47) | def process_avatar(input_path: str, output_path: str, max_size: int = MA... FILE: backend/utils/platform_detect.py function is_apple_silicon (line 9) | def is_apple_silicon() -> bool: function get_backend_type (line 19) | def get_backend_type() -> Literal["mlx", "pytorch"]: FILE: backend/utils/progress.py class ProgressManager (line 13) | class ProgressManager: method __init__ (line 23) | def __init__(self): method _set_main_loop (line 31) | def _set_main_loop(self, loop: asyncio.AbstractEventLoop): method _notify_listeners_threadsafe (line 35) | def _notify_listeners_threadsafe(self, model_name: str, progress_data:... method update_progress (line 64) | def update_progress( method get_progress (line 146) | def get_progress(self, model_name: str) -> Optional[Dict]: method get_all_active (line 152) | def get_all_active(self) -> List[Dict]: method create_progress_callback (line 162) | def create_progress_callback(self, model_name: str, filename: Optional... method subscribe (line 190) | async def subscribe(self, model_name: str): method mark_complete (line 259) | def mark_complete(self, model_name: str): method mark_error (line 277) | def mark_error(self, model_name: str, error: str): function get_progress_manager (line 310) | def get_progress_manager() -> ProgressManager: FILE: backend/utils/tasks.py class DownloadTask (line 11) | class DownloadTask: class GenerationTask (line 20) | class GenerationTask: class TaskManager (line 28) | class TaskManager: method __init__ (line 31) | def __init__(self): method start_download (line 35) | def start_download(self, model_name: str) -> None: method complete_download (line 42) | def complete_download(self, model_name: str) -> None: method error_download (line 47) | def error_download(self, model_name: str, error: str) -> None: method start_generation (line 53) | def start_generation(self, task_id: str, profile_id: str, text: str) -... method complete_generation (line 62) | def complete_generation(self, task_id: str) -> None: method get_active_downloads (line 67) | def get_active_downloads(self) -> List[DownloadTask]: method get_active_generations (line 71) | def get_active_generations(self) -> List[GenerationTask]: method cancel_download (line 75) | def cancel_download(self, model_name: str) -> bool: method clear_all (line 79) | def clear_all(self) -> None: method is_download_active (line 84) | def is_download_active(self, model_name: str) -> bool: method is_generation_active (line 88) | def is_generation_active(self, task_id: str) -> bool: function get_task_manager (line 97) | def get_task_manager() -> TaskManager: FILE: docs/app/[[...slug]]/layout.tsx function Layout (line 5) | function Layout({ children }: LayoutProps<'/[[...slug]]'>) { FILE: docs/app/[[...slug]]/page.tsx function Page (line 10) | async function Page(props: PageProps<'/[[...slug]]'>) { function generateStaticParams (line 58) | async function generateStaticParams() { function generateMetadata (line 62) | async function generateMetadata(props: PageProps<'/[[...slug]]'>): Promi... FILE: docs/app/layout.tsx function Layout (line 9) | function Layout({ children }: LayoutProps<'/'>) { FILE: docs/app/llms-full.txt/route.ts function GET (line 5) | async function GET() { FILE: docs/app/llms.mdx/docs/[[...slug]]/route.ts function GET (line 6) | async function GET(_req: Request, { params }: RouteContext<'/llms.mdx/do... function generateStaticParams (line 18) | function generateStaticParams() { FILE: docs/app/og/docs/[...slug]/route.tsx function GET (line 8) | async function GET( function generateStaticParams (line 31) | function generateStaticParams() { FILE: docs/components/ai/page-actions.tsx function MarkdownCopyButton (line 11) | function MarkdownCopyButton({ function ViewOptionsPopover (line 60) | function ViewOptionsPopover({ FILE: docs/components/ui/button.tsx type ButtonProps (line 29) | type ButtonProps = VariantProps; FILE: docs/lib/layout.shared.tsx function baseOptions (line 3) | function baseOptions(): BaseLayoutProps { FILE: docs/lib/source.ts function getPageImage (line 12) | function getPageImage(page: InferPageType) { function getLLMText (line 21) | async function getLLMText(page: InferPageType) { FILE: docs/mdx-components.tsx function AccordionGroup (line 12) | function AccordionGroup({ children }: { children: ReactNode }) { function Accordion (line 16) | function Accordion({ title, children }: { title: string; children: React... function getMDXComponents (line 28) | function getMDXComponents(components?: MDXComponents): MDXComponents { FILE: docs/next.config.mjs method rewrites (line 8) | async rewrites() { FILE: landing/src/app/api/releases/route.ts function GET (line 6) | async function GET() { FILE: landing/src/app/api/stars/route.ts function GET (line 7) | async function GET() { FILE: landing/src/app/download/[platform]/route.ts constant PLATFORM_MAP (line 6) | const PLATFORM_MAP: Record< function GET (line 16) | async function GET( FILE: landing/src/app/layout.tsx function RootLayout (line 40) | function RootLayout({ children }: { children: React.ReactNode }) { FILE: landing/src/app/linux-install/page.tsx function LinuxInstall (line 11) | function LinuxInstall() { FILE: landing/src/app/og/page.tsx function OgPreview (line 3) | function OgPreview() { FILE: landing/src/app/page.tsx function Home (line 14) | function Home() { FILE: landing/src/components/Banner.tsx function Banner (line 3) | function Banner() { FILE: landing/src/components/ControlUI.tsx type VoiceProfile (line 25) | interface VoiceProfile { constant PROFILES (line 33) | const PROFILES: VoiceProfile[] = [ type DemoStep (line 109) | interface DemoStep { constant DEMO_SCRIPT (line 118) | const DEMO_SCRIPT: DemoStep[] = [ type Generation (line 166) | interface Generation { constant INITIAL_GENERATIONS (line 178) | const INITIAL_GENERATIONS: Generation[] = [ constant SIDEBAR_ITEMS (line 236) | const SIDEBAR_ITEMS = [ type Phase (line 248) | type Phase = 'idle' | 'selecting' | 'typing' | 'generating' | 'complete'... constant PHASE_DURATIONS (line 250) | const PHASE_DURATIONS: Record = { function TypewriterText (line 261) | function TypewriterText({ text, speed }: { text: string; speed?: number ... function LoadingBars (line 292) | function LoadingBars({ mode }: { mode: 'idle' | 'generating' | 'playing'... function HistoryRow (line 363) | function HistoryRow({ function FloatingGenerateBox (line 436) | function FloatingGenerateBox({ function ControlUI (line 524) | function ControlUI() { FILE: landing/src/components/DownloadSection.tsx function DownloadSection (line 8) | function DownloadSection() { FILE: landing/src/components/Features.tsx function LazyLoad (line 9) | function LazyLoad({ function VoiceCloningAnimation (line 46) | function VoiceCloningAnimation() { constant WAVEFORM_BAR_COUNT (line 118) | const WAVEFORM_BAR_COUNT = 60; function MiniWaveform (line 120) | function MiniWaveform({ seed, color }: { seed: number; color: string }) { type DemoClip (line 178) | type DemoClip = { id: string; profile: string; track: number; x: number;... constant INITIAL_CLIPS (line 180) | const INITIAL_CLIPS: DemoClip[] = [ constant TL_W (line 189) | const TL_W = 220; type Action (line 191) | type Action = { label: string; apply: (clips: DemoClip[]) => DemoClip[] }; constant ACTIONS (line 193) | const ACTIONS: Action[] = [ function StoriesAnimation (line 238) | function StoriesAnimation() { function EffectsAnimation (line 455) | function EffectsAnimation() { function LocalRemoteAnimation (line 549) | function LocalRemoteAnimation() { function TranscriptionAnimation (line 604) | function TranscriptionAnimation() { function UnlimitedLengthAnimation (line 650) | function UnlimitedLengthAnimation() { constant FEATURES (line 763) | const FEATURES = [ function FeatureCard (line 810) | function FeatureCard({ feature }: { feature: (typeof FEATURES)[number] }) { function Features (line 834) | function Features() { FILE: landing/src/components/Footer.tsx function Footer (line 5) | function Footer() { FILE: landing/src/components/Header.tsx function Header (line 8) | function Header() { FILE: landing/src/components/LandingAudioPlayer.tsx function formatDuration (line 7) | function formatDuration(seconds: number): string { function unlockAudioContext (line 18) | function unlockAudioContext() { type LandingAudioPlayerProps (line 56) | interface LandingAudioPlayerProps { function LandingAudioPlayer (line 65) | function LandingAudioPlayer({ FILE: landing/src/components/Navbar.tsx function formatStarCount (line 8) | function formatStarCount(count: number): string { function Navbar (line 16) | function Navbar() { FILE: landing/src/components/PlatformIcons.tsx function AppleIcon (line 1) | function AppleIcon({ className }: { className?: string }) { function WindowsIcon (line 9) | function WindowsIcon({ className }: { className?: string }) { function LinuxIcon (line 17) | function LinuxIcon({ className }: { className?: string }) { FILE: landing/src/components/VoiceCreator.tsx function generateWaveformBars (line 9) | function generateWaveformBars(count: number, seed: number): number[] { function WaveformBackground (line 27) | function WaveformBackground({ active }: { active: boolean }) { function UploadPanel (line 67) | function UploadPanel() { function RecordPanel (line 133) | function RecordPanel() { function SystemPanel (line 242) | function SystemPanel() { constant TABS (line 352) | const TABS = [ type TabId (line 358) | type TabId = (typeof TABS)[number]['id']; function VoiceCreator (line 362) | function VoiceCreator() { FILE: landing/src/components/ui/button.tsx type ButtonProps (line 37) | interface ButtonProps FILE: landing/src/components/ui/feature-card.tsx type FeatureCardProps (line 5) | interface FeatureCardProps { function FeatureCard (line 12) | function FeatureCard({ title, description, icon, className }: FeatureCar... FILE: landing/src/components/ui/hero.tsx type HeroProps (line 7) | interface HeroProps { function Hero (line 15) | function Hero({ title, description, actions, className, showLogo = true ... FILE: landing/src/components/ui/section.tsx type SectionProps (line 4) | interface SectionProps { function Section (line 10) | function Section({ children, className, id }: SectionProps) { function SectionTitle (line 18) | function SectionTitle({ children, className }: { children: ReactNode; cl... FILE: landing/src/lib/constants.ts constant LATEST_VERSION (line 3) | const LATEST_VERSION = 'v0.1.0'; constant GITHUB_REPO (line 5) | const GITHUB_REPO = 'https://github.com/jamiepine/voicebox'; constant GITHUB_RELEASES_PAGE (line 6) | const GITHUB_RELEASES_PAGE = `${GITHUB_REPO}/releases`; constant DOWNLOAD_LINKS (line 8) | const DOWNLOAD_LINKS = { FILE: landing/src/lib/releases.ts type DownloadLinks (line 2) | interface DownloadLinks { type ReleaseInfo (line 9) | interface ReleaseInfo { constant GITHUB_REPO (line 15) | const GITHUB_REPO = 'jamiepine/voicebox'; constant GITHUB_API_BASE (line 16) | const GITHUB_API_BASE = 'https://api.github.com'; constant CACHE_DURATION (line 21) | const CACHE_DURATION = 1000 * 60 * 5; function getLatestRelease (line 30) | async function getLatestRelease(): Promise { function getTotalDownloads (line 114) | async function getTotalDownloads(): Promise { function getStarCount (line 161) | async function getStarCount(): Promise { FILE: landing/src/lib/utils.ts function cn (line 4) | function cn(...inputs: ClassValue[]) { FILE: scripts/package_cuda.py function is_nvidia_file (line 53) | def is_nvidia_file(rel_path: str) -> bool: function sha256_file (line 87) | def sha256_file(path: Path) -> str: function package (line 99) | def package( function main (line 193) | def main(): FILE: scripts/setup-dev-sidecar.js constant BINARIES_DIR (line 21) | const BINARIES_DIR = join(__dirname, '..', 'tauri', 'src-tauri', 'binari... constant MIN_REAL_BINARY_SIZE (line 24) | const MIN_REAL_BINARY_SIZE = 10000; function getTargetTriple (line 27) | function getTargetTriple() { function createPlaceholderBinary (line 49) | function createPlaceholderBinary(targetTriple) { function main (line 366) | function main() { FILE: scripts/test_download_progress.py class ProgressSpy (line 54) | class ProgressSpy: method __init__ (line 57) | def __init__(self): method _elapsed (line 66) | def _elapsed(self): method _log (line 69) | def _log(self, event_type, **kwargs): method _create_tracked_tqdm_class (line 82) | def _create_tracked_tqdm_class(self): method patch (line 154) | def patch(self): method summary (line 255) | def summary(self): function delete_cache (line 292) | def delete_cache(repo_id: str): function download_qwen (line 306) | def download_qwen(spy: ProgressSpy): function download_luxtts (line 318) | def download_luxtts(spy: ProgressSpy): function download_chatterbox (line 328) | def download_chatterbox(spy: ProgressSpy): function main (line 346) | def main(): FILE: tauri/src-tauri/build.rs function main (line 4) | fn main() { FILE: tauri/src-tauri/src/audio_capture/linux.rs function start_capture (line 17) | pub async fn start_capture( function stop_capture (line 233) | pub async fn stop_capture(state: &AudioCaptureState) -> Result bool { function samples_to_wav (line 284) | fn samples_to_wav(samples: &[f32], sample_rate: u32, channels: u16) -> R... FILE: tauri/src-tauri/src/audio_capture/macos.rs function start_capture (line 19) | pub async fn start_capture( function stop_capture (line 114) | pub async fn stop_capture(state: &AudioCaptureState) -> Result bool { function extract_audio_samples (line 160) | fn extract_audio_samples(sample_buffer: CMSampleBuffer) -> Result R... FILE: tauri/src-tauri/src/audio_capture/mod.rs type AudioCaptureState (line 20) | pub struct AudioCaptureState { method new (line 31) | pub fn new() -> Self { method reset (line 43) | pub fn reset(&self) { FILE: tauri/src-tauri/src/audio_capture/windows.rs function start_capture (line 11) | pub async fn start_capture( function stop_capture (line 219) | pub async fn stop_capture(state: &AudioCaptureState) -> Result bool { function samples_to_wav (line 262) | fn samples_to_wav(samples: &[f32], sample_rate: u32, channels: u16) -> R... FILE: tauri/src-tauri/src/audio_output.rs type AudioOutputDevice (line 7) | pub struct AudioOutputDevice { type AudioOutputState (line 13) | pub struct AudioOutputState { method new (line 19) | pub fn new() -> Self { method stop_all_playback (line 26) | pub fn stop_all_playback(&self) -> Result<(), String> { method list_output_devices (line 33) | pub fn list_output_devices(&self) -> Result, St... method play_audio_to_devices (line 65) | pub async fn play_audio_to_devices( method decode_wav (line 123) | fn decode_wav(&self, data: &[u8]) -> Result<(Vec, u32, u16), Stri... method play_to_device (line 244) | fn play_to_device( method resample (line 411) | fn resample(&self, samples: &[f32], from_rate: u32, to_rate: u32) -> V... method interleave_channels (line 432) | fn interleave_channels( method default (line 462) | fn default() -> Self { FILE: tauri/src-tauri/src/main.rs constant LEGACY_PORT (line 12) | const LEGACY_PORT: u16 = 8000; constant SERVER_PORT (line 13) | const SERVER_PORT: u16 = 17493; function find_voicebox_pid_on_port (line 23) | fn find_voicebox_pid_on_port(port: u16) -> Option { type ServerState (line 56) | struct ServerState { function start_server (line 64) | async fn start_server( function stop_server (line 529) | async fn stop_server(state: State<'_, ServerState>) -> Result<(), String> { function restart_server (line 579) | async fn restart_server( function set_keep_server_running (line 608) | fn set_keep_server_running(state: State<'_, ServerState>, keep_running: ... function start_system_audio_capture (line 614) | async fn start_system_audio_capture( function stop_system_audio_capture (line 622) | async fn stop_system_audio_capture( function is_system_audio_supported (line 629) | fn is_system_audio_supported() -> bool { function list_audio_output_devices (line 634) | fn list_audio_output_devices( function play_audio_to_devices (line 641) | async fn play_audio_to_devices( function stop_audio_playback (line 650) | fn stop_audio_playback( function run (line 657) | pub fn run() { function main (line 852) | fn main() { FILE: tauri/src-tauri/tests/audio_capture_test.rs function test_system_audio_capture (line 11) | async fn test_system_audio_capture() { FILE: tauri/src/platform/audio.ts method isSystemAudioSupported (line 5) | isSystemAudioSupported(): boolean { method startSystemAudioCapture (line 10) | async startSystemAudioCapture(maxDurationSecs: number): Promise { method stopSystemAudioCapture (line 16) | async stopSystemAudioCapture(): Promise { method listOutputDevices (line 29) | async listOutputDevices(): Promise { method playToDevices (line 33) | async playToDevices(audioData: Uint8Array, deviceIds: string[]): Promise... method stopPlayback (line 40) | stopPlayback(): void { FILE: tauri/src/platform/filesystem.ts method saveFile (line 4) | async saveFile(filename: string, blob: Blob, filters?: FileFilter[]) { method openPath (line 26) | async openPath(path: string) { method pickDirectory (line 31) | async pickDirectory(title: string) { FILE: tauri/src/platform/lifecycle.ts class TauriLifecycle (line 5) | class TauriLifecycle implements PlatformLifecycle { method startServer (line 8) | async startServer(remote = false, modelsDir?: string | null): Promise<... method stopServer (line 23) | async stopServer(): Promise { method restartServer (line 33) | async restartServer(modelsDir?: string | null): Promise { method setKeepServerRunning (line 47) | async setKeepServerRunning(keepRunning: boolean): Promise { method setupWindowCloseHandler (line 55) | async setupWindowCloseHandler(): Promise { method subscribeToServerLogs (line 90) | subscribeToServerLogs(callback: (entry: ServerLogEntry) => void): () =... FILE: tauri/src/platform/metadata.ts method getVersion (line 5) | async getVersion(): Promise { FILE: tauri/src/platform/updater.ts class TauriUpdater (line 10) | class TauriUpdater implements PlatformUpdater { method notifySubscribers (line 22) | private notifySubscribers() { method subscribe (line 26) | subscribe(callback: (status: UpdateStatus) => void): () => void { method getStatus (line 35) | getStatus(): UpdateStatus { method checkForUpdates (line 39) | async checkForUpdates(): Promise { method downloadAndInstall (line 83) | async downloadAndInstall(): Promise { method restartAndInstall (line 145) | async restartAndInstall(): Promise { FILE: web/src/platform/audio.ts method isSystemAudioSupported (line 4) | isSystemAudioSupported(): boolean { method startSystemAudioCapture (line 8) | async startSystemAudioCapture(_maxDurationSecs: number): Promise { method stopSystemAudioCapture (line 12) | async stopSystemAudioCapture(): Promise { method listOutputDevices (line 16) | async listOutputDevices(): Promise { method playToDevices (line 20) | async playToDevices(_audioData: Uint8Array, _deviceIds: string[]): Promi... method stopPlayback (line 24) | stopPlayback(): void { FILE: web/src/platform/filesystem.ts method saveFile (line 4) | async saveFile(filename: string, blob: Blob, _filters?: FileFilter[]) { method openPath (line 16) | async openPath(_path: string) { method pickDirectory (line 20) | async pickDirectory(_title: string) { FILE: web/src/platform/lifecycle.ts class WebLifecycle (line 3) | class WebLifecycle implements PlatformLifecycle { method startServer (line 6) | async startServer(_remote = false, _modelsDir?: string | null): Promis... method stopServer (line 14) | async stopServer(): Promise { method restartServer (line 18) | async restartServer(_modelsDir?: string | null): Promise { method setKeepServerRunning (line 23) | async setKeepServerRunning(_keep: boolean): Promise { method setupWindowCloseHandler (line 27) | async setupWindowCloseHandler(): Promise { method subscribeToServerLogs (line 31) | subscribeToServerLogs(_callback: (_entry: ServerLogEntry) => void): ()... FILE: web/src/platform/metadata.ts method getVersion (line 4) | async getVersion(): Promise { FILE: web/src/platform/updater.ts class WebUpdater (line 3) | class WebUpdater implements PlatformUpdater { method notifySubscribers (line 14) | private notifySubscribers() { method subscribe (line 18) | subscribe(callback: (status: UpdateStatus) => void): () => void { method getStatus (line 26) | getStatus(): UpdateStatus { method checkForUpdates (line 30) | async checkForUpdates(): Promise { method downloadAndInstall (line 35) | async downloadAndInstall(): Promise { method restartAndInstall (line 39) | async restartAndInstall(): Promise {