databricks-tellr-app 0.4.3.dev31__tar.gz → 0.4.3.dev32__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.dev31 → databricks_tellr_app-0.4.3.dev32}/PKG-INFO +5 -3
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/databricks_tellr_app.egg-info/PKG-INFO +5 -3
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/databricks_tellr_app.egg-info/requires.txt +4 -2
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/pyproject.toml +7 -4
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/main.py +14 -2
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/mcp_auth.py +36 -25
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/chat.py +0 -12
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/export.py +107 -220
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/sessions.py +5 -22
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/settings/design_systems.py +22 -2
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/version.py +6 -2
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/services/session_manager.py +1 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/databricks_client.py +50 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/encryption.py +54 -32
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/encryption_key.py +6 -2
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/design_system_compiler.py +20 -1
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/html_to_google_slides.py +91 -47
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/prompt_assembler.py +4 -22
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/README.md +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/databricks_tellr_app/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/databricks_tellr_app/run.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/databricks_tellr_app.egg-info/SOURCES.txt +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/databricks_tellr_app.egg-info/dependency_links.txt +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/databricks_tellr_app.egg-info/top_level.txt +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/setup.cfg +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/setup.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/_otel_bootstrap.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/fixtures/tour_demo_deck.json +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/mcp_server.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/middleware/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/middleware/csrf.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/middleware/request_logging.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/middleware/security_headers.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/_authz.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/admin.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/admin_usage.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/agent_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/agent_definitions.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/deck_contributors.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/feedback.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/google_slides.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/images.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/local_version.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/profiles.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/settings/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/settings/contributors.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/settings/deck_prompts.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/settings/identities.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/settings/slide_styles.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/setup.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/slides.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/tools.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/tour.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/verification.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/schemas/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/schemas/agent_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/schemas/agent_definitions.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/schemas/feedback.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/schemas/graph_release_history.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/schemas/graph_releases.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/schemas/requests.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/schemas/responses.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/schemas/settings/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/schemas/settings/requests.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/schemas/settings/responses.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/schemas/streaming.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/services/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/services/chat_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/services/deck_level_writer.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/services/export_job_queue.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/services/feedback_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/services/job_queue.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/services/session_naming.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/services/slide_repository.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/services/usage_events.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/services/usage_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/utils/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/utils/validation.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/backfill_session_slides_startup.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/checkpointer.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/config_loader.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/context_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/database.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/defaults.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/init_default_profile.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/lakebase.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/migrate_profiles_to_agent_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/mlflow_agent_spans.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/mlflow_tracing.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/otel_logging.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/permission_context.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/prompt_modules.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/settings_db.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/skills/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/skills/architect.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/skills/build_reviewer.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/skills/builder.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/skills/data_analyst.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/skills/deck_reviewer.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/skills/fix_reviewer.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/skills/fixer.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/strip_retired_prompt_keys.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/core/user_context.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/deck_contributor.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/deck_review.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/design_system.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/feedback.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/genie_space.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/google_global_credentials.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/google_oauth_token.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/graph_checkpoint.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/graph_configuration.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/identity.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/image.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/profile.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/profile_contributor.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/prompts.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/request_log.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/session.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/slide_deck_prompt.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/slide_style_library.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/usage_event.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/models/user_preference.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/database/types.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/domain/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/domain/conversation_engine.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/domain/deck_spec.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/domain/finding.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/domain/skill_io.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/domain/slide.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/domain/slide_deck.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/agent.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/agent_definition_manifest_v1.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/agent_factory.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/agent_model_payload.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/agent_resolution.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/agent_runtime.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/agent_runtime_identity.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/agent_schema_registry.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/agent_schema_types.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/agent_test_workbench.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/collaboration_history.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/config_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/config_validator.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/conversation_pins.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/converter_jail/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/converter_jail/ast_guard.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/converter_jail/codeprep.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/converter_jail/gslides_runner.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/converter_jail/jail.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/converter_jail/pptx_runner.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/converter_jail/protocol.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/deck_css_aggregator.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/deck_review_store.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/design_system_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/design_system_templates.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/drive_uploader.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/evaluation/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/evaluation/llm_judge.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/foreman_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/genie_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/google_slides_auth.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/google_slides_prompts_defaults.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph/builder.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph/event_emitter.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph/nodes.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph/routers.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph/state.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph_configuration.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph_configuration_bootstrap.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph_configuration_content.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph_configuration_draft.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph_configuration_publication.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph_configuration_rollback.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph_configuration_seed.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph_configuration_workbench.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph_definition_manifest.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph_release_evidence.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/graph_release_history.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/html_to_pptx.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/identity_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/identity_providers/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/identity_providers/account_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/identity_providers/local_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/identity_providers/workspace_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/image_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/image_tools.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/model_endpoint_catalog.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/model_endpoint_probe.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/permission_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/persisted_graph_release.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/pptx_from_html_huashu.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/pptx_from_records.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/pptx_prompts_defaults.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/profile_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/shared_deck_attribution.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/spec_sync.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/streaming_callback.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/template_sections.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/tools/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/tools/agent_bricks_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/tools/ds_asset_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/tools/genie_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/tools/mcp_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/tools/model_endpoint_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/tools/vector_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/services/validator.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/utils/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/utils/css_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/utils/ds_asset_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/utils/error_handling.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/utils/graph_safety.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/utils/html_safety.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/utils/html_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/utils/image_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/utils/js_validator.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/utils/logging_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/utils/pi_filter.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/utils/slide_hash.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/utils/spotlight.py +0 -0
- {databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/utils/text_caps.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: databricks-tellr-app
|
|
3
|
-
Version: 0.4.3.
|
|
3
|
+
Version: 0.4.3.dev32
|
|
4
4
|
Summary: Tellr application package for Databricks Apps
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -9,14 +9,16 @@ Requires-Dist: uvicorn==0.38.0
|
|
|
9
9
|
Requires-Dist: python-multipart==0.0.20
|
|
10
10
|
Requires-Dist: pydantic==2.12.4
|
|
11
11
|
Requires-Dist: pydantic-settings==2.12.0
|
|
12
|
-
Requires-Dist: databricks-langchain==0.
|
|
12
|
+
Requires-Dist: databricks-langchain==0.20.0
|
|
13
|
+
Requires-Dist: databricks-openai==0.17.1
|
|
13
14
|
Requires-Dist: langchain==1.3.14
|
|
14
15
|
Requires-Dist: langchain-core==1.5.3
|
|
15
16
|
Requires-Dist: langchain-community==0.4.2
|
|
16
17
|
Requires-Dist: langchain-text-splitters==1.1.2
|
|
17
18
|
Requires-Dist: litellm==1.80.11
|
|
18
19
|
Requires-Dist: mcp==1.27.0
|
|
19
|
-
Requires-Dist: openai
|
|
20
|
+
Requires-Dist: openai==3.19.2
|
|
21
|
+
Requires-Dist: openai-agents==0.22.2
|
|
20
22
|
Requires-Dist: opentelemetry-api==1.38.0
|
|
21
23
|
Requires-Dist: opentelemetry-sdk==1.38.0
|
|
22
24
|
Requires-Dist: beautifulsoup4==4.14.2
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: databricks-tellr-app
|
|
3
|
-
Version: 0.4.3.
|
|
3
|
+
Version: 0.4.3.dev32
|
|
4
4
|
Summary: Tellr application package for Databricks Apps
|
|
5
5
|
Requires-Python: >=3.10
|
|
6
6
|
Description-Content-Type: text/markdown
|
|
@@ -9,14 +9,16 @@ Requires-Dist: uvicorn==0.38.0
|
|
|
9
9
|
Requires-Dist: python-multipart==0.0.20
|
|
10
10
|
Requires-Dist: pydantic==2.12.4
|
|
11
11
|
Requires-Dist: pydantic-settings==2.12.0
|
|
12
|
-
Requires-Dist: databricks-langchain==0.
|
|
12
|
+
Requires-Dist: databricks-langchain==0.20.0
|
|
13
|
+
Requires-Dist: databricks-openai==0.17.1
|
|
13
14
|
Requires-Dist: langchain==1.3.14
|
|
14
15
|
Requires-Dist: langchain-core==1.5.3
|
|
15
16
|
Requires-Dist: langchain-community==0.4.2
|
|
16
17
|
Requires-Dist: langchain-text-splitters==1.1.2
|
|
17
18
|
Requires-Dist: litellm==1.80.11
|
|
18
19
|
Requires-Dist: mcp==1.27.0
|
|
19
|
-
Requires-Dist: openai
|
|
20
|
+
Requires-Dist: openai==3.19.2
|
|
21
|
+
Requires-Dist: openai-agents==0.22.2
|
|
20
22
|
Requires-Dist: opentelemetry-api==1.38.0
|
|
21
23
|
Requires-Dist: opentelemetry-sdk==1.38.0
|
|
22
24
|
Requires-Dist: beautifulsoup4==4.14.2
|
|
@@ -3,14 +3,16 @@ uvicorn==0.38.0
|
|
|
3
3
|
python-multipart==0.0.20
|
|
4
4
|
pydantic==2.12.4
|
|
5
5
|
pydantic-settings==2.12.0
|
|
6
|
-
databricks-langchain==0.
|
|
6
|
+
databricks-langchain==0.20.0
|
|
7
|
+
databricks-openai==0.17.1
|
|
7
8
|
langchain==1.3.14
|
|
8
9
|
langchain-core==1.5.3
|
|
9
10
|
langchain-community==0.4.2
|
|
10
11
|
langchain-text-splitters==1.1.2
|
|
11
12
|
litellm==1.80.11
|
|
12
13
|
mcp==1.27.0
|
|
13
|
-
openai
|
|
14
|
+
openai==3.19.2
|
|
15
|
+
openai-agents==0.22.2
|
|
14
16
|
opentelemetry-api==1.38.0
|
|
15
17
|
opentelemetry-sdk==1.38.0
|
|
16
18
|
beautifulsoup4==4.14.2
|
|
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "databricks-tellr-app"
|
|
7
|
-
version = "0.4.3.
|
|
7
|
+
version = "0.4.3.dev32"
|
|
8
8
|
description = "Tellr application package for Databricks Apps"
|
|
9
9
|
readme = "README.md"
|
|
10
10
|
requires-python = ">=3.10"
|
|
@@ -14,7 +14,8 @@ dependencies = [
|
|
|
14
14
|
"python-multipart==0.0.20",
|
|
15
15
|
"pydantic==2.12.4",
|
|
16
16
|
"pydantic-settings==2.12.0",
|
|
17
|
-
"databricks-langchain==0.
|
|
17
|
+
"databricks-langchain==0.20.0",
|
|
18
|
+
"databricks-openai==0.17.1",
|
|
18
19
|
"langchain==1.3.14",
|
|
19
20
|
"langchain-core==1.5.3",
|
|
20
21
|
"langchain-community==0.4.2",
|
|
@@ -22,8 +23,10 @@ dependencies = [
|
|
|
22
23
|
"litellm==1.80.11",
|
|
23
24
|
"mcp==1.27.0",
|
|
24
25
|
# agent_runtime.py and model_endpoint_probe.py import openai at module level;
|
|
25
|
-
# databricks-
|
|
26
|
-
|
|
26
|
+
# openai and openai-agents pinned to the versions databricks-openai 0.17.1 resolves
|
|
27
|
+
# to so the Apps build matches local tests.
|
|
28
|
+
"openai==3.19.2",
|
|
29
|
+
"openai-agents==0.22.2",
|
|
27
30
|
"opentelemetry-api==1.38.0",
|
|
28
31
|
"opentelemetry-sdk==1.38.0",
|
|
29
32
|
"beautifulsoup4==4.14.2",
|
|
@@ -527,11 +527,23 @@ logger.info("MCP server mounted at /mcp")
|
|
|
527
527
|
|
|
528
528
|
@app.get("/api/health")
|
|
529
529
|
async def health():
|
|
530
|
-
"""Health check endpoint.
|
|
530
|
+
"""Health check endpoint.
|
|
531
|
+
|
|
532
|
+
``encryption_key_source`` is load-bearing for deployment: ``tellr.update``
|
|
533
|
+
polls it to confirm a relocated app is reading the secret before it deletes
|
|
534
|
+
the Lakebase key row. Reports the source only — never the key.
|
|
535
|
+
|
|
536
|
+
``version`` comes from the installed wheel's metadata, so it tracks the
|
|
537
|
+
deployed release; it reads "unknown" from a source checkout.
|
|
538
|
+
"""
|
|
539
|
+
from src.api.routes.version import get_installed_version
|
|
540
|
+
from src.core.encryption import key_source
|
|
541
|
+
|
|
531
542
|
return {
|
|
532
543
|
"status": "healthy",
|
|
533
544
|
"environment": ENVIRONMENT,
|
|
534
|
-
"version":
|
|
545
|
+
"version": get_installed_version(),
|
|
546
|
+
"encryption_key_source": key_source(),
|
|
535
547
|
}
|
|
536
548
|
|
|
537
549
|
|
|
@@ -16,19 +16,22 @@ Accepts three identity sources, evaluated in priority order:
|
|
|
16
16
|
identity headers. The receiving app (tellr) trusts those headers
|
|
17
17
|
because the same proxy sets them, strips any caller-supplied versions,
|
|
18
18
|
and cannot be bypassed by external traffic. This path has no user
|
|
19
|
-
token, so
|
|
20
|
-
|
|
21
|
-
|
|
19
|
+
token, so the user-client ContextVar is left **unset**: agent tools
|
|
20
|
+
that resolve their client via ``get_user_client()`` fail closed rather
|
|
21
|
+
than silently running as tellr's service principal (SDR-4437 / F-CR-3).
|
|
22
|
+
Code that legitimately needs SP credentials on this path must call
|
|
23
|
+
``get_system_client()`` explicitly. Attribution (``created_by`` on
|
|
24
|
+
decks, etc.) remains the real user via ``user_name``.
|
|
22
25
|
|
|
23
26
|
The priority-3 path is gated on ``TELLR_TRUST_FORWARDED_IDENTITY=true``
|
|
24
27
|
so the behaviour is explicit at deploy time. Production Databricks Apps
|
|
25
28
|
deployments enable it; local dev does not.
|
|
26
29
|
|
|
27
30
|
The resolved identity is bound into the same request-scoped ContextVars
|
|
28
|
-
the browser flow uses (``set_current_user``, ``
|
|
29
|
-
``
|
|
30
|
-
permission service, MLflow, Google
|
|
31
|
-
without any MCP-specific plumbing.
|
|
31
|
+
the browser flow uses (``set_current_user``, ``set_permission_context``,
|
|
32
|
+
and — only when a user token is present — ``set_user_client``), so
|
|
33
|
+
downstream services (session manager, permission service, MLflow, Google
|
|
34
|
+
OAuth) see the caller's identity without any MCP-specific plumbing.
|
|
32
35
|
"""
|
|
33
36
|
|
|
34
37
|
from __future__ import annotations
|
|
@@ -43,7 +46,6 @@ from fastapi import Request
|
|
|
43
46
|
|
|
44
47
|
from src.core.databricks_client import (
|
|
45
48
|
get_or_create_user_client,
|
|
46
|
-
get_system_client,
|
|
47
49
|
set_user_client,
|
|
48
50
|
)
|
|
49
51
|
from src.core.permission_context import (
|
|
@@ -150,28 +152,24 @@ def extract_mcp_identity(request: Request) -> MCPIdentity:
|
|
|
150
152
|
def mcp_auth_scope(request: Request) -> Iterator[MCPIdentity]:
|
|
151
153
|
"""Authenticate an MCP request and bind identity ContextVars for the block.
|
|
152
154
|
|
|
153
|
-
On entry: resolves identity
|
|
154
|
-
|
|
155
|
+
On entry: resolves identity and binds ``current_user`` and
|
|
156
|
+
``permission_context``. The ``user_client`` ContextVar is bound only when
|
|
157
|
+
a real user token is present (priority 1/2); on the token-less priority-3
|
|
158
|
+
app-to-app path it is deliberately left unset.
|
|
155
159
|
|
|
156
160
|
On exit: clears all three ContextVars, even if the wrapped block raised.
|
|
157
161
|
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
162
|
+
Leaving ``user_client`` unset on priority 3 makes it true by construction
|
|
163
|
+
that agent tools (which resolve their client via ``get_user_client()``)
|
|
164
|
+
can never execute as tellr's service principal on the app-to-app path —
|
|
165
|
+
they fail closed with ``UserClientRequiredError`` in production
|
|
166
|
+
(SDR-4437 / F-CR-3). Code that legitimately needs SP credentials must call
|
|
167
|
+
``get_system_client()`` explicitly. Attribution (``created_by``) is
|
|
168
|
+
unaffected: it uses ``user_name`` from the forwarded identity headers,
|
|
169
|
+
which the proxy attests.
|
|
164
170
|
"""
|
|
165
171
|
identity = extract_mcp_identity(request)
|
|
166
172
|
|
|
167
|
-
if identity.token is not None:
|
|
168
|
-
user_client = get_or_create_user_client(identity.token)
|
|
169
|
-
else:
|
|
170
|
-
# Priority-3 path: no user token, so downstream Databricks API
|
|
171
|
-
# calls use tellr's service principal. Safe because the app-to-app
|
|
172
|
-
# model explicitly delegates credentialing to the receiving app.
|
|
173
|
-
user_client = get_system_client()
|
|
174
|
-
|
|
175
173
|
permission_ctx = build_permission_context(
|
|
176
174
|
user_id=identity.user_id,
|
|
177
175
|
user_name=identity.user_name,
|
|
@@ -179,9 +177,22 @@ def mcp_auth_scope(request: Request) -> Iterator[MCPIdentity]:
|
|
|
179
177
|
)
|
|
180
178
|
|
|
181
179
|
set_current_user(identity.user_name)
|
|
182
|
-
set_user_client(user_client)
|
|
183
180
|
set_permission_context(permission_ctx)
|
|
184
181
|
|
|
182
|
+
if identity.token is not None:
|
|
183
|
+
# Priority 1/2: a real user token is present. Bind the OBO client so
|
|
184
|
+
# downstream services (agent tools included) act as the user.
|
|
185
|
+
set_user_client(get_or_create_user_client(identity.token))
|
|
186
|
+
else:
|
|
187
|
+
# Priority-3 (app-to-app) path: no user token is available. Do NOT
|
|
188
|
+
# bind any client into the user-client ContextVar. Leaving it unset
|
|
189
|
+
# makes it true by construction that agent tools — which resolve their
|
|
190
|
+
# client via get_user_client() — can never run as the app service
|
|
191
|
+
# principal on this path: they fail closed with UserClientRequiredError
|
|
192
|
+
# in production (SDR-4437 / F-CR-3). Anything that legitimately needs
|
|
193
|
+
# the SP here must call get_system_client() explicitly.
|
|
194
|
+
set_user_client(None)
|
|
195
|
+
|
|
185
196
|
logger.debug(
|
|
186
197
|
"MCP auth scope entered",
|
|
187
198
|
extra={
|
{databricks_tellr_app-0.4.3.dev31 → databricks_tellr_app-0.4.3.dev32}/src/api/routes/chat.py
RENAMED
|
@@ -623,18 +623,6 @@ async def send_message_streaming(
|
|
|
623
623
|
)
|
|
624
624
|
|
|
625
625
|
|
|
626
|
-
@router.get("/health")
|
|
627
|
-
async def health_check():
|
|
628
|
-
"""Health check endpoint.
|
|
629
|
-
|
|
630
|
-
Returns:
|
|
631
|
-
Status information
|
|
632
|
-
"""
|
|
633
|
-
return {
|
|
634
|
-
"status": "healthy",
|
|
635
|
-
"service": "AI Slide Generator",
|
|
636
|
-
}
|
|
637
|
-
|
|
638
626
|
|
|
639
627
|
@router.post("/chat/async")
|
|
640
628
|
async def submit_chat_async(
|