LICENSE
MANIFEST.in
README.md
pyproject.toml
config/app_config.yaml
config/llm.yaml
config/logging.conf
resources/icons/app_icon_128.png
resources/icons/app_icon_256.png
resources/icons/app_icon_32.png
resources/icons/app_icon_512.png
resources/icons/app_icon_64.png
resources/styles/dark_theme.qss
resources/styles/light_theme.qss
src/scenefab/__init__.py
src/scenefab/__main__.py
src/scenefab/application.py
src/scenefab/cache_manager.py
src/scenefab/cli.py
src/scenefab/event_bus.py
src/scenefab/exceptions.py
src/scenefab/logger.py
src/scenefab/main.py
src/scenefab/pipeline.py
src/scenefab/project_manager.py
src/scenefab/project_template_manager.py
src/scenefab/py.typed
src/scenefab/registry_models.py
src/scenefab/secure_key_manager.py
src/scenefab/service_container.py
src/scenefab/settings.py
src/scenefab/settings_data.py
src/scenefab/settings_manager.py
src/scenefab/settings_types.py
src/scenefab/signals_bridge.py
src/scenefab/task_manager.py
src/scenefab/template_models.py
src/scenefab/version_manager.py
src/scenefab/version_models.py
src/scenefab.egg-info/PKG-INFO
src/scenefab.egg-info/SOURCES.txt
src/scenefab.egg-info/dependency_links.txt
src/scenefab.egg-info/entry_points.txt
src/scenefab.egg-info/requires.txt
src/scenefab.egg-info/top_level.txt
src/scenefab/api/__init__.py
src/scenefab/api/main.py
src/scenefab/api/routers/__init__.py
src/scenefab/api/routers/export.py
src/scenefab/api/routers/health.py
src/scenefab/api/routers/pipeline.py
src/scenefab/api/routers/plugins.py
src/scenefab/api/routers/projects.py
src/scenefab/api/schemas/models.py
src/scenefab/cache_impl/__init__.py
src/scenefab/cache_impl/disk_cache.py
src/scenefab/cache_impl/memory_cache.py
src/scenefab/cli/__init__.py
src/scenefab/cli/main.py
src/scenefab/core/__init__.py
src/scenefab/core/audit.py
src/scenefab/core/base_worker.py
src/scenefab/core/batch_processor.py
src/scenefab/core/config_v2.py
src/scenefab/core/di_container.py
src/scenefab/core/event_store.py
src/scenefab/core/event_types.py
src/scenefab/core/ffmpeg_safe.py
src/scenefab/core/pipeline_engine.py
src/scenefab/core/platform_adapter.py
src/scenefab/core/platform_extended.py
src/scenefab/core/short_drama.py
src/scenefab/core/streaming_llm_worker.py
src/scenefab/core/task_model.py
src/scenefab/core/task_store.py
src/scenefab/core/unified_event_bus.py
src/scenefab/core/ws_hub.py
src/scenefab/interfaces/__init__.py
src/scenefab/interfaces/cache_interface.py
src/scenefab/models/__init__.py
src/scenefab/models/enums.py
src/scenefab/models/media.py
src/scenefab/models/narration.py
src/scenefab/models/project.py
src/scenefab/models/project_file_metadata.py
src/scenefab/models/project_models.py
src/scenefab/models/video.py
src/scenefab/orchestration/__init__.py
src/scenefab/orchestration/pipeline_controller.py
src/scenefab/plugins/__init__.py
src/scenefab/plugins/loader.py
src/scenefab/plugins/registry.py
src/scenefab/plugins/examples/cinematic_subtitle/cinematic_sub.py
src/scenefab/plugins/examples/deepseek_ai_generator/__init__.py
src/scenefab/plugins/examples/deepseek_ai_generator/deepseek_gen.py
src/scenefab/plugins/interfaces/__init__.py
src/scenefab/plugins/interfaces/ai_generator.py
src/scenefab/plugins/interfaces/base.py
src/scenefab/plugins/interfaces/export_plugin.py
src/scenefab/services/__init__.py
src/scenefab/services/ai_service_manager.py
src/scenefab/services/service_manager.py
src/scenefab/services/ab_testing/__init__.py
src/scenefab/services/ai/__init__.py
src/scenefab/services/ai/asr.py
src/scenefab/services/ai/base.py
src/scenefab/services/ai/base_llm_provider.py
src/scenefab/services/ai/cache.py
src/scenefab/services/ai/errors.py
src/scenefab/services/ai/interfaces.py
src/scenefab/services/ai/llm.py
src/scenefab/services/ai/llm_manager.py
src/scenefab/services/ai/manager.py
src/scenefab/services/ai/model_registry.py
src/scenefab/services/ai/provider_types.py
src/scenefab/services/ai/retry.py
src/scenefab/services/ai/scene_analyzer.py
src/scenefab/services/ai/scene_analyzer_v2.py
src/scenefab/services/ai/scene_models.py
src/scenefab/services/ai/scene_scorer.py
src/scenefab/services/ai/script_generator.py
src/scenefab/services/ai/script_models.py
src/scenefab/services/ai/script_stream.py
src/scenefab/services/ai/secure_subtitle_extractor.py
src/scenefab/services/ai/sensevoice_provider.py
src/scenefab/services/ai/subtitle_extractor.py
src/scenefab/services/ai/subtitle_merger.py
src/scenefab/services/ai/subtitle_speech.py
src/scenefab/services/ai/subtitle_translator.py
src/scenefab/services/ai/subtitle_types.py
src/scenefab/services/ai/tts.py
src/scenefab/services/ai/tts_new_providers.py
src/scenefab/services/ai/tts_providers.py
src/scenefab/services/ai/vision.py
src/scenefab/services/ai/vision_base.py
src/scenefab/services/ai/vision_providers.py
src/scenefab/services/ai/voice_generator.py
src/scenefab/services/ai/voice_models.py
src/scenefab/services/ai/whisper_asr_provider.py
src/scenefab/services/ai/adapters/__init__.py
src/scenefab/services/ai/adapters/adapter_registry.py
src/scenefab/services/ai/adapters/base.py
src/scenefab/services/ai/infra/__init__.py
src/scenefab/services/ai/providers/__init__.py
src/scenefab/services/ai/providers/claude.py
src/scenefab/services/ai/providers/deepseek.py
src/scenefab/services/ai/providers/doubao.py
src/scenefab/services/ai/providers/gemini.py
src/scenefab/services/ai/providers/gemini35_flash.py
src/scenefab/services/ai/providers/glm5.py
src/scenefab/services/ai/providers/hunyuan.py
src/scenefab/services/ai/providers/kimi.py
src/scenefab/services/ai/providers/local.py
src/scenefab/services/ai/providers/provider_models.py
src/scenefab/services/ai/providers/qwen.py
src/scenefab/services/ai/providers/qwen37.py
src/scenefab/services/audio/__init__.py
src/scenefab/services/audio/beat_detector.py
src/scenefab/services/audio/sync_engine.py
src/scenefab/services/benchmark/__init__.py
src/scenefab/services/benchmark/performance_benchmark.py
src/scenefab/services/compliance/__init__.py
src/scenefab/services/compliance/copyright_checker.py
src/scenefab/services/compliance/fair_use_advisor.py
src/scenefab/services/compliance/sensitive_content_detector.py
src/scenefab/services/cover/__init__.py
src/scenefab/services/data_feedback/__init__.py
src/scenefab/services/emotion/__init__.py
src/scenefab/services/export/__init__.py
src/scenefab/services/export/batch_export_manager.py
src/scenefab/services/export/direct_video_exporter.py
src/scenefab/services/export/export_manager.py
src/scenefab/services/export/export_utils.py
src/scenefab/services/export/jianying_adapter.py
src/scenefab/services/export/jianying_exporter.py
src/scenefab/services/export/subtitle_exporter.py
src/scenefab/services/export/video_exporter.py
src/scenefab/services/multilanguage/__init__.py
src/scenefab/services/orchestration/__init__.py
src/scenefab/services/orchestration/enums.py
src/scenefab/services/orchestration/pipe_models.py
src/scenefab/services/orchestration/pipeline_project_manager.py
src/scenefab/services/rhythm/__init__.py
src/scenefab/services/video/__init__.py
src/scenefab/services/video/analyzer.py
src/scenefab/services/video/base_maker.py
src/scenefab/services/video/highlight_detector.py
src/scenefab/services/video/monologue_maker.py
src/scenefab/services/video/perspective_mapper.py
src/scenefab/services/video/pipeline_integrator.py
src/scenefab/services/video/processor.py
src/scenefab/services/video/scene_converter.py
src/scenefab/services/video/session.py
src/scenefab/services/video/track_builder.py
src/scenefab/services/video/video_interleaver.py
src/scenefab/services/video/cache/__init__.py
src/scenefab/services/video/cache/frame_cache.py
src/scenefab/services/video/cache/legacy_cache.py
src/scenefab/services/video/extraction/__init__.py
src/scenefab/services/video/extraction/emotion_peak.py
src/scenefab/services/video/extraction/first_person.py
src/scenefab/services/video/grouping/__init__.py
src/scenefab/services/video/grouping/smart_grouper.py
src/scenefab/services/video/models/__init__.py
src/scenefab/services/video/models/monologue.py
src/scenefab/services/video/models/perspective.py
src/scenefab/services/video/selection/__init__.py
src/scenefab/services/video/selection/seg_selector.py
src/scenefab/services/video_tools/__init__.py
src/scenefab/services/video_tools/base.py
src/scenefab/services/video_tools/caption_gen.py
src/scenefab/services/video_tools/ffmpeg_tool.py
src/scenefab/services/video_understanding/__init__.py
src/scenefab/services/viral/__init__.py
src/scenefab/templates/ai_enhancement/project_template.json
src/scenefab/templates/ai_enhancement/template_info.json
src/scenefab/templates/ai_enhancement/template_metadata.json
src/scenefab/templates/video_tutorial/project_template.json
src/scenefab/templates/video_tutorial/template_info.json
src/scenefab/templates/video_tutorial/template_metadata.json
src/scenefab/tests/__init__.py
src/scenefab/ui/__init__.py
src/scenefab/ui/icon_manager.py
src/scenefab/ui/macos_theme_manager.py
src/scenefab/ui/common/macos_components.py
src/scenefab/ui/components/__init__.py
src/scenefab/ui/components/animations.py
src/scenefab/ui/components/common_styles.py
src/scenefab/ui/components/empty_state.py
src/scenefab/ui/components/home_components.py
src/scenefab/ui/components/pro_components.py
src/scenefab/ui/components/step_indicator.py
src/scenefab/ui/components/buttons/__init__.py
src/scenefab/ui/components/containers/__init__.py
src/scenefab/ui/components/containers/preview_panel.py
src/scenefab/ui/components/containers/project_card.py
src/scenefab/ui/components/containers/video_player.py
src/scenefab/ui/components/design_system/__init__.py
src/scenefab/ui/components/design_system/_components.py
src/scenefab/ui/components/design_system/_style_generator.py
src/scenefab/ui/components/design_system/_tokens.py
src/scenefab/ui/components/emotion_controller/__init__.py
src/scenefab/ui/components/emotion_controller/curve_wgt.py
src/scenefab/ui/components/emotion_controller/emotion_ctrl.py
src/scenefab/ui/components/emotion_controller/emotion_presets.py
src/scenefab/ui/components/inputs/__init__.py
src/scenefab/ui/components/labels/__init__.py
src/scenefab/ui/components/layout/__init__.py
src/scenefab/ui/components/loading/__init__.py
src/scenefab/ui/components/loading/pulse_indicator.py
src/scenefab/ui/components/loading/skeleton.py
src/scenefab/ui/components/narration/__init__.py
src/scenefab/ui/components/narration/narration_editor.py
src/scenefab/ui/components/onboarding/__init__.py
src/scenefab/ui/components/onboarding/feature_tour.py
src/scenefab/ui/components/onboarding/onboard_steps.py
src/scenefab/ui/components/onboarding/onboard_wizard.py
src/scenefab/ui/components/onboarding/welcome.py
src/scenefab/ui/components/pro_widgets/__init__.py
src/scenefab/ui/components/subtitle/__init__.py
src/scenefab/ui/components/subtitle/subtitle_core.py
src/scenefab/ui/components/subtitle/subtitle_models.py
src/scenefab/ui/components/subtitle/widgets/__init__.py
src/scenefab/ui/components/subtitle/widgets/subtitle_block.py
src/scenefab/ui/components/subtitle/widgets/subtitle_track.py
src/scenefab/ui/components/subtitle/widgets/time_ruler.py
src/scenefab/ui/components/subtitle/widgets/timeline_widget.py
src/scenefab/ui/components/timeline/__init__.py
src/scenefab/ui/components/timeline/timeline_shuttle.py
src/scenefab/ui/main/__init__.py
src/scenefab/ui/main/constants.py
src/scenefab/ui/main/event_handler.py
src/scenefab/ui/main/main_window.py
src/scenefab/ui/main/page_loader.py
src/scenefab/ui/main/tray_manager.py
src/scenefab/ui/main/components/__init__.py
src/scenefab/ui/main/components/_monitor_widget.py
src/scenefab/ui/main/components/_progress_dialog.py
src/scenefab/ui/main/components/_progress_widget.py
src/scenefab/ui/main/components/_tab_builders.py
src/scenefab/ui/main/components/ai_monitor_panel.py
src/scenefab/ui/main/components/effects_panel.py
src/scenefab/ui/main/components/export_format_selector.py
src/scenefab/ui/main/components/export_monitor.py
src/scenefab/ui/main/components/export_panel.py
src/scenefab/ui/main/components/export_progress.py
src/scenefab/ui/main/components/export_stats.py
src/scenefab/ui/main/components/media_library.py
src/scenefab/ui/main/components/monitor_models.py
src/scenefab/ui/main/components/monitor_pages.py
src/scenefab/ui/main/components/monitor_panel.py
src/scenefab/ui/main/components/monitor_widgets.py
src/scenefab/ui/main/components/navigation_bar.py
src/scenefab/ui/main/components/properties_panel.py
src/scenefab/ui/main/components/quick_ai_config.py
src/scenefab/ui/main/components/status_bar.py
src/scenefab/ui/main/components/timeline.py
src/scenefab/ui/main/components/video_preview.py
src/scenefab/ui/main/dialogs/model_app_dialog.py
src/scenefab/ui/main/dialogs/model_app_pages.py
src/scenefab/ui/main/layouts/__init__.py
src/scenefab/ui/main/layouts/main_layout.py
src/scenefab/ui/main/pages/__init__.py
src/scenefab/ui/main/pages/_cards.py
src/scenefab/ui/main/pages/_empty_state.py
src/scenefab/ui/main/pages/_group_card.py
src/scenefab/ui/main/pages/base_page.py
src/scenefab/ui/main/pages/creation_wizard_page.py
src/scenefab/ui/main/pages/export_worker.py
src/scenefab/ui/main/pages/home_page.py
src/scenefab/ui/main/pages/narration_segment_card.py
src/scenefab/ui/main/pages/page_base.py
src/scenefab/ui/main/pages/preview_text_area.py
src/scenefab/ui/main/pages/projects_page.py
src/scenefab/ui/main/pages/settings_page.py
src/scenefab/ui/main/pages/step_analysis.py
src/scenefab/ui/main/pages/step_base.py
src/scenefab/ui/main/pages/step_edit.py
src/scenefab/ui/main/pages/step_export.py
src/scenefab/ui/main/pages/step_group.py
src/scenefab/ui/main/pages/step_pipeline.py
src/scenefab/ui/main/pages/step_preview.py
src/scenefab/ui/main/pages/step_upload.py
src/scenefab/ui/main/pages/style_preset_panel.py
src/scenefab/ui/main/pages/subtitle_style_card.py
src/scenefab/ui/main/pages/thumbnail_worker.py
src/scenefab/ui/main/pages/video_drop_zone.py
src/scenefab/ui/main/pages/video_metadata_panel.py
src/scenefab/ui/main/pages/video_preview_widget.py
src/scenefab/ui/main/pages/video_thumbnail_item.py
src/scenefab/ui/main/pages/components/__init__.py
src/scenefab/ui/main/pages/components/create_proj_dlg.py
src/scenefab/ui/main/pages/components/drag_helpers.py
src/scenefab/ui/main/pages/components/proj_details_pnl.py
src/scenefab/ui/main/pages/components/proj_list_pnl.py
src/scenefab/ui/main/pages/components/project_cards.py
src/scenefab/ui/main/pages/components/settings_dialog.py
src/scenefab/ui/main/pages/components/stats.py
src/scenefab/ui/theme/__init__.py
src/scenefab/ui/theme/base_styles.py
src/scenefab/ui/theme/ds_tokens.py
src/scenefab/ui/theme/qss_variables.py
src/scenefab/ui/theme/theme_manager.py
src/scenefab/ui/theme/theme_toggle.py
src/scenefab/ui/theme/tokens.py
src/scenefab/ui/theme/animation/__init__.py
src/scenefab/ui/theme/animation/_animation_helper.py
src/scenefab/ui/theme/animation/_page_transition.py
src/scenefab/ui/theme/animation/_widgets.py
src/scenefab/ui/theme/theme_optimizer/__init__.py
src/scenefab/ui/theme/theme_optimizer/_presets.py
src/scenefab/ui/theme/theme_optimizer/_preview.py
src/scenefab/ui/theme/theme_optimizer/_selector.py
src/scenefab/ui/theme/theme_optimizer/_styles.py
src/scenefab/ui/windows/__init__.py
src/scenefab/ui/windows/base_step_window.py
src/scenefab/ui/windows/export_window.py
src/scenefab/ui/windows/main_window.py
src/scenefab/ui/windows/narration_window.py
src/scenefab/ui/windows/projects_window.py
src/scenefab/ui/windows/scene_window.py
src/scenefab/ui/windows/upload_window.py
src/scenefab/update/__init__.py
src/scenefab/update/checker.py
src/scenefab/utils/__init__.py
src/scenefab/utils/config.py
src/scenefab/utils/error_handler.py
src/scenefab/utils/performance.py
src/scenefab/utils/secure_config_loader.py
src/scenefab/utils/security.py
src/scenefab/utils/shortcut_manager.py
src/scenefab/utils/version.py
tests/test_ai_service_manager.py
tests/test_application.py
tests/test_arch_v21.py
tests/test_base_exporter.py
tests/test_beat_detector.py
tests/test_benchmark.py
tests/test_cache_manager.py
tests/test_caption_generator.py
tests/test_config_manager.py
tests/test_core_v2.py
tests/test_direct_video_exporter.py
tests/test_error_handler.py
tests/test_event_handler.py
tests/test_exceptions.py
tests/test_ffmpeg_tool.py
tests/test_highlight_detector.py
tests/test_icon_manager.py
tests/test_integration.py
tests/test_jianying_exporter.py
tests/test_llm_base.py
tests/test_llm_cache.py
tests/test_llm_manager.py
tests/test_llm_providers.py
tests/test_logger.py
tests/test_macOS_theme_manager.py
tests/test_monologue_maker.py
tests/test_page_loader.py
tests/test_performance.py
tests/test_project_manager.py
tests/test_project_models.py
tests/test_project_settings_manager.py
tests/test_project_template_manager.py
tests/test_project_version_manager.py
tests/test_script_generator.py
tests/test_script_generator_streaming.py
tests/test_secure_key_manager.py
tests/test_service_container.py
tests/test_subtitle_extractor.py
tests/test_sync_engine.py
tests/test_task_queue.py
tests/test_tray_manager.py
tests/test_ui_components.py
tests/test_version.py
tests/test_video_analyzer.py
tests/test_video_enhancer.py
tests/test_video_exporter.py
tests/test_video_maker.py
tests/test_vision_providers.py
tests/test_voice_generator.py