dao-ai 0.0.15__tar.gz → 0.0.34__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 (373) hide show
  1. {dao_ai-0.0.15 → dao_ai-0.0.34}/.gitignore +3 -0
  2. dao_ai-0.0.34/.python-version +1 -0
  3. {dao_ai-0.0.15 → dao_ai-0.0.34}/Makefile +1 -1
  4. {dao_ai-0.0.15 → dao_ai-0.0.34}/PKG-INFO +49 -21
  5. {dao_ai-0.0.15 → dao_ai-0.0.34}/README.md +24 -2
  6. dao_ai-0.0.34/config/examples/deep_research.yaml +413 -0
  7. dao_ai-0.0.34/config/examples/executive_assistant.yaml +235 -0
  8. {dao_ai-0.0.15 → dao_ai-0.0.34}/config/examples/genie.yaml +44 -34
  9. dao_ai-0.0.34/config/examples/genie_and_genie_mcp.yaml +185 -0
  10. dao_ai-0.0.34/config/examples/genie_with_conversion_id.yaml +151 -0
  11. {dao_ai-0.0.15 → dao_ai-0.0.34}/config/examples/mcp.yaml +60 -13
  12. dao_ai-0.0.34/config/examples/mcp_with_uc_connection.yaml +157 -0
  13. dao_ai-0.0.34/config/examples/prompt_optimization.yaml +550 -0
  14. dao_ai-0.0.34/config/examples/prompt_registry.yaml +969 -0
  15. dao_ai-0.0.34/config/examples/slack.yaml +69 -0
  16. dao_ai-0.0.34/config/examples/vector_search_with_reranking.yaml +293 -0
  17. {dao_ai-0.0.15 → dao_ai-0.0.34}/config/hardware_store/supervisor.yaml +24 -155
  18. {dao_ai-0.0.15 → dao_ai-0.0.34}/config/hardware_store/supervisor_postgres.yaml +21 -20
  19. {dao_ai-0.0.15 → dao_ai-0.0.34}/config/quick_serve_restaurant/quick-serve-restaurant.yaml +78 -55
  20. dao_ai-0.0.15/databricks.yaml → dao_ai-0.0.34/databricks.yaml.template +20 -11
  21. dao_ai-0.0.34/environment.yaml +82 -0
  22. dao_ai-0.0.34/examples/deep_research/examples.yaml +38 -0
  23. dao_ai-0.0.34/examples/executive_assistant/examples.yaml +14 -0
  24. {dao_ai-0.0.15 → dao_ai-0.0.34}/examples/hardware_store/examples.yaml +31 -11
  25. {dao_ai-0.0.15 → dao_ai-0.0.34}/notebooks/01_ingest_and_transform.py +33 -2
  26. {dao_ai-0.0.15 → dao_ai-0.0.34}/notebooks/02_provision_vector_search.py +31 -3
  27. dao_ai-0.0.34/notebooks/03_provision_lakebase.py +85 -0
  28. {dao_ai-0.0.15 → dao_ai-0.0.34}/notebooks/04_unity_catalog_tools.py +31 -2
  29. dao_ai-0.0.15/notebooks/05_agent_as_code_driver.py → dao_ai-0.0.34/notebooks/05_deploy_agent.py +44 -4
  30. dao_ai-0.0.15/notebooks/03_generate_evaluation_data.py → dao_ai-0.0.34/notebooks/06_generate_evaluation_data.py +31 -2
  31. dao_ai-0.0.15/notebooks/06_run_evaluation.py → dao_ai-0.0.34/notebooks/07_run_evaluation.py +46 -7
  32. {dao_ai-0.0.15 → dao_ai-0.0.34}/notebooks/08_run_examples.py +39 -12
  33. {dao_ai-0.0.15 → dao_ai-0.0.34}/notebooks/09_evaluate_inferences.py +44 -5
  34. dao_ai-0.0.34/notebooks/10_optimize_prompts.py +229 -0
  35. {dao_ai-0.0.15 → dao_ai-0.0.34}/notebooks/99_scratchpad.py +1 -1
  36. dao_ai-0.0.34/notebooks/INVESTech.py +90 -0
  37. {dao_ai-0.0.15 → dao_ai-0.0.34}/pyproject.toml +26 -20
  38. {dao_ai-0.0.15 → dao_ai-0.0.34}/requirements.txt +70 -37
  39. {dao_ai-0.0.15 → dao_ai-0.0.34}/schemas/bundle_config_schema.json +2130 -290
  40. {dao_ai-0.0.15 → dao_ai-0.0.34}/schemas/model_config_schema.json +838 -46
  41. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/agent_as_code.py +5 -2
  42. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/cli.py +77 -18
  43. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/config.py +1005 -93
  44. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/graph.py +39 -9
  45. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/guardrails.py +2 -2
  46. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/memory/core.py +12 -8
  47. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/memory/postgres.py +104 -34
  48. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/messages.py +7 -0
  49. dao_ai-0.0.34/src/dao_ai/models.py +911 -0
  50. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/nodes.py +36 -23
  51. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/prompts.py +14 -6
  52. dao_ai-0.0.34/src/dao_ai/providers/databricks.py +1630 -0
  53. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/state.py +3 -0
  54. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/tools/__init__.py +2 -0
  55. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/tools/agent.py +3 -3
  56. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/tools/core.py +1 -1
  57. dao_ai-0.0.34/src/dao_ai/tools/genie.py +160 -0
  58. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/tools/human_in_the_loop.py +8 -4
  59. dao_ai-0.0.34/src/dao_ai/tools/mcp.py +195 -0
  60. dao_ai-0.0.34/src/dao_ai/tools/slack.py +136 -0
  61. dao_ai-0.0.34/src/dao_ai/tools/unity_catalog.py +394 -0
  62. dao_ai-0.0.34/src/dao_ai/tools/vector_search.py +309 -0
  63. dao_ai-0.0.34/src/dao_ai/utils.py +231 -0
  64. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/conftest.py +2 -4
  65. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/dao_ai/test_chat_history.py +14 -14
  66. dao_ai-0.0.34/tests/dao_ai/test_databricks.py +1402 -0
  67. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/dao_ai/test_function_parsing.py +2 -1
  68. dao_ai-0.0.34/tests/dao_ai/test_genie.py +982 -0
  69. dao_ai-0.0.34/tests/dao_ai/test_genie_conversation_ids_in_outputs.py +327 -0
  70. dao_ai-0.0.34/tests/dao_ai/test_genie_databricks_integration.py +276 -0
  71. dao_ai-0.0.34/tests/dao_ai/test_inference.py +309 -0
  72. dao_ai-0.0.34/tests/dao_ai/test_inference_integration.py +408 -0
  73. dao_ai-0.0.34/tests/dao_ai/test_mcp.py +237 -0
  74. dao_ai-0.0.34/tests/dao_ai/test_mcp_function_model.py +357 -0
  75. dao_ai-0.0.34/tests/dao_ai/test_postgres_integration.py +267 -0
  76. dao_ai-0.0.34/tests/dao_ai/test_prompt_optimizations.py +1403 -0
  77. dao_ai-0.0.34/tests/dao_ai/test_prompts.py +427 -0
  78. dao_ai-0.0.34/tests/dao_ai/test_reranking.py +297 -0
  79. dao_ai-0.0.34/tests/dao_ai/test_reranking_integration.py +468 -0
  80. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/dao_ai/test_summarization_inference.py +82 -52
  81. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/dao_ai/test_tools.py +20 -7
  82. dao_ai-0.0.34/tests/dao_ai/test_unity_catalog.py +246 -0
  83. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/dao_ai/test_utils.py +20 -0
  84. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/hardware_store/test_graph.py +2 -0
  85. dao_ai-0.0.15/.python-version +0 -1
  86. dao_ai-0.0.15/environment.yaml +0 -52
  87. dao_ai-0.0.15/src/dao_ai/models.py +0 -351
  88. dao_ai-0.0.15/src/dao_ai/providers/databricks.py +0 -736
  89. dao_ai-0.0.15/src/dao_ai/tools/genie.py +0 -75
  90. dao_ai-0.0.15/src/dao_ai/tools/mcp.py +0 -118
  91. dao_ai-0.0.15/src/dao_ai/tools/unity_catalog.py +0 -50
  92. dao_ai-0.0.15/src/dao_ai/tools/vector_search.py +0 -72
  93. dao_ai-0.0.15/src/dao_ai/utils.py +0 -113
  94. dao_ai-0.0.15/tests/dao_ai/test_databricks.py +0 -17
  95. dao_ai-0.0.15/tests/dao_ai/test_inference.py +0 -51
  96. dao_ai-0.0.15/tests/dao_ai/test_mcp.py +0 -128
  97. {dao_ai-0.0.15 → dao_ai-0.0.34}/CHANGELOG.md +0 -0
  98. {dao_ai-0.0.15 → dao_ai-0.0.34}/CONTRIBUTING.md +0 -0
  99. {dao_ai-0.0.15 → dao_ai-0.0.34}/LICENSE +0 -0
  100. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/Makefile +0 -0
  101. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/REFACTORING_SUMMARY.md +0 -0
  102. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/base-environment-serverless.yaml +0 -0
  103. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/demo_docs/BRAND_REP_DEMO_SUMMARY.md +0 -0
  104. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/demo_docs/demo_scripts/brand_rep_product_education_demo.md +0 -0
  105. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/demo_docs/demo_scripts/store_associate_ai_assistant_demo.md +0 -0
  106. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/demo_docs/demo_scripts/store_manager_alert_response_demo.md +0 -0
  107. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/development_workflows.md +0 -0
  108. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/.gitkeep +0 -0
  109. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/Makefile +0 -0
  110. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/agent_implementation.mmd +0 -0
  111. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/agent_tools_architecture.mmd +0 -0
  112. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/agents-and-tools/agent-troubleshooting.md +0 -0
  113. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-best-practices.md +0 -0
  114. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-development-patterns.md +0 -0
  115. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-performance.md +0 -0
  116. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-quickstart.md +0 -0
  117. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/agents-and-tools/ai-agents.md +0 -0
  118. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/agents-and-tools/overview.md +0 -0
  119. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/agents-and-tools/references/agent-reference.md +0 -0
  120. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/agents-and-tools/references/tools-reference.md +0 -0
  121. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/applications/streamlit-app.md +0 -0
  122. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/architecture/overview.md +0 -0
  123. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/architecture.mmd +0 -0
  124. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/architecture.png +0 -0
  125. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/customer_preparation_guide.md +0 -0
  126. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/databricks_integration.mmd +0 -0
  127. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/deployment/production.md +0 -0
  128. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/development/contributing.md +0 -0
  129. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/employee_tools_guide.md +0 -0
  130. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/getting-started/installation.md +0 -0
  131. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/getting-started/mkdocs-quickstart.md +0 -0
  132. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/getting-started/quick-start.md +0 -0
  133. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/index.md +0 -0
  134. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/mkdocs.yml +0 -0
  135. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/scenario_1_architecture.mmd +0 -0
  136. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/scenario_1_flow.mmd +0 -0
  137. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/setup-docs.sh +0 -0
  138. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/task_assignment_workflow_guide.md +0 -0
  139. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/docs/tools/overview.md +0 -0
  140. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/examples/customer_preparation_workflow.py +0 -0
  141. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/examples/task_assignment_workflow.py +0 -0
  142. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/load-env.sh +0 -0
  143. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/CSS_REFACTORING_SUMMARY.md +0 -0
  144. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/DEMO_CONTROLS_RESTORED.md +0 -0
  145. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/DEMO_IMPLEMENTATION_SUMMARY.md +0 -0
  146. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/DEMO_QUICK_START.md +0 -0
  147. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/Dockerfile +0 -0
  148. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/HOMEPAGE_README.md +0 -0
  149. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/Makefile +0 -0
  150. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/README.md +0 -0
  151. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/app.py +0 -0
  152. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/app.yaml +0 -0
  153. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/__init__.py +0 -0
  154. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/backup_homepage.py +0 -0
  155. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/chat.py +0 -0
  156. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/enhanced_charts.py +0 -0
  157. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/enhanced_navigation.py +0 -0
  158. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/__init__.py +0 -0
  159. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/__init__.py +0 -0
  160. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/associate_homepage.py +0 -0
  161. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/dashboard_tab.py +0 -0
  162. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/my_tasks_tab.py +0 -0
  163. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/performance_tab.py +0 -0
  164. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/products_tab.py +0 -0
  165. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/schedule_tab.py +0 -0
  166. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/__init__.py +0 -0
  167. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/chat_integration.py +0 -0
  168. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/kpi_summary.py +0 -0
  169. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/notifications.py +0 -0
  170. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/homepage.py +0 -0
  171. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/__init__.py +0 -0
  172. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/alerts_tab.py +0 -0
  173. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/analytics_tab.py +0 -0
  174. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/dashboard_tab.py +0 -0
  175. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/demo_alerts.py +0 -0
  176. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/inventory_tab.py +0 -0
  177. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/manager_homepage.py +0 -0
  178. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/operations_tab.py +0 -0
  179. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/team_tab.py +0 -0
  180. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/__init__.py +0 -0
  181. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/ai_insights_tab.py +0 -0
  182. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/executive_dashboard_tab.py +0 -0
  183. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/geographical_analysis_tab.py +0 -0
  184. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/performance_metrics_tab.py +0 -0
  185. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/strategic_insights_tab.py +0 -0
  186. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/vp_homepage.py +0 -0
  187. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/metrics.py +0 -0
  188. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/navigation.py +0 -0
  189. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/oldhomepage.py +0 -0
  190. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/components/styles.py +0 -0
  191. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/config.yaml +0 -0
  192. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/demo_docs/BRAND_REP_DEMO_SUMMARY.md +0 -0
  193. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/demo_docs/comprehensive_demo_script.md +0 -0
  194. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/brand_rep_product_education_demo.md +0 -0
  195. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/store_associate_ai_assistant_demo.md +0 -0
  196. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/store_manager_alert_response_demo.md +0 -0
  197. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/dev/README.md +0 -0
  198. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/dev/__init__.py +0 -0
  199. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/dev/components/__init__.py +0 -0
  200. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/dev/components/dashboard_card.py +0 -0
  201. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/dev/demo_alerts.py +0 -0
  202. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/dev/examples/sample_dashboard.py +0 -0
  203. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/pages/__init__.py +0 -0
  204. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/pages/component_showcase.py +0 -0
  205. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/pages/dev_playground.py +0 -0
  206. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/pages/playground.py +0 -0
  207. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/pages_wip/daily_operations.py +0 -0
  208. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/pages_wip/inventory.py +0 -0
  209. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/pages_wip/my_schedule.py +0 -0
  210. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/pages_wip/my_tasks.py +0 -0
  211. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/pages_wip/orders.py +0 -0
  212. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/pages_wip/products_promotions.py +0 -0
  213. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/pages_wip/staff.py +0 -0
  214. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/pages_wip/team_insights.py +0 -0
  215. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/pyproject.toml +0 -0
  216. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/requirements.txt +0 -0
  217. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/static/css/style.css +0 -0
  218. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/styles/README.md +0 -0
  219. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/styles/__init__.py +0 -0
  220. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/styles/base.py +0 -0
  221. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/styles/components.py +0 -0
  222. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/styles/dashboard.py +0 -0
  223. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/styles/homepage.py +0 -0
  224. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/styles/theme.py +0 -0
  225. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/test_vip_notification.py +0 -0
  226. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/tests/test_calculations.py +0 -0
  227. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/utils/config.py +0 -0
  228. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/utils/database.py +0 -0
  229. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/utils/model_serving.py +0 -0
  230. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app/utils/store_context.py +0 -0
  231. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/Makefile +0 -0
  232. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/README.md +0 -0
  233. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/app.py +0 -0
  234. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/__init__.py +0 -0
  235. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/__init__.py +0 -0
  236. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_components.py +0 -0
  237. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_components_enhanced.py +0 -0
  238. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_styles.py +0 -0
  239. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin_styles.py +0 -0
  240. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/TAILADMIN_README.md +0 -0
  241. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/homepage_tailadmin.py +0 -0
  242. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/tailadmin_demo.py +0 -0
  243. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/tailadmin_implementation_guide.py +0 -0
  244. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/test_vp_dashboard.py +0 -0
  245. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/vp_dashboard_enhanced.py +0 -0
  246. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/vp_dashboard_tailadmin.py +0 -0
  247. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/components_demo.py +0 -0
  248. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/homepage.py +0 -0
  249. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/implementation_guide.py +0 -0
  250. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/vp_dashboard_clean.py +0 -0
  251. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/vp_dashboard_enhanced.py +0 -0
  252. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pyproject.toml +0 -0
  253. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/tests/__init__.py +0 -0
  254. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/streamlit_store_app_tailadmin/tests/test_imports.py +0 -0
  255. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/tests/.gitkeep +0 -0
  256. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/tests/README.md +0 -0
  257. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/tests/images/doritos_upc.png +0 -0
  258. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/tests/images/lays_upc.png +0 -0
  259. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/tests/manager_demo_script.md +0 -0
  260. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/tests/notebook_vector_search_test.py +0 -0
  261. {dao_ai-0.0.15 → dao_ai-0.0.34}/apps/dais2025/store-app/tests/test_vector_search_integration.py +0 -0
  262. {dao_ai-0.0.15 → dao_ai-0.0.34}/config/dais2025/model_config_dais.yaml +0 -0
  263. {dao_ai-0.0.15 → dao_ai-0.0.34}/config/examples/genie_and_vector_search.yaml +0 -0
  264. {dao_ai-0.0.15 → dao_ai-0.0.34}/config/examples/human_in_the_loop.yaml +0 -0
  265. {dao_ai-0.0.15 → dao_ai-0.0.34}/config/examples/jira.yaml +0 -0
  266. {dao_ai-0.0.15 → dao_ai-0.0.34}/config/examples/minimal.yaml +0 -0
  267. {dao_ai-0.0.15 → dao_ai-0.0.34}/config/examples/reservations.yaml +0 -0
  268. {dao_ai-0.0.15 → dao_ai-0.0.34}/config/hardware_store/swarm.yaml +0 -0
  269. {dao_ai-0.0.15 → dao_ai-0.0.34}/config/quick_serve_restaurant/.gitkeep +0 -0
  270. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/appointments.sql +0 -0
  271. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/appointments_data.sql +0 -0
  272. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/brand_rep_demo_data.sql +0 -0
  273. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/brand_rep_demo_queries.sql +0 -0
  274. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/brand_rep_demo_tables.sql +0 -0
  275. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/brand_rep_demo_validation.sql +0 -0
  276. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/customers.sql +0 -0
  277. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/customers_data.sql +0 -0
  278. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/dim_stores.sql +0 -0
  279. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/dim_stores_data.sql +0 -0
  280. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/employee_performance.sql +0 -0
  281. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/employee_performance_data.sql +0 -0
  282. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/employee_tasks.sql +0 -0
  283. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/employee_tasks_data.sql +0 -0
  284. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/inventory.sql +0 -0
  285. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/inventory_data.sql +0 -0
  286. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/managers.sql +0 -0
  287. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/managers_data.sql +0 -0
  288. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/product_data.sql +0 -0
  289. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/products.sql +0 -0
  290. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/dais2025/task_assignments.sql +0 -0
  291. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/hardware_store/inventory.snappy.parquet +0 -0
  292. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/hardware_store/inventory.sql +0 -0
  293. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/hardware_store/products.snappy.parquet +0 -0
  294. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/hardware_store/products.sql +0 -0
  295. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/quick_serve_restaurant/.gitkeep +0 -0
  296. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/quick_serve_restaurant/fulfil_item_orders.sql +0 -0
  297. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/quick_serve_restaurant/items_description.csv +0 -0
  298. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/quick_serve_restaurant/items_description.sql +0 -0
  299. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/quick_serve_restaurant/items_raw.csv +0 -0
  300. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/quick_serve_restaurant/items_raw.sql +0 -0
  301. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/quick_serve_restaurant/orders_raw.csv +0 -0
  302. {dao_ai-0.0.15 → dao_ai-0.0.34}/data/quick_serve_restaurant/orders_raw.sql +0 -0
  303. {dao_ai-0.0.15 → dao_ai-0.0.34}/docs/genie.png +0 -0
  304. {dao_ai-0.0.15 → dao_ai-0.0.34}/docs/hardware_store/README.md +0 -0
  305. {dao_ai-0.0.15 → dao_ai-0.0.34}/docs/hardware_store/retail_supervisor.png +0 -0
  306. {dao_ai-0.0.15 → dao_ai-0.0.34}/docs/hardware_store/retail_swarm.png +0 -0
  307. {dao_ai-0.0.15 → dao_ai-0.0.34}/docs/quick_serve_restaurant/.gitkeep +0 -0
  308. {dao_ai-0.0.15 → dao_ai-0.0.34}/docs/quick_serve_restaurant/quick-serve-restaurant.png +0 -0
  309. {dao_ai-0.0.15 → dao_ai-0.0.34}/examples/dais2025/examples.yaml +0 -0
  310. {dao_ai-0.0.15 → dao_ai-0.0.34}/examples/quick_serve_restaurant/.gitkeep +0 -0
  311. {dao_ai-0.0.15 → dao_ai-0.0.34}/examples/quick_serve_restaurant/examples.yaml +0 -0
  312. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/dais2025/extract_store_numbers.sql +0 -0
  313. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/dais2025/find_inventory_by_sku.sql +0 -0
  314. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/dais2025/find_inventory_by_upc.sql +0 -0
  315. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/dais2025/find_product_by_sku.sql +0 -0
  316. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/dais2025/find_product_by_upc.sql +0 -0
  317. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/dais2025/find_store_by_number.sql +0 -0
  318. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/dais2025/find_store_inventory_by_sku.sql +0 -0
  319. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/dais2025/find_store_inventory_by_upc.sql +0 -0
  320. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/hardware_store/find_inventory_by_sku.sql +0 -0
  321. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/hardware_store/find_inventory_by_upc.sql +0 -0
  322. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/hardware_store/find_product_by_sku.sql +0 -0
  323. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/hardware_store/find_product_by_upc.sql +0 -0
  324. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/hardware_store/find_store_inventory_by_sku.sql +0 -0
  325. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/hardware_store/find_store_inventory_by_upc.sql +0 -0
  326. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/quick_serve_restaurant/.gitkeep +0 -0
  327. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/quick_serve_restaurant/insert_coffee_order.sql +0 -0
  328. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/quick_serve_restaurant/lookup_items_by_descriptions.sql +0 -0
  329. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/quick_serve_restaurant/match_historical_item_order_by_date.sql +0 -0
  330. {dao_ai-0.0.15 → dao_ai-0.0.34}/functions/quick_serve_restaurant/match_item_by_description_and_price.sql +0 -0
  331. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dais2025/__init__.py +0 -0
  332. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dais2025/models.py +0 -0
  333. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dais2025/tools/__init__.py +0 -0
  334. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dais2025/tools/customer.py +0 -0
  335. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dais2025/tools/employee.py +0 -0
  336. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dais2025/tools/executive.py +0 -0
  337. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dais2025/tools/genie.py +0 -0
  338. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dais2025/tools/inventory.py +0 -0
  339. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dais2025/tools/models.py +0 -0
  340. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dais2025/tools/store.py +0 -0
  341. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/__init__.py +0 -0
  342. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/catalog.py +0 -0
  343. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/chat_models.py +0 -0
  344. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/hooks/__init__.py +0 -0
  345. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/hooks/core.py +0 -0
  346. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/memory/__init__.py +0 -0
  347. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/memory/base.py +0 -0
  348. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/providers/__init__.py +0 -0
  349. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/providers/base.py +0 -0
  350. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/tools/python.py +0 -0
  351. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/tools/time.py +0 -0
  352. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/types.py +0 -0
  353. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/dao_ai/vector_search.py +0 -0
  354. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/hardware_store/__init__.py +0 -0
  355. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/hardware_store/hooks.py +0 -0
  356. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/hardware_store/tools.py +0 -0
  357. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/quick_serve_restaurant/.gitkeep +0 -0
  358. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/quick_serve_restaurant/__init__.py +0 -0
  359. {dao_ai-0.0.15 → dao_ai-0.0.34}/src/quick_serve_restaurant/tools.py +0 -0
  360. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/config/test_model_config.yaml +0 -0
  361. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/dao_ai/test_catalog.py +0 -0
  362. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/dao_ai/test_config.py +0 -0
  363. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/dao_ai/test_hooks.py +0 -0
  364. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/dao_ai/test_messages.py +0 -0
  365. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/dao_ai/test_models.py +0 -0
  366. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/dao_ai/test_state.py +0 -0
  367. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/dao_ai/test_types.py +0 -0
  368. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/dao_ai/test_vector_search.py +0 -0
  369. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/dao_ai/weather_server_mcp.py +0 -0
  370. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/hardware_store/.gitkeep +0 -0
  371. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/images/doritos_upc.png +0 -0
  372. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/images/lays_upc.png +0 -0
  373. {dao_ai-0.0.15 → dao_ai-0.0.34}/tests/quick_serve_restaurant/.gitkeep +0 -0
@@ -273,3 +273,6 @@ tags
273
273
  .databricks
274
274
 
275
275
  mlruns/
276
+
277
+ # Generated bundle configurations (created from databricks.yaml.template at deployment time)
278
+ databricks.yaml
@@ -0,0 +1 @@
1
+ 3.11
@@ -64,7 +64,7 @@ schema: depends
64
64
  @$(PYTHON) -c "from dao_ai.config import AppConfig; import json; print(json.dumps(AppConfig.model_json_schema(), indent=2))"
65
65
 
66
66
  test:
67
- $(PYTEST) $(TEST_DIR)
67
+ $(PYTEST) -ra --tb=short $(TEST_DIR)
68
68
 
69
69
  help:
70
70
  $(info TOP_DIR: $(TOP_DIR))
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dao-ai
3
- Version: 0.0.15
3
+ Version: 0.0.34
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,41 +18,47 @@ 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-Dist: databricks-agents>=1.2.0
28
- Requires-Dist: databricks-langchain>=0.4.2
29
- Requires-Dist: databricks-sdk[openai]>=0.55.0
30
- Requires-Dist: duckduckgo-search>=8.0.2
27
+ Requires-Python: >=3.11
28
+ Requires-Dist: databricks-agents>=1.8.2
29
+ Requires-Dist: databricks-langchain>=0.11.0
30
+ Requires-Dist: databricks-mcp>=0.3.0
31
+ Requires-Dist: databricks-sdk[openai]>=0.67.0
32
+ Requires-Dist: ddgs>=9.9.3
33
+ Requires-Dist: flashrank>=0.2.8
34
+ Requires-Dist: gepa>=0.0.17
31
35
  Requires-Dist: grandalf>=0.8
32
- Requires-Dist: langchain-mcp-adapters>=0.1.9
33
- Requires-Dist: langchain>=0.3.27
34
- Requires-Dist: langgraph-checkpoint-postgres>=2.0.23
35
- Requires-Dist: langgraph-supervisor>=0.0.29
36
- Requires-Dist: langgraph-swarm>=0.0.14
37
- Requires-Dist: langgraph>=0.6.5
38
- Requires-Dist: langmem>=0.0.29
36
+ Requires-Dist: langchain-mcp-adapters>=0.2.1
37
+ Requires-Dist: langchain-tavily>=0.2.11
38
+ Requires-Dist: langchain>=1.1.3
39
+ Requires-Dist: langgraph-checkpoint-postgres>=3.0.2
40
+ Requires-Dist: langgraph-supervisor>=0.0.31
41
+ Requires-Dist: langgraph-swarm>=0.1.0
42
+ Requires-Dist: langgraph>=1.0.4
43
+ Requires-Dist: langmem>=0.0.30
39
44
  Requires-Dist: loguru>=0.7.3
40
- Requires-Dist: mcp>=1.9.1
41
- Requires-Dist: mlflow>=3.3.2
45
+ Requires-Dist: mcp>=1.23.3
46
+ Requires-Dist: mlflow>=3.7.0
42
47
  Requires-Dist: nest-asyncio>=1.6.0
43
48
  Requires-Dist: openevals>=0.0.19
44
49
  Requires-Dist: openpyxl>=3.1.5
45
- Requires-Dist: psycopg[binary,pool]>=3.2.9
46
- Requires-Dist: pydantic>=2.11.3
50
+ Requires-Dist: psycopg[binary,pool]>=3.3.2
51
+ Requires-Dist: pydantic>=2.12.0
47
52
  Requires-Dist: python-dotenv>=1.1.0
48
53
  Requires-Dist: pyyaml>=6.0.2
49
54
  Requires-Dist: rich>=14.0.0
50
55
  Requires-Dist: scipy<=1.15
51
56
  Requires-Dist: sqlparse>=0.5.3
52
- Requires-Dist: unitycatalog-ai[databricks]>=0.3.0
57
+ Requires-Dist: tomli>=2.3.0
58
+ Requires-Dist: unitycatalog-ai[databricks]>=0.3.2
53
59
  Provides-Extra: databricks
54
60
  Requires-Dist: databricks-connect>=15.0.0; extra == 'databricks'
55
- Requires-Dist: databricks-vectorsearch>=0.56; extra == 'databricks'
61
+ Requires-Dist: databricks-vectorsearch>=0.63; extra == 'databricks'
56
62
  Requires-Dist: pyspark>=3.5.0; extra == 'databricks'
57
63
  Provides-Extra: dev
58
64
  Requires-Dist: mypy>=1.0.0; extra == 'dev'
@@ -652,7 +658,7 @@ test:
652
658
  #### 4. MCP (Model Context Protocol) Tools (`type: mcp`)
653
659
  MCP tools allow interaction with external services that implement the Model Context Protocol, supporting both HTTP and stdio transports.
654
660
 
655
- **Configuration Example:**
661
+ **Configuration Example (Direct URL):**
656
662
  ```yaml
657
663
  tools:
658
664
  weather_tool_mcp:
@@ -663,8 +669,30 @@ test:
663
669
  transport: streamable_http
664
670
  url: http://localhost:8000/mcp
665
671
  ```
672
+
673
+ **Configuration Example (Unity Catalog Connection):**
674
+ MCP tools can also use Unity Catalog Connections for secure, governed access with on-behalf-of-user capabilities. The connection provides OAuth authentication, while the URL specifies the endpoint:
675
+ ```yaml
676
+ resources:
677
+ connections:
678
+ github_connection:
679
+ name: github_u2m_connection # UC Connection name
680
+
681
+ tools:
682
+ github_mcp:
683
+ name: github_mcp
684
+ function:
685
+ type: mcp
686
+ name: github_mcp
687
+ transport: streamable_http
688
+ url: https://workspace.databricks.com/api/2.0/mcp/external/github_u2m_connection # MCP endpoint URL
689
+ connection: *github_connection # UC Connection provides OAuth authentication
690
+ ```
691
+
666
692
  **Development:**
667
- Ensure the MCP service is running and accessible at the specified URL or command. The framework will handle the MCP protocol communication automatically.
693
+ - **For direct URL connections**: Ensure the MCP service is running and accessible at the specified URL or command. Provide OAuth credentials (client_id, client_secret) or PAT for authentication.
694
+ - **For UC Connection**: URL is required to specify the endpoint. The connection provides OAuth authentication via the workspace client. Ensure the connection is configured in Unity Catalog with appropriate MCP scopes (`mcp.genie`, `mcp.functions`, `mcp.vectorsearch`, `mcp.external`).
695
+ - The framework will handle the MCP protocol communication automatically, including session management and authentication.
668
696
 
669
697
  ### Configuring New Agents
670
698
 
@@ -581,7 +581,7 @@ test:
581
581
  #### 4. MCP (Model Context Protocol) Tools (`type: mcp`)
582
582
  MCP tools allow interaction with external services that implement the Model Context Protocol, supporting both HTTP and stdio transports.
583
583
 
584
- **Configuration Example:**
584
+ **Configuration Example (Direct URL):**
585
585
  ```yaml
586
586
  tools:
587
587
  weather_tool_mcp:
@@ -592,8 +592,30 @@ test:
592
592
  transport: streamable_http
593
593
  url: http://localhost:8000/mcp
594
594
  ```
595
+
596
+ **Configuration Example (Unity Catalog Connection):**
597
+ MCP tools can also use Unity Catalog Connections for secure, governed access with on-behalf-of-user capabilities. The connection provides OAuth authentication, while the URL specifies the endpoint:
598
+ ```yaml
599
+ resources:
600
+ connections:
601
+ github_connection:
602
+ name: github_u2m_connection # UC Connection name
603
+
604
+ tools:
605
+ github_mcp:
606
+ name: github_mcp
607
+ function:
608
+ type: mcp
609
+ name: github_mcp
610
+ transport: streamable_http
611
+ url: https://workspace.databricks.com/api/2.0/mcp/external/github_u2m_connection # MCP endpoint URL
612
+ connection: *github_connection # UC Connection provides OAuth authentication
613
+ ```
614
+
595
615
  **Development:**
596
- Ensure the MCP service is running and accessible at the specified URL or command. The framework will handle the MCP protocol communication automatically.
616
+ - **For direct URL connections**: Ensure the MCP service is running and accessible at the specified URL or command. Provide OAuth credentials (client_id, client_secret) or PAT for authentication.
617
+ - **For UC Connection**: URL is required to specify the endpoint. The connection provides OAuth authentication via the workspace client. Ensure the connection is configured in Unity Catalog with appropriate MCP scopes (`mcp.genie`, `mcp.functions`, `mcp.vectorsearch`, `mcp.external`).
618
+ - The framework will handle the MCP protocol communication automatically, including session management and authentication.
597
619
 
598
620
  ### Configuring New Agents
599
621
 
@@ -0,0 +1,413 @@
1
+ # yaml-language-server: $schema=../../schemas/model_config_schema.json
2
+
3
+ variables:
4
+ tavily_search_key: &tavily_search_key
5
+ options:
6
+ - env: TAVILY_API_KEY
7
+ - scope: retail_consumer_goods
8
+ secret: TAVILY_API_KEY
9
+
10
+ schemas:
11
+ executive_research_schema: &executive_research_schema
12
+ catalog_name: retail_consumer_goods
13
+ schema_name: store_ops
14
+
15
+ resources:
16
+ llms:
17
+ default_llm: &default_llm
18
+ name: databricks-claude-3-7-sonnet
19
+ temperature: 0.1
20
+ max_tokens: 16384
21
+
22
+ fast_llm: &fast_llm
23
+ name: databricks-meta-llama-3-1-8b-instruct
24
+ temperature: 0.1
25
+ max_tokens: 8192
26
+
27
+ tool_calling_llm: &tool_calling_llm
28
+ name: databricks-claude-3-7-sonnet
29
+ temperature: 0.1
30
+ max_tokens: 16384
31
+ fallbacks:
32
+ - databricks-meta-llama-3-3-70b-instruct
33
+
34
+ reasoning_llm: &reasoning_llm
35
+ name: databricks-claude-3-7-sonnet
36
+ temperature: 0.2
37
+ max_tokens: 16384
38
+
39
+ deep_reasoning_llm: &deep_reasoning_llm
40
+ name: databricks-claude-sonnet-4
41
+ temperature: 0.1
42
+ max_tokens: 32768
43
+ fallbacks:
44
+ - databricks-claude-3-7-sonnet
45
+
46
+ tables:
47
+ employee_performance:
48
+ schema: *executive_research_schema
49
+ name: employee_performance
50
+
51
+ products:
52
+ schema: *executive_research_schema
53
+ name: products
54
+
55
+ inventory:
56
+ schema: *executive_research_schema
57
+ name: inventory
58
+
59
+ customers:
60
+ schema: *executive_research_schema
61
+ name: customers
62
+
63
+ managers:
64
+ schema: *executive_research_schema
65
+ name: managers
66
+
67
+ employee_tasks:
68
+ schema: *executive_research_schema
69
+ name: employee_tasks
70
+
71
+ appointments:
72
+ schema: *executive_research_schema
73
+ name: appointments
74
+
75
+ evaluation:
76
+ schema: *executive_research_schema
77
+ name: evaluation
78
+
79
+ functions:
80
+ find_inventory_by_sku: &find_inventory_by_sku
81
+ schema: *executive_research_schema
82
+ name: find_inventory_by_sku
83
+
84
+ find_inventory_by_upc: &find_inventory_by_upc
85
+ schema: *executive_research_schema
86
+ name: find_inventory_by_upc
87
+
88
+ find_product_by_sku: &find_product_by_sku
89
+ schema: *executive_research_schema
90
+ name: find_product_by_sku
91
+
92
+ find_product_by_upc: &find_product_by_upc
93
+ schema: *executive_research_schema
94
+ name: find_product_by_upc
95
+
96
+ find_store_by_number: &find_store_by_number
97
+ schema: *executive_research_schema
98
+ name: find_store_by_number
99
+
100
+ find_store_inventory_by_sku: &find_store_inventory_by_sku
101
+ schema: *executive_research_schema
102
+ name: find_store_inventory_by_sku
103
+
104
+ find_store_inventory_by_upc: &find_store_inventory_by_upc
105
+ schema: *executive_research_schema
106
+ name: find_store_inventory_by_upc
107
+
108
+ genie_rooms:
109
+ executive_research_genie_room: &executive_research_genie_room
110
+ name: "Executive Research Genie Room"
111
+ description: "A specialized room for deep executive research and analysis"
112
+ space_id: 01f05dd06c421ad6b522bf7a517cf6d2
113
+
114
+ tools:
115
+ executive_research_genie_tool: &executive_research_genie_tool
116
+ name: executive_research_genie_tool
117
+ function:
118
+ type: factory
119
+ name: dao_ai.tools.create_genie_tool
120
+ args:
121
+ name: executive_research_genie_tool
122
+ description: Query the data warehouse for comprehensive business metrics including customer KPIs, financial performance, operational data, employee metrics, inventory levels, and sales data. Optimized for deep analytical research and multi-dimensional analysis.
123
+ genie_room: *executive_research_genie_room
124
+
125
+
126
+ agents:
127
+ research_lead: &research_lead
128
+ name: research_lead
129
+ description: "Research Coordinator and Executive Interface Specialist"
130
+ model: *default_llm
131
+ tools:
132
+ - *executive_research_genie_tool
133
+ prompt: |
134
+ You are the Research Coordinator serving as the primary interface between executives and the deep research team. Your role is to understand executive inquiries, develop comprehensive research strategies, and orchestrate the team of specialists to deliver thorough analysis and strategic recommendations.
135
+
136
+ ## Your Responsibilities:
137
+ - **Inquiry Assessment**: Understand the executive's specific research needs and context
138
+ - **Research Planning**: Develop comprehensive research strategies across all domains
139
+ - **Team Coordination**: Direct specialists based on research requirements
140
+ - **Quality Assurance**: Ensure comprehensive coverage of all relevant aspects
141
+ - **Executive Communication**: Provide status updates and manage expectations
142
+
143
+ ## Research Strategy Framework:
144
+ 1. **Scope Definition**: Clarify research objectives and success criteria
145
+ 2. **Domain Mapping**: Identify which specialist teams are needed (KPI, market, financial, operations)
146
+ 3. **Sequencing**: Determine optimal research workflow and dependencies
147
+ 4. **Timeline Planning**: Establish research milestones and deadlines
148
+ 5. **Quality Standards**: Set expectations for depth and comprehensiveness
149
+
150
+ ## When to Handoff:
151
+ - **Always start** with **kpi_analyst** for foundational data analysis
152
+ - Hand off to **market_intelligence** when external market context is critical
153
+ - Hand off to **financial_strategy** when financial modeling or ROI analysis is needed
154
+ - Hand off to **operations_expert** when operational improvements are in scope
155
+ - Coordinate with **strategy_synthesizer** to ensure all findings are integrated
156
+
157
+ ## Communication Style:
158
+ - **Executive-Level**: Professional, strategic, and focused on business impact
159
+ - **Action-Oriented**: Clear next steps and deliverables
160
+ - **Comprehensive**: Consider all relevant business dimensions
161
+ - **Time-Conscious**: Respect executive time constraints while ensuring thoroughness
162
+
163
+ ## Important Guidelines
164
+ - Limit Graph Recursion to 5 iterations.
165
+ - Run as many tools as you can concurrently
166
+
167
+ You serve as the intelligent orchestrator ensuring that complex executive research questions receive comprehensive, coordinated analysis from all relevant specialist teams.
168
+ handoff_prompt: |
169
+ Hand off to me when starting any new executive research inquiry, when research scope needs to be defined, when multiple specialist teams need coordination, or when ensuring comprehensive coverage across all business dimensions.
170
+
171
+ kpi_analyst: &kpi_analyst
172
+ name: kpi_analyst
173
+ description: "KPI Research and Data Analysis Specialist"
174
+ model: *reasoning_llm
175
+ tools:
176
+ - *executive_research_genie_tool
177
+ prompt: |
178
+ You are a KPI Research Specialist focused on comprehensive data analysis and performance metrics research. Your role is to conduct deep dives into business performance indicators and provide thorough analytical foundations for executive decision-making.
179
+
180
+ ## Your Expertise:
181
+ - Customer metrics analysis (CAC, LTV, churn, retention, satisfaction, NPS)
182
+ - Financial KPIs (revenue, margins, profitability, cash flow, ROI)
183
+ - Operational metrics (inventory turnover, productivity, efficiency ratios)
184
+ - Market performance indicators and competitive benchmarks
185
+ - Statistical analysis and trend identification
186
+
187
+ ## Research Methodology:
188
+ 1. **Data Collection**: Query multiple data sources using genie tool
189
+ 2. **Historical Analysis**: Examine 12+ month trends and seasonality
190
+ 3. **Benchmarking**: Research industry standards and competitor performance
191
+ 4. **Cross-Validation**: Verify findings across multiple data points
192
+ 5. **Statistical Analysis**: Identify correlations and significance
193
+
194
+ ## When to Handoff:
195
+ - Hand off to **market_intelligence** when you need industry context and competitive intelligence
196
+ - Hand off to **financial_strategy** when you discover financial anomalies requiring strategic analysis
197
+ - Hand off to **operations_expert** when operational inefficiencies are identified
198
+ - Hand off to **strategy_synthesizer** when your research is complete for final strategic synthesis
199
+
200
+ ## Important Guidelines
201
+ - Limit Graph Recursion to 5 iterations.
202
+ - Run as many tools as you can concurrently
203
+
204
+ Always provide comprehensive data foundation with specific metrics, trends, and preliminary insights.
205
+ handoff_prompt: |
206
+ Hand off to me when foundational data analysis is needed, when KPI research is required, when historical trends need analysis, when performance metrics need benchmarking, or when starting comprehensive business analysis.
207
+
208
+ market_intelligence: &market_intelligence
209
+ name: market_intelligence
210
+ description: "Market Intelligence and Competitive Analysis Specialist"
211
+ model: *reasoning_llm
212
+ tools:
213
+ - *executive_research_genie_tool
214
+ prompt: |
215
+ You are a Market Intelligence Analyst specializing in external market research, competitive analysis, and industry benchmarking. You provide crucial context for internal performance by analyzing market conditions, competitor strategies, and industry trends.
216
+
217
+ ## Your Expertise:
218
+ - Industry trend analysis and market dynamics
219
+ - Competitive intelligence and benchmarking
220
+ - Regulatory and compliance landscape analysis
221
+ - Market opportunity identification and sizing
222
+ - Customer behavior and preference trends
223
+
224
+ ## Research Approach:
225
+ 1. **Market Landscape**: Comprehensive industry analysis and trends
226
+ 2. **Competitive Analysis**: Direct and indirect competitor performance
227
+ 3. **Regulatory Environment**: Compliance requirements and regulatory changes
228
+ 4. **Customer Insights**: Market research on customer preferences and behavior
229
+ 5. **Opportunity Assessment**: Market gaps and growth opportunities
230
+
231
+ ## When to Handoff:
232
+ - Hand off to **financial_strategy** when market insights need financial modeling
233
+ - Hand off to **operations_expert** when market trends impact operational strategy
234
+ - Hand off to **kpi_analyst** when you need internal data to validate market assumptions
235
+ - Hand off to **strategy_synthesizer** when market analysis is complete
236
+
237
+ ## Important Guidelines
238
+ - Limit Graph Recursion to 5 iterations.
239
+ - Run as many tools as you can concurrently
240
+
241
+ Focus on external market dynamics and how they impact internal performance metrics.
242
+ handoff_prompt: |
243
+ Hand off to me when external market context is needed, when competitive intelligence is required, when industry benchmarking is necessary, when market trends analysis is needed, or when understanding market dynamics that impact business performance.
244
+
245
+ financial_strategy: &financial_strategy
246
+ name: financial_strategy
247
+ description: "Financial Strategy and ROI Analysis Specialist"
248
+ model: *deep_reasoning_llm
249
+ tools:
250
+ - *executive_research_genie_tool
251
+ prompt: |
252
+ You are a Financial Strategy Analyst specializing in financial modeling, ROI analysis, and strategic investment recommendations. You translate business insights into financial impact and provide comprehensive financial analysis for executive decision-making.
253
+
254
+ ## Your Expertise:
255
+ - Financial modeling and forecasting
256
+ - ROI and cost-benefit analysis
257
+ - Investment prioritization and portfolio optimization
258
+ - Cash flow analysis and working capital management
259
+ - Financial risk assessment and mitigation
260
+
261
+ ## Analysis Framework:
262
+ 1. **Financial Impact Modeling**: Quantify the financial implications of strategic initiatives
263
+ 2. **ROI Analysis**: Comprehensive return on investment calculations
264
+ 3. **Cost-Benefit Assessment**: Detailed analysis of costs vs. expected benefits
265
+ 4. **Risk-Adjusted Returns**: Financial projections incorporating risk factors
266
+ 5. **Investment Prioritization**: Ranking initiatives by financial attractiveness
267
+
268
+ ## When to Handoff:
269
+ - Hand off to **operations_expert** when financial analysis reveals operational improvement opportunities
270
+ - Hand off to **market_intelligence** when you need additional market context for financial projections
271
+ - Hand off to **kpi_analyst** when you need more granular performance data
272
+ - Hand off to **strategy_synthesizer** when financial analysis and recommendations are complete
273
+
274
+ ## Important Guidelines
275
+ - Limit Graph Recursion to 5 iterations.
276
+ - Run as many tools as you can concurrently
277
+
278
+ Focus on translating insights into financial impact and strategic investment recommendations.
279
+ handoff_prompt: |
280
+ Hand off to me when financial analysis is required, when ROI modeling is needed, when cost-benefit analysis is necessary, when financial implications of strategies need evaluation, or when investment recommendations are required.
281
+
282
+ operations_expert: &operations_expert
283
+ name: operations_expert
284
+ description: "Operations Optimization and Efficiency Specialist"
285
+ model: *reasoning_llm
286
+ tools:
287
+ - *executive_research_genie_tool
288
+ prompt: |
289
+ You are an Operations Optimization Specialist focused on operational efficiency, process improvement, and tactical implementation strategies. You analyze operational data to identify improvement opportunities and develop actionable implementation plans.
290
+
291
+ ## Your Expertise:
292
+ - Process optimization and efficiency analysis
293
+ - Supply chain and inventory management
294
+ - Employee productivity and performance optimization
295
+ - Operational cost reduction strategies
296
+ - Implementation planning and change management
297
+
298
+ ## Optimization Areas:
299
+ 1. **Process Efficiency**: Identify bottlenecks and improvement opportunities
300
+ 2. **Resource Utilization**: Optimize staff, inventory, and asset utilization
301
+ 3. **Cost Reduction**: Operational cost optimization strategies
302
+ 4. **Quality Improvement**: Process improvements for better outcomes
303
+ 5. **Implementation Planning**: Tactical execution strategies for recommendations
304
+
305
+ ## When to Handoff:
306
+ - Hand off to **financial_strategy** when operational improvements need financial modeling
307
+ - Hand off to **market_intelligence** when you need market context for operational strategies
308
+ - Hand off to **kpi_analyst** when you need detailed performance metrics
309
+ - Hand off to **strategy_synthesizer** when operational analysis and recommendations are complete
310
+
311
+ ## Important Guidelines
312
+ - Limit Graph Recursion to 5 iterations.
313
+ - Run as many tools as you can concurrently
314
+
315
+ Focus on practical, implementable operational improvements with clear success metrics.
316
+ handoff_prompt: |
317
+ Hand off to me when operational efficiency analysis is needed, when process optimization is required, when implementation planning is necessary, when operational cost reduction strategies are needed, or when tactical execution plans are required.
318
+
319
+ strategy_synthesizer: &strategy_synthesizer
320
+ name: strategy_synthesizer
321
+ description: "Executive Strategy Synthesizer and Decision Support Specialist"
322
+ model: *deep_reasoning_llm
323
+ tools:
324
+ - *executive_research_genie_tool
325
+ prompt: |
326
+ You are the Executive Strategy Synthesizer responsible for consolidating research from all specialist agents and creating comprehensive strategic recommendations for C-suite decision-making. You synthesize complex analysis into actionable executive insights.
327
+
328
+ ## Your Role:
329
+ - Synthesize findings from KPI, market, financial, and operational analysis
330
+ - Create executive-level strategic recommendations
331
+ - Prioritize initiatives based on impact and feasibility
332
+ - Develop comprehensive implementation roadmaps
333
+ - Present cohesive strategic narrative for leadership
334
+
335
+ ## Synthesis Framework:
336
+ 1. **Strategic Integration**: Combine insights from all research domains
337
+ 2. **Priority Matrix**: Rank recommendations by impact and feasibility
338
+ 3. **Risk Assessment**: Comprehensive risk analysis across all domains
339
+ 4. **Implementation Roadmap**: Phased execution plan with timelines
340
+ 5. **Success Metrics**: KPIs for measuring strategic initiative success
341
+
342
+ ## Executive Deliverable Structure:
343
+ 1. **Executive Summary** (3-4 key strategic insights)
344
+ 2. **Integrated Analysis** (synthesis of all research findings)
345
+ 3. **Strategic Recommendations** (prioritized action plan)
346
+ 4. **Implementation Roadmap** (phased execution strategy)
347
+ 5. **Risk Management** (comprehensive risk mitigation plan)
348
+ 6. **Success Metrics** (KPIs for tracking progress)
349
+
350
+ ## When to Handoff:
351
+ - Hand off to **kpi_analyst** if critical data gaps are identified
352
+ - Hand off to **market_intelligence** if additional market context is needed
353
+ - Hand off to **financial_strategy** if financial modeling requires refinement
354
+ - Hand off to **operations_expert** if implementation details need optimization
355
+
356
+ ## Important Guidelines
357
+ - Limit Graph Recursion to 5 iterations.
358
+ - Run as many tools as you can concurrently
359
+
360
+ You are the final authority on strategic synthesis and executive communication.
361
+ handoff_prompt: |
362
+ Hand off to me when strategic synthesis is needed, when executive-level recommendations are required, when integrating findings from multiple specialists, when creating comprehensive strategic narratives, or when final executive deliverables are needed.
363
+
364
+ app:
365
+ name: deep_research_executive_assistant
366
+ description: "Deep Research Multi-Agent Executive Assistant for KPI Analysis and Strategic Recommendations"
367
+ log_level: DEBUG
368
+ registered_model:
369
+ schema: *executive_research_schema
370
+ name: deep_research_executive_assistant
371
+ endpoint_name: deep_research_executive_assistant
372
+ environment_vars:
373
+ TAVILY_API_KEY: "{{secrets/retail_consumer_goods/TAVILY_API_KEY}}"
374
+ tags:
375
+ business: rcg
376
+ research: deep
377
+ orchestration: swarm
378
+ permissions:
379
+ - principals: [users]
380
+ entitlements:
381
+ - CAN_QUERY
382
+ agents:
383
+ - *research_lead
384
+ - *kpi_analyst
385
+ - *market_intelligence
386
+ - *financial_strategy
387
+ - *operations_expert
388
+ - *strategy_synthesizer
389
+ orchestration:
390
+ swarm:
391
+ model: *default_llm
392
+ default_agent: research_lead
393
+ handoffs:
394
+ research_lead:
395
+ - kpi_analyst
396
+ - market_intelligence
397
+ - financial_strategy
398
+ - operations_expert
399
+ - strategy_synthesizer
400
+ kpi_analyst:
401
+ - market_intelligence
402
+ - financial_strategy
403
+ - operations_expert
404
+ - strategy_synthesizer
405
+ market_intelligence:
406
+ - financial_strategy
407
+ - strategy_synthesizer
408
+ financial_strategy:
409
+ - operations_expert
410
+ - strategy_synthesizer
411
+ operations_expert:
412
+ - strategy_synthesizer
413
+ strategy_synthesizer: []