databricks-tellr-app 0.4.3.dev3464__tar.gz → 0.5.1.dev1__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 (244) hide show
  1. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/PKG-INFO +1 -1
  2. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/databricks_tellr_app.egg-info/PKG-INFO +1 -1
  3. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/pyproject.toml +1 -1
  4. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/converter_jail/jail.py +5 -3
  5. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/pptx_from_html_huashu.py +30 -2
  6. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/pptx_from_records.py +47 -1
  7. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/README.md +0 -0
  8. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/databricks_tellr_app/__init__.py +0 -0
  9. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/databricks_tellr_app/run.py +0 -0
  10. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/databricks_tellr_app.egg-info/SOURCES.txt +0 -0
  11. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/databricks_tellr_app.egg-info/dependency_links.txt +0 -0
  12. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/databricks_tellr_app.egg-info/requires.txt +0 -0
  13. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/databricks_tellr_app.egg-info/top_level.txt +0 -0
  14. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/setup.cfg +0 -0
  15. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/setup.py +0 -0
  16. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/__init__.py +0 -0
  17. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/__init__.py +0 -0
  18. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/_otel_bootstrap.py +0 -0
  19. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/fixtures/tour_demo_deck.json +0 -0
  20. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/main.py +0 -0
  21. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/mcp_auth.py +0 -0
  22. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/mcp_server.py +0 -0
  23. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/middleware/__init__.py +0 -0
  24. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/middleware/csrf.py +0 -0
  25. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/middleware/request_logging.py +0 -0
  26. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/middleware/security_headers.py +0 -0
  27. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/__init__.py +0 -0
  28. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/_authz.py +0 -0
  29. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/admin.py +0 -0
  30. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/admin_usage.py +0 -0
  31. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/agent_config.py +0 -0
  32. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/agent_definitions.py +0 -0
  33. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/chat.py +0 -0
  34. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/deck_contributors.py +0 -0
  35. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/export.py +0 -0
  36. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/feedback.py +0 -0
  37. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/google_slides.py +0 -0
  38. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/images.py +0 -0
  39. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/local_version.py +0 -0
  40. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/profiles.py +0 -0
  41. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/sessions.py +0 -0
  42. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/settings/__init__.py +0 -0
  43. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/settings/contributors.py +0 -0
  44. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/settings/deck_prompts.py +0 -0
  45. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/settings/design_systems.py +0 -0
  46. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/settings/identities.py +0 -0
  47. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/settings/slide_styles.py +0 -0
  48. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/setup.py +0 -0
  49. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/slides.py +0 -0
  50. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/tools.py +0 -0
  51. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/tour.py +0 -0
  52. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/verification.py +0 -0
  53. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/routes/version.py +0 -0
  54. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/schemas/__init__.py +0 -0
  55. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/schemas/agent_config.py +0 -0
  56. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/schemas/agent_definitions.py +0 -0
  57. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/schemas/feedback.py +0 -0
  58. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/schemas/graph_release_history.py +0 -0
  59. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/schemas/graph_releases.py +0 -0
  60. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/schemas/requests.py +0 -0
  61. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/schemas/responses.py +0 -0
  62. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/schemas/settings/__init__.py +0 -0
  63. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/schemas/settings/requests.py +0 -0
  64. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/schemas/settings/responses.py +0 -0
  65. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/schemas/streaming.py +0 -0
  66. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/services/__init__.py +0 -0
  67. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/services/chat_service.py +0 -0
  68. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/services/deck_level_writer.py +0 -0
  69. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/services/export_job_queue.py +0 -0
  70. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/services/feedback_service.py +0 -0
  71. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/services/job_queue.py +0 -0
  72. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/services/session_manager.py +0 -0
  73. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/services/session_naming.py +0 -0
  74. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/services/slide_repository.py +0 -0
  75. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/services/slide_style_preview_queue.py +0 -0
  76. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/services/usage_events.py +0 -0
  77. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/services/usage_service.py +0 -0
  78. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/utils/__init__.py +0 -0
  79. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/api/utils/validation.py +0 -0
  80. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/__init__.py +0 -0
  81. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/backfill_session_slides_startup.py +0 -0
  82. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/checkpointer.py +0 -0
  83. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/config_loader.py +0 -0
  84. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/context_utils.py +0 -0
  85. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/database.py +0 -0
  86. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/databricks_client.py +0 -0
  87. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/defaults.py +0 -0
  88. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/encryption.py +0 -0
  89. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/init_default_profile.py +0 -0
  90. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/lakebase.py +0 -0
  91. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/migrate_profiles_to_agent_config.py +0 -0
  92. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/mlflow_agent_spans.py +0 -0
  93. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/mlflow_tracing.py +0 -0
  94. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/otel_logging.py +0 -0
  95. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/permission_context.py +0 -0
  96. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/prompt_modules.py +0 -0
  97. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/settings_db.py +0 -0
  98. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/skills/__init__.py +0 -0
  99. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/skills/architect.py +0 -0
  100. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/skills/build_reviewer.py +0 -0
  101. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/skills/builder.py +0 -0
  102. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/skills/data_analyst.py +0 -0
  103. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/skills/deck_reviewer.py +0 -0
  104. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/skills/fix_reviewer.py +0 -0
  105. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/skills/fixer.py +0 -0
  106. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/strip_retired_prompt_keys.py +0 -0
  107. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/core/user_context.py +0 -0
  108. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/__init__.py +0 -0
  109. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/__init__.py +0 -0
  110. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/data_migration.py +0 -0
  111. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/deck_contributor.py +0 -0
  112. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/deck_review.py +0 -0
  113. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/design_system.py +0 -0
  114. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/encryption_key.py +0 -0
  115. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/feedback.py +0 -0
  116. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/genie_space.py +0 -0
  117. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/google_global_credentials.py +0 -0
  118. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/google_oauth_token.py +0 -0
  119. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/graph_checkpoint.py +0 -0
  120. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/graph_configuration.py +0 -0
  121. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/identity.py +0 -0
  122. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/image.py +0 -0
  123. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/profile.py +0 -0
  124. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/profile_contributor.py +0 -0
  125. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/prompts.py +0 -0
  126. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/request_log.py +0 -0
  127. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/session.py +0 -0
  128. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/slide_deck_prompt.py +0 -0
  129. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/slide_style_library.py +0 -0
  130. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/slide_style_preview.py +0 -0
  131. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/usage_event.py +0 -0
  132. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/models/user_preference.py +0 -0
  133. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/database/types.py +0 -0
  134. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/domain/__init__.py +0 -0
  135. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/domain/conversation_engine.py +0 -0
  136. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/domain/conversation_turns.py +0 -0
  137. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/domain/deck_spec.py +0 -0
  138. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/domain/deck_spec_slides.py +0 -0
  139. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/domain/finding.py +0 -0
  140. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/domain/finding_copy.py +0 -0
  141. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/domain/skill_io.py +0 -0
  142. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/domain/slide.py +0 -0
  143. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/domain/slide_alignment.py +0 -0
  144. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/domain/slide_deck.py +0 -0
  145. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/domain/slide_numbering.py +0 -0
  146. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/__init__.py +0 -0
  147. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/agent.py +0 -0
  148. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/agent_definition_manifest_v1.py +0 -0
  149. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/agent_factory.py +0 -0
  150. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/agent_model_payload.py +0 -0
  151. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/agent_resolution.py +0 -0
  152. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/agent_runtime.py +0 -0
  153. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/agent_runtime_identity.py +0 -0
  154. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/agent_schema_registry.py +0 -0
  155. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/agent_schema_types.py +0 -0
  156. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/agent_test_workbench.py +0 -0
  157. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/collaboration_history.py +0 -0
  158. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/config_service.py +0 -0
  159. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/config_validator.py +0 -0
  160. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/conversation_pins.py +0 -0
  161. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/converter_jail/__init__.py +0 -0
  162. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/converter_jail/ast_guard.py +0 -0
  163. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/converter_jail/codeprep.py +0 -0
  164. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/converter_jail/gslides_runner.py +0 -0
  165. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/converter_jail/pptx_runner.py +0 -0
  166. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/converter_jail/protocol.py +0 -0
  167. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/deck_css_aggregator.py +0 -0
  168. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/deck_review_store.py +0 -0
  169. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/design_system_compiler.py +0 -0
  170. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/design_system_service.py +0 -0
  171. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/design_system_templates.py +0 -0
  172. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/drive_uploader.py +0 -0
  173. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/evaluation/__init__.py +0 -0
  174. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/evaluation/llm_judge.py +0 -0
  175. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/foreman_service.py +0 -0
  176. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/gateway_openai.py +0 -0
  177. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/genie_service.py +0 -0
  178. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/google_slides_auth.py +0 -0
  179. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/google_slides_prompts_defaults.py +0 -0
  180. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph/__init__.py +0 -0
  181. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph/builder.py +0 -0
  182. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph/event_emitter.py +0 -0
  183. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph/nodes.py +0 -0
  184. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph/progress.py +0 -0
  185. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph/routers.py +0 -0
  186. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph/state.py +0 -0
  187. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph/user_notices.py +0 -0
  188. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph_configuration.py +0 -0
  189. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph_configuration_bootstrap.py +0 -0
  190. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph_configuration_content.py +0 -0
  191. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph_configuration_draft.py +0 -0
  192. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph_configuration_publication.py +0 -0
  193. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph_configuration_rollback.py +0 -0
  194. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph_configuration_seed.py +0 -0
  195. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph_configuration_workbench.py +0 -0
  196. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph_definition_manifest.py +0 -0
  197. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph_release_evidence.py +0 -0
  198. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/graph_release_history.py +0 -0
  199. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/html_to_google_slides.py +0 -0
  200. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/html_to_pptx.py +0 -0
  201. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/identity_provider.py +0 -0
  202. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/identity_providers/__init__.py +0 -0
  203. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/identity_providers/account_provider.py +0 -0
  204. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/identity_providers/local_provider.py +0 -0
  205. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/identity_providers/scim_filter.py +0 -0
  206. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/identity_providers/workspace_provider.py +0 -0
  207. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/image_service.py +0 -0
  208. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/image_tools.py +0 -0
  209. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/model_endpoint_catalog.py +0 -0
  210. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/model_endpoint_probe.py +0 -0
  211. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/permission_service.py +0 -0
  212. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/persisted_graph_release.py +0 -0
  213. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/pptx_prompts_defaults.py +0 -0
  214. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/profile_service.py +0 -0
  215. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/prompt_assembler.py +0 -0
  216. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/shared_deck_attribution.py +0 -0
  217. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/slide_style_preview_fixture.py +0 -0
  218. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/slide_style_preview_storage.py +0 -0
  219. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/spec_sync.py +0 -0
  220. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/streaming_callback.py +0 -0
  221. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/svg_sanitizer.py +0 -0
  222. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/template_sections.py +0 -0
  223. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/tools/__init__.py +0 -0
  224. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/tools/agent_bricks_tool.py +0 -0
  225. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/tools/ds_asset_tool.py +0 -0
  226. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/tools/genie_tool.py +0 -0
  227. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/tools/mcp_tool.py +0 -0
  228. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/tools/model_endpoint_tool.py +0 -0
  229. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/tools/vector_tool.py +0 -0
  230. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/services/validator.py +0 -0
  231. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/utils/__init__.py +0 -0
  232. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/utils/css_utils.py +0 -0
  233. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/utils/ds_asset_utils.py +0 -0
  234. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/utils/error_handling.py +0 -0
  235. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/utils/graph_safety.py +0 -0
  236. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/utils/html_safety.py +0 -0
  237. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/utils/html_utils.py +0 -0
  238. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/utils/image_utils.py +0 -0
  239. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/utils/js_validator.py +0 -0
  240. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/utils/logging_config.py +0 -0
  241. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/utils/pi_filter.py +0 -0
  242. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/utils/slide_hash.py +0 -0
  243. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/utils/spotlight.py +0 -0
  244. {databricks_tellr_app-0.4.3.dev3464 → databricks_tellr_app-0.5.1.dev1}/src/utils/text_caps.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: databricks-tellr-app
3
- Version: 0.4.3.dev3464
3
+ Version: 0.5.1.dev1
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.3.dev3464
3
+ Version: 0.5.1.dev1
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.3.dev3464"
7
+ version = "0.5.1.dev1"
8
8
  description = "Tellr application package for Databricks Apps"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -60,15 +60,17 @@ class ResourceLimits:
60
60
  nproc: Optional[int] = None # None -> leave current soft limit
61
61
 
62
62
 
63
- def build_scrubbed_env() -> dict:
63
+ def build_scrubbed_env(home: Optional[str] = None) -> dict:
64
64
  """Build the child environment: only PATH/LANG survive; HOME/TMPDIR point
65
- at a fresh temp dir. No DATABRICKS_*, no Fernet key, no Lakebase creds."""
65
+ at ``home``, or a fresh temp dir the caller must remove when ``home`` is
66
+ None. No DATABRICKS_*, no Fernet key, no Lakebase creds."""
66
67
  env: dict = {}
67
68
  for key in _ENV_WHITELIST:
68
69
  if key in os.environ:
69
70
  env[key] = os.environ[key]
70
71
  env.setdefault("LANG", "C.UTF-8")
71
- home = tempfile.mkdtemp(prefix="jail_home_")
72
+ if home is None:
73
+ home = tempfile.mkdtemp(prefix="jail_home_")
72
74
  env["HOME"] = home
73
75
  env["TMPDIR"] = home
74
76
  env["PYTHONHASHSEED"] = "0"
@@ -46,17 +46,45 @@ SIDECAR_SCRIPT = SIDECAR_DIR / "emit_deck.mjs"
46
46
  SIDECAR_SYS_LIBS_DIR = SIDECAR_DIR / "sys-libs"
47
47
  SIDECAR_TIMEOUT_SECONDS = 180 # huashu opens chromium per-slide; slower than pptx-emit
48
48
 
49
+ # SDR-4437 F-CR-35: the only environment keys the node/Chromium child gets.
50
+ # No DATABRICKS_*, no Fernet key, no Lakebase creds. HOME stays real (unlike
51
+ # the converter jail's scrubbed env): Playwright finds Chromium under
52
+ # ~/.cache/ms-playwright. Proxy and CA settings stay so the page can still
53
+ # load Chart.js from its CDN.
54
+ _SIDECAR_ENV_ALLOWLIST = (
55
+ "PATH",
56
+ "HOME",
57
+ "LANG",
58
+ "LC_ALL",
59
+ "LC_CTYPE",
60
+ "TMPDIR",
61
+ "LD_LIBRARY_PATH",
62
+ "PLAYWRIGHT_BROWSERS_PATH",
63
+ "XDG_CACHE_HOME",
64
+ "HTTP_PROXY",
65
+ "HTTPS_PROXY",
66
+ "NO_PROXY",
67
+ "http_proxy",
68
+ "https_proxy",
69
+ "no_proxy",
70
+ "SSL_CERT_FILE",
71
+ "SSL_CERT_DIR",
72
+ "NODE_EXTRA_CA_CERTS",
73
+ )
74
+
49
75
 
50
76
  def sidecar_subprocess_env() -> dict[str, str]:
51
77
  """Build the env dict for any node subprocess that ends up spawning
52
- Chromium. Prepends ``services/pptx-emit-huashu/sys-libs/`` onto
78
+ Chromium: an allowlist of the app's environment (see
79
+ ``_SIDECAR_ENV_ALLOWLIST``), never a copy of it. Prepends
80
+ ``services/pptx-emit-huashu/sys-libs/`` onto
53
81
  ``LD_LIBRARY_PATH`` if the directory exists, so Chromium can find the
54
82
  bundled libnspr4/libnss3/etc. on Databricks Apps where the host glibc-
55
83
  next runtime libs aren't installed. Scoping it here (not as a global
56
84
  env in app.yaml) prevents the Python process from accidentally loading
57
85
  incompatible libs from the bundle.
58
86
  """
59
- env = os.environ.copy()
87
+ env = {k: os.environ[k] for k in _SIDECAR_ENV_ALLOWLIST if k in os.environ}
60
88
  if SIDECAR_SYS_LIBS_DIR.exists():
61
89
  existing = env.get("LD_LIBRARY_PATH", "")
62
90
  env["LD_LIBRARY_PATH"] = (
@@ -26,6 +26,8 @@ import tempfile
26
26
  from pathlib import Path
27
27
  from typing import Any
28
28
 
29
+ from src.services.converter_jail.jail import build_scrubbed_env
30
+
29
31
  logger = logging.getLogger(__name__)
30
32
 
31
33
  def _resolve_sidecar_dir() -> Path:
@@ -81,6 +83,46 @@ def _sidecar_entrypoint() -> Path:
81
83
  return SIDECAR_BUNDLE if SIDECAR_BUNDLE.exists() else SIDECAR_SCRIPT
82
84
 
83
85
 
86
+ def _drop_non_data_images(slides: list[Any]) -> list[Any]:
87
+ """Remove every image record whose ``src`` is not a ``data:`` URI.
88
+
89
+ SDR-4437 F-CR-35: pptxgenjs resolves any other ``src`` as a filesystem
90
+ path (``fs.readFileSync``) or an https URL and embeds the bytes in the
91
+ deck, so a client-supplied ``/proc/self/environ`` came back inside the
92
+ .pptx. The records are client-controlled, so this is the authoritative
93
+ gate; ``emit.mjs`` repeats it. Nothing legitimate is lost: the walker
94
+ emits ``data:`` URIs only, and the slide CSP (``img-src data:``) already
95
+ blocks any other ``<img>`` source in the preview.
96
+
97
+ The check mirrors ``emit.mjs`` exactly (``r.kind === 'image'``,
98
+ ``typeof src === 'string' && src.startsWith('data:')``), and the sidecar
99
+ receives this filtered structure re-serialized, so what passes here is
100
+ what the sidecar sees.
101
+ """
102
+ dropped = 0
103
+ cleaned: list[Any] = []
104
+ for slide in slides:
105
+ records = slide.get("records") if isinstance(slide, dict) else None
106
+ if isinstance(records, list):
107
+ kept = []
108
+ for record in records:
109
+ if isinstance(record, dict) and record.get("kind") == "image":
110
+ src = record.get("src")
111
+ if not (isinstance(src, str) and src.startswith("data:")):
112
+ dropped += 1
113
+ continue
114
+ kept.append(record)
115
+ slide = {**slide, "records": kept}
116
+ cleaned.append(slide)
117
+ if dropped:
118
+ logger.warning(
119
+ "Dropped %d image record(s) with a non-data: src before the "
120
+ "pptx-emit sidecar (SDR-4437 F-CR-35)",
121
+ dropped,
122
+ )
123
+ return cleaned
124
+
125
+
84
126
  def build_pptx(
85
127
  title: str,
86
128
  slides: list[dict[str, Any]],
@@ -108,7 +150,7 @@ def build_pptx(
108
150
  if font_mode not in ("universal", "custom", "google_slides"):
109
151
  font_mode = "universal"
110
152
 
111
- payload = {"title": title, "font_mode": font_mode, "slides": slides}
153
+ payload = {"title": title, "font_mode": font_mode, "slides": _drop_non_data_images(slides)}
112
154
  payload_bytes = json.dumps(payload).encode("utf-8")
113
155
 
114
156
  with tempfile.TemporaryDirectory() as td:
@@ -119,12 +161,16 @@ def build_pptx(
119
161
  " ".join(cmd), len(payload_bytes), len(slides),
120
162
  )
121
163
  try:
164
+ # SDR-4437 F-CR-35: the sidecar holds no credentials of its own.
165
+ # Defence in depth only — it runs as the app's OS user, so the
166
+ # image-src filter above is what removes the file-read primitive.
122
167
  result = subprocess.run(
123
168
  cmd,
124
169
  input=payload_bytes,
125
170
  capture_output=True,
126
171
  timeout=SIDECAR_TIMEOUT_SECONDS,
127
172
  check=False,
173
+ env=build_scrubbed_env(home=td),
128
174
  )
129
175
  except subprocess.TimeoutExpired as e:
130
176
  raise EmitError(f"Sidecar timed out after {SIDECAR_TIMEOUT_SECONDS}s") from e