databricks-tellr-app 0.4.3.dev39__tar.gz → 0.4.3.dev40__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/PKG-INFO +1 -1
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/databricks_tellr_app.egg-info/PKG-INFO +1 -1
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/pyproject.toml +1 -1
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/main.py +19 -2
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/export.py +2 -8
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/services/export_job_queue.py +31 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/README.md +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/databricks_tellr_app/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/databricks_tellr_app/run.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/databricks_tellr_app.egg-info/SOURCES.txt +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/databricks_tellr_app.egg-info/dependency_links.txt +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/databricks_tellr_app.egg-info/requires.txt +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/databricks_tellr_app.egg-info/top_level.txt +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/setup.cfg +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/setup.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/_otel_bootstrap.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/fixtures/tour_demo_deck.json +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/mcp_auth.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/mcp_server.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/middleware/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/middleware/csrf.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/middleware/request_logging.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/middleware/security_headers.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/_authz.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/admin.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/admin_usage.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/agent_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/chat.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/deck_contributors.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/feedback.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/google_slides.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/images.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/local_version.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/profiles.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/sessions.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/settings/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/settings/contributors.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/settings/deck_prompts.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/settings/design_systems.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/settings/identities.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/settings/slide_styles.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/setup.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/slides.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/tools.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/tour.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/verification.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/version.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/schemas/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/schemas/agent_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/schemas/feedback.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/schemas/requests.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/schemas/responses.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/schemas/settings/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/schemas/settings/requests.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/schemas/settings/responses.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/schemas/streaming.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/services/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/services/chat_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/services/feedback_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/services/job_queue.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/services/session_manager.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/services/session_naming.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/services/usage_events.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/services/usage_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/utils/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/utils/validation.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/config_loader.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/context_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/database.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/databricks_client.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/defaults.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/encryption.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/init_default_profile.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/lakebase.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/migrate_profiles_to_agent_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/mlflow_agent_spans.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/mlflow_tracing.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/otel_logging.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/permission_context.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/prompt_modules.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/settings_db.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/user_context.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/deck_contributor.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/design_system.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/encryption_key.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/feedback.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/genie_space.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/google_global_credentials.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/google_oauth_token.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/identity.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/image.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/profile.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/profile_contributor.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/prompts.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/request_log.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/session.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/slide_deck_prompt.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/slide_style_library.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/usage_event.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/user_preference.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/types.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/domain/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/domain/slide.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/domain/slide_deck.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/agent.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/agent_factory.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/config_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/config_validator.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/converter_jail/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/converter_jail/ast_guard.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/converter_jail/codeprep.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/converter_jail/gslides_runner.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/converter_jail/jail.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/converter_jail/pptx_runner.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/converter_jail/protocol.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/design_system_compiler.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/design_system_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/design_system_templates.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/drive_uploader.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/evaluation/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/evaluation/llm_judge.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/genie_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/google_slides_auth.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/google_slides_prompts_defaults.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/html_to_google_slides.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/html_to_pptx.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/identity_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/identity_providers/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/identity_providers/account_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/identity_providers/local_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/identity_providers/workspace_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/image_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/image_tools.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/permission_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/pptx_from_html_huashu.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/pptx_from_records.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/pptx_prompts_defaults.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/profile_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/streaming_callback.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/tools/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/tools/agent_bricks_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/tools/ds_asset_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/tools/genie_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/tools/mcp_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/tools/model_endpoint_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/tools/vector_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/validator.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/css_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/ds_asset_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/error_handling.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/html_safety.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/html_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/image_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/js_validator.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/logging_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/pi_filter.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/slide_hash.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/spotlight.py +0 -0
- {databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/text_caps.py +0 -0
|
@@ -31,7 +31,10 @@ from src.api.routes.settings import (
|
|
|
31
31
|
identities_router,
|
|
32
32
|
slide_styles_router,
|
|
33
33
|
)
|
|
34
|
-
from src.api.services.export_job_queue import
|
|
34
|
+
from src.api.services.export_job_queue import (
|
|
35
|
+
start_export_cleanup_worker,
|
|
36
|
+
start_export_worker,
|
|
37
|
+
)
|
|
35
38
|
from src.api.services.job_queue import recover_stuck_requests, start_worker
|
|
36
39
|
from src.core.database import (
|
|
37
40
|
is_lakebase_environment,
|
|
@@ -49,6 +52,7 @@ IS_TESTING = ENVIRONMENT == "test"
|
|
|
49
52
|
# Worker task references for cleanup
|
|
50
53
|
_worker_task = None
|
|
51
54
|
_export_worker_task = None
|
|
55
|
+
_export_cleanup_task: asyncio.Task | None = None
|
|
52
56
|
_cleanup_task = None
|
|
53
57
|
_timeout_task = None
|
|
54
58
|
_frontend_assets_stack: ExitStack | None = None
|
|
@@ -57,7 +61,8 @@ _frontend_assets_stack: ExitStack | None = None
|
|
|
57
61
|
@asynccontextmanager
|
|
58
62
|
async def lifespan(app: FastAPI):
|
|
59
63
|
"""Lifespan context manager for startup/shutdown events."""
|
|
60
|
-
global _worker_task, _export_worker_task,
|
|
64
|
+
global _worker_task, _export_worker_task, _export_cleanup_task
|
|
65
|
+
global _cleanup_task, _timeout_task, _frontend_assets_stack
|
|
61
66
|
|
|
62
67
|
# Startup
|
|
63
68
|
logger.info(f"Starting AI Slide Generator API (environment: {ENVIRONMENT})")
|
|
@@ -124,6 +129,10 @@ async def lifespan(app: FastAPI):
|
|
|
124
129
|
_export_worker_task = await start_export_worker()
|
|
125
130
|
logger.info("Export job queue worker started")
|
|
126
131
|
|
|
132
|
+
# Start the export job TTL cleanup worker
|
|
133
|
+
_export_cleanup_task = await start_export_cleanup_worker()
|
|
134
|
+
logger.info("Export job cleanup worker started")
|
|
135
|
+
|
|
127
136
|
# Start the MCP job timeout sweeper
|
|
128
137
|
from src.api.services.job_queue import mark_timed_out_jobs_loop
|
|
129
138
|
_timeout_task = asyncio.create_task(mark_timed_out_jobs_loop())
|
|
@@ -169,6 +178,14 @@ async def lifespan(app: FastAPI):
|
|
|
169
178
|
pass
|
|
170
179
|
logger.info("Export job queue worker stopped")
|
|
171
180
|
|
|
181
|
+
if _export_cleanup_task:
|
|
182
|
+
_export_cleanup_task.cancel()
|
|
183
|
+
try:
|
|
184
|
+
await _export_cleanup_task
|
|
185
|
+
except asyncio.CancelledError:
|
|
186
|
+
pass
|
|
187
|
+
logger.info("Export job cleanup worker stopped")
|
|
188
|
+
|
|
172
189
|
if _cleanup_task:
|
|
173
190
|
_cleanup_task.cancel()
|
|
174
191
|
try:
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/export.py
RENAMED
|
@@ -807,13 +807,11 @@ async def poll_pptx_export(job_id: str):
|
|
|
807
807
|
|
|
808
808
|
|
|
809
809
|
@router.get("/pptx/download/{job_id}")
|
|
810
|
-
async def download_pptx_export(job_id: str
|
|
810
|
+
async def download_pptx_export(job_id: str):
|
|
811
811
|
"""Download completed PPTX export.
|
|
812
812
|
|
|
813
813
|
Args:
|
|
814
814
|
job_id: Job ID from start_pptx_export_async
|
|
815
|
-
background_tasks: FastAPI background tasks for cleanup
|
|
816
|
-
|
|
817
815
|
Returns:
|
|
818
816
|
FileResponse with PPTX file
|
|
819
817
|
|
|
@@ -824,7 +822,6 @@ async def download_pptx_export(job_id: str, background_tasks: BackgroundTasks):
|
|
|
824
822
|
_require_export_job_access(job_id)
|
|
825
823
|
from src.api.services.export_job_queue import (
|
|
826
824
|
get_export_job_status,
|
|
827
|
-
cleanup_export_job,
|
|
828
825
|
)
|
|
829
826
|
|
|
830
827
|
job = get_export_job_status(job_id)
|
|
@@ -852,9 +849,6 @@ async def download_pptx_export(job_id: str, background_tasks: BackgroundTasks):
|
|
|
852
849
|
extra={"job_id": job_id, "pptx_filename": filename},
|
|
853
850
|
)
|
|
854
851
|
|
|
855
|
-
# Schedule cleanup after download
|
|
856
|
-
background_tasks.add_task(cleanup_export_job, job_id)
|
|
857
|
-
|
|
858
852
|
return FileResponse(
|
|
859
853
|
path=output_path,
|
|
860
854
|
filename=filename,
|
|
@@ -1295,4 +1289,4 @@ async def export_pptx_huashu_from_html(request: ExportPPTXEditableRequest):
|
|
|
1295
1289
|
content=pptx_bytes,
|
|
1296
1290
|
media_type="application/vnd.openxmlformats-officedocument.presentationml.presentation",
|
|
1297
1291
|
headers=headers,
|
|
1298
|
-
)
|
|
1292
|
+
)
|
|
@@ -29,6 +29,9 @@ logger = logging.getLogger(__name__)
|
|
|
29
29
|
# Only needs to work within a single process.
|
|
30
30
|
export_queue: asyncio.Queue = asyncio.Queue()
|
|
31
31
|
|
|
32
|
+
EXPORT_CLEANUP_INTERVAL_SECONDS = 300
|
|
33
|
+
EXPORT_JOB_MAX_AGE_MINUTES = 30
|
|
34
|
+
|
|
32
35
|
|
|
33
36
|
def generate_job_id() -> str:
|
|
34
37
|
"""Generate a unique job ID."""
|
|
@@ -510,6 +513,34 @@ async def start_export_worker() -> asyncio.Task:
|
|
|
510
513
|
return asyncio.create_task(export_worker())
|
|
511
514
|
|
|
512
515
|
|
|
516
|
+
async def export_cleanup_loop() -> None:
|
|
517
|
+
"""Periodically remove terminal export jobs that have exceeded their TTL."""
|
|
518
|
+
logger.info("Export job cleanup worker started")
|
|
519
|
+
while True:
|
|
520
|
+
try:
|
|
521
|
+
await asyncio.sleep(EXPORT_CLEANUP_INTERVAL_SECONDS)
|
|
522
|
+
cleaned = await asyncio.to_thread(
|
|
523
|
+
cleanup_stale_jobs,
|
|
524
|
+
EXPORT_JOB_MAX_AGE_MINUTES,
|
|
525
|
+
)
|
|
526
|
+
if cleaned:
|
|
527
|
+
logger.info("Cleaned up %d stale export job(s)", cleaned)
|
|
528
|
+
except asyncio.CancelledError:
|
|
529
|
+
logger.info("Export job cleanup worker shutting down")
|
|
530
|
+
raise
|
|
531
|
+
except Exception as e:
|
|
532
|
+
logger.warning(
|
|
533
|
+
"Export job cleanup iteration failed",
|
|
534
|
+
exc_info=True,
|
|
535
|
+
extra={"error": str(e)},
|
|
536
|
+
)
|
|
537
|
+
|
|
538
|
+
|
|
539
|
+
async def start_export_cleanup_worker() -> asyncio.Task:
|
|
540
|
+
"""Start the background export job cleanup task."""
|
|
541
|
+
return asyncio.create_task(export_cleanup_loop())
|
|
542
|
+
|
|
543
|
+
|
|
513
544
|
def cleanup_export_job(job_id: str) -> None:
|
|
514
545
|
"""Clean up job data and temporary files.
|
|
515
546
|
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/databricks_tellr_app/run.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/_otel_bootstrap.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/middleware/__init__.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/middleware/csrf.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/__init__.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/_authz.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/admin.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/admin_usage.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/agent_config.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/chat.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/feedback.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/images.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/profiles.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/sessions.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/setup.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/slides.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/tools.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/tour.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/verification.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/routes/version.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/schemas/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/schemas/feedback.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/schemas/requests.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/schemas/responses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/schemas/streaming.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/services/job_queue.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/utils/__init__.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/api/utils/validation.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/config_loader.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/context_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/databricks_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/encryption.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/mlflow_agent_spans.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/mlflow_tracing.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/otel_logging.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/permission_context.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/prompt_modules.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/settings_db.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/core/user_context.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/image.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/profile.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/prompts.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/database/models/session.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/domain/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/domain/slide_deck.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/agent_factory.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/config_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/drive_uploader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/genie_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/html_to_pptx.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/image_service.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/image_tools.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/tools/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/tools/mcp_tool.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/services/validator.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/css_utils.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/ds_asset_utils.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/error_handling.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/html_safety.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/html_utils.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/image_utils.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/js_validator.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/logging_config.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/pi_filter.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/slide_hash.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/spotlight.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev39 → databricks_tellr_app-0.4.3.dev40}/src/utils/text_caps.py
RENAMED
|
File without changes
|