databricks-tellr-app 0.4.2.dev16__tar.gz → 0.4.2.dev17__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.
Files changed (167) hide show
  1. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/PKG-INFO +1 -1
  2. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/databricks_tellr_app.egg-info/PKG-INFO +1 -1
  3. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/pyproject.toml +1 -1
  4. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/export.py +32 -5
  5. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/utils/html_safety.py +41 -0
  6. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/README.md +0 -0
  7. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/databricks_tellr_app/__init__.py +0 -0
  8. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/databricks_tellr_app/run.py +0 -0
  9. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/databricks_tellr_app.egg-info/SOURCES.txt +0 -0
  10. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/databricks_tellr_app.egg-info/dependency_links.txt +0 -0
  11. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/databricks_tellr_app.egg-info/requires.txt +0 -0
  12. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/databricks_tellr_app.egg-info/top_level.txt +0 -0
  13. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/setup.cfg +0 -0
  14. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/setup.py +0 -0
  15. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/__init__.py +0 -0
  16. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/__init__.py +0 -0
  17. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/_otel_bootstrap.py +0 -0
  18. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/fixtures/tour_demo_deck.json +0 -0
  19. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/main.py +0 -0
  20. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/mcp_auth.py +0 -0
  21. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/mcp_server.py +0 -0
  22. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/middleware/__init__.py +0 -0
  23. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/middleware/csrf.py +0 -0
  24. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/middleware/request_logging.py +0 -0
  25. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/middleware/security_headers.py +0 -0
  26. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/__init__.py +0 -0
  27. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/_authz.py +0 -0
  28. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/admin.py +0 -0
  29. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/admin_usage.py +0 -0
  30. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/agent_config.py +0 -0
  31. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/chat.py +0 -0
  32. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/deck_contributors.py +0 -0
  33. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/feedback.py +0 -0
  34. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/google_slides.py +0 -0
  35. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/images.py +0 -0
  36. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/local_version.py +0 -0
  37. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/profiles.py +0 -0
  38. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/sessions.py +0 -0
  39. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/settings/__init__.py +0 -0
  40. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/settings/contributors.py +0 -0
  41. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/settings/deck_prompts.py +0 -0
  42. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/settings/design_systems.py +0 -0
  43. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/settings/identities.py +0 -0
  44. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/settings/slide_styles.py +0 -0
  45. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/setup.py +0 -0
  46. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/slides.py +0 -0
  47. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/tools.py +0 -0
  48. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/tour.py +0 -0
  49. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/verification.py +0 -0
  50. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/routes/version.py +0 -0
  51. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/schemas/__init__.py +0 -0
  52. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/schemas/agent_config.py +0 -0
  53. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/schemas/feedback.py +0 -0
  54. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/schemas/requests.py +0 -0
  55. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/schemas/responses.py +0 -0
  56. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/schemas/settings/__init__.py +0 -0
  57. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/schemas/settings/requests.py +0 -0
  58. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/schemas/settings/responses.py +0 -0
  59. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/schemas/streaming.py +0 -0
  60. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/services/__init__.py +0 -0
  61. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/services/chat_service.py +0 -0
  62. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/services/export_job_queue.py +0 -0
  63. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/services/feedback_service.py +0 -0
  64. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/services/job_queue.py +0 -0
  65. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/services/session_manager.py +0 -0
  66. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/services/session_naming.py +0 -0
  67. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/services/usage_events.py +0 -0
  68. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/services/usage_service.py +0 -0
  69. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/utils/__init__.py +0 -0
  70. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/api/utils/validation.py +0 -0
  71. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/__init__.py +0 -0
  72. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/config_loader.py +0 -0
  73. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/context_utils.py +0 -0
  74. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/database.py +0 -0
  75. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/databricks_client.py +0 -0
  76. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/defaults.py +0 -0
  77. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/encryption.py +0 -0
  78. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/init_default_profile.py +0 -0
  79. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/lakebase.py +0 -0
  80. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/migrate_profiles_to_agent_config.py +0 -0
  81. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/mlflow_agent_spans.py +0 -0
  82. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/mlflow_tracing.py +0 -0
  83. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/otel_logging.py +0 -0
  84. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/permission_context.py +0 -0
  85. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/prompt_modules.py +0 -0
  86. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/settings_db.py +0 -0
  87. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/core/user_context.py +0 -0
  88. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/__init__.py +0 -0
  89. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/__init__.py +0 -0
  90. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/deck_contributor.py +0 -0
  91. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/design_system.py +0 -0
  92. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/encryption_key.py +0 -0
  93. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/feedback.py +0 -0
  94. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/genie_space.py +0 -0
  95. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/google_global_credentials.py +0 -0
  96. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/google_oauth_token.py +0 -0
  97. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/identity.py +0 -0
  98. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/image.py +0 -0
  99. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/profile.py +0 -0
  100. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/profile_contributor.py +0 -0
  101. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/prompts.py +0 -0
  102. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/request_log.py +0 -0
  103. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/session.py +0 -0
  104. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/slide_deck_prompt.py +0 -0
  105. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/slide_style_library.py +0 -0
  106. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/usage_event.py +0 -0
  107. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/models/user_preference.py +0 -0
  108. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/database/types.py +0 -0
  109. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/domain/__init__.py +0 -0
  110. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/domain/slide.py +0 -0
  111. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/domain/slide_deck.py +0 -0
  112. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/__init__.py +0 -0
  113. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/agent.py +0 -0
  114. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/agent_factory.py +0 -0
  115. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/config_service.py +0 -0
  116. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/config_validator.py +0 -0
  117. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/converter_jail/__init__.py +0 -0
  118. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/converter_jail/ast_guard.py +0 -0
  119. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/converter_jail/codeprep.py +0 -0
  120. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/converter_jail/gslides_runner.py +0 -0
  121. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/converter_jail/jail.py +0 -0
  122. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/converter_jail/pptx_runner.py +0 -0
  123. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/converter_jail/protocol.py +0 -0
  124. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/design_system_compiler.py +0 -0
  125. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/design_system_service.py +0 -0
  126. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/design_system_templates.py +0 -0
  127. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/drive_uploader.py +0 -0
  128. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/evaluation/__init__.py +0 -0
  129. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/evaluation/llm_judge.py +0 -0
  130. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/genie_service.py +0 -0
  131. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/google_slides_auth.py +0 -0
  132. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/google_slides_prompts_defaults.py +0 -0
  133. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/html_to_google_slides.py +0 -0
  134. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/html_to_pptx.py +0 -0
  135. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/identity_provider.py +0 -0
  136. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/identity_providers/__init__.py +0 -0
  137. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/identity_providers/account_provider.py +0 -0
  138. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/identity_providers/local_provider.py +0 -0
  139. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/identity_providers/workspace_provider.py +0 -0
  140. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/image_service.py +0 -0
  141. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/image_tools.py +0 -0
  142. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/permission_service.py +0 -0
  143. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/pptx_from_html_huashu.py +0 -0
  144. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/pptx_from_records.py +0 -0
  145. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/pptx_prompts_defaults.py +0 -0
  146. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/profile_service.py +0 -0
  147. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/streaming_callback.py +0 -0
  148. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/tools/__init__.py +0 -0
  149. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/tools/agent_bricks_tool.py +0 -0
  150. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/tools/ds_asset_tool.py +0 -0
  151. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/tools/genie_tool.py +0 -0
  152. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/tools/mcp_tool.py +0 -0
  153. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/tools/model_endpoint_tool.py +0 -0
  154. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/tools/vector_tool.py +0 -0
  155. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/services/validator.py +0 -0
  156. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/utils/__init__.py +0 -0
  157. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/utils/css_utils.py +0 -0
  158. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/utils/ds_asset_utils.py +0 -0
  159. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/utils/error_handling.py +0 -0
  160. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/utils/html_utils.py +0 -0
  161. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/utils/image_utils.py +0 -0
  162. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/utils/js_validator.py +0 -0
  163. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/utils/logging_config.py +0 -0
  164. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/utils/pi_filter.py +0 -0
  165. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/utils/slide_hash.py +0 -0
  166. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/src/utils/spotlight.py +0 -0
  167. {databricks_tellr_app-0.4.2.dev16 → databricks_tellr_app-0.4.2.dev17}/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.2.dev16
3
+ Version: 0.4.2.dev17
4
4
  Summary: Tellr application package for Databricks Apps
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: databricks-tellr-app
3
- Version: 0.4.2.dev16
3
+ Version: 0.4.2.dev17
4
4
  Summary: Tellr application package for Databricks Apps
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "databricks-tellr-app"
7
- version = "0.4.2.dev16"
7
+ version = "0.4.2.dev17"
8
8
  description = "Tellr application package for Databricks Apps"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -22,6 +22,7 @@ from src.utils.html_safety import (
22
22
  SLIDE_CSP_META,
23
23
  SLIDE_ROOT_RESET_STYLE,
24
24
  scan_html_for_unsafe_patterns,
25
+ slide_host_frame_style,
25
26
  )
26
27
 
27
28
  logger = logging.getLogger(__name__)
@@ -181,12 +182,36 @@ def build_slide_html(slide: dict, slide_deck: dict) -> str:
181
182
  # see buildStandaloneDeckDocument in frontend/src/services/slideDocument.ts.
182
183
  #
183
184
  # Deliberately a `#` comment and NOT part of the f-string. Anything inside the
184
- # f-string is EMITTED into every exported document, where it (a) displaces
185
- # useful deck CSS from the ~15,000-char budget `_truncate_html` hands the LLM,
186
- # and (b) eats headroom under the 2000-char length threshold a sheet-role
187
- # classifier uses to tell this reset sheet from the deck's own. Keep the
188
- # rendered comment to one short line and put the reasoning here instead.
185
+ # f-string is EMITTED into every exported document, where it displaces useful
186
+ # deck CSS from the ~15,000-char budget `_truncate_html` hands the LLM — an
187
+ # oversize injected stylesheet driving that budget negative is what produced
188
+ # the all-placeholder export bug (WF-01). Keep every rendered comment to one
189
+ # short line and put the reasoning here instead.
190
+ #
191
+ # There is NO 2000-char sheet-role classifier, despite what this comment used
192
+ # to claim. Nothing in src/ or tests/ keys off a stylesheet's length; the tests
193
+ # identify sheets POSITIONALLY (`blocks[0..2]`, `len(blocks) == 3`) and by
194
+ # content (the deck's sheet is the one equal to the deck's CSS verbatim). This
195
+ # sheet is already over that supposed cap at 2,098 chars, so budgeting against
196
+ # it would be budgeting against nothing. The real cost is the LLM budget above.
189
197
  # Pinned by tests/unit/test_preview_box_model_parity.py.
198
+ #
199
+ # THE FRAME CONTRACT GOES IN THIS SHEET ONLY, NEVER SHEET 2 (WF-03). Sheet 2
200
+ # must stay byte-equal to the deck's own CSS, or a deck whose CSS opens with
201
+ # `@import url(fonts.googleapis…)` loses its webfont: `@import` is only valid
202
+ # before every other rule of ITS OWN stylesheet. Pinned by
203
+ # tests/unit/test_export_deck_stylesheet.py.
204
+ #
205
+ # WHY THE CONTRACT IS HERE AT ALL. A design-system-pinned deck nests the slide
206
+ # two levels deep: a `<section>` carries the slide ground via a bare TYPE
207
+ # selector, and inside it `.slide` is `position: absolute; inset: 0`. The
208
+ # wrapper holds no in-flow content, collapses to height 0, and the ground it
209
+ # carries never paints — the deck's own dark `html, body` shows through at
210
+ # contrast 1.3025. Five preview surfaces injected this contract; no export
211
+ # builder did. Latent on this path today (the huashu sidecar reads
212
+ # `getComputedStyle(root).backgroundColor`, and a 1280x0 element still computes
213
+ # the right colour, so the .pptx was immune BY CONSTRUCTION) — but the
214
+ # divergence is real and this is where it stops being one.
190
215
  complete_html = f"""<!DOCTYPE html>
191
216
  <html lang="en">
192
217
  <head>
@@ -238,6 +263,8 @@ def build_slide_html(slide: dict, slide_deck: dict) -> str:
238
263
  shifts content past the clip and truncates the export's bottom edge
239
264
  (same neutralization as every other surface). */
240
265
  {SLIDE_ROOT_RESET_STYLE}
266
+ /* After deck CSS: the shared slide-host frame contract. */
267
+ {slide_host_frame_style("body")}
241
268
  </style>
242
269
  </head>
243
270
  <body>
@@ -52,6 +52,47 @@ SLIDE_ROOT_RESET_STYLE = """
52
52
  }
53
53
  """
54
54
 
55
+ # The fixed 16:9 frame every slide surface renders into. Mirrors the frontend's
56
+ # SLIDE_FRAME_W / SLIDE_FRAME_H; tests/unit/test_export_csp.py pins both.
57
+ SLIDE_FRAME_W = 1280
58
+ SLIDE_FRAME_H = 720
59
+
60
+
61
+ def slide_host_frame_style(host_selector: str) -> str:
62
+ """The slide-host frame contract: frame ``host_selector``, STRETCH ITS CHILD.
63
+
64
+ Byte-identical mirror of the frontend builder's ``slideHostFrameStyle``
65
+ (frontend/src/services/slideDocument.ts), which carries the full rationale and
66
+ the per-declaration measurements. ``tests/unit/test_export_csp.py`` asserts
67
+ this renders exactly what the TS function renders, so the two cannot drift.
68
+
69
+ Why any of it is needed: a design-system-pinned deck nests the slide two
70
+ levels deep — a ``<section>`` carries the slide ground via a bare TYPE
71
+ selector, and inside it ``.slide`` is ``position: absolute; inset: 0``. The
72
+ wrapper therefore holds no in-flow content and collapses to ``height: 0``, so
73
+ the ground it carries never paints and the deck's own dark ``html, body``
74
+ shows through instead. Colour and font still inherit, which is why the result
75
+ is readable DARK-ON-DARK rather than an obviously blank slide. Sizing the ROOT
76
+ does not fix it; only stretching the host's CHILD gives the
77
+ background-carrying element area.
78
+ """
79
+ return f"""
80
+ {host_selector} {{
81
+ position: relative !important;
82
+ width: {SLIDE_FRAME_W}px !important;
83
+ height: {SLIDE_FRAME_H}px !important;
84
+ overflow: hidden;
85
+ }}
86
+ {host_selector} > :not(#tellr-host-frame-boost):not(.slide-wrapper) {{
87
+ position: absolute !important;
88
+ inset: 0 !important;
89
+ width: 100% !important;
90
+ height: 100% !important;
91
+ box-sizing: border-box !important;
92
+ overflow: hidden;
93
+ }}
94
+ """
95
+
55
96
  # Script sources allowed in slides (Chart.js + Tailwind Play CDN + Google Fonts).
56
97
  # Google Fonts <link>s are allowed by the slide CSP `style-src`/`font-src` at
57
98
  # runtime, so the scanner must not flag them as external resources.