databricks-tellr-app 0.3.11.dev6__tar.gz → 0.3.11.dev7__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.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/PKG-INFO +1 -1
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/databricks_tellr_app.egg-info/PKG-INFO +1 -1
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/databricks_tellr_app.egg-info/SOURCES.txt +14 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/pyproject.toml +1 -1
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/main.py +2 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/agent_config.py +56 -3
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/export.py +4 -2
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/google_slides.py +5 -1
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/sessions.py +2 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/settings/__init__.py +2 -0
- databricks_tellr_app-0.3.11.dev7/src/api/routes/settings/design_systems.py +847 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/schemas/agent_config.py +8 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/services/chat_service.py +38 -5
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/services/export_job_queue.py +4 -2
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/services/session_manager.py +3 -1
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/database.py +117 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/prompt_modules.py +53 -3
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/__init__.py +12 -1
- databricks_tellr_app-0.3.11.dev7/src/database/models/design_system.py +357 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/agent_factory.py +95 -5
- databricks_tellr_app-0.3.11.dev7/src/services/design_system_compiler.py +603 -0
- databricks_tellr_app-0.3.11.dev7/src/services/design_system_service.py +1004 -0
- databricks_tellr_app-0.3.11.dev7/src/services/design_system_templates.py +641 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/tools/__init__.py +4 -0
- databricks_tellr_app-0.3.11.dev7/src/services/tools/ds_asset_tool.py +105 -0
- databricks_tellr_app-0.3.11.dev7/src/utils/ds_asset_utils.py +76 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/README.md +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/databricks_tellr_app/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/databricks_tellr_app/run.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/databricks_tellr_app.egg-info/dependency_links.txt +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/databricks_tellr_app.egg-info/requires.txt +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/databricks_tellr_app.egg-info/top_level.txt +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/setup.cfg +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/setup.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/_otel_bootstrap.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/fixtures/tour_demo_deck.json +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/mcp_auth.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/mcp_server.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/middleware/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/middleware/request_logging.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/admin.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/chat.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/deck_contributors.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/feedback.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/images.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/local_version.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/profiles.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/settings/contributors.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/settings/deck_prompts.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/settings/identities.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/settings/slide_styles.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/setup.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/slides.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/tools.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/tour.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/verification.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/version.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/schemas/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/schemas/feedback.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/schemas/requests.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/schemas/responses.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/schemas/settings/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/schemas/settings/requests.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/schemas/settings/responses.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/schemas/streaming.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/services/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/services/feedback_service.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/services/job_queue.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/services/session_naming.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/utils/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/utils/validation.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/config_loader.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/context_utils.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/databricks_client.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/defaults.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/encryption.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/init_default_profile.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/lakebase.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/migrate_profiles_to_agent_config.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/mlflow_agent_spans.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/mlflow_tracing.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/otel_logging.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/permission_context.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/settings_db.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/core/user_context.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/deck_contributor.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/feedback.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/genie_space.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/google_global_credentials.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/google_oauth_token.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/identity.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/image.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/profile.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/profile_contributor.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/prompts.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/request_log.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/session.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/slide_deck_prompt.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/slide_style_library.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/database/models/user_preference.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/domain/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/domain/slide.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/domain/slide_deck.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/agent.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/config_service.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/config_validator.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/drive_uploader.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/evaluation/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/evaluation/llm_judge.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/genie_service.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/google_slides_auth.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/google_slides_prompts_defaults.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/html_to_google_slides.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/html_to_pptx.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/identity_provider.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/identity_providers/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/identity_providers/account_provider.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/identity_providers/local_provider.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/identity_providers/workspace_provider.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/image_service.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/image_tools.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/permission_service.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/pptx_from_html_huashu.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/pptx_from_records.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/pptx_prompts_defaults.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/profile_service.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/streaming_callback.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/tools/agent_bricks_tool.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/tools/genie_tool.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/tools/mcp_tool.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/tools/model_endpoint_tool.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/tools/vector_tool.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/services/validator.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/utils/__init__.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/utils/css_utils.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/utils/error_handling.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/utils/html_safety.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/utils/html_utils.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/utils/image_utils.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/utils/js_validator.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/utils/logging_config.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/utils/pi_filter.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/utils/slide_hash.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/utils/spotlight.py +0 -0
- {databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/utils/text_caps.py +0 -0
|
@@ -33,6 +33,7 @@ setup.py
|
|
|
33
33
|
./src/api/routes/settings/__init__.py
|
|
34
34
|
./src/api/routes/settings/contributors.py
|
|
35
35
|
./src/api/routes/settings/deck_prompts.py
|
|
36
|
+
./src/api/routes/settings/design_systems.py
|
|
36
37
|
./src/api/routes/settings/identities.py
|
|
37
38
|
./src/api/routes/settings/slide_styles.py
|
|
38
39
|
./src/api/schemas/__init__.py
|
|
@@ -73,6 +74,7 @@ setup.py
|
|
|
73
74
|
./src/database/__init__.py
|
|
74
75
|
./src/database/models/__init__.py
|
|
75
76
|
./src/database/models/deck_contributor.py
|
|
77
|
+
./src/database/models/design_system.py
|
|
76
78
|
./src/database/models/feedback.py
|
|
77
79
|
./src/database/models/genie_space.py
|
|
78
80
|
./src/database/models/google_global_credentials.py
|
|
@@ -95,6 +97,9 @@ setup.py
|
|
|
95
97
|
./src/services/agent_factory.py
|
|
96
98
|
./src/services/config_service.py
|
|
97
99
|
./src/services/config_validator.py
|
|
100
|
+
./src/services/design_system_compiler.py
|
|
101
|
+
./src/services/design_system_service.py
|
|
102
|
+
./src/services/design_system_templates.py
|
|
98
103
|
./src/services/drive_uploader.py
|
|
99
104
|
./src/services/genie_service.py
|
|
100
105
|
./src/services/google_slides_auth.py
|
|
@@ -119,12 +124,14 @@ setup.py
|
|
|
119
124
|
./src/services/identity_providers/workspace_provider.py
|
|
120
125
|
./src/services/tools/__init__.py
|
|
121
126
|
./src/services/tools/agent_bricks_tool.py
|
|
127
|
+
./src/services/tools/ds_asset_tool.py
|
|
122
128
|
./src/services/tools/genie_tool.py
|
|
123
129
|
./src/services/tools/mcp_tool.py
|
|
124
130
|
./src/services/tools/model_endpoint_tool.py
|
|
125
131
|
./src/services/tools/vector_tool.py
|
|
126
132
|
./src/utils/__init__.py
|
|
127
133
|
./src/utils/css_utils.py
|
|
134
|
+
./src/utils/ds_asset_utils.py
|
|
128
135
|
./src/utils/error_handling.py
|
|
129
136
|
./src/utils/html_safety.py
|
|
130
137
|
./src/utils/html_utils.py
|
|
@@ -172,6 +179,7 @@ src/api/routes/version.py
|
|
|
172
179
|
src/api/routes/settings/__init__.py
|
|
173
180
|
src/api/routes/settings/contributors.py
|
|
174
181
|
src/api/routes/settings/deck_prompts.py
|
|
182
|
+
src/api/routes/settings/design_systems.py
|
|
175
183
|
src/api/routes/settings/identities.py
|
|
176
184
|
src/api/routes/settings/slide_styles.py
|
|
177
185
|
src/api/schemas/__init__.py
|
|
@@ -212,6 +220,7 @@ src/core/user_context.py
|
|
|
212
220
|
src/database/__init__.py
|
|
213
221
|
src/database/models/__init__.py
|
|
214
222
|
src/database/models/deck_contributor.py
|
|
223
|
+
src/database/models/design_system.py
|
|
215
224
|
src/database/models/feedback.py
|
|
216
225
|
src/database/models/genie_space.py
|
|
217
226
|
src/database/models/google_global_credentials.py
|
|
@@ -234,6 +243,9 @@ src/services/agent.py
|
|
|
234
243
|
src/services/agent_factory.py
|
|
235
244
|
src/services/config_service.py
|
|
236
245
|
src/services/config_validator.py
|
|
246
|
+
src/services/design_system_compiler.py
|
|
247
|
+
src/services/design_system_service.py
|
|
248
|
+
src/services/design_system_templates.py
|
|
237
249
|
src/services/drive_uploader.py
|
|
238
250
|
src/services/genie_service.py
|
|
239
251
|
src/services/google_slides_auth.py
|
|
@@ -258,12 +270,14 @@ src/services/identity_providers/local_provider.py
|
|
|
258
270
|
src/services/identity_providers/workspace_provider.py
|
|
259
271
|
src/services/tools/__init__.py
|
|
260
272
|
src/services/tools/agent_bricks_tool.py
|
|
273
|
+
src/services/tools/ds_asset_tool.py
|
|
261
274
|
src/services/tools/genie_tool.py
|
|
262
275
|
src/services/tools/mcp_tool.py
|
|
263
276
|
src/services/tools/model_endpoint_tool.py
|
|
264
277
|
src/services/tools/vector_tool.py
|
|
265
278
|
src/utils/__init__.py
|
|
266
279
|
src/utils/css_utils.py
|
|
280
|
+
src/utils/ds_asset_utils.py
|
|
267
281
|
src/utils/error_handling.py
|
|
268
282
|
src/utils/html_safety.py
|
|
269
283
|
src/utils/html_utils.py
|
|
@@ -27,6 +27,7 @@ from src.core.permission_context import (
|
|
|
27
27
|
from src.api.routes.settings import (
|
|
28
28
|
contributors_router,
|
|
29
29
|
deck_prompts_router,
|
|
30
|
+
design_systems_router,
|
|
30
31
|
identities_router,
|
|
31
32
|
slide_styles_router,
|
|
32
33
|
)
|
|
@@ -434,6 +435,7 @@ app.include_router(contributors_router, prefix="/api/settings", tags=["settings"
|
|
|
434
435
|
app.include_router(deck_prompts_router, prefix="/api/settings", tags=["settings"])
|
|
435
436
|
app.include_router(identities_router, prefix="/api/settings", tags=["settings"])
|
|
436
437
|
app.include_router(slide_styles_router, prefix="/api/settings", tags=["settings"])
|
|
438
|
+
app.include_router(design_systems_router, prefix="/api/settings", tags=["settings"])
|
|
437
439
|
|
|
438
440
|
# MCP server — mount the FastMCP streamable-HTTP ASGI app at /mcp.
|
|
439
441
|
# Must be registered before the SPA catch-all (which is added lazily by
|
{databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/agent_config.py
RENAMED
|
@@ -21,10 +21,61 @@ router = APIRouter(prefix="/api/sessions/{session_id}/agent-config", tags=["agen
|
|
|
21
21
|
|
|
22
22
|
|
|
23
23
|
def _validate_references(config: AgentConfig) -> None:
|
|
24
|
-
"""Validate
|
|
25
|
-
|
|
24
|
+
"""Validate the library references and SANITIZE the template pin, in place.
|
|
25
|
+
|
|
26
|
+
``design_system_id``, ``slide_style_id`` and ``deck_prompt_id`` stay STRICT
|
|
27
|
+
(422 on a missing/inactive entry — the existing convention). The template
|
|
28
|
+
pin is SELF-HEALING instead: template ids are re-minted by the sanctioned
|
|
29
|
+
delete+re-upload workflow, so a persisted config can legitimately hold a
|
|
30
|
+
stale pin — rejecting it would wedge EVERY later config update. When
|
|
31
|
+
``template_id`` does not resolve to a template belonging to the selected
|
|
32
|
+
design system (pin with no design system, another system's template, or a
|
|
33
|
+
missing/re-materialized template), it is cleared in place with a warning;
|
|
34
|
+
the caller persists and returns the sanitized config so the frontend state
|
|
35
|
+
syncs. This mirrors the deliberately lenient generation path.
|
|
36
|
+
"""
|
|
37
|
+
from src.database.models import (
|
|
38
|
+
DesignSystem,
|
|
39
|
+
DesignSystemTemplate,
|
|
40
|
+
SlideDeckPromptLibrary,
|
|
41
|
+
SlideStyleLibrary,
|
|
42
|
+
)
|
|
26
43
|
|
|
27
44
|
with get_db_session() as db:
|
|
45
|
+
if config.design_system_id is not None:
|
|
46
|
+
design_system = (
|
|
47
|
+
db.query(DesignSystem)
|
|
48
|
+
.filter(
|
|
49
|
+
DesignSystem.id == config.design_system_id,
|
|
50
|
+
DesignSystem.is_active == True, # noqa: E712
|
|
51
|
+
)
|
|
52
|
+
.first()
|
|
53
|
+
)
|
|
54
|
+
if not design_system:
|
|
55
|
+
raise HTTPException(
|
|
56
|
+
status_code=422,
|
|
57
|
+
detail=f"design_system_id {config.design_system_id} not found",
|
|
58
|
+
)
|
|
59
|
+
if config.template_id is not None:
|
|
60
|
+
template = None
|
|
61
|
+
if config.design_system_id is not None:
|
|
62
|
+
template = (
|
|
63
|
+
db.query(DesignSystemTemplate)
|
|
64
|
+
.filter(
|
|
65
|
+
DesignSystemTemplate.id == config.template_id,
|
|
66
|
+
DesignSystemTemplate.design_system_id == config.design_system_id,
|
|
67
|
+
)
|
|
68
|
+
.first()
|
|
69
|
+
)
|
|
70
|
+
if template is None:
|
|
71
|
+
logger.warning(
|
|
72
|
+
"Clearing stale template pin %s (design_system_id=%s): the "
|
|
73
|
+
"template does not exist or does not belong to the selected "
|
|
74
|
+
"design system; saving the config without it",
|
|
75
|
+
config.template_id,
|
|
76
|
+
config.design_system_id,
|
|
77
|
+
)
|
|
78
|
+
config.template_id = None
|
|
28
79
|
if config.slide_style_id is not None:
|
|
29
80
|
style = (
|
|
30
81
|
db.query(SlideStyleLibrary)
|
|
@@ -100,7 +151,9 @@ async def get_agent_config(session_id: str):
|
|
|
100
151
|
async def put_agent_config(session_id: str, config: AgentConfig):
|
|
101
152
|
"""Replace the full agent config for a session."""
|
|
102
153
|
# Pydantic already validated duplicates via model_validator.
|
|
103
|
-
# Now validate foreign-key references
|
|
154
|
+
# Now validate foreign-key references; a stale template pin is sanitized
|
|
155
|
+
# (cleared in place) rather than rejected, so what is persisted and
|
|
156
|
+
# returned below is the effective config.
|
|
104
157
|
_validate_references(config)
|
|
105
158
|
|
|
106
159
|
try:
|
{databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/export.py
RENAMED
|
@@ -405,12 +405,14 @@ async def export_to_pptx(request: ExportPPTXRequest):
|
|
|
405
405
|
if not slide_deck or not slide_deck.get("slides"):
|
|
406
406
|
raise HTTPException(status_code=404, detail="No slides available")
|
|
407
407
|
|
|
408
|
-
# Substitute {{image:ID}} placeholders with base64 data URIs
|
|
409
|
-
# so the PPTX converter can extract and embed the actual images
|
|
408
|
+
# Substitute {{image:ID}} + {{ds-asset:ID}} placeholders with base64 data URIs
|
|
409
|
+
# so the PPTX converter can extract and embed the actual images/brand assets
|
|
410
|
+
from src.utils.ds_asset_utils import substitute_deck_dict_ds_assets
|
|
410
411
|
from src.utils.image_utils import substitute_deck_dict_images
|
|
411
412
|
from src.core.database import get_db_session
|
|
412
413
|
with get_db_session() as db:
|
|
413
414
|
substitute_deck_dict_images(slide_deck, db)
|
|
415
|
+
substitute_deck_dict_ds_assets(slide_deck, db)
|
|
414
416
|
|
|
415
417
|
slide_count = len(slide_deck.get("slides", []))
|
|
416
418
|
log_msg = (
|
|
@@ -276,11 +276,13 @@ async def start_google_slides_export(
|
|
|
276
276
|
if not slide_deck or not slide_deck.get("slides"):
|
|
277
277
|
raise HTTPException(status_code=404, detail="No slides available")
|
|
278
278
|
|
|
279
|
-
# Substitute {{image:ID}} placeholders with base64 data URIs
|
|
279
|
+
# Substitute {{image:ID}} + {{ds-asset:ID}} placeholders with base64 data URIs
|
|
280
|
+
from src.utils.ds_asset_utils import substitute_deck_dict_ds_assets
|
|
280
281
|
from src.utils.image_utils import substitute_deck_dict_images
|
|
281
282
|
from src.core.database import get_db_session
|
|
282
283
|
with get_db_session() as db:
|
|
283
284
|
substitute_deck_dict_images(slide_deck, db)
|
|
285
|
+
substitute_deck_dict_ds_assets(slide_deck, db)
|
|
284
286
|
|
|
285
287
|
slides_data = slide_deck.get("slides", [])
|
|
286
288
|
total = len(slides_data)
|
|
@@ -502,9 +504,11 @@ async def export_google_slides_from_huashu(
|
|
|
502
504
|
# legacy /export route). Use a fresh session because the request's `db`
|
|
503
505
|
# is held by the route's transaction context.
|
|
504
506
|
from src.core.database import get_db_session
|
|
507
|
+
from src.utils.ds_asset_utils import substitute_deck_dict_ds_assets
|
|
505
508
|
from src.utils.image_utils import substitute_deck_dict_images
|
|
506
509
|
with get_db_session() as imdb:
|
|
507
510
|
substitute_deck_dict_images(slide_deck, imdb)
|
|
511
|
+
substitute_deck_dict_ds_assets(slide_deck, imdb)
|
|
508
512
|
|
|
509
513
|
title = slide_deck.get("title") or "Presentation"
|
|
510
514
|
slides_data = slide_deck.get("slides") or []
|
{databricks_tellr_app-0.3.11.dev6 → databricks_tellr_app-0.3.11.dev7}/src/api/routes/sessions.py
RENAMED
|
@@ -149,10 +149,12 @@ def _check_deck_permission_for_session(
|
|
|
149
149
|
def _substitute_deck_images(deck_dict: dict) -> None:
|
|
150
150
|
"""Substitute {{image:ID}} placeholders in a deck dict with base64 data URIs."""
|
|
151
151
|
from src.core.database import get_db_session
|
|
152
|
+
from src.utils.ds_asset_utils import substitute_deck_dict_ds_assets
|
|
152
153
|
from src.utils.image_utils import substitute_deck_dict_images
|
|
153
154
|
|
|
154
155
|
with get_db_session() as db:
|
|
155
156
|
substitute_deck_dict_images(deck_dict, db)
|
|
157
|
+
substitute_deck_dict_ds_assets(deck_dict, db)
|
|
156
158
|
|
|
157
159
|
|
|
158
160
|
@router.post("")
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
"""Configuration API routes."""
|
|
2
2
|
from src.api.routes.settings.contributors import router as contributors_router
|
|
3
3
|
from src.api.routes.settings.deck_prompts import router as deck_prompts_router
|
|
4
|
+
from src.api.routes.settings.design_systems import router as design_systems_router
|
|
4
5
|
from src.api.routes.settings.identities import router as identities_router
|
|
5
6
|
from src.api.routes.settings.slide_styles import router as slide_styles_router
|
|
6
7
|
|
|
7
8
|
__all__ = [
|
|
8
9
|
"contributors_router",
|
|
9
10
|
"deck_prompts_router",
|
|
11
|
+
"design_systems_router",
|
|
10
12
|
"identities_router",
|
|
11
13
|
"slide_styles_router",
|
|
12
14
|
]
|