databricks-tellr-app 0.4.3.dev22__tar.gz → 0.4.3.dev23__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.dev22 → databricks_tellr_app-0.4.3.dev23}/PKG-INFO +1 -1
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/databricks_tellr_app.egg-info/PKG-INFO +1 -1
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/pyproject.toml +1 -1
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/services/chat_service.py +217 -46
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/README.md +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/databricks_tellr_app/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/databricks_tellr_app/run.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/databricks_tellr_app.egg-info/SOURCES.txt +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/databricks_tellr_app.egg-info/dependency_links.txt +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/databricks_tellr_app.egg-info/requires.txt +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/databricks_tellr_app.egg-info/top_level.txt +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/setup.cfg +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/setup.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/_otel_bootstrap.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/fixtures/tour_demo_deck.json +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/main.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/mcp_auth.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/mcp_server.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/middleware/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/middleware/csrf.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/middleware/request_logging.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/middleware/security_headers.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/_authz.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/admin.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/admin_usage.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/agent_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/chat.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/deck_contributors.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/export.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/feedback.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/google_slides.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/images.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/local_version.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/profiles.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/sessions.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/settings/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/settings/contributors.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/settings/deck_prompts.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/settings/design_systems.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/settings/identities.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/settings/slide_styles.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/setup.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/slides.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/tools.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/tour.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/verification.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/version.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/schemas/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/schemas/agent_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/schemas/feedback.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/schemas/requests.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/schemas/responses.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/schemas/settings/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/schemas/settings/requests.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/schemas/settings/responses.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/schemas/streaming.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/services/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/services/deck_level_writer.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/services/export_job_queue.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/services/feedback_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/services/job_queue.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/services/session_manager.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/services/session_naming.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/services/slide_repository.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/services/usage_events.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/services/usage_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/utils/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/utils/validation.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/backfill_session_slides_startup.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/checkpointer.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/config_loader.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/context_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/database.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/databricks_client.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/defaults.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/encryption.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/init_default_profile.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/lakebase.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/migrate_profiles_to_agent_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/mlflow_agent_spans.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/mlflow_tracing.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/otel_logging.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/permission_context.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/prompt_modules.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/settings_db.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/skills/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/skills/architect.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/skills/build_reviewer.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/skills/builder.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/skills/data_analyst.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/skills/deck_reviewer.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/skills/fix_reviewer.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/skills/fixer.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/strip_retired_prompt_keys.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/user_context.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/deck_contributor.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/deck_review.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/design_system.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/encryption_key.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/feedback.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/genie_space.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/google_global_credentials.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/google_oauth_token.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/graph_checkpoint.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/identity.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/image.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/profile.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/profile_contributor.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/prompts.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/request_log.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/session.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/slide_deck_prompt.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/slide_style_library.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/usage_event.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/user_preference.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/types.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/domain/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/domain/deck_spec.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/domain/finding.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/domain/skill_io.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/domain/slide.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/domain/slide_deck.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/agent.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/agent_factory.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/agent_resolution.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/config_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/config_validator.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/converter_jail/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/converter_jail/ast_guard.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/converter_jail/codeprep.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/converter_jail/gslides_runner.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/converter_jail/jail.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/converter_jail/pptx_runner.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/converter_jail/protocol.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/deck_css_aggregator.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/deck_review_store.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/design_system_compiler.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/design_system_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/design_system_templates.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/drive_uploader.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/evaluation/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/evaluation/llm_judge.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/foreman_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/genie_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/google_slides_auth.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/google_slides_prompts_defaults.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/graph/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/graph/builder.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/graph/event_emitter.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/graph/nodes.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/graph/routers.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/graph/state.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/html_to_google_slides.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/html_to_pptx.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/identity_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/identity_providers/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/identity_providers/account_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/identity_providers/local_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/identity_providers/workspace_provider.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/image_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/image_tools.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/permission_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/pptx_from_html_huashu.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/pptx_from_records.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/pptx_prompts_defaults.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/profile_service.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/spec_sync.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/streaming_callback.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/template_sections.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/tools/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/tools/agent_bricks_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/tools/ds_asset_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/tools/genie_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/tools/mcp_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/tools/model_endpoint_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/tools/vector_tool.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/validator.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/__init__.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/css_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/ds_asset_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/error_handling.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/graph_safety.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/html_safety.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/html_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/image_utils.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/js_validator.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/logging_config.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/pi_filter.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/slide_hash.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/spotlight.py +0 -0
- {databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/text_caps.py +0 -0
|
@@ -14,7 +14,7 @@ import re
|
|
|
14
14
|
import threading
|
|
15
15
|
import uuid
|
|
16
16
|
from datetime import datetime
|
|
17
|
-
from typing import Any, Dict, Generator, List, Optional
|
|
17
|
+
from typing import Any, Callable, Dict, Generator, List, Optional
|
|
18
18
|
|
|
19
19
|
from langchain_community.chat_message_histories import ChatMessageHistory
|
|
20
20
|
from langchain_core.messages import AIMessage, HumanMessage, ToolMessage
|
|
@@ -51,6 +51,18 @@ logger = logging.getLogger(__name__)
|
|
|
51
51
|
#: own CSS styles it, and any content here would be content nobody asked for.
|
|
52
52
|
BLANK_SLIDE_HTML = '<div class="slide"></div>'
|
|
53
53
|
|
|
54
|
+
# The deck-spec entry a newly inserted slide gets: contiguous with its neighbours
|
|
55
|
+
# (`DeckSpec.slide_at` depends on that) and deliberately undescribed. The route
|
|
56
|
+
# that inserts fires the spec-dirty marker and the arc-review sweeper writes the
|
|
57
|
+
# prose; inventing a purpose here would put words in the architect's mouth.
|
|
58
|
+
_BLANK_DECK_SPEC_ENTRY: Dict[str, Any] = {
|
|
59
|
+
"purpose": "",
|
|
60
|
+
"content_brief": "",
|
|
61
|
+
"assumes": "",
|
|
62
|
+
"hands_off": "",
|
|
63
|
+
"data_references": [],
|
|
64
|
+
}
|
|
65
|
+
|
|
54
66
|
|
|
55
67
|
def resolve_active_design_system_id(session_id: Optional[str]) -> Optional[int]:
|
|
56
68
|
"""The session's pinned/active design-system id, or None.
|
|
@@ -3354,6 +3366,13 @@ class ChatService:
|
|
|
3354
3366
|
)
|
|
3355
3367
|
self._record_deck_version(session_id, save_result)
|
|
3356
3368
|
|
|
3369
|
+
# The deck spec's slide list has to move with the deck's. AFTER
|
|
3370
|
+
# save_slide_deck, never before: the spec write bumps deck.version, which
|
|
3371
|
+
# would make the caller's expected_version stale and 409 a legitimate save.
|
|
3372
|
+
spec_result = self._reorder_deck_spec_slides(session_id, new_order)
|
|
3373
|
+
if spec_result:
|
|
3374
|
+
self._record_deck_version(session_id, spec_result)
|
|
3375
|
+
|
|
3357
3376
|
# Create save point
|
|
3358
3377
|
try:
|
|
3359
3378
|
self.create_save_point(
|
|
@@ -3529,6 +3548,13 @@ class ChatService:
|
|
|
3529
3548
|
)
|
|
3530
3549
|
self._record_deck_version(session_id, save_result)
|
|
3531
3550
|
|
|
3551
|
+
# The deck spec's slide list has to move with the deck's. AFTER
|
|
3552
|
+
# save_slide_deck, never before: the spec write bumps deck.version, which
|
|
3553
|
+
# would make the caller's expected_version stale and 409 a legitimate save.
|
|
3554
|
+
spec_result = self._duplicate_deck_spec_slide(session_id, index)
|
|
3555
|
+
if spec_result:
|
|
3556
|
+
self._record_deck_version(session_id, spec_result)
|
|
3557
|
+
|
|
3532
3558
|
# Create save point
|
|
3533
3559
|
try:
|
|
3534
3560
|
self.create_save_point(
|
|
@@ -3671,33 +3697,66 @@ class ChatService:
|
|
|
3671
3697
|
deck_dict, _ = self._substitute_images_for_response(deck_dict, session_id=session_id)
|
|
3672
3698
|
return deck_dict
|
|
3673
3699
|
|
|
3674
|
-
def
|
|
3700
|
+
def _rewrite_deck_spec_slides(
|
|
3675
3701
|
self,
|
|
3676
3702
|
session_id: str,
|
|
3677
|
-
|
|
3703
|
+
reorder: Callable[[List[Dict[str, Any]]], Optional[List[Dict[str, Any]]]],
|
|
3704
|
+
*,
|
|
3705
|
+
label: str,
|
|
3678
3706
|
) -> Optional[Dict[str, Any]]:
|
|
3679
|
-
"""
|
|
3707
|
+
"""Re-order the deck spec's slide entries and re-stamp their positions.
|
|
3680
3708
|
|
|
3681
3709
|
A deck spec describes the deck slide by slide, keyed on ``position``
|
|
3682
3710
|
(``SlideSpec.position`` is the canonical identity, looked up by
|
|
3683
|
-
``DeckSpec.slide_at`` and never by list index).
|
|
3684
|
-
|
|
3685
|
-
its neighbour.
|
|
3686
|
-
|
|
3687
|
-
|
|
3688
|
-
|
|
3689
|
-
|
|
3690
|
-
|
|
3691
|
-
|
|
3711
|
+
``DeckSpec.slide_at`` and never by list index). Any mutation that moves,
|
|
3712
|
+
adds or removes a slide must move its spec entry with it, or every entry
|
|
3713
|
+
past the change describes its neighbour.
|
|
3714
|
+
|
|
3715
|
+
Before this existed, ``deck_spec_json`` was renumbered on INSERT and on
|
|
3716
|
+
nothing else (final review C1), so after a delete, a duplicate or a reorder
|
|
3717
|
+
the deck-level spec and the per-row ``deck_spec_slide`` fragments — two
|
|
3718
|
+
representations of the same thing — disagreed, and three consumers read the
|
|
3719
|
+
deck-level one: the builder brief, §4.6's re-review and ``architect_node``'s
|
|
3720
|
+
edit-turn fallback. Measured: an edit turn dispatched a builder for a
|
|
3721
|
+
position with no slide and the deck gained one nobody asked for.
|
|
3722
|
+
|
|
3723
|
+
WHY ONE PRIMITIVE AND NOT FOUR WRITERS
|
|
3724
|
+
--------------------------------------
|
|
3725
|
+
Four hand-copied row-writers diverging is the defect class the previous
|
|
3726
|
+
workstream's final review found, and C1 is itself an instance of it — insert
|
|
3727
|
+
renumbered, its three siblings did not. So the four routes supply only
|
|
3728
|
+
*which entries end up in which order*; the position stamping, the raw-dict
|
|
3729
|
+
handling, the author stamp and the failure policy live here once.
|
|
3730
|
+
|
|
3731
|
+
*reorder* receives the positioned entries **in position order** and returns
|
|
3732
|
+
the new list in the new order — it does not touch ``position`` at all, which
|
|
3733
|
+
this method re-stamps contiguously from 0. Returning ``None`` leaves the
|
|
3734
|
+
spec untouched.
|
|
3735
|
+
|
|
3736
|
+
Operates on the RAW spec dict rather than parsing a ``DeckSpec``: a spec that
|
|
3737
|
+
no longer validates (an older shape, a hand-edited column) must not be
|
|
3738
|
+
destroyed by a renumber, and nothing here reads a field other than
|
|
3739
|
+
``position``. Entries that are not dicts, or whose ``position`` is not an
|
|
3740
|
+
int, cannot be identified with a slide, so they are carried through
|
|
3741
|
+
**unchanged and last** rather than silently permuted.
|
|
3742
|
+
|
|
3743
|
+
A spec write that fails must never fail the mutation: the slide change is
|
|
3744
|
+
already committed by the time this runs, and the route's spec-dirty marker
|
|
3745
|
+
still fires, so the sweeper re-describes the deck either way.
|
|
3692
3746
|
|
|
3693
|
-
|
|
3694
|
-
|
|
3695
|
-
|
|
3747
|
+
Args:
|
|
3748
|
+
session_id: The mutating session. Resolves to the deck owner in the
|
|
3749
|
+
layers below, exactly as every other mutation does.
|
|
3750
|
+
reorder: Takes the positioned entries in position order, returns them in
|
|
3751
|
+
their new order, or ``None`` to leave the spec alone. Raises
|
|
3752
|
+
``IndexError`` when the spec cannot answer the mutation.
|
|
3753
|
+
label: Route name, for the log lines only.
|
|
3696
3754
|
|
|
3697
3755
|
Returns:
|
|
3698
3756
|
The writer's result dict (carrying the new deck ``version``), or None
|
|
3699
|
-
when there was no spec to
|
|
3700
|
-
is
|
|
3757
|
+
when there was no spec to renumber, the spec was unreadable, or
|
|
3758
|
+
*reorder* declined — none of which is an error. A deck built before the
|
|
3759
|
+
spec column existed has no spec.
|
|
3701
3760
|
"""
|
|
3702
3761
|
# Imported here, not at module scope: src.api.services.__init__ imports
|
|
3703
3762
|
# chat_service, so a module-level import of a sibling service is circular.
|
|
@@ -3709,7 +3768,7 @@ class ChatService:
|
|
|
3709
3768
|
try:
|
|
3710
3769
|
spec = read_deck_spec(session_id)
|
|
3711
3770
|
except Exception as e:
|
|
3712
|
-
logger.warning(f"Failed to read deck spec (
|
|
3771
|
+
logger.warning(f"Failed to read deck spec ({label}): {e}")
|
|
3713
3772
|
return None
|
|
3714
3773
|
|
|
3715
3774
|
if not spec:
|
|
@@ -3719,37 +3778,48 @@ class ChatService:
|
|
|
3719
3778
|
if not isinstance(slides, list):
|
|
3720
3779
|
logger.warning(
|
|
3721
3780
|
"deck_spec_json has no slides list; leaving it untouched",
|
|
3722
|
-
extra={"session_id": session_id},
|
|
3781
|
+
extra={"session_id": session_id, "route": label},
|
|
3723
3782
|
)
|
|
3724
3783
|
return None
|
|
3725
3784
|
|
|
3726
|
-
|
|
3785
|
+
# One pass, and identity is never inferred from equality: two entries with
|
|
3786
|
+
# the same content are still two entries.
|
|
3787
|
+
positioned: List[Dict[str, Any]] = []
|
|
3788
|
+
unpositioned: List[Any] = []
|
|
3727
3789
|
for entry in slides:
|
|
3728
|
-
if
|
|
3729
|
-
|
|
3730
|
-
|
|
3790
|
+
if isinstance(entry, dict) and isinstance(entry.get("position"), int):
|
|
3791
|
+
positioned.append(entry)
|
|
3792
|
+
else:
|
|
3793
|
+
unpositioned.append(entry)
|
|
3794
|
+
positioned.sort(key=lambda e: e["position"])
|
|
3795
|
+
|
|
3796
|
+
try:
|
|
3797
|
+
rewritten = reorder(list(positioned))
|
|
3798
|
+
except IndexError:
|
|
3799
|
+
# The route validated its index against the DECK, so an index the spec
|
|
3800
|
+
# cannot answer means the two have already drifted. Leaving a drifted
|
|
3801
|
+
# spec alone is recoverable; renumbering it against the wrong slides is
|
|
3802
|
+
# not.
|
|
3803
|
+
logger.warning(
|
|
3804
|
+
"deck spec has %s entries and cannot answer this mutation; "
|
|
3805
|
+
"leaving it untouched",
|
|
3806
|
+
len(positioned),
|
|
3807
|
+
extra={"session_id": session_id, "route": label},
|
|
3808
|
+
)
|
|
3809
|
+
return None
|
|
3810
|
+
|
|
3811
|
+
if rewritten is None:
|
|
3812
|
+
return None
|
|
3813
|
+
|
|
3814
|
+
renumbered: List[Any] = []
|
|
3815
|
+
for index, entry in enumerate(rewritten):
|
|
3731
3816
|
entry = dict(entry)
|
|
3732
|
-
|
|
3733
|
-
|
|
3734
|
-
|
|
3735
|
-
shifted.append(entry)
|
|
3736
|
-
|
|
3737
|
-
shifted.append(
|
|
3738
|
-
{
|
|
3739
|
-
"position": position,
|
|
3740
|
-
"purpose": "",
|
|
3741
|
-
"content_brief": "",
|
|
3742
|
-
"assumes": "",
|
|
3743
|
-
"hands_off": "",
|
|
3744
|
-
"data_references": [],
|
|
3745
|
-
}
|
|
3746
|
-
)
|
|
3747
|
-
shifted.sort(
|
|
3748
|
-
key=lambda e: e.get("position", 0) if isinstance(e, dict) else 0
|
|
3749
|
-
)
|
|
3817
|
+
entry["position"] = index
|
|
3818
|
+
renumbered.append(entry)
|
|
3819
|
+
renumbered.extend(unpositioned)
|
|
3750
3820
|
|
|
3751
3821
|
spec = dict(spec)
|
|
3752
|
-
spec["slides"] =
|
|
3822
|
+
spec["slides"] = renumbered
|
|
3753
3823
|
|
|
3754
3824
|
try:
|
|
3755
3825
|
_user = get_current_username()
|
|
@@ -3763,11 +3833,105 @@ class ChatService:
|
|
|
3763
3833
|
modified_by=_user,
|
|
3764
3834
|
)
|
|
3765
3835
|
except Exception as e:
|
|
3766
|
-
|
|
3767
|
-
# write that fails must not fail the insert.
|
|
3768
|
-
logger.warning(f"Failed to shift deck spec (insert_slide): {e}")
|
|
3836
|
+
logger.warning(f"Failed to write deck spec ({label}): {e}")
|
|
3769
3837
|
return None
|
|
3770
3838
|
|
|
3839
|
+
def _insert_deck_spec_slide(
|
|
3840
|
+
self,
|
|
3841
|
+
session_id: str,
|
|
3842
|
+
position: int,
|
|
3843
|
+
) -> Optional[Dict[str, Any]]:
|
|
3844
|
+
"""Give the deck spec a placeholder entry at *position*, shifting the rest up.
|
|
3845
|
+
|
|
3846
|
+
*position* is where the slide ACTUALLY landed, which the caller computes
|
|
3847
|
+
before the insert: ``SlideDeck.insert_slide`` delegates to ``list.insert``,
|
|
3848
|
+
which clamps a too-large position into an append, so the requested position
|
|
3849
|
+
and the real one diverge on an append. The clamp is re-applied here against
|
|
3850
|
+
the spec's own length rather than trusted, because a spec shorter than the
|
|
3851
|
+
deck would otherwise leave a hole.
|
|
3852
|
+
"""
|
|
3853
|
+
|
|
3854
|
+
def _splice(entries: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
|
|
3855
|
+
landed = min(position, len(entries))
|
|
3856
|
+
return (
|
|
3857
|
+
entries[:landed]
|
|
3858
|
+
+ [dict(_BLANK_DECK_SPEC_ENTRY)]
|
|
3859
|
+
+ entries[landed:]
|
|
3860
|
+
)
|
|
3861
|
+
|
|
3862
|
+
return self._rewrite_deck_spec_slides(
|
|
3863
|
+
session_id, _splice, label="insert_slide"
|
|
3864
|
+
)
|
|
3865
|
+
|
|
3866
|
+
def _delete_deck_spec_slide(
|
|
3867
|
+
self,
|
|
3868
|
+
session_id: str,
|
|
3869
|
+
index: int,
|
|
3870
|
+
) -> Optional[Dict[str, Any]]:
|
|
3871
|
+
"""Drop the deleted slide's spec entry and shift every higher entry down."""
|
|
3872
|
+
|
|
3873
|
+
def _drop(entries: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
|
|
3874
|
+
if index >= len(entries):
|
|
3875
|
+
raise IndexError(index)
|
|
3876
|
+
return entries[:index] + entries[index + 1 :]
|
|
3877
|
+
|
|
3878
|
+
return self._rewrite_deck_spec_slides(
|
|
3879
|
+
session_id, _drop, label="delete_slide"
|
|
3880
|
+
)
|
|
3881
|
+
|
|
3882
|
+
def _duplicate_deck_spec_slide(
|
|
3883
|
+
self,
|
|
3884
|
+
session_id: str,
|
|
3885
|
+
index: int,
|
|
3886
|
+
) -> Optional[Dict[str, Any]]:
|
|
3887
|
+
"""Copy the duplicated slide's spec entry in beside it.
|
|
3888
|
+
|
|
3889
|
+
The clone gets its SOURCE's brief, not a blank one: a duplicate is a copy of
|
|
3890
|
+
a slide we already have a description for, so that description is known to be
|
|
3891
|
+
right, where insert's newcomer has none. The route's spec-dirty marker fires
|
|
3892
|
+
either way, so the sweeper re-describes both — this decides which starting
|
|
3893
|
+
point is true, not who writes the final prose.
|
|
3894
|
+
"""
|
|
3895
|
+
|
|
3896
|
+
def _clone(entries: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
|
|
3897
|
+
if index >= len(entries):
|
|
3898
|
+
raise IndexError(index)
|
|
3899
|
+
return (
|
|
3900
|
+
entries[: index + 1]
|
|
3901
|
+
+ [dict(entries[index])]
|
|
3902
|
+
+ entries[index + 1 :]
|
|
3903
|
+
)
|
|
3904
|
+
|
|
3905
|
+
return self._rewrite_deck_spec_slides(
|
|
3906
|
+
session_id, _clone, label="duplicate_slide"
|
|
3907
|
+
)
|
|
3908
|
+
|
|
3909
|
+
def _reorder_deck_spec_slides(
|
|
3910
|
+
self,
|
|
3911
|
+
session_id: str,
|
|
3912
|
+
new_order: List[int],
|
|
3913
|
+
) -> Optional[Dict[str, Any]]:
|
|
3914
|
+
"""Permute the spec entries by the same permutation the slides took.
|
|
3915
|
+
|
|
3916
|
+
``new_order[j]`` is the OLD index of the slide that now sits at *j* — the
|
|
3917
|
+
route validates it is a true permutation of ``range(len(slides))`` before
|
|
3918
|
+
reaching here.
|
|
3919
|
+
|
|
3920
|
+
This is the case the consumer-side guard structurally cannot cover: a reorder
|
|
3921
|
+
preserves the position SET, so ``_persisted_spec_describes_these_rows`` reads
|
|
3922
|
+
a reordered deck as aligned while every entry describes a different slide.
|
|
3923
|
+
Renumbering in the route is the only thing that closes it.
|
|
3924
|
+
"""
|
|
3925
|
+
|
|
3926
|
+
def _permute(entries: List[Dict[str, Any]]) -> List[Dict[str, Any]]:
|
|
3927
|
+
if len(new_order) != len(entries):
|
|
3928
|
+
raise IndexError(len(new_order))
|
|
3929
|
+
return [entries[old] for old in new_order]
|
|
3930
|
+
|
|
3931
|
+
return self._rewrite_deck_spec_slides(
|
|
3932
|
+
session_id, _permute, label="reorder_slides"
|
|
3933
|
+
)
|
|
3934
|
+
|
|
3771
3935
|
def delete_slide(self, session_id: str, index: int, *, expected_version: Optional[int] = None) -> Dict[str, Any]:
|
|
3772
3936
|
"""Delete a slide.
|
|
3773
3937
|
|
|
@@ -3810,6 +3974,13 @@ class ChatService:
|
|
|
3810
3974
|
)
|
|
3811
3975
|
self._record_deck_version(session_id, save_result)
|
|
3812
3976
|
|
|
3977
|
+
# The deck spec's slide list has to move with the deck's. AFTER
|
|
3978
|
+
# save_slide_deck, never before: the spec write bumps deck.version, which
|
|
3979
|
+
# would make the caller's expected_version stale and 409 a legitimate save.
|
|
3980
|
+
spec_result = self._delete_deck_spec_slide(session_id, index)
|
|
3981
|
+
if spec_result:
|
|
3982
|
+
self._record_deck_version(session_id, spec_result)
|
|
3983
|
+
|
|
3813
3984
|
# Create save point
|
|
3814
3985
|
try:
|
|
3815
3986
|
self.create_save_point(
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/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.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/_otel_bootstrap.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/middleware/__init__.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/middleware/csrf.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/__init__.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/_authz.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/admin.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/admin_usage.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/agent_config.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/chat.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/export.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/feedback.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/images.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/profiles.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/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.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/setup.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/slides.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/tools.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/tour.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/verification.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/routes/version.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/schemas/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/schemas/feedback.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/schemas/requests.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/schemas/responses.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/schemas/streaming.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/services/job_queue.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.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/utils/__init__.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/api/utils/validation.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/checkpointer.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/config_loader.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/context_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/databricks_client.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/encryption.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/mlflow_agent_spans.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/mlflow_tracing.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/otel_logging.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/permission_context.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/prompt_modules.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/settings_db.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/skills/__init__.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/skills/architect.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/skills/builder.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/skills/fixer.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/core/user_context.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/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
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/image.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/profile.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/database/models/prompts.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/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.dev22 → databricks_tellr_app-0.4.3.dev23}/src/domain/__init__.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/domain/deck_spec.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/domain/skill_io.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/domain/slide_deck.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/agent_factory.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/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
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/drive_uploader.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/genie_service.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/graph/__init__.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/graph/builder.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/graph/nodes.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/graph/routers.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/graph/state.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/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.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/image_service.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/image_tools.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.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/spec_sync.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/tools/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/tools/mcp_tool.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/services/validator.py
RENAMED
|
File without changes
|
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/css_utils.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/ds_asset_utils.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/error_handling.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/graph_safety.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/html_safety.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/html_utils.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/image_utils.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/js_validator.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/logging_config.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/pi_filter.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/slide_hash.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/spotlight.py
RENAMED
|
File without changes
|
{databricks_tellr_app-0.4.3.dev22 → databricks_tellr_app-0.4.3.dev23}/src/utils/text_caps.py
RENAMED
|
File without changes
|