dao-ai 0.0.28__tar.gz → 0.0.30__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 (362) hide show
  1. dao_ai-0.0.30/.python-version +1 -0
  2. {dao_ai-0.0.28 → dao_ai-0.0.30}/PKG-INFO +3 -2
  3. {dao_ai-0.0.28 → dao_ai-0.0.30}/pyproject.toml +4 -3
  4. {dao_ai-0.0.28 → dao_ai-0.0.30}/requirements.txt +1 -0
  5. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/config.py +26 -2
  6. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/providers/databricks.py +7 -0
  7. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/tools/genie.py +0 -3
  8. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_databricks.py +69 -0
  9. dao_ai-0.0.28/.python-version +0 -1
  10. {dao_ai-0.0.28 → dao_ai-0.0.30}/.gitignore +0 -0
  11. {dao_ai-0.0.28 → dao_ai-0.0.30}/CHANGELOG.md +0 -0
  12. {dao_ai-0.0.28 → dao_ai-0.0.30}/CONTRIBUTING.md +0 -0
  13. {dao_ai-0.0.28 → dao_ai-0.0.30}/LICENSE +0 -0
  14. {dao_ai-0.0.28 → dao_ai-0.0.30}/Makefile +0 -0
  15. {dao_ai-0.0.28 → dao_ai-0.0.30}/README.md +0 -0
  16. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/Makefile +0 -0
  17. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/REFACTORING_SUMMARY.md +0 -0
  18. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/base-environment-serverless.yaml +0 -0
  19. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/demo_docs/BRAND_REP_DEMO_SUMMARY.md +0 -0
  20. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/demo_docs/demo_scripts/brand_rep_product_education_demo.md +0 -0
  21. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/demo_docs/demo_scripts/store_associate_ai_assistant_demo.md +0 -0
  22. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/demo_docs/demo_scripts/store_manager_alert_response_demo.md +0 -0
  23. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/development_workflows.md +0 -0
  24. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/.gitkeep +0 -0
  25. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/Makefile +0 -0
  26. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/agent_implementation.mmd +0 -0
  27. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/agent_tools_architecture.mmd +0 -0
  28. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/agents-and-tools/agent-troubleshooting.md +0 -0
  29. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-best-practices.md +0 -0
  30. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-development-patterns.md +0 -0
  31. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-performance.md +0 -0
  32. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-quickstart.md +0 -0
  33. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/agents-and-tools/ai-agents.md +0 -0
  34. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/agents-and-tools/overview.md +0 -0
  35. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/agents-and-tools/references/agent-reference.md +0 -0
  36. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/agents-and-tools/references/tools-reference.md +0 -0
  37. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/applications/streamlit-app.md +0 -0
  38. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/architecture/overview.md +0 -0
  39. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/architecture.mmd +0 -0
  40. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/architecture.png +0 -0
  41. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/customer_preparation_guide.md +0 -0
  42. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/databricks_integration.mmd +0 -0
  43. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/deployment/production.md +0 -0
  44. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/development/contributing.md +0 -0
  45. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/employee_tools_guide.md +0 -0
  46. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/getting-started/installation.md +0 -0
  47. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/getting-started/mkdocs-quickstart.md +0 -0
  48. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/getting-started/quick-start.md +0 -0
  49. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/index.md +0 -0
  50. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/mkdocs.yml +0 -0
  51. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/scenario_1_architecture.mmd +0 -0
  52. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/scenario_1_flow.mmd +0 -0
  53. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/setup-docs.sh +0 -0
  54. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/task_assignment_workflow_guide.md +0 -0
  55. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/docs/tools/overview.md +0 -0
  56. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/examples/customer_preparation_workflow.py +0 -0
  57. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/examples/task_assignment_workflow.py +0 -0
  58. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/load-env.sh +0 -0
  59. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/CSS_REFACTORING_SUMMARY.md +0 -0
  60. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/DEMO_CONTROLS_RESTORED.md +0 -0
  61. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/DEMO_IMPLEMENTATION_SUMMARY.md +0 -0
  62. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/DEMO_QUICK_START.md +0 -0
  63. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/Dockerfile +0 -0
  64. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/HOMEPAGE_README.md +0 -0
  65. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/Makefile +0 -0
  66. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/README.md +0 -0
  67. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/app.py +0 -0
  68. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/app.yaml +0 -0
  69. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/__init__.py +0 -0
  70. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/backup_homepage.py +0 -0
  71. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/chat.py +0 -0
  72. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/enhanced_charts.py +0 -0
  73. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/enhanced_navigation.py +0 -0
  74. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/__init__.py +0 -0
  75. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/__init__.py +0 -0
  76. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/associate_homepage.py +0 -0
  77. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/dashboard_tab.py +0 -0
  78. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/my_tasks_tab.py +0 -0
  79. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/performance_tab.py +0 -0
  80. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/products_tab.py +0 -0
  81. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/schedule_tab.py +0 -0
  82. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/__init__.py +0 -0
  83. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/chat_integration.py +0 -0
  84. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/kpi_summary.py +0 -0
  85. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/notifications.py +0 -0
  86. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/homepage.py +0 -0
  87. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/__init__.py +0 -0
  88. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/alerts_tab.py +0 -0
  89. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/analytics_tab.py +0 -0
  90. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/dashboard_tab.py +0 -0
  91. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/demo_alerts.py +0 -0
  92. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/inventory_tab.py +0 -0
  93. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/manager_homepage.py +0 -0
  94. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/operations_tab.py +0 -0
  95. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/team_tab.py +0 -0
  96. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/__init__.py +0 -0
  97. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/ai_insights_tab.py +0 -0
  98. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/executive_dashboard_tab.py +0 -0
  99. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/geographical_analysis_tab.py +0 -0
  100. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/performance_metrics_tab.py +0 -0
  101. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/strategic_insights_tab.py +0 -0
  102. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/vp_homepage.py +0 -0
  103. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/metrics.py +0 -0
  104. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/navigation.py +0 -0
  105. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/oldhomepage.py +0 -0
  106. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/components/styles.py +0 -0
  107. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/config.yaml +0 -0
  108. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/demo_docs/BRAND_REP_DEMO_SUMMARY.md +0 -0
  109. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/demo_docs/comprehensive_demo_script.md +0 -0
  110. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/brand_rep_product_education_demo.md +0 -0
  111. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/store_associate_ai_assistant_demo.md +0 -0
  112. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/store_manager_alert_response_demo.md +0 -0
  113. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/dev/README.md +0 -0
  114. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/dev/__init__.py +0 -0
  115. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/dev/components/__init__.py +0 -0
  116. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/dev/components/dashboard_card.py +0 -0
  117. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/dev/demo_alerts.py +0 -0
  118. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/dev/examples/sample_dashboard.py +0 -0
  119. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/pages/__init__.py +0 -0
  120. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/pages/component_showcase.py +0 -0
  121. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/pages/dev_playground.py +0 -0
  122. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/pages/playground.py +0 -0
  123. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/pages_wip/daily_operations.py +0 -0
  124. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/pages_wip/inventory.py +0 -0
  125. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/pages_wip/my_schedule.py +0 -0
  126. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/pages_wip/my_tasks.py +0 -0
  127. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/pages_wip/orders.py +0 -0
  128. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/pages_wip/products_promotions.py +0 -0
  129. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/pages_wip/staff.py +0 -0
  130. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/pages_wip/team_insights.py +0 -0
  131. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/pyproject.toml +0 -0
  132. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/requirements.txt +0 -0
  133. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/static/css/style.css +0 -0
  134. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/styles/README.md +0 -0
  135. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/styles/__init__.py +0 -0
  136. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/styles/base.py +0 -0
  137. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/styles/components.py +0 -0
  138. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/styles/dashboard.py +0 -0
  139. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/styles/homepage.py +0 -0
  140. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/styles/theme.py +0 -0
  141. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/test_vip_notification.py +0 -0
  142. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/tests/test_calculations.py +0 -0
  143. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/utils/config.py +0 -0
  144. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/utils/database.py +0 -0
  145. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/utils/model_serving.py +0 -0
  146. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app/utils/store_context.py +0 -0
  147. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/Makefile +0 -0
  148. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/README.md +0 -0
  149. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/app.py +0 -0
  150. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/__init__.py +0 -0
  151. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/__init__.py +0 -0
  152. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_components.py +0 -0
  153. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_components_enhanced.py +0 -0
  154. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_styles.py +0 -0
  155. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin_styles.py +0 -0
  156. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/TAILADMIN_README.md +0 -0
  157. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/homepage_tailadmin.py +0 -0
  158. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/tailadmin_demo.py +0 -0
  159. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/tailadmin_implementation_guide.py +0 -0
  160. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/test_vp_dashboard.py +0 -0
  161. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/vp_dashboard_enhanced.py +0 -0
  162. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/vp_dashboard_tailadmin.py +0 -0
  163. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/components_demo.py +0 -0
  164. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/homepage.py +0 -0
  165. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/implementation_guide.py +0 -0
  166. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/vp_dashboard_clean.py +0 -0
  167. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/vp_dashboard_enhanced.py +0 -0
  168. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pyproject.toml +0 -0
  169. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/tests/__init__.py +0 -0
  170. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/streamlit_store_app_tailadmin/tests/test_imports.py +0 -0
  171. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/tests/.gitkeep +0 -0
  172. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/tests/README.md +0 -0
  173. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/tests/images/doritos_upc.png +0 -0
  174. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/tests/images/lays_upc.png +0 -0
  175. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/tests/manager_demo_script.md +0 -0
  176. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/tests/notebook_vector_search_test.py +0 -0
  177. {dao_ai-0.0.28 → dao_ai-0.0.30}/apps/dais2025/store-app/tests/test_vector_search_integration.py +0 -0
  178. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/dais2025/model_config_dais.yaml +0 -0
  179. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/deep_research.yaml +0 -0
  180. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/executive_assistant.yaml +0 -0
  181. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/genie.yaml +0 -0
  182. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/genie_and_genie_mcp.yaml +0 -0
  183. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/genie_and_vector_search.yaml +0 -0
  184. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/genie_with_conversion_id.yaml +0 -0
  185. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/human_in_the_loop.yaml +0 -0
  186. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/jira.yaml +0 -0
  187. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/mcp.yaml +0 -0
  188. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/mcp_with_uc_connection.yaml +0 -0
  189. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/minimal.yaml +0 -0
  190. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/prompt_optimization.yaml +0 -0
  191. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/prompt_registry.yaml +0 -0
  192. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/reservations.yaml +0 -0
  193. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/slack.yaml +0 -0
  194. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/examples/vector_search_with_reranking.yaml +0 -0
  195. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/hardware_store/supervisor.yaml +0 -0
  196. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/hardware_store/supervisor_postgres.yaml +0 -0
  197. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/hardware_store/swarm.yaml +0 -0
  198. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/quick_serve_restaurant/.gitkeep +0 -0
  199. {dao_ai-0.0.28 → dao_ai-0.0.30}/config/quick_serve_restaurant/quick-serve-restaurant.yaml +0 -0
  200. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/appointments.sql +0 -0
  201. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/appointments_data.sql +0 -0
  202. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/brand_rep_demo_data.sql +0 -0
  203. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/brand_rep_demo_queries.sql +0 -0
  204. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/brand_rep_demo_tables.sql +0 -0
  205. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/brand_rep_demo_validation.sql +0 -0
  206. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/customers.sql +0 -0
  207. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/customers_data.sql +0 -0
  208. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/dim_stores.sql +0 -0
  209. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/dim_stores_data.sql +0 -0
  210. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/employee_performance.sql +0 -0
  211. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/employee_performance_data.sql +0 -0
  212. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/employee_tasks.sql +0 -0
  213. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/employee_tasks_data.sql +0 -0
  214. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/inventory.sql +0 -0
  215. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/inventory_data.sql +0 -0
  216. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/managers.sql +0 -0
  217. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/managers_data.sql +0 -0
  218. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/product_data.sql +0 -0
  219. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/products.sql +0 -0
  220. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/dais2025/task_assignments.sql +0 -0
  221. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/hardware_store/inventory.snappy.parquet +0 -0
  222. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/hardware_store/inventory.sql +0 -0
  223. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/hardware_store/products.snappy.parquet +0 -0
  224. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/hardware_store/products.sql +0 -0
  225. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/quick_serve_restaurant/.gitkeep +0 -0
  226. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/quick_serve_restaurant/fulfil_item_orders.sql +0 -0
  227. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/quick_serve_restaurant/items_description.csv +0 -0
  228. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/quick_serve_restaurant/items_description.sql +0 -0
  229. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/quick_serve_restaurant/items_raw.csv +0 -0
  230. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/quick_serve_restaurant/items_raw.sql +0 -0
  231. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/quick_serve_restaurant/orders_raw.csv +0 -0
  232. {dao_ai-0.0.28 → dao_ai-0.0.30}/data/quick_serve_restaurant/orders_raw.sql +0 -0
  233. {dao_ai-0.0.28 → dao_ai-0.0.30}/databricks.yaml.template +0 -0
  234. {dao_ai-0.0.28 → dao_ai-0.0.30}/docs/genie.png +0 -0
  235. {dao_ai-0.0.28 → dao_ai-0.0.30}/docs/hardware_store/README.md +0 -0
  236. {dao_ai-0.0.28 → dao_ai-0.0.30}/docs/hardware_store/retail_supervisor.png +0 -0
  237. {dao_ai-0.0.28 → dao_ai-0.0.30}/docs/hardware_store/retail_swarm.png +0 -0
  238. {dao_ai-0.0.28 → dao_ai-0.0.30}/docs/quick_serve_restaurant/.gitkeep +0 -0
  239. {dao_ai-0.0.28 → dao_ai-0.0.30}/docs/quick_serve_restaurant/quick-serve-restaurant.png +0 -0
  240. {dao_ai-0.0.28 → dao_ai-0.0.30}/environment.yaml +0 -0
  241. {dao_ai-0.0.28 → dao_ai-0.0.30}/examples/dais2025/examples.yaml +0 -0
  242. {dao_ai-0.0.28 → dao_ai-0.0.30}/examples/deep_research/examples.yaml +0 -0
  243. {dao_ai-0.0.28 → dao_ai-0.0.30}/examples/executive_assistant/examples.yaml +0 -0
  244. {dao_ai-0.0.28 → dao_ai-0.0.30}/examples/hardware_store/examples.yaml +0 -0
  245. {dao_ai-0.0.28 → dao_ai-0.0.30}/examples/quick_serve_restaurant/.gitkeep +0 -0
  246. {dao_ai-0.0.28 → dao_ai-0.0.30}/examples/quick_serve_restaurant/examples.yaml +0 -0
  247. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/dais2025/extract_store_numbers.sql +0 -0
  248. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/dais2025/find_inventory_by_sku.sql +0 -0
  249. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/dais2025/find_inventory_by_upc.sql +0 -0
  250. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/dais2025/find_product_by_sku.sql +0 -0
  251. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/dais2025/find_product_by_upc.sql +0 -0
  252. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/dais2025/find_store_by_number.sql +0 -0
  253. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/dais2025/find_store_inventory_by_sku.sql +0 -0
  254. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/dais2025/find_store_inventory_by_upc.sql +0 -0
  255. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/hardware_store/find_inventory_by_sku.sql +0 -0
  256. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/hardware_store/find_inventory_by_upc.sql +0 -0
  257. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/hardware_store/find_product_by_sku.sql +0 -0
  258. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/hardware_store/find_product_by_upc.sql +0 -0
  259. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/hardware_store/find_store_inventory_by_sku.sql +0 -0
  260. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/hardware_store/find_store_inventory_by_upc.sql +0 -0
  261. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/quick_serve_restaurant/.gitkeep +0 -0
  262. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/quick_serve_restaurant/insert_coffee_order.sql +0 -0
  263. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/quick_serve_restaurant/lookup_items_by_descriptions.sql +0 -0
  264. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/quick_serve_restaurant/match_historical_item_order_by_date.sql +0 -0
  265. {dao_ai-0.0.28 → dao_ai-0.0.30}/functions/quick_serve_restaurant/match_item_by_description_and_price.sql +0 -0
  266. {dao_ai-0.0.28 → dao_ai-0.0.30}/notebooks/01_ingest_and_transform.py +0 -0
  267. {dao_ai-0.0.28 → dao_ai-0.0.30}/notebooks/02_provision_vector_search.py +0 -0
  268. {dao_ai-0.0.28 → dao_ai-0.0.30}/notebooks/03_provision_lakebase.py +0 -0
  269. {dao_ai-0.0.28 → dao_ai-0.0.30}/notebooks/04_unity_catalog_tools.py +0 -0
  270. {dao_ai-0.0.28 → dao_ai-0.0.30}/notebooks/05_deploy_agent.py +0 -0
  271. {dao_ai-0.0.28 → dao_ai-0.0.30}/notebooks/06_generate_evaluation_data.py +0 -0
  272. {dao_ai-0.0.28 → dao_ai-0.0.30}/notebooks/07_run_evaluation.py +0 -0
  273. {dao_ai-0.0.28 → dao_ai-0.0.30}/notebooks/08_run_examples.py +0 -0
  274. {dao_ai-0.0.28 → dao_ai-0.0.30}/notebooks/09_evaluate_inferences.py +0 -0
  275. {dao_ai-0.0.28 → dao_ai-0.0.30}/notebooks/10_optimize_prompts.py +0 -0
  276. {dao_ai-0.0.28 → dao_ai-0.0.30}/notebooks/99_scratchpad.py +0 -0
  277. {dao_ai-0.0.28 → dao_ai-0.0.30}/notebooks/INVESTech.py +0 -0
  278. {dao_ai-0.0.28 → dao_ai-0.0.30}/schemas/bundle_config_schema.json +0 -0
  279. {dao_ai-0.0.28 → dao_ai-0.0.30}/schemas/model_config_schema.json +0 -0
  280. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dais2025/__init__.py +0 -0
  281. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dais2025/models.py +0 -0
  282. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dais2025/tools/__init__.py +0 -0
  283. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dais2025/tools/customer.py +0 -0
  284. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dais2025/tools/employee.py +0 -0
  285. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dais2025/tools/executive.py +0 -0
  286. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dais2025/tools/genie.py +0 -0
  287. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dais2025/tools/inventory.py +0 -0
  288. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dais2025/tools/models.py +0 -0
  289. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dais2025/tools/store.py +0 -0
  290. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/__init__.py +0 -0
  291. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/agent_as_code.py +0 -0
  292. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/catalog.py +0 -0
  293. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/chat_models.py +0 -0
  294. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/cli.py +0 -0
  295. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/graph.py +0 -0
  296. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/guardrails.py +0 -0
  297. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/hooks/__init__.py +0 -0
  298. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/hooks/core.py +0 -0
  299. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/memory/__init__.py +0 -0
  300. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/memory/base.py +0 -0
  301. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/memory/core.py +0 -0
  302. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/memory/postgres.py +0 -0
  303. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/messages.py +0 -0
  304. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/models.py +0 -0
  305. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/nodes.py +0 -0
  306. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/prompts.py +0 -0
  307. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/providers/__init__.py +0 -0
  308. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/providers/base.py +0 -0
  309. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/state.py +0 -0
  310. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/tools/__init__.py +0 -0
  311. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/tools/agent.py +0 -0
  312. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/tools/core.py +0 -0
  313. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/tools/human_in_the_loop.py +0 -0
  314. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/tools/mcp.py +0 -0
  315. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/tools/python.py +0 -0
  316. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/tools/slack.py +0 -0
  317. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/tools/time.py +0 -0
  318. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/tools/unity_catalog.py +0 -0
  319. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/tools/vector_search.py +0 -0
  320. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/types.py +0 -0
  321. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/utils.py +0 -0
  322. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/dao_ai/vector_search.py +0 -0
  323. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/hardware_store/__init__.py +0 -0
  324. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/hardware_store/hooks.py +0 -0
  325. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/hardware_store/tools.py +0 -0
  326. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/quick_serve_restaurant/.gitkeep +0 -0
  327. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/quick_serve_restaurant/__init__.py +0 -0
  328. {dao_ai-0.0.28 → dao_ai-0.0.30}/src/quick_serve_restaurant/tools.py +0 -0
  329. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/config/test_model_config.yaml +0 -0
  330. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/conftest.py +0 -0
  331. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_catalog.py +0 -0
  332. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_chat_history.py +0 -0
  333. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_config.py +0 -0
  334. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_function_parsing.py +0 -0
  335. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_genie.py +0 -0
  336. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_genie_conversation_ids_in_outputs.py +0 -0
  337. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_genie_databricks_integration.py +0 -0
  338. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_hooks.py +0 -0
  339. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_inference.py +0 -0
  340. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_inference_integration.py +0 -0
  341. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_mcp.py +0 -0
  342. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_mcp_function_model.py +0 -0
  343. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_messages.py +0 -0
  344. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_models.py +0 -0
  345. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_postgres_integration.py +0 -0
  346. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_prompt_optimizations.py +0 -0
  347. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_prompts.py +0 -0
  348. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_reranking.py +0 -0
  349. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_reranking_integration.py +0 -0
  350. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_state.py +0 -0
  351. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_summarization_inference.py +0 -0
  352. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_tools.py +0 -0
  353. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_types.py +0 -0
  354. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_unity_catalog.py +0 -0
  355. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_utils.py +0 -0
  356. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/test_vector_search.py +0 -0
  357. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/dao_ai/weather_server_mcp.py +0 -0
  358. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/hardware_store/.gitkeep +0 -0
  359. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/hardware_store/test_graph.py +0 -0
  360. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/images/doritos_upc.png +0 -0
  361. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/images/lays_upc.png +0 -0
  362. {dao_ai-0.0.28 → dao_ai-0.0.30}/tests/quick_serve_restaurant/.gitkeep +0 -0
@@ -0,0 +1 @@
1
+ 3.11
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dao-ai
3
- Version: 0.0.28
3
+ Version: 0.0.30
4
4
  Summary: DAO AI: A modular, multi-agent orchestration framework for complex AI workflows. Supports agent handoff, tool integration, and dynamic configuration via YAML.
5
5
  Project-URL: Homepage, https://github.com/natefleming/dao-ai
6
6
  Project-URL: Documentation, https://natefleming.github.io/dao-ai
@@ -18,12 +18,13 @@ Classifier: Intended Audience :: Science/Research
18
18
  Classifier: License :: OSI Approved :: MIT License
19
19
  Classifier: Operating System :: OS Independent
20
20
  Classifier: Programming Language :: Python :: 3
21
+ Classifier: Programming Language :: Python :: 3.11
21
22
  Classifier: Programming Language :: Python :: 3.12
22
23
  Classifier: Programming Language :: Python :: 3.13
23
24
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
24
25
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
26
  Classifier: Topic :: System :: Distributed Computing
26
- Requires-Python: >=3.12
27
+ Requires-Python: >=3.11
27
28
  Requires-Dist: databricks-agents>=1.7.0
28
29
  Requires-Dist: databricks-langchain>=0.8.1
29
30
  Requires-Dist: databricks-mcp>=0.3.0
@@ -4,11 +4,11 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "dao-ai"
7
- version = "0.0.28"
7
+ version = "0.0.30"
8
8
  description = "DAO AI: A modular, multi-agent orchestration framework for complex AI workflows. Supports agent handoff, tool integration, and dynamic configuration via YAML."
9
9
  readme = "README.md"
10
10
  license = { text = "MIT" }
11
- requires-python = ">=3.12"
11
+ requires-python = ">=3.11"
12
12
  authors = [
13
13
  { name = "Nate Fleming", email = "nate.fleming@databricks.com" },
14
14
  { name = "Nate Fleming", email = "nate.fleming@gmail.com" },
@@ -35,6 +35,7 @@ classifiers = [
35
35
  "License :: OSI Approved :: MIT License",
36
36
  "Operating System :: OS Independent",
37
37
  "Programming Language :: Python :: 3",
38
+ "Programming Language :: Python :: 3.11",
38
39
  "Programming Language :: Python :: 3.12",
39
40
  "Programming Language :: Python :: 3.13",
40
41
  "Topic :: Scientific/Engineering :: Artificial Intelligence",
@@ -166,7 +167,7 @@ exclude = [
166
167
 
167
168
  [tool.ruff]
168
169
  # Enable the Ruff formatter
169
- target-version = "py312" # Specify your Python version
170
+ target-version = "py311" # Minimum supported Python version
170
171
  line-length = 88 # Same as Black's default
171
172
  indent-width = 4
172
173
 
@@ -52,6 +52,7 @@ grandalf==0.8
52
52
  graphene==3.4.3
53
53
  graphql-core==3.2.6
54
54
  graphql-relay==3.2.0
55
+ greenlet==3.2.3
55
56
  grpcio==1.73.0
56
57
  grpcio-status==1.71.0
57
58
  gunicorn==23.0.0
@@ -2009,21 +2009,45 @@ class AppConfig(BaseModel):
2009
2009
  def create_agent(
2010
2010
  self,
2011
2011
  w: WorkspaceClient | None = None,
2012
+ vsc: "VectorSearchClient | None" = None,
2013
+ pat: str | None = None,
2014
+ client_id: str | None = None,
2015
+ client_secret: str | None = None,
2016
+ workspace_host: str | None = None,
2012
2017
  ) -> None:
2013
2018
  from dao_ai.providers.base import ServiceProvider
2014
2019
  from dao_ai.providers.databricks import DatabricksProvider
2015
2020
 
2016
- provider: ServiceProvider = DatabricksProvider(w=w)
2021
+ provider: ServiceProvider = DatabricksProvider(
2022
+ w=w,
2023
+ vsc=vsc,
2024
+ pat=pat,
2025
+ client_id=client_id,
2026
+ client_secret=client_secret,
2027
+ workspace_host=workspace_host,
2028
+ )
2017
2029
  provider.create_agent(self)
2018
2030
 
2019
2031
  def deploy_agent(
2020
2032
  self,
2021
2033
  w: WorkspaceClient | None = None,
2034
+ vsc: "VectorSearchClient | None" = None,
2035
+ pat: str | None = None,
2036
+ client_id: str | None = None,
2037
+ client_secret: str | None = None,
2038
+ workspace_host: str | None = None,
2022
2039
  ) -> None:
2023
2040
  from dao_ai.providers.base import ServiceProvider
2024
2041
  from dao_ai.providers.databricks import DatabricksProvider
2025
2042
 
2026
- provider: ServiceProvider = DatabricksProvider(w=w)
2043
+ provider: ServiceProvider = DatabricksProvider(
2044
+ w=w,
2045
+ vsc=vsc,
2046
+ pat=pat,
2047
+ client_id=client_id,
2048
+ client_secret=client_secret,
2049
+ workspace_host=workspace_host,
2050
+ )
2027
2051
  provider.deploy_agent(self)
2028
2052
 
2029
2053
  def find_agents(
@@ -219,6 +219,13 @@ class DatabricksProvider(ServiceProvider):
219
219
  logger.debug("Creating agent...")
220
220
  mlflow.set_registry_uri("databricks-uc")
221
221
 
222
+ # Set up experiment for proper tracking
223
+ experiment: Experiment = self.get_or_create_experiment(config)
224
+ mlflow.set_experiment(experiment_id=experiment.experiment_id)
225
+ logger.debug(
226
+ f"Using experiment: {experiment.name} (ID: {experiment.experiment_id})"
227
+ )
228
+
222
229
  llms: Sequence[LLMModel] = list(config.resources.llms.values())
223
230
  vector_indexes: Sequence[IndexModel] = list(
224
231
  config.resources.vector_stores.values()
@@ -298,9 +298,6 @@ def create_genie_tool(
298
298
  if isinstance(genie_room, dict):
299
299
  genie_room = GenieRoomModel(**genie_room)
300
300
 
301
- space_id: AnyVariable = genie_room.space_id or os.environ.get(
302
- "DATABRICKS_GENIE_SPACE_ID"
303
- )
304
301
  space_id: AnyVariable = genie_room.space_id or os.environ.get(
305
302
  "DATABRICKS_GENIE_SPACE_ID"
306
303
  )
@@ -303,6 +303,75 @@ def test_function_model_api_scopes():
303
303
  assert function.api_scopes == ["sql.statement-execution"]
304
304
 
305
305
 
306
+ @pytest.mark.unit
307
+ def test_create_agent_sets_experiment():
308
+ """Test that create_agent properly sets up MLflow experiment before starting run."""
309
+ from unittest.mock import MagicMock, patch
310
+
311
+ import mlflow
312
+
313
+ from dao_ai.config import AppConfig
314
+ from dao_ai.providers.databricks import DatabricksProvider
315
+
316
+ # Create a minimal mock config
317
+ mock_config = MagicMock(spec=AppConfig)
318
+ mock_app = MagicMock()
319
+ mock_app.name = "test_app"
320
+ mock_app.code_paths = []
321
+ mock_app.pip_requirements = []
322
+ mock_app.input_example = None
323
+ mock_config.app = mock_app
324
+
325
+ # Mock resources
326
+ mock_resources = MagicMock()
327
+ mock_resources.llms = MagicMock(values=lambda: [])
328
+ mock_resources.vector_stores = MagicMock(values=lambda: [])
329
+ mock_resources.warehouses = MagicMock(values=lambda: [])
330
+ mock_resources.genie_rooms = MagicMock(values=lambda: [])
331
+ mock_resources.tables = MagicMock(values=lambda: [])
332
+ mock_resources.functions = MagicMock(values=lambda: [])
333
+ mock_resources.connections = MagicMock(values=lambda: [])
334
+ mock_resources.databases = MagicMock(values=lambda: [])
335
+ mock_resources.volumes = MagicMock(values=lambda: [])
336
+ mock_config.resources = mock_resources
337
+
338
+ # Create mock experiment
339
+ mock_experiment = MagicMock()
340
+ mock_experiment.experiment_id = "test_experiment_123"
341
+ mock_experiment.name = "/Users/test_user/test_app"
342
+
343
+ with (
344
+ patch.object(
345
+ DatabricksProvider, "get_or_create_experiment", return_value=mock_experiment
346
+ ) as mock_get_experiment,
347
+ patch.object(mlflow, "set_experiment") as mock_set_experiment,
348
+ patch.object(mlflow, "set_registry_uri"),
349
+ patch.object(mlflow, "start_run") as mock_start_run,
350
+ patch.object(mlflow, "set_tag"),
351
+ patch.object(mlflow.pyfunc, "log_model") as mock_log_model,
352
+ patch.object(mlflow, "register_model"),
353
+ patch("dao_ai.providers.databricks.MlflowClient"),
354
+ patch("dao_ai.providers.databricks.is_installed", return_value=True),
355
+ patch(
356
+ "dao_ai.providers.databricks.is_lib_provided",
357
+ return_value=True,
358
+ ),
359
+ ):
360
+ # Set up mock context managers
361
+ mock_start_run.return_value.__enter__.return_value = MagicMock()
362
+ mock_log_model.return_value = MagicMock(model_uri="test_uri")
363
+
364
+ # Create provider and call create_agent
365
+ provider = DatabricksProvider()
366
+ provider.create_agent(config=mock_config)
367
+
368
+ # Verify experiment was retrieved/created and set
369
+ mock_get_experiment.assert_called_once_with(mock_config)
370
+ mock_set_experiment.assert_called_once_with(
371
+ experiment_id=mock_experiment.experiment_id
372
+ )
373
+
374
+
306
375
  @pytest.mark.unit
307
376
  def test_create_agent_sets_framework_tags():
308
377
  """Test that create_agent sets framework and framework_version tags."""
@@ -1 +0,0 @@
1
- 3.12
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes