databricks-tellr-app 0.4.3.dev34__tar.gz → 0.4.3.dev35__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 (231) hide show
  1. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/PKG-INFO +14 -9
  2. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/databricks_tellr_app/run.py +79 -0
  3. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/databricks_tellr_app.egg-info/PKG-INFO +14 -9
  4. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/databricks_tellr_app.egg-info/SOURCES.txt +126 -0
  5. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/databricks_tellr_app.egg-info/requires.txt +13 -8
  6. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/pyproject.toml +24 -9
  7. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/fixtures/tour_demo_deck.json +52 -1
  8. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/main.py +46 -8
  9. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/mcp_server.py +1 -0
  10. databricks_tellr_app-0.4.3.dev35/src/api/routes/agent_definitions.py +2112 -0
  11. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/chat.py +194 -29
  12. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/google_slides.py +6 -56
  13. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/sessions.py +199 -4
  14. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/slides.py +133 -4
  15. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/tour.py +34 -0
  16. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/verification.py +9 -9
  17. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/schemas/agent_config.py +4 -10
  18. databricks_tellr_app-0.4.3.dev35/src/api/schemas/agent_definitions.py +763 -0
  19. databricks_tellr_app-0.4.3.dev35/src/api/schemas/graph_release_history.py +261 -0
  20. databricks_tellr_app-0.4.3.dev35/src/api/schemas/graph_releases.py +192 -0
  21. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/schemas/requests.py +4 -0
  22. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/schemas/settings/requests.py +0 -11
  23. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/schemas/settings/responses.py +0 -2
  24. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/schemas/streaming.py +23 -0
  25. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/services/chat_service.py +1155 -24
  26. databricks_tellr_app-0.4.3.dev35/src/api/services/deck_level_writer.py +424 -0
  27. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/services/job_queue.py +66 -11
  28. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/services/session_manager.py +1426 -69
  29. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/services/session_naming.py +27 -0
  30. databricks_tellr_app-0.4.3.dev35/src/api/services/slide_repository.py +431 -0
  31. databricks_tellr_app-0.4.3.dev35/src/core/backfill_session_slides_startup.py +315 -0
  32. databricks_tellr_app-0.4.3.dev35/src/core/checkpointer.py +488 -0
  33. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/config_loader.py +4 -11
  34. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/database.py +937 -0
  35. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/defaults.py +13 -0
  36. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/init_default_profile.py +0 -5
  37. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/migrate_profiles_to_agent_config.py +4 -28
  38. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/settings_db.py +3 -2
  39. databricks_tellr_app-0.4.3.dev35/src/core/skills/__init__.py +147 -0
  40. databricks_tellr_app-0.4.3.dev35/src/core/skills/architect.py +64 -0
  41. databricks_tellr_app-0.4.3.dev35/src/core/skills/build_reviewer.py +93 -0
  42. databricks_tellr_app-0.4.3.dev35/src/core/skills/builder.py +54 -0
  43. databricks_tellr_app-0.4.3.dev35/src/core/skills/data_analyst.py +38 -0
  44. databricks_tellr_app-0.4.3.dev35/src/core/skills/deck_reviewer.py +24 -0
  45. databricks_tellr_app-0.4.3.dev35/src/core/skills/fix_reviewer.py +22 -0
  46. databricks_tellr_app-0.4.3.dev35/src/core/skills/fixer.py +52 -0
  47. databricks_tellr_app-0.4.3.dev35/src/core/strip_retired_prompt_keys.py +210 -0
  48. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/__init__.py +26 -0
  49. databricks_tellr_app-0.4.3.dev35/src/database/models/deck_review.py +77 -0
  50. databricks_tellr_app-0.4.3.dev35/src/database/models/graph_checkpoint.py +104 -0
  51. databricks_tellr_app-0.4.3.dev35/src/database/models/graph_configuration.py +537 -0
  52. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/prompts.py +7 -6
  53. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/session.py +279 -1
  54. databricks_tellr_app-0.4.3.dev35/src/domain/conversation_engine.py +10 -0
  55. databricks_tellr_app-0.4.3.dev35/src/domain/deck_spec.py +166 -0
  56. databricks_tellr_app-0.4.3.dev35/src/domain/finding.py +313 -0
  57. databricks_tellr_app-0.4.3.dev35/src/domain/skill_io.py +259 -0
  58. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/domain/slide_deck.py +10 -4
  59. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/agent.py +24 -5
  60. databricks_tellr_app-0.4.3.dev35/src/services/agent_definition_manifest_v1.py +3 -0
  61. databricks_tellr_app-0.4.3.dev35/src/services/agent_factory.py +150 -0
  62. databricks_tellr_app-0.4.3.dev35/src/services/agent_model_payload.py +129 -0
  63. databricks_tellr_app-0.4.3.dev34/src/services/agent_factory.py → databricks_tellr_app-0.4.3.dev35/src/services/agent_resolution.py +145 -181
  64. databricks_tellr_app-0.4.3.dev35/src/services/agent_runtime.py +916 -0
  65. databricks_tellr_app-0.4.3.dev35/src/services/agent_runtime_identity.py +181 -0
  66. databricks_tellr_app-0.4.3.dev35/src/services/agent_schema_registry.py +669 -0
  67. databricks_tellr_app-0.4.3.dev35/src/services/agent_schema_types.py +404 -0
  68. databricks_tellr_app-0.4.3.dev35/src/services/agent_test_workbench.py +1865 -0
  69. databricks_tellr_app-0.4.3.dev35/src/services/collaboration_history.py +366 -0
  70. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/config_service.py +0 -12
  71. databricks_tellr_app-0.4.3.dev35/src/services/conversation_pins.py +211 -0
  72. databricks_tellr_app-0.4.3.dev35/src/services/deck_css_aggregator.py +211 -0
  73. databricks_tellr_app-0.4.3.dev35/src/services/deck_review_store.py +263 -0
  74. databricks_tellr_app-0.4.3.dev35/src/services/foreman_service.py +307 -0
  75. databricks_tellr_app-0.4.3.dev35/src/services/gateway_openai.py +12 -0
  76. databricks_tellr_app-0.4.3.dev35/src/services/graph/__init__.py +6 -0
  77. databricks_tellr_app-0.4.3.dev35/src/services/graph/builder.py +384 -0
  78. databricks_tellr_app-0.4.3.dev35/src/services/graph/event_emitter.py +226 -0
  79. databricks_tellr_app-0.4.3.dev35/src/services/graph/nodes.py +3078 -0
  80. databricks_tellr_app-0.4.3.dev35/src/services/graph/routers.py +234 -0
  81. databricks_tellr_app-0.4.3.dev35/src/services/graph/state.py +331 -0
  82. databricks_tellr_app-0.4.3.dev35/src/services/graph_configuration.py +179 -0
  83. databricks_tellr_app-0.4.3.dev35/src/services/graph_configuration_bootstrap.py +337 -0
  84. databricks_tellr_app-0.4.3.dev35/src/services/graph_configuration_content.py +212 -0
  85. databricks_tellr_app-0.4.3.dev35/src/services/graph_configuration_draft.py +1088 -0
  86. databricks_tellr_app-0.4.3.dev35/src/services/graph_configuration_publication.py +659 -0
  87. databricks_tellr_app-0.4.3.dev35/src/services/graph_configuration_rollback.py +607 -0
  88. databricks_tellr_app-0.4.3.dev35/src/services/graph_configuration_seed.py +108 -0
  89. databricks_tellr_app-0.4.3.dev35/src/services/graph_configuration_workbench.py +418 -0
  90. databricks_tellr_app-0.4.3.dev35/src/services/graph_definition_manifest.py +370 -0
  91. databricks_tellr_app-0.4.3.dev35/src/services/graph_release_evidence.py +265 -0
  92. databricks_tellr_app-0.4.3.dev35/src/services/graph_release_history.py +307 -0
  93. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/html_to_google_slides.py +4 -3
  94. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/html_to_pptx.py +9 -8
  95. databricks_tellr_app-0.4.3.dev35/src/services/model_endpoint_catalog.py +306 -0
  96. databricks_tellr_app-0.4.3.dev35/src/services/model_endpoint_probe.py +298 -0
  97. databricks_tellr_app-0.4.3.dev35/src/services/persisted_graph_release.py +252 -0
  98. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/profile_service.py +0 -7
  99. databricks_tellr_app-0.4.3.dev35/src/services/prompt_assembler.py +875 -0
  100. databricks_tellr_app-0.4.3.dev35/src/services/shared_deck_attribution.py +131 -0
  101. databricks_tellr_app-0.4.3.dev35/src/services/spec_sync.py +756 -0
  102. databricks_tellr_app-0.4.3.dev35/src/services/template_sections.py +512 -0
  103. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/validator.py +6 -10
  104. databricks_tellr_app-0.4.3.dev35/src/utils/css_utils.py +289 -0
  105. databricks_tellr_app-0.4.3.dev35/src/utils/graph_safety.py +100 -0
  106. databricks_tellr_app-0.4.3.dev34/src/utils/css_utils.py +0 -78
  107. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/README.md +0 -0
  108. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/databricks_tellr_app/__init__.py +0 -0
  109. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/databricks_tellr_app.egg-info/dependency_links.txt +0 -0
  110. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/databricks_tellr_app.egg-info/top_level.txt +0 -0
  111. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/setup.cfg +0 -0
  112. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/setup.py +0 -0
  113. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/__init__.py +0 -0
  114. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/__init__.py +0 -0
  115. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/_otel_bootstrap.py +0 -0
  116. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/mcp_auth.py +0 -0
  117. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/middleware/__init__.py +0 -0
  118. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/middleware/csrf.py +0 -0
  119. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/middleware/request_logging.py +0 -0
  120. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/middleware/security_headers.py +0 -0
  121. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/__init__.py +0 -0
  122. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/_authz.py +0 -0
  123. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/admin.py +0 -0
  124. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/admin_usage.py +0 -0
  125. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/agent_config.py +0 -0
  126. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/deck_contributors.py +0 -0
  127. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/export.py +0 -0
  128. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/feedback.py +0 -0
  129. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/images.py +0 -0
  130. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/local_version.py +0 -0
  131. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/profiles.py +0 -0
  132. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/settings/__init__.py +0 -0
  133. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/settings/contributors.py +0 -0
  134. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/settings/deck_prompts.py +0 -0
  135. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/settings/design_systems.py +0 -0
  136. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/settings/identities.py +0 -0
  137. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/settings/slide_styles.py +0 -0
  138. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/setup.py +0 -0
  139. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/tools.py +0 -0
  140. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/routes/version.py +0 -0
  141. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/schemas/__init__.py +0 -0
  142. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/schemas/feedback.py +0 -0
  143. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/schemas/responses.py +0 -0
  144. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/schemas/settings/__init__.py +0 -0
  145. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/services/__init__.py +0 -0
  146. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/services/export_job_queue.py +0 -0
  147. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/services/feedback_service.py +0 -0
  148. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/services/usage_events.py +0 -0
  149. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/services/usage_service.py +0 -0
  150. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/utils/__init__.py +0 -0
  151. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/api/utils/validation.py +0 -0
  152. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/__init__.py +0 -0
  153. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/context_utils.py +0 -0
  154. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/databricks_client.py +0 -0
  155. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/encryption.py +0 -0
  156. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/lakebase.py +0 -0
  157. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/mlflow_agent_spans.py +0 -0
  158. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/mlflow_tracing.py +0 -0
  159. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/otel_logging.py +0 -0
  160. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/permission_context.py +0 -0
  161. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/prompt_modules.py +0 -0
  162. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/core/user_context.py +0 -0
  163. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/__init__.py +0 -0
  164. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/deck_contributor.py +0 -0
  165. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/design_system.py +0 -0
  166. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/encryption_key.py +0 -0
  167. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/feedback.py +0 -0
  168. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/genie_space.py +0 -0
  169. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/google_global_credentials.py +0 -0
  170. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/google_oauth_token.py +0 -0
  171. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/identity.py +0 -0
  172. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/image.py +0 -0
  173. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/profile.py +0 -0
  174. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/profile_contributor.py +0 -0
  175. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/request_log.py +0 -0
  176. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/slide_deck_prompt.py +0 -0
  177. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/slide_style_library.py +0 -0
  178. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/usage_event.py +0 -0
  179. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/models/user_preference.py +0 -0
  180. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/database/types.py +0 -0
  181. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/domain/__init__.py +0 -0
  182. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/domain/slide.py +0 -0
  183. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/__init__.py +0 -0
  184. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/config_validator.py +0 -0
  185. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/converter_jail/__init__.py +0 -0
  186. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/converter_jail/ast_guard.py +0 -0
  187. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/converter_jail/codeprep.py +0 -0
  188. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/converter_jail/gslides_runner.py +0 -0
  189. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/converter_jail/jail.py +0 -0
  190. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/converter_jail/pptx_runner.py +0 -0
  191. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/converter_jail/protocol.py +0 -0
  192. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/design_system_compiler.py +0 -0
  193. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/design_system_service.py +0 -0
  194. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/design_system_templates.py +0 -0
  195. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/drive_uploader.py +0 -0
  196. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/evaluation/__init__.py +0 -0
  197. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/evaluation/llm_judge.py +0 -0
  198. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/genie_service.py +0 -0
  199. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/google_slides_auth.py +0 -0
  200. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/google_slides_prompts_defaults.py +0 -0
  201. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/identity_provider.py +0 -0
  202. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/identity_providers/__init__.py +0 -0
  203. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/identity_providers/account_provider.py +0 -0
  204. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/identity_providers/local_provider.py +0 -0
  205. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/identity_providers/workspace_provider.py +0 -0
  206. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/image_service.py +0 -0
  207. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/image_tools.py +0 -0
  208. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/permission_service.py +0 -0
  209. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/pptx_from_html_huashu.py +0 -0
  210. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/pptx_from_records.py +0 -0
  211. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/pptx_prompts_defaults.py +0 -0
  212. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/streaming_callback.py +0 -0
  213. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/tools/__init__.py +0 -0
  214. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/tools/agent_bricks_tool.py +0 -0
  215. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/tools/ds_asset_tool.py +0 -0
  216. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/tools/genie_tool.py +0 -0
  217. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/tools/mcp_tool.py +0 -0
  218. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/tools/model_endpoint_tool.py +0 -0
  219. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/services/tools/vector_tool.py +0 -0
  220. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/utils/__init__.py +0 -0
  221. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/utils/ds_asset_utils.py +0 -0
  222. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/utils/error_handling.py +0 -0
  223. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/utils/html_safety.py +0 -0
  224. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/utils/html_utils.py +0 -0
  225. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/utils/image_utils.py +0 -0
  226. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/utils/js_validator.py +0 -0
  227. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/utils/logging_config.py +0 -0
  228. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/utils/pi_filter.py +0 -0
  229. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/utils/slide_hash.py +0 -0
  230. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/src/utils/spotlight.py +0 -0
  231. {databricks_tellr_app-0.4.3.dev34 → databricks_tellr_app-0.4.3.dev35}/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.dev34
3
+ Version: 0.4.3.dev35
4
4
  Summary: Tellr application package for Databricks Apps
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -9,13 +9,16 @@ Requires-Dist: uvicorn==0.38.0
9
9
  Requires-Dist: python-multipart==0.0.20
10
10
  Requires-Dist: pydantic==2.12.4
11
11
  Requires-Dist: pydantic-settings==2.12.0
12
- Requires-Dist: databricks-langchain==0.9.0
13
- Requires-Dist: langchain==1.0.5
14
- Requires-Dist: langchain-core==1.0.4
15
- Requires-Dist: langchain-community==0.4.1
16
- Requires-Dist: langchain-text-splitters==1.0.0
12
+ Requires-Dist: databricks-langchain==0.20.0
13
+ Requires-Dist: databricks-openai==0.17.1
14
+ Requires-Dist: langchain==1.3.14
15
+ Requires-Dist: langchain-core==1.5.3
16
+ Requires-Dist: langchain-community==0.4.2
17
+ Requires-Dist: langchain-text-splitters==1.1.2
17
18
  Requires-Dist: litellm==1.80.11
18
19
  Requires-Dist: mcp==1.27.0
20
+ Requires-Dist: openai==3.19.2
21
+ Requires-Dist: openai-agents==0.22.2
19
22
  Requires-Dist: opentelemetry-api==1.38.0
20
23
  Requires-Dist: opentelemetry-sdk==1.38.0
21
24
  Requires-Dist: beautifulsoup4==4.14.2
@@ -47,9 +50,11 @@ Requires-Dist: databricks-ai-bridge==0.21.0
47
50
  Requires-Dist: databricks-ai-search==0.76
48
51
  Requires-Dist: databricks-connect==16.1.7
49
52
  Requires-Dist: databricks-vectorsearch==0.75
50
- Requires-Dist: langchain-classic==1.0.0
51
- Requires-Dist: langgraph==1.0.10
52
- Requires-Dist: langgraph-prebuilt==1.0.10
53
+ Requires-Dist: langchain-classic==1.0.8
54
+ Requires-Dist: langgraph==1.2.10
55
+ Requires-Dist: langgraph-checkpoint==4.1.1
56
+ Requires-Dist: langgraph-prebuilt==1.1.0
57
+ Requires-Dist: langgraph-sdk==0.4.2
53
58
  Requires-Dist: langsmith==0.9.5
54
59
  Requires-Dist: unitycatalog-ai==0.3.2
55
60
  Requires-Dist: unitycatalog-langchain==0.3.0
@@ -51,6 +51,40 @@ def init_database(seed_databricks_defaults: bool = False) -> None:
51
51
  logger.error(f"Failed to initialize database tables: {e}\n{tb}")
52
52
  raise SystemExit(1) from e
53
53
 
54
+ logger.info("Bootstrapping Graph Configuration...")
55
+ try:
56
+ from src.core.database import get_session_local
57
+ from src.services.graph_configuration import bootstrap_graph_configuration
58
+
59
+ result = bootstrap_graph_configuration(get_session_local())
60
+ logger.info(
61
+ "Graph Configuration ready: release_id=%s version=%s created=%s",
62
+ result.release_id,
63
+ result.version_number,
64
+ result.created,
65
+ )
66
+ except Exception as e:
67
+ tb = traceback.format_exc()
68
+ logger.error(f"Failed to bootstrap Graph Configuration: {e}\n{tb}")
69
+ raise SystemExit(1) from e
70
+
71
+ logger.info("Backfilling Conversation Pins...")
72
+ try:
73
+ from src.core.database import get_session_local
74
+ from src.services.conversation_pins import backfill_conversation_pins
75
+
76
+ result = backfill_conversation_pins(get_session_local())
77
+ logger.info(
78
+ "Conversation Pins ready: release_id=%s version=%s pinned=%s",
79
+ result.graph_release_id,
80
+ result.graph_version,
81
+ result.pinned_count,
82
+ )
83
+ except Exception as e:
84
+ tb = traceback.format_exc()
85
+ logger.error(f"Failed to backfill Conversation Pins: {e}\n{tb}")
86
+ raise SystemExit(1) from e
87
+
54
88
  # Data migrations/backfills that used to run in the FastAPI lifespan now run
55
89
  # HERE, once, before the server forks its workers — the uvicorn workers must
56
90
  # never execute migration code (4 of them racing the migration chain on boot
@@ -74,6 +108,29 @@ def init_database(seed_databricks_defaults: bool = False) -> None:
74
108
  logger.error(f"Failed to migrate profiles/sessions to agent_config: {e}\n{tb}")
75
109
  raise SystemExit(1) from e
76
110
 
111
+ # Row-per-slide (PR1): migrate historical deck_json blobs into session_slides
112
+ # rows. Runs HERE, pre-fork, for the same reason as the two migrations above —
113
+ # the uvicorn workers must never execute migration code. It originally lived in
114
+ # the FastAPI lifespan; main moved migrations out of the lifespan while this
115
+ # branch was in flight, so it was relocated on merge rather than dropped.
116
+ #
117
+ # Guarded by a per-deck NOT EXISTS anti-join over session_slides (index-only
118
+ # against its composite PK), so it is a no-op scan once every deck has rows.
119
+ # A deck whose blob will not parse is logged and skipped, never raised — one
120
+ # bad row must not abort startup.
121
+ logger.info("Backfilling session_slides rows...")
122
+ try:
123
+ from src.core.backfill_session_slides_startup import backfill_unmigrated_decks
124
+ from src.core.database import get_session_local
125
+
126
+ slide_decks = backfill_unmigrated_decks(get_session_local())
127
+ if slide_decks:
128
+ logger.info(f"Backfilled {slide_decks} deck(s) into session_slides rows")
129
+ except Exception as e:
130
+ tb = traceback.format_exc()
131
+ logger.error(f"Failed to backfill session_slides rows: {e}\n{tb}")
132
+ raise SystemExit(1) from e
133
+
77
134
  # Seed default content
78
135
  logger.info(f"Seeding defaults (include_databricks={seed_databricks_defaults})...")
79
136
  try:
@@ -97,6 +154,28 @@ def init_database(seed_databricks_defaults: bool = False) -> None:
97
154
  logger.error(f"Failed to ensure encryption key: {e}\n{tb}")
98
155
  raise SystemExit(1) from e
99
156
 
157
+ # Retired prompt overrides: strip 'system_prompt' and
158
+ # 'slide_editing_instructions' out of every stored agent_config blob. The
159
+ # physical columns are dropped inside init_db()'s migration chain, early,
160
+ # because a database that still has them cannot insert a profile; the BLOB
161
+ # strip runs LAST, deliberately — it is the one position no later step can
162
+ # undo by writing a fresh blob (seed_defaults above creates profiles).
163
+ # A blob that will not parse is logged and skipped, never raised, so one bad
164
+ # row cannot abort startup; anything else here is SystemExit(1) like the five
165
+ # steps above.
166
+ logger.info("Stripping retired prompt keys from agent_config blobs...")
167
+ try:
168
+ from src.core.database import get_session_local
169
+ from src.core.strip_retired_prompt_keys import strip_retired_prompt_keys
170
+
171
+ stripped = strip_retired_prompt_keys(get_session_local())
172
+ if stripped:
173
+ logger.info(f"Stripped retired prompt keys from {stripped} row(s)")
174
+ except Exception as e:
175
+ tb = traceback.format_exc()
176
+ logger.error(f"Failed to strip retired prompt keys from agent_config: {e}\n{tb}")
177
+ raise SystemExit(1) from e
178
+
100
179
 
101
180
  def main() -> None:
102
181
  """Start the uvicorn server."""
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: databricks-tellr-app
3
- Version: 0.4.3.dev34
3
+ Version: 0.4.3.dev35
4
4
  Summary: Tellr application package for Databricks Apps
5
5
  Requires-Python: >=3.10
6
6
  Description-Content-Type: text/markdown
@@ -9,13 +9,16 @@ Requires-Dist: uvicorn==0.38.0
9
9
  Requires-Dist: python-multipart==0.0.20
10
10
  Requires-Dist: pydantic==2.12.4
11
11
  Requires-Dist: pydantic-settings==2.12.0
12
- Requires-Dist: databricks-langchain==0.9.0
13
- Requires-Dist: langchain==1.0.5
14
- Requires-Dist: langchain-core==1.0.4
15
- Requires-Dist: langchain-community==0.4.1
16
- Requires-Dist: langchain-text-splitters==1.0.0
12
+ Requires-Dist: databricks-langchain==0.20.0
13
+ Requires-Dist: databricks-openai==0.17.1
14
+ Requires-Dist: langchain==1.3.14
15
+ Requires-Dist: langchain-core==1.5.3
16
+ Requires-Dist: langchain-community==0.4.2
17
+ Requires-Dist: langchain-text-splitters==1.1.2
17
18
  Requires-Dist: litellm==1.80.11
18
19
  Requires-Dist: mcp==1.27.0
20
+ Requires-Dist: openai==3.19.2
21
+ Requires-Dist: openai-agents==0.22.2
19
22
  Requires-Dist: opentelemetry-api==1.38.0
20
23
  Requires-Dist: opentelemetry-sdk==1.38.0
21
24
  Requires-Dist: beautifulsoup4==4.14.2
@@ -47,9 +50,11 @@ Requires-Dist: databricks-ai-bridge==0.21.0
47
50
  Requires-Dist: databricks-ai-search==0.76
48
51
  Requires-Dist: databricks-connect==16.1.7
49
52
  Requires-Dist: databricks-vectorsearch==0.75
50
- Requires-Dist: langchain-classic==1.0.0
51
- Requires-Dist: langgraph==1.0.10
52
- Requires-Dist: langgraph-prebuilt==1.0.10
53
+ Requires-Dist: langchain-classic==1.0.8
54
+ Requires-Dist: langgraph==1.2.10
55
+ Requires-Dist: langgraph-checkpoint==4.1.1
56
+ Requires-Dist: langgraph-prebuilt==1.1.0
57
+ Requires-Dist: langgraph-sdk==0.4.2
53
58
  Requires-Dist: langsmith==0.9.5
54
59
  Requires-Dist: unitycatalog-ai==0.3.2
55
60
  Requires-Dist: unitycatalog-langchain==0.3.0
@@ -19,6 +19,7 @@ setup.py
19
19
  ./src/api/routes/admin.py
20
20
  ./src/api/routes/admin_usage.py
21
21
  ./src/api/routes/agent_config.py
22
+ ./src/api/routes/agent_definitions.py
22
23
  ./src/api/routes/chat.py
23
24
  ./src/api/routes/deck_contributors.py
24
25
  ./src/api/routes/export.py
@@ -42,7 +43,10 @@ setup.py
42
43
  ./src/api/routes/settings/slide_styles.py
43
44
  ./src/api/schemas/__init__.py
44
45
  ./src/api/schemas/agent_config.py
46
+ ./src/api/schemas/agent_definitions.py
45
47
  ./src/api/schemas/feedback.py
48
+ ./src/api/schemas/graph_release_history.py
49
+ ./src/api/schemas/graph_releases.py
46
50
  ./src/api/schemas/requests.py
47
51
  ./src/api/schemas/responses.py
48
52
  ./src/api/schemas/streaming.py
@@ -51,16 +55,20 @@ setup.py
51
55
  ./src/api/schemas/settings/responses.py
52
56
  ./src/api/services/__init__.py
53
57
  ./src/api/services/chat_service.py
58
+ ./src/api/services/deck_level_writer.py
54
59
  ./src/api/services/export_job_queue.py
55
60
  ./src/api/services/feedback_service.py
56
61
  ./src/api/services/job_queue.py
57
62
  ./src/api/services/session_manager.py
58
63
  ./src/api/services/session_naming.py
64
+ ./src/api/services/slide_repository.py
59
65
  ./src/api/services/usage_events.py
60
66
  ./src/api/services/usage_service.py
61
67
  ./src/api/utils/__init__.py
62
68
  ./src/api/utils/validation.py
63
69
  ./src/core/__init__.py
70
+ ./src/core/backfill_session_slides_startup.py
71
+ ./src/core/checkpointer.py
64
72
  ./src/core/config_loader.py
65
73
  ./src/core/context_utils.py
66
74
  ./src/core/database.py
@@ -76,17 +84,29 @@ setup.py
76
84
  ./src/core/permission_context.py
77
85
  ./src/core/prompt_modules.py
78
86
  ./src/core/settings_db.py
87
+ ./src/core/strip_retired_prompt_keys.py
79
88
  ./src/core/user_context.py
89
+ ./src/core/skills/__init__.py
90
+ ./src/core/skills/architect.py
91
+ ./src/core/skills/build_reviewer.py
92
+ ./src/core/skills/builder.py
93
+ ./src/core/skills/data_analyst.py
94
+ ./src/core/skills/deck_reviewer.py
95
+ ./src/core/skills/fix_reviewer.py
96
+ ./src/core/skills/fixer.py
80
97
  ./src/database/__init__.py
81
98
  ./src/database/types.py
82
99
  ./src/database/models/__init__.py
83
100
  ./src/database/models/deck_contributor.py
101
+ ./src/database/models/deck_review.py
84
102
  ./src/database/models/design_system.py
85
103
  ./src/database/models/encryption_key.py
86
104
  ./src/database/models/feedback.py
87
105
  ./src/database/models/genie_space.py
88
106
  ./src/database/models/google_global_credentials.py
89
107
  ./src/database/models/google_oauth_token.py
108
+ ./src/database/models/graph_checkpoint.py
109
+ ./src/database/models/graph_configuration.py
90
110
  ./src/database/models/identity.py
91
111
  ./src/database/models/image.py
92
112
  ./src/database/models/profile.py
@@ -99,31 +119,67 @@ setup.py
99
119
  ./src/database/models/usage_event.py
100
120
  ./src/database/models/user_preference.py
101
121
  ./src/domain/__init__.py
122
+ ./src/domain/conversation_engine.py
123
+ ./src/domain/deck_spec.py
124
+ ./src/domain/finding.py
125
+ ./src/domain/skill_io.py
102
126
  ./src/domain/slide.py
103
127
  ./src/domain/slide_deck.py
104
128
  ./src/services/__init__.py
105
129
  ./src/services/agent.py
130
+ ./src/services/agent_definition_manifest_v1.py
106
131
  ./src/services/agent_factory.py
132
+ ./src/services/agent_model_payload.py
133
+ ./src/services/agent_resolution.py
134
+ ./src/services/agent_runtime.py
135
+ ./src/services/agent_runtime_identity.py
136
+ ./src/services/agent_schema_registry.py
137
+ ./src/services/agent_schema_types.py
138
+ ./src/services/agent_test_workbench.py
139
+ ./src/services/collaboration_history.py
107
140
  ./src/services/config_service.py
108
141
  ./src/services/config_validator.py
142
+ ./src/services/conversation_pins.py
143
+ ./src/services/deck_css_aggregator.py
144
+ ./src/services/deck_review_store.py
109
145
  ./src/services/design_system_compiler.py
110
146
  ./src/services/design_system_service.py
111
147
  ./src/services/design_system_templates.py
112
148
  ./src/services/drive_uploader.py
149
+ ./src/services/foreman_service.py
150
+ ./src/services/gateway_openai.py
113
151
  ./src/services/genie_service.py
114
152
  ./src/services/google_slides_auth.py
115
153
  ./src/services/google_slides_prompts_defaults.py
154
+ ./src/services/graph_configuration.py
155
+ ./src/services/graph_configuration_bootstrap.py
156
+ ./src/services/graph_configuration_content.py
157
+ ./src/services/graph_configuration_draft.py
158
+ ./src/services/graph_configuration_publication.py
159
+ ./src/services/graph_configuration_rollback.py
160
+ ./src/services/graph_configuration_seed.py
161
+ ./src/services/graph_configuration_workbench.py
162
+ ./src/services/graph_definition_manifest.py
163
+ ./src/services/graph_release_evidence.py
164
+ ./src/services/graph_release_history.py
116
165
  ./src/services/html_to_google_slides.py
117
166
  ./src/services/html_to_pptx.py
118
167
  ./src/services/identity_provider.py
119
168
  ./src/services/image_service.py
120
169
  ./src/services/image_tools.py
170
+ ./src/services/model_endpoint_catalog.py
171
+ ./src/services/model_endpoint_probe.py
121
172
  ./src/services/permission_service.py
173
+ ./src/services/persisted_graph_release.py
122
174
  ./src/services/pptx_from_html_huashu.py
123
175
  ./src/services/pptx_from_records.py
124
176
  ./src/services/pptx_prompts_defaults.py
125
177
  ./src/services/profile_service.py
178
+ ./src/services/prompt_assembler.py
179
+ ./src/services/shared_deck_attribution.py
180
+ ./src/services/spec_sync.py
126
181
  ./src/services/streaming_callback.py
182
+ ./src/services/template_sections.py
127
183
  ./src/services/validator.py
128
184
  ./src/services/converter_jail/__init__.py
129
185
  ./src/services/converter_jail/ast_guard.py
@@ -134,6 +190,12 @@ setup.py
134
190
  ./src/services/converter_jail/protocol.py
135
191
  ./src/services/evaluation/__init__.py
136
192
  ./src/services/evaluation/llm_judge.py
193
+ ./src/services/graph/__init__.py
194
+ ./src/services/graph/builder.py
195
+ ./src/services/graph/event_emitter.py
196
+ ./src/services/graph/nodes.py
197
+ ./src/services/graph/routers.py
198
+ ./src/services/graph/state.py
137
199
  ./src/services/identity_providers/__init__.py
138
200
  ./src/services/identity_providers/account_provider.py
139
201
  ./src/services/identity_providers/local_provider.py
@@ -149,6 +211,7 @@ setup.py
149
211
  ./src/utils/css_utils.py
150
212
  ./src/utils/ds_asset_utils.py
151
213
  ./src/utils/error_handling.py
214
+ ./src/utils/graph_safety.py
152
215
  ./src/utils/html_safety.py
153
216
  ./src/utils/html_utils.py
154
217
  ./src/utils/image_utils.py
@@ -181,6 +244,7 @@ src/api/routes/_authz.py
181
244
  src/api/routes/admin.py
182
245
  src/api/routes/admin_usage.py
183
246
  src/api/routes/agent_config.py
247
+ src/api/routes/agent_definitions.py
184
248
  src/api/routes/chat.py
185
249
  src/api/routes/deck_contributors.py
186
250
  src/api/routes/export.py
@@ -204,7 +268,10 @@ src/api/routes/settings/identities.py
204
268
  src/api/routes/settings/slide_styles.py
205
269
  src/api/schemas/__init__.py
206
270
  src/api/schemas/agent_config.py
271
+ src/api/schemas/agent_definitions.py
207
272
  src/api/schemas/feedback.py
273
+ src/api/schemas/graph_release_history.py
274
+ src/api/schemas/graph_releases.py
208
275
  src/api/schemas/requests.py
209
276
  src/api/schemas/responses.py
210
277
  src/api/schemas/streaming.py
@@ -213,16 +280,20 @@ src/api/schemas/settings/requests.py
213
280
  src/api/schemas/settings/responses.py
214
281
  src/api/services/__init__.py
215
282
  src/api/services/chat_service.py
283
+ src/api/services/deck_level_writer.py
216
284
  src/api/services/export_job_queue.py
217
285
  src/api/services/feedback_service.py
218
286
  src/api/services/job_queue.py
219
287
  src/api/services/session_manager.py
220
288
  src/api/services/session_naming.py
289
+ src/api/services/slide_repository.py
221
290
  src/api/services/usage_events.py
222
291
  src/api/services/usage_service.py
223
292
  src/api/utils/__init__.py
224
293
  src/api/utils/validation.py
225
294
  src/core/__init__.py
295
+ src/core/backfill_session_slides_startup.py
296
+ src/core/checkpointer.py
226
297
  src/core/config_loader.py
227
298
  src/core/context_utils.py
228
299
  src/core/database.py
@@ -238,17 +309,29 @@ src/core/otel_logging.py
238
309
  src/core/permission_context.py
239
310
  src/core/prompt_modules.py
240
311
  src/core/settings_db.py
312
+ src/core/strip_retired_prompt_keys.py
241
313
  src/core/user_context.py
314
+ src/core/skills/__init__.py
315
+ src/core/skills/architect.py
316
+ src/core/skills/build_reviewer.py
317
+ src/core/skills/builder.py
318
+ src/core/skills/data_analyst.py
319
+ src/core/skills/deck_reviewer.py
320
+ src/core/skills/fix_reviewer.py
321
+ src/core/skills/fixer.py
242
322
  src/database/__init__.py
243
323
  src/database/types.py
244
324
  src/database/models/__init__.py
245
325
  src/database/models/deck_contributor.py
326
+ src/database/models/deck_review.py
246
327
  src/database/models/design_system.py
247
328
  src/database/models/encryption_key.py
248
329
  src/database/models/feedback.py
249
330
  src/database/models/genie_space.py
250
331
  src/database/models/google_global_credentials.py
251
332
  src/database/models/google_oauth_token.py
333
+ src/database/models/graph_checkpoint.py
334
+ src/database/models/graph_configuration.py
252
335
  src/database/models/identity.py
253
336
  src/database/models/image.py
254
337
  src/database/models/profile.py
@@ -261,31 +344,67 @@ src/database/models/slide_style_library.py
261
344
  src/database/models/usage_event.py
262
345
  src/database/models/user_preference.py
263
346
  src/domain/__init__.py
347
+ src/domain/conversation_engine.py
348
+ src/domain/deck_spec.py
349
+ src/domain/finding.py
350
+ src/domain/skill_io.py
264
351
  src/domain/slide.py
265
352
  src/domain/slide_deck.py
266
353
  src/services/__init__.py
267
354
  src/services/agent.py
355
+ src/services/agent_definition_manifest_v1.py
268
356
  src/services/agent_factory.py
357
+ src/services/agent_model_payload.py
358
+ src/services/agent_resolution.py
359
+ src/services/agent_runtime.py
360
+ src/services/agent_runtime_identity.py
361
+ src/services/agent_schema_registry.py
362
+ src/services/agent_schema_types.py
363
+ src/services/agent_test_workbench.py
364
+ src/services/collaboration_history.py
269
365
  src/services/config_service.py
270
366
  src/services/config_validator.py
367
+ src/services/conversation_pins.py
368
+ src/services/deck_css_aggregator.py
369
+ src/services/deck_review_store.py
271
370
  src/services/design_system_compiler.py
272
371
  src/services/design_system_service.py
273
372
  src/services/design_system_templates.py
274
373
  src/services/drive_uploader.py
374
+ src/services/foreman_service.py
375
+ src/services/gateway_openai.py
275
376
  src/services/genie_service.py
276
377
  src/services/google_slides_auth.py
277
378
  src/services/google_slides_prompts_defaults.py
379
+ src/services/graph_configuration.py
380
+ src/services/graph_configuration_bootstrap.py
381
+ src/services/graph_configuration_content.py
382
+ src/services/graph_configuration_draft.py
383
+ src/services/graph_configuration_publication.py
384
+ src/services/graph_configuration_rollback.py
385
+ src/services/graph_configuration_seed.py
386
+ src/services/graph_configuration_workbench.py
387
+ src/services/graph_definition_manifest.py
388
+ src/services/graph_release_evidence.py
389
+ src/services/graph_release_history.py
278
390
  src/services/html_to_google_slides.py
279
391
  src/services/html_to_pptx.py
280
392
  src/services/identity_provider.py
281
393
  src/services/image_service.py
282
394
  src/services/image_tools.py
395
+ src/services/model_endpoint_catalog.py
396
+ src/services/model_endpoint_probe.py
283
397
  src/services/permission_service.py
398
+ src/services/persisted_graph_release.py
284
399
  src/services/pptx_from_html_huashu.py
285
400
  src/services/pptx_from_records.py
286
401
  src/services/pptx_prompts_defaults.py
287
402
  src/services/profile_service.py
403
+ src/services/prompt_assembler.py
404
+ src/services/shared_deck_attribution.py
405
+ src/services/spec_sync.py
288
406
  src/services/streaming_callback.py
407
+ src/services/template_sections.py
289
408
  src/services/validator.py
290
409
  src/services/converter_jail/__init__.py
291
410
  src/services/converter_jail/ast_guard.py
@@ -296,6 +415,12 @@ src/services/converter_jail/pptx_runner.py
296
415
  src/services/converter_jail/protocol.py
297
416
  src/services/evaluation/__init__.py
298
417
  src/services/evaluation/llm_judge.py
418
+ src/services/graph/__init__.py
419
+ src/services/graph/builder.py
420
+ src/services/graph/event_emitter.py
421
+ src/services/graph/nodes.py
422
+ src/services/graph/routers.py
423
+ src/services/graph/state.py
299
424
  src/services/identity_providers/__init__.py
300
425
  src/services/identity_providers/account_provider.py
301
426
  src/services/identity_providers/local_provider.py
@@ -311,6 +436,7 @@ src/utils/__init__.py
311
436
  src/utils/css_utils.py
312
437
  src/utils/ds_asset_utils.py
313
438
  src/utils/error_handling.py
439
+ src/utils/graph_safety.py
314
440
  src/utils/html_safety.py
315
441
  src/utils/html_utils.py
316
442
  src/utils/image_utils.py
@@ -3,13 +3,16 @@ uvicorn==0.38.0
3
3
  python-multipart==0.0.20
4
4
  pydantic==2.12.4
5
5
  pydantic-settings==2.12.0
6
- databricks-langchain==0.9.0
7
- langchain==1.0.5
8
- langchain-core==1.0.4
9
- langchain-community==0.4.1
10
- langchain-text-splitters==1.0.0
6
+ databricks-langchain==0.20.0
7
+ databricks-openai==0.17.1
8
+ langchain==1.3.14
9
+ langchain-core==1.5.3
10
+ langchain-community==0.4.2
11
+ langchain-text-splitters==1.1.2
11
12
  litellm==1.80.11
12
13
  mcp==1.27.0
14
+ openai==3.19.2
15
+ openai-agents==0.22.2
13
16
  opentelemetry-api==1.38.0
14
17
  opentelemetry-sdk==1.38.0
15
18
  beautifulsoup4==4.14.2
@@ -41,9 +44,11 @@ databricks-ai-bridge==0.21.0
41
44
  databricks-ai-search==0.76
42
45
  databricks-connect==16.1.7
43
46
  databricks-vectorsearch==0.75
44
- langchain-classic==1.0.0
45
- langgraph==1.0.10
46
- langgraph-prebuilt==1.0.10
47
+ langchain-classic==1.0.8
48
+ langgraph==1.2.10
49
+ langgraph-checkpoint==4.1.1
50
+ langgraph-prebuilt==1.1.0
51
+ langgraph-sdk==0.4.2
47
52
  langsmith==0.9.5
48
53
  unitycatalog-ai==0.3.2
49
54
  unitycatalog-langchain==0.3.0
@@ -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.dev34"
7
+ version = "0.4.3.dev35"
8
8
  description = "Tellr application package for Databricks Apps"
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.10"
@@ -14,13 +14,19 @@ dependencies = [
14
14
  "python-multipart==0.0.20",
15
15
  "pydantic==2.12.4",
16
16
  "pydantic-settings==2.12.0",
17
- "databricks-langchain==0.9.0",
18
- "langchain==1.0.5",
19
- "langchain-core==1.0.4",
20
- "langchain-community==0.4.1",
21
- "langchain-text-splitters==1.0.0",
17
+ "databricks-langchain==0.20.0",
18
+ "databricks-openai==0.17.1",
19
+ "langchain==1.3.14",
20
+ "langchain-core==1.5.3",
21
+ "langchain-community==0.4.2",
22
+ "langchain-text-splitters==1.1.2",
22
23
  "litellm==1.80.11",
23
24
  "mcp==1.27.0",
25
+ # agent_runtime.py and model_endpoint_probe.py import openai at module level;
26
+ # openai and openai-agents pinned to the versions databricks-openai 0.17.1 resolves
27
+ # to so the Apps build matches local tests.
28
+ "openai==3.19.2",
29
+ "openai-agents==0.22.2",
24
30
  "opentelemetry-api==1.38.0",
25
31
  "opentelemetry-sdk==1.38.0",
26
32
  "beautifulsoup4==4.14.2",
@@ -73,6 +79,13 @@ dependencies = [
73
79
  # `pip install databricks-tellr-app` is safe.
74
80
  # SDR-4437 MEDIUM-7 (July 2026): the 7 formerly-ranged direct deps above
75
81
  # this block are now exact-pinned too; same refresh discipline.
82
+ # PR2 LangGraph stack bump (August 2026): updated langchain 1.0.5→1.3.14,
83
+ # langchain-core 1.0.4→1.5.3, langchain-community 0.4.1→0.4.2,
84
+ # langchain-text-splitters 1.0.0→1.1.2, langchain-classic 1.0.0→1.0.8,
85
+ # langgraph 1.0.10→1.2.10, added langgraph-checkpoint==4.1.1,
86
+ # langgraph-prebuilt 1.0.10→1.1.0, added langgraph-sdk==0.4.2. These match
87
+ # the repo-root requirements.txt and pyproject.toml. MUST be re-verified via
88
+ # a devloop deploy on db-tellr-dev-pinfix or equivalent before PR3 ships.
76
89
  "databricks-sdk==0.120.0",
77
90
  "mlflow[databricks]==3.14.0",
78
91
  "mlflow-skinny==3.14.0",
@@ -81,9 +94,11 @@ dependencies = [
81
94
  "databricks-ai-search==0.76",
82
95
  "databricks-connect==16.1.7",
83
96
  "databricks-vectorsearch==0.75",
84
- "langchain-classic==1.0.0",
85
- "langgraph==1.0.10",
86
- "langgraph-prebuilt==1.0.10",
97
+ "langchain-classic==1.0.8",
98
+ "langgraph==1.2.10",
99
+ "langgraph-checkpoint==4.1.1",
100
+ "langgraph-prebuilt==1.1.0",
101
+ "langgraph-sdk==0.4.2",
87
102
  "langsmith==0.9.5",
88
103
  "unitycatalog-ai==0.3.2",
89
104
  "unitycatalog-langchain==0.3.0",
@@ -24,5 +24,56 @@
24
24
  }
25
25
  ],
26
26
  "chat_prompt": "Create 3 slides about the benefits of AI in modern healthcare, with a title slide, key advantages, and future outlook.",
27
- "chat_reply": "Here's your deck with 3 slides! I've created:\n\n1. **Title Slide** — introducing AI in healthcare\n2. **Key Advantages** — early detection, personalized treatment, operational efficiency, and drug discovery\n3. **Future Outlook** — predictive monitoring, AI-assisted surgery, and global health equity\n\nFeel free to ask me to refine any slide, add new ones, or change the style."
27
+ "chat_reply": "Here's your deck with 3 slides! I've created:\n\n1. **Title Slide** — introducing AI in healthcare\n2. **Key Advantages** — early detection, personalized treatment, operational efficiency, and drug discovery\n3. **Future Outlook** — predictive monitoring, AI-assisted surgery, and global health equity\n\nFeel free to ask me to refine any slide, add new ones, or change the style.",
28
+ "deck_spec": {
29
+ "title": "Example Deck — AI in Healthcare",
30
+ "audience": "A first-time Tellr user taking the product tour: a general business audience, with no clinical or machine-learning background assumed.",
31
+ "purpose": "Show a new user what a finished Tellr deck looks like, on a subject that needs no domain briefing, so they can see structure and styling before they write their own prompt.",
32
+ "argument": "AI already delivers concrete benefits across diagnosis, treatment and research, and its near-term trajectory points at prevention and wider access, so it is worth engaging with now rather than watching.",
33
+ "call_to_action": "Ask the assistant to refine a slide, add a new one, or change the style: the next step of the tour.",
34
+ "narrative_arc": [
35
+ "Frame the subject: AI is already changing patient care, diagnostics and medical research, a transformation under way rather than a forecast.",
36
+ "Ground that claim in four advantages visible today: earlier disease detection, personalized treatment, operational efficiency, and faster drug discovery.",
37
+ "Extend today's gains into the near future and land on access: predictive monitoring, AI-assisted surgery, and specialist-level care reaching underserved communities."
38
+ ],
39
+ "design_contract": {
40
+ "design_system_id": null,
41
+ "template_id": null,
42
+ "slide_style_id": null
43
+ },
44
+ "resolved_data": {
45
+ "synthesis": "No live data was resolved for this deck. The tour ships fixed illustrative bytes so every user sees the same three slides; the claims are widely reported general benefits of AI in healthcare, not figures drawn from a source system.",
46
+ "figures": [],
47
+ "gaps": [
48
+ "No quantitative source: the deck cites no measured figure, so no claim in it is traceable to a dataset.",
49
+ "No organisation context: the tour deck is deliberately generic and names no customer, hospital or vendor."
50
+ ]
51
+ },
52
+ "slides": [
53
+ {
54
+ "position": 0,
55
+ "purpose": "Open the deck: name the subject and frame AI in healthcare as a transformation already under way.",
56
+ "content_brief": "Title slide. Badge reading 'AI & Healthcare', headline 'The Benefits of AI in Modern Healthcare', and a one-line standfirst naming the three areas the deck covers: patient care, diagnostics, and medical research.",
57
+ "assumes": "Nothing. This is the deck's first slide.",
58
+ "hands_off": "The reader knows the subject and expects concrete advantages next.",
59
+ "data_references": []
60
+ },
61
+ {
62
+ "position": 1,
63
+ "purpose": "Make the case with four concrete present-day advantages, so the benefit claim is specific rather than atmospheric.",
64
+ "content_brief": "Four bolded items, one explanatory clause each: early disease detection (imaging patterns a human reader can miss), personalized treatment plans (genetics, lifestyle, history), operational efficiency (scheduling, documentation, triage), and drug discovery acceleration (molecular simulation at scale).",
65
+ "assumes": "The reader has accepted the framing from the title slide.",
66
+ "hands_off": "The present-tense case is made; the reader is ready to look forward.",
67
+ "data_references": []
68
+ },
69
+ {
70
+ "position": 2,
71
+ "purpose": "Extend the argument from today's gains to the near future and close on access, so the deck ends on consequence rather than a list.",
72
+ "content_brief": "Three bolded forward-looking items: predictive health monitoring (wearables shifting medicine from reactive to proactive), AI-assisted surgery (robotics guided by real-time analysis), and global health equity (mobile diagnostics for underserved communities). Close on the italic line about healthcare becoming intelligent, personalized and accessible to all.",
73
+ "assumes": "The reader accepts the four present-day advantages from the previous slide.",
74
+ "hands_off": "The deck ends; the reader leaves with the equity claim as the takeaway.",
75
+ "data_references": []
76
+ }
77
+ ]
78
+ }
28
79
  }