dao-ai 0.0.6__tar.gz → 0.0.8__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 (337) hide show
  1. dao_ai-0.0.8/.python-version +1 -0
  2. {dao_ai-0.0.6 → dao_ai-0.0.8}/PKG-INFO +10 -11
  3. {dao_ai-0.0.6 → dao_ai-0.0.8}/config/dais2025/model_config_dais.yaml +1 -1
  4. {dao_ai-0.0.6 → dao_ai-0.0.8}/config/hardware_store/supervisor_postgres.yaml +25 -16
  5. {dao_ai-0.0.6 → dao_ai-0.0.8}/databricks.yaml +8 -9
  6. dao_ai-0.0.8/environment.yaml +52 -0
  7. {dao_ai-0.0.6 → dao_ai-0.0.8}/notebooks/06_run_evaluation.py +8 -2
  8. {dao_ai-0.0.6 → dao_ai-0.0.8}/notebooks/08_run_examples.py +2 -0
  9. {dao_ai-0.0.6 → dao_ai-0.0.8}/pyproject.toml +10 -11
  10. {dao_ai-0.0.6 → dao_ai-0.0.8}/requirements.txt +15 -15
  11. {dao_ai-0.0.6 → dao_ai-0.0.8}/schemas/model_config_schema.json +32 -10
  12. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/cli.py +3 -0
  13. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/config.py +36 -3
  14. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/graph.py +31 -31
  15. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/hooks/__init__.py +2 -0
  16. dao_ai-0.0.8/src/dao_ai/hooks/core.py +223 -0
  17. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/memory/postgres.py +6 -6
  18. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/messages.py +6 -0
  19. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/models.py +66 -32
  20. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/nodes.py +12 -10
  21. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/providers/databricks.py +83 -3
  22. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/state.py +7 -0
  23. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/tools/__init__.py +3 -4
  24. dao_ai-0.0.8/src/dao_ai/tools/core.py +59 -0
  25. dao_ai-0.0.8/src/dao_ai/tools/human_in_the_loop.py +96 -0
  26. dao_ai-0.0.8/src/dao_ai/tools/mcp.py +118 -0
  27. dao_ai-0.0.8/src/dao_ai/tools/python.py +60 -0
  28. dao_ai-0.0.8/src/dao_ai/tools/unity_catalog.py +50 -0
  29. dao_ai-0.0.8/src/hardware_store/hooks.py +68 -0
  30. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/test_chat_history.py +33 -12
  31. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/test_config.py +112 -167
  32. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/test_mcp.py +3 -2
  33. dao_ai-0.0.8/tests/dao_ai/test_summarization_inference.py +364 -0
  34. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/test_tools.py +8 -8
  35. dao_ai-0.0.6/.python-version +0 -1
  36. dao_ai-0.0.6/src/dao_ai/hooks/core.py +0 -157
  37. dao_ai-0.0.6/src/dao_ai/tools/core.py +0 -352
  38. dao_ai-0.0.6/src/hardware_store/hooks.py +0 -61
  39. {dao_ai-0.0.6 → dao_ai-0.0.8}/.gitignore +0 -0
  40. {dao_ai-0.0.6 → dao_ai-0.0.8}/CHANGELOG.md +0 -0
  41. {dao_ai-0.0.6 → dao_ai-0.0.8}/CONTRIBUTING.md +0 -0
  42. {dao_ai-0.0.6 → dao_ai-0.0.8}/LICENSE +0 -0
  43. {dao_ai-0.0.6 → dao_ai-0.0.8}/Makefile +0 -0
  44. {dao_ai-0.0.6 → dao_ai-0.0.8}/README.md +0 -0
  45. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/Makefile +0 -0
  46. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/REFACTORING_SUMMARY.md +0 -0
  47. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/base-environment-serverless.yaml +0 -0
  48. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/demo_docs/BRAND_REP_DEMO_SUMMARY.md +0 -0
  49. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/demo_docs/demo_scripts/brand_rep_product_education_demo.md +0 -0
  50. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/demo_docs/demo_scripts/store_associate_ai_assistant_demo.md +0 -0
  51. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/demo_docs/demo_scripts/store_manager_alert_response_demo.md +0 -0
  52. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/development_workflows.md +0 -0
  53. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/.gitkeep +0 -0
  54. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/Makefile +0 -0
  55. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/agent_implementation.mmd +0 -0
  56. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/agent_tools_architecture.mmd +0 -0
  57. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/agents-and-tools/agent-troubleshooting.md +0 -0
  58. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-best-practices.md +0 -0
  59. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-development-patterns.md +0 -0
  60. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-performance.md +0 -0
  61. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/agents-and-tools/agents/agent-quickstart.md +0 -0
  62. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/agents-and-tools/ai-agents.md +0 -0
  63. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/agents-and-tools/overview.md +0 -0
  64. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/agents-and-tools/references/agent-reference.md +0 -0
  65. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/agents-and-tools/references/tools-reference.md +0 -0
  66. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/applications/streamlit-app.md +0 -0
  67. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/architecture/overview.md +0 -0
  68. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/architecture.mmd +0 -0
  69. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/architecture.png +0 -0
  70. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/customer_preparation_guide.md +0 -0
  71. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/databricks_integration.mmd +0 -0
  72. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/deployment/production.md +0 -0
  73. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/development/contributing.md +0 -0
  74. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/employee_tools_guide.md +0 -0
  75. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/getting-started/installation.md +0 -0
  76. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/getting-started/mkdocs-quickstart.md +0 -0
  77. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/getting-started/quick-start.md +0 -0
  78. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/index.md +0 -0
  79. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/mkdocs.yml +0 -0
  80. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/scenario_1_architecture.mmd +0 -0
  81. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/scenario_1_flow.mmd +0 -0
  82. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/setup-docs.sh +0 -0
  83. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/task_assignment_workflow_guide.md +0 -0
  84. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/docs/tools/overview.md +0 -0
  85. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/examples/customer_preparation_workflow.py +0 -0
  86. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/examples/task_assignment_workflow.py +0 -0
  87. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/load-env.sh +0 -0
  88. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/CSS_REFACTORING_SUMMARY.md +0 -0
  89. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/DEMO_CONTROLS_RESTORED.md +0 -0
  90. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/DEMO_IMPLEMENTATION_SUMMARY.md +0 -0
  91. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/DEMO_QUICK_START.md +0 -0
  92. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/Dockerfile +0 -0
  93. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/HOMEPAGE_README.md +0 -0
  94. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/Makefile +0 -0
  95. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/README.md +0 -0
  96. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/app.py +0 -0
  97. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/app.yaml +0 -0
  98. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/__init__.py +0 -0
  99. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/backup_homepage.py +0 -0
  100. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/chat.py +0 -0
  101. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/enhanced_charts.py +0 -0
  102. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/enhanced_navigation.py +0 -0
  103. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/__init__.py +0 -0
  104. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/__init__.py +0 -0
  105. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/associate_homepage.py +0 -0
  106. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/dashboard_tab.py +0 -0
  107. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/my_tasks_tab.py +0 -0
  108. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/performance_tab.py +0 -0
  109. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/products_tab.py +0 -0
  110. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/associate/schedule_tab.py +0 -0
  111. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/__init__.py +0 -0
  112. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/chat_integration.py +0 -0
  113. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/kpi_summary.py +0 -0
  114. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/common/notifications.py +0 -0
  115. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/homepage.py +0 -0
  116. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/__init__.py +0 -0
  117. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/alerts_tab.py +0 -0
  118. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/analytics_tab.py +0 -0
  119. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/dashboard_tab.py +0 -0
  120. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/demo_alerts.py +0 -0
  121. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/inventory_tab.py +0 -0
  122. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/manager_homepage.py +0 -0
  123. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/operations_tab.py +0 -0
  124. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/store_manager/team_tab.py +0 -0
  125. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/__init__.py +0 -0
  126. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/ai_insights_tab.py +0 -0
  127. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/executive_dashboard_tab.py +0 -0
  128. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/geographical_analysis_tab.py +0 -0
  129. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/performance_metrics_tab.py +0 -0
  130. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/strategic_insights_tab.py +0 -0
  131. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/homepage/vp_retail_operations/vp_homepage.py +0 -0
  132. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/metrics.py +0 -0
  133. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/navigation.py +0 -0
  134. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/oldhomepage.py +0 -0
  135. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/components/styles.py +0 -0
  136. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/config.yaml +0 -0
  137. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/demo_docs/BRAND_REP_DEMO_SUMMARY.md +0 -0
  138. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/demo_docs/comprehensive_demo_script.md +0 -0
  139. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/brand_rep_product_education_demo.md +0 -0
  140. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/store_associate_ai_assistant_demo.md +0 -0
  141. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/demo_docs/demo_scripts/store_manager_alert_response_demo.md +0 -0
  142. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/dev/README.md +0 -0
  143. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/dev/__init__.py +0 -0
  144. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/dev/components/__init__.py +0 -0
  145. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/dev/components/dashboard_card.py +0 -0
  146. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/dev/demo_alerts.py +0 -0
  147. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/dev/examples/sample_dashboard.py +0 -0
  148. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/pages/__init__.py +0 -0
  149. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/pages/component_showcase.py +0 -0
  150. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/pages/dev_playground.py +0 -0
  151. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/pages/playground.py +0 -0
  152. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/pages_wip/daily_operations.py +0 -0
  153. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/pages_wip/inventory.py +0 -0
  154. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/pages_wip/my_schedule.py +0 -0
  155. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/pages_wip/my_tasks.py +0 -0
  156. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/pages_wip/orders.py +0 -0
  157. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/pages_wip/products_promotions.py +0 -0
  158. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/pages_wip/staff.py +0 -0
  159. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/pages_wip/team_insights.py +0 -0
  160. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/pyproject.toml +0 -0
  161. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/requirements.txt +0 -0
  162. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/static/css/style.css +0 -0
  163. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/styles/README.md +0 -0
  164. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/styles/__init__.py +0 -0
  165. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/styles/base.py +0 -0
  166. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/styles/components.py +0 -0
  167. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/styles/dashboard.py +0 -0
  168. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/styles/homepage.py +0 -0
  169. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/styles/theme.py +0 -0
  170. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/test_vip_notification.py +0 -0
  171. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/tests/test_calculations.py +0 -0
  172. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/utils/config.py +0 -0
  173. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/utils/database.py +0 -0
  174. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/utils/model_serving.py +0 -0
  175. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app/utils/store_context.py +0 -0
  176. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/Makefile +0 -0
  177. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/README.md +0 -0
  178. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/app.py +0 -0
  179. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/__init__.py +0 -0
  180. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/__init__.py +0 -0
  181. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_components.py +0 -0
  182. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_components_enhanced.py +0 -0
  183. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin/tailadmin_styles.py +0 -0
  184. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/components/tailadmin/tailadmin_styles.py +0 -0
  185. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/TAILADMIN_README.md +0 -0
  186. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/homepage_tailadmin.py +0 -0
  187. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/tailadmin_demo.py +0 -0
  188. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/tailadmin_implementation_guide.py +0 -0
  189. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/test_vp_dashboard.py +0 -0
  190. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/vp_dashboard_enhanced.py +0 -0
  191. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/old/vp_dashboard_tailadmin.py +0 -0
  192. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/components_demo.py +0 -0
  193. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/homepage.py +0 -0
  194. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/implementation_guide.py +0 -0
  195. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/vp_dashboard_clean.py +0 -0
  196. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pages/vp_dashboard_enhanced.py +0 -0
  197. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/pyproject.toml +0 -0
  198. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/tests/__init__.py +0 -0
  199. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/streamlit_store_app_tailadmin/tests/test_imports.py +0 -0
  200. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/tests/.gitkeep +0 -0
  201. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/tests/README.md +0 -0
  202. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/tests/images/doritos_upc.png +0 -0
  203. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/tests/images/lays_upc.png +0 -0
  204. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/tests/manager_demo_script.md +0 -0
  205. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/tests/notebook_vector_search_test.py +0 -0
  206. {dao_ai-0.0.6 → dao_ai-0.0.8}/apps/dais2025/store-app/tests/test_vector_search_integration.py +0 -0
  207. {dao_ai-0.0.6 → dao_ai-0.0.8}/config/examples/genie.yaml +0 -0
  208. {dao_ai-0.0.6 → dao_ai-0.0.8}/config/examples/genie_and_vector_search.yaml +0 -0
  209. {dao_ai-0.0.6 → dao_ai-0.0.8}/config/examples/human_in_the_loop.yaml +0 -0
  210. {dao_ai-0.0.6 → dao_ai-0.0.8}/config/examples/jira.yaml +0 -0
  211. {dao_ai-0.0.6 → dao_ai-0.0.8}/config/examples/mcp.yaml +0 -0
  212. {dao_ai-0.0.6 → dao_ai-0.0.8}/config/examples/minimal.yaml +0 -0
  213. {dao_ai-0.0.6 → dao_ai-0.0.8}/config/examples/reservations.yaml +0 -0
  214. {dao_ai-0.0.6 → dao_ai-0.0.8}/config/hardware_store/supervisor.yaml +0 -0
  215. {dao_ai-0.0.6 → dao_ai-0.0.8}/config/hardware_store/swarm.yaml +0 -0
  216. {dao_ai-0.0.6 → dao_ai-0.0.8}/config/quick_serve_restaurant/.gitkeep +0 -0
  217. {dao_ai-0.0.6 → dao_ai-0.0.8}/config/quick_serve_restaurant/quick-serve-restaurant.yaml +0 -0
  218. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/appointments.sql +0 -0
  219. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/appointments_data.sql +0 -0
  220. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/brand_rep_demo_data.sql +0 -0
  221. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/brand_rep_demo_queries.sql +0 -0
  222. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/brand_rep_demo_tables.sql +0 -0
  223. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/brand_rep_demo_validation.sql +0 -0
  224. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/customers.sql +0 -0
  225. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/customers_data.sql +0 -0
  226. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/dim_stores.sql +0 -0
  227. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/dim_stores_data.sql +0 -0
  228. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/employee_performance.sql +0 -0
  229. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/employee_performance_data.sql +0 -0
  230. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/employee_tasks.sql +0 -0
  231. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/employee_tasks_data.sql +0 -0
  232. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/inventory.sql +0 -0
  233. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/inventory_data.sql +0 -0
  234. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/managers.sql +0 -0
  235. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/managers_data.sql +0 -0
  236. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/product_data.sql +0 -0
  237. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/products.sql +0 -0
  238. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/dais2025/task_assignments.sql +0 -0
  239. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/hardware_store/inventory.snappy.parquet +0 -0
  240. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/hardware_store/inventory.sql +0 -0
  241. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/hardware_store/products.snappy.parquet +0 -0
  242. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/hardware_store/products.sql +0 -0
  243. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/quick_serve_restaurant/.gitkeep +0 -0
  244. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/quick_serve_restaurant/fulfil_item_orders.sql +0 -0
  245. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/quick_serve_restaurant/items_description.csv +0 -0
  246. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/quick_serve_restaurant/items_description.sql +0 -0
  247. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/quick_serve_restaurant/items_raw.csv +0 -0
  248. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/quick_serve_restaurant/items_raw.sql +0 -0
  249. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/quick_serve_restaurant/orders_raw.csv +0 -0
  250. {dao_ai-0.0.6 → dao_ai-0.0.8}/data/quick_serve_restaurant/orders_raw.sql +0 -0
  251. {dao_ai-0.0.6 → dao_ai-0.0.8}/docs/genie.png +0 -0
  252. {dao_ai-0.0.6 → dao_ai-0.0.8}/docs/hardware_store/README.md +0 -0
  253. {dao_ai-0.0.6 → dao_ai-0.0.8}/docs/hardware_store/retail_supervisor.png +0 -0
  254. {dao_ai-0.0.6 → dao_ai-0.0.8}/docs/hardware_store/retail_swarm.png +0 -0
  255. {dao_ai-0.0.6 → dao_ai-0.0.8}/docs/quick_serve_restaurant/.gitkeep +0 -0
  256. {dao_ai-0.0.6 → dao_ai-0.0.8}/docs/quick_serve_restaurant/quick-serve-restaurant.png +0 -0
  257. {dao_ai-0.0.6 → dao_ai-0.0.8}/examples/dais2025/examples.yaml +0 -0
  258. {dao_ai-0.0.6 → dao_ai-0.0.8}/examples/hardware_store/examples.yaml +0 -0
  259. {dao_ai-0.0.6 → dao_ai-0.0.8}/examples/quick_serve_restaurant/.gitkeep +0 -0
  260. {dao_ai-0.0.6 → dao_ai-0.0.8}/examples/quick_serve_restaurant/examples.yaml +0 -0
  261. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/dais2025/extract_store_numbers.sql +0 -0
  262. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/dais2025/find_inventory_by_sku.sql +0 -0
  263. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/dais2025/find_inventory_by_upc.sql +0 -0
  264. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/dais2025/find_product_by_sku.sql +0 -0
  265. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/dais2025/find_product_by_upc.sql +0 -0
  266. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/dais2025/find_store_by_number.sql +0 -0
  267. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/dais2025/find_store_inventory_by_sku.sql +0 -0
  268. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/dais2025/find_store_inventory_by_upc.sql +0 -0
  269. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/hardware_store/find_inventory_by_sku.sql +0 -0
  270. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/hardware_store/find_inventory_by_upc.sql +0 -0
  271. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/hardware_store/find_product_by_sku.sql +0 -0
  272. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/hardware_store/find_product_by_upc.sql +0 -0
  273. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/hardware_store/find_store_inventory_by_sku.sql +0 -0
  274. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/hardware_store/find_store_inventory_by_upc.sql +0 -0
  275. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/quick_serve_restaurant/.gitkeep +0 -0
  276. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/quick_serve_restaurant/insert_coffee_order.sql +0 -0
  277. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/quick_serve_restaurant/lookup_items_by_descriptions.sql +0 -0
  278. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/quick_serve_restaurant/match_historical_item_order_by_date.sql +0 -0
  279. {dao_ai-0.0.6 → dao_ai-0.0.8}/functions/quick_serve_restaurant/match_item_by_description_and_price.sql +0 -0
  280. {dao_ai-0.0.6 → dao_ai-0.0.8}/notebooks/01_ingest_and_transform.py +0 -0
  281. {dao_ai-0.0.6 → dao_ai-0.0.8}/notebooks/02_provision_vector_search.py +0 -0
  282. {dao_ai-0.0.6 → dao_ai-0.0.8}/notebooks/03_generate_evaluation_data.py +0 -0
  283. {dao_ai-0.0.6 → dao_ai-0.0.8}/notebooks/04_unity_catalog_tools.py +0 -0
  284. {dao_ai-0.0.6 → dao_ai-0.0.8}/notebooks/05_agent_as_code_driver.py +0 -0
  285. {dao_ai-0.0.6 → dao_ai-0.0.8}/notebooks/09_evaluate_inferences.py +0 -0
  286. {dao_ai-0.0.6 → dao_ai-0.0.8}/notebooks/99_scratchpad.py +0 -0
  287. {dao_ai-0.0.6 → dao_ai-0.0.8}/schemas/bundle_config_schema.json +0 -0
  288. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dais2025/__init__.py +0 -0
  289. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dais2025/models.py +0 -0
  290. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dais2025/tools/__init__.py +0 -0
  291. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dais2025/tools/customer.py +0 -0
  292. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dais2025/tools/employee.py +0 -0
  293. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dais2025/tools/executive.py +0 -0
  294. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dais2025/tools/genie.py +0 -0
  295. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dais2025/tools/inventory.py +0 -0
  296. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dais2025/tools/models.py +0 -0
  297. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dais2025/tools/store.py +0 -0
  298. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/__init__.py +0 -0
  299. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/agent_as_code.py +0 -0
  300. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/catalog.py +0 -0
  301. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/chat_models.py +0 -0
  302. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/guardrails.py +0 -0
  303. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/memory/__init__.py +0 -0
  304. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/memory/base.py +0 -0
  305. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/memory/core.py +0 -0
  306. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/prompts.py +0 -0
  307. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/providers/__init__.py +0 -0
  308. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/providers/base.py +0 -0
  309. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/tools/agent.py +0 -0
  310. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/tools/genie.py +0 -0
  311. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/tools/time.py +0 -0
  312. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/tools/vector_search.py +0 -0
  313. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/types.py +0 -0
  314. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/utils.py +0 -0
  315. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/dao_ai/vector_search.py +0 -0
  316. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/hardware_store/tools.py +0 -0
  317. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/quick_serve_restaurant/.gitkeep +0 -0
  318. {dao_ai-0.0.6 → dao_ai-0.0.8}/src/quick_serve_restaurant/tools.py +0 -0
  319. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/config/test_model_config.yaml +0 -0
  320. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/conftest.py +0 -0
  321. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/test_catalog.py +0 -0
  322. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/test_databricks.py +0 -0
  323. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/test_function_parsing.py +0 -0
  324. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/test_hooks.py +0 -0
  325. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/test_inference.py +0 -0
  326. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/test_messages.py +0 -0
  327. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/test_models.py +0 -0
  328. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/test_state.py +0 -0
  329. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/test_types.py +0 -0
  330. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/test_utils.py +0 -0
  331. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/test_vector_search.py +0 -0
  332. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/dao_ai/weather_server_mcp.py +0 -0
  333. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/hardware_store/.gitkeep +0 -0
  334. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/hardware_store/test_graph.py +0 -0
  335. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/images/doritos_upc.png +0 -0
  336. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/images/lays_upc.png +0 -0
  337. {dao_ai-0.0.6 → dao_ai-0.0.8}/tests/quick_serve_restaurant/.gitkeep +0 -0
@@ -0,0 +1 @@
1
+ 3.12
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: dao-ai
3
- Version: 0.0.6
3
+ Version: 0.0.8
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
@@ -23,28 +23,27 @@ Classifier: Programming Language :: Python :: 3.13
23
23
  Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
24
24
  Classifier: Topic :: Software Development :: Libraries :: Python Modules
25
25
  Classifier: Topic :: System :: Distributed Computing
26
- Requires-Python: >=3.11
26
+ Requires-Python: >=3.12
27
27
  Requires-Dist: databricks-agents>=1.2.0
28
28
  Requires-Dist: databricks-langchain>=0.4.2
29
29
  Requires-Dist: databricks-sdk[openai]>=0.55.0
30
30
  Requires-Dist: databricks-vectorsearch>=0.56
31
31
  Requires-Dist: duckduckgo-search>=8.0.2
32
32
  Requires-Dist: grandalf>=0.8
33
- Requires-Dist: langchain-mcp-adapters>=0.1.4
34
- Requires-Dist: langchain>=0.3.24
35
- Requires-Dist: langgraph-checkpoint-postgres>=2.0.21
36
- Requires-Dist: langgraph-prebuilt<=0.2.3
37
- Requires-Dist: langgraph-supervisor>=0.0.27
38
- Requires-Dist: langgraph-swarm>=0.0.11
39
- Requires-Dist: langgraph<=0.4.10
40
- Requires-Dist: langmem>=0.0.27
33
+ Requires-Dist: langchain-mcp-adapters>=0.1.9
34
+ Requires-Dist: langchain>=0.3.27
35
+ Requires-Dist: langgraph-checkpoint-postgres>=2.0.23
36
+ Requires-Dist: langgraph-supervisor>=0.0.29
37
+ Requires-Dist: langgraph-swarm>=0.0.14
38
+ Requires-Dist: langgraph>=0.6.5
39
+ Requires-Dist: langmem>=0.0.29
41
40
  Requires-Dist: loguru>=0.7.3
42
41
  Requires-Dist: mcp>=1.9.1
43
42
  Requires-Dist: mlflow>=3.1.1
44
43
  Requires-Dist: nest-asyncio>=1.6.0
45
44
  Requires-Dist: openevals>=0.0.19
46
45
  Requires-Dist: openpyxl>=3.1.5
47
- Requires-Dist: psycopg[binary,pool]>=3.2.6
46
+ Requires-Dist: psycopg[binary,pool]>=3.2.9
48
47
  Requires-Dist: pydantic>=2.11.3
49
48
  Requires-Dist: python-dotenv>=1.1.0
50
49
  Requires-Dist: pyyaml>=6.0.2
@@ -61,7 +61,7 @@ resources:
61
61
  store_vector_store: &store_vector_store
62
62
  embedding_model: *embedding_model
63
63
  endpoint:
64
- name: rct-store-ops-dais
64
+ name: dbdemos_vs_endpoint
65
65
  type: STANDARD
66
66
  index:
67
67
  schema: *dais_schema
@@ -14,10 +14,13 @@ schemas:
14
14
  retail_schema: &retail_schema
15
15
  catalog_name: retail_consumer_goods # Unity Catalog name
16
16
  schema_name: hardware_store # Schema within the catalog
17
- # permissions: # Access permissions for the schema
18
- # - principals: [users] # Grant access to all users
19
- # privileges:
20
- # - ALL_PRIVILEGES # Full permissions for demo purposes
17
+ permissions: # Access permissions for the schema
18
+ - principals: [users] # Grant access to all users
19
+ privileges:
20
+ - USE_CATALOG # Full permissions for demo purposes
21
+ - USE_SCHEMA # Full permissions for demo purposes
22
+ - SELECT # Full permissions for demo purposes
23
+ - EXECUTE # Full permissions for demo purposes
21
24
 
22
25
  # =============================================================================
23
26
  # RESOURCES CONFIGURATION
@@ -33,7 +36,7 @@ resources:
33
36
  llms:
34
37
  # Primary LLM for general tasks
35
38
  default_llm: &default_llm
36
- name: databricks-claude-3-7-sonnet # Databricks serving endpoint name
39
+ name: databricks-claude-3-7-sonnet # Databricks serving endpoint name
37
40
  temperature: 0.1 # Low temperature for consistent responses
38
41
  max_tokens: 8192 # Maximum tokens per response
39
42
 
@@ -462,8 +465,8 @@ agents:
462
465
  model: *tool_calling_llm # Reference to LLM configuration
463
466
  tools: # Tools available to this agent
464
467
  - *find_product_details_by_description_tool
465
- guardrails: # Quality checks (currently disabled)
466
- - *llm_judge_guardrail
468
+ guardrails: [] # Quality checks (currently disabled)
469
+ # - *llm_judge_guardrail
467
470
  prompt: | # System prompt defining agent behavior
468
471
  ### User Information
469
472
  - **User Id**: {user_id}
@@ -912,13 +915,13 @@ agents:
912
915
  # and agent orchestration patterns for the multi-agent system
913
916
 
914
917
  app:
915
- name: hardware_store_postgres # Application name
918
+ name: hardware_store_postgres_beta # Application name
916
919
  description: "Multi-agent system for retail customer service and product assistance"
917
920
  log_level: DEBUG # Logging level for the application
918
921
  registered_model: # MLflow registered model configuration
919
922
  schema: *retail_schema # Schema where model will be registered
920
- name: hardware_store_postgres # Model name in MLflow registry
921
- endpoint_name: hardware_store_postgres # Model serving endpoint name
923
+ name: hardware_store_postgres_beta # Model name in MLflow registry
924
+ endpoint_name: hardware_store_postgres_beta # Model serving endpoint name
922
925
  environment_vars:
923
926
  PGHOST: "{{secrets/retail_ai/PGHOST}}" # Databricks host URL
924
927
  RETAIL_AI_DATABRICKS_CLIENT_ID: "{{secrets/retail_ai/RETAIL_AI_DATABRICKS_CLIENT_ID}}"
@@ -926,7 +929,7 @@ app:
926
929
  RETAIL_AI_DATABRICKS_HOST: "{{secrets/retail_ai/RETAIL_AI_DATABRICKS_HOST}}"
927
930
  tags: # Tags for resource organization
928
931
  business: rcg # Business unit identifier
929
- streaming: true # Indicates streaming capabilities
932
+ streaming: True # Indicates streaming capabilities
930
933
  permissions: # Model serving permissions
931
934
  - principals: [users] # Grant access to all users
932
935
  entitlements:
@@ -943,6 +946,9 @@ app:
943
946
  memory: *memory # Memory store for conversation context
944
947
  supervisor: # Supervisor orchestration pattern
945
948
  model: *tool_calling_llm # LLM for routing decisions
949
+ # swarm:
950
+ # model: *tool_calling_llm
951
+ # default_agent: *general
946
952
 
947
953
  message_hooks:
948
954
  - dao_ai.hooks.null_hook
@@ -957,13 +963,10 @@ app:
957
963
  user_id: my_user_id
958
964
  store_num: 87887
959
965
  #chat_history:
960
- #max_tokens: 256
966
+ # #max_tokens: 256
961
967
  # max_messages_before_summary: 5
962
- # max_summary_tokens: 128
963
968
  # model: *fast_llm # Model for summarization tasks
964
- # swarm:
965
- # model: *tool_calling_llm
966
- # default_agent: *general
969
+
967
970
 
968
971
  # =============================================================================
969
972
  # UNITY CATALOG FUNCTIONS DEPLOYMENT
@@ -1033,6 +1036,12 @@ evaluation:
1033
1036
  thread_id: "1"
1034
1037
  user_id: nate_fleming
1035
1038
  store_num: 87887
1039
+ guidelines:
1040
+ - name: MyRelevanceGuideline
1041
+ guidelines:
1042
+ - Ensure responses are relevant to the user's query
1043
+ - Prioritize information from the user's context
1044
+ - Avoid unnecessary jargon or technical details
1036
1045
 
1037
1046
  # =============================================================================
1038
1047
  # DATASETS CONFIGURATION
@@ -1,6 +1,5 @@
1
1
  # yaml-language-server: $schema=./schemas/bundle_config_schema.json
2
2
 
3
-
4
3
  bundle:
5
4
  name: dao-ai-bundle
6
5
 
@@ -31,11 +30,11 @@ resources:
31
30
  spark_version: 16.2.x-scala2.12
32
31
  num_workers: 1
33
32
  environments:
34
- - environment_key: default
33
+ - environment_key: dao-ai-env
35
34
  spec:
36
- client: "3"
35
+ client: "4"
37
36
  dependencies:
38
- - "-r ${workspace.file_path}/requirements.txt"
37
+ - -r ${workspace.file_path}/requirements.txt
39
38
  tasks:
40
39
  - task_key: ingest-and-transform
41
40
  notebook_task:
@@ -50,7 +49,7 @@ resources:
50
49
  notebook_path: ./notebooks/02_provision_vector_search.py
51
50
  base_parameters:
52
51
  config-path: ${var.config_path}
53
- environment_key: default
52
+ environment_key: dao-ai-env
54
53
  - task_key: generate-evaluation-data
55
54
  depends_on:
56
55
  - task_key: provision-vector-search
@@ -58,7 +57,7 @@ resources:
58
57
  notebook_path: ./notebooks/03_generate_evaluation_data.py
59
58
  base_parameters:
60
59
  config-path: ${var.config_path}
61
- environment_key: default
60
+ environment_key: dao-ai-env
62
61
  - task_key: unity-catalog-tools
63
62
  depends_on:
64
63
  - task_key: provision-vector-search
@@ -66,7 +65,7 @@ resources:
66
65
  notebook_path: ./notebooks/04_unity_catalog_tools.py
67
66
  base_parameters:
68
67
  config-path: ${var.config_path}
69
- environment_key: default
68
+ environment_key: dao-ai-env
70
69
  - task_key: deploy-agents
71
70
  depends_on:
72
71
  - task_key: unity-catalog-tools
@@ -74,7 +73,7 @@ resources:
74
73
  notebook_path: ./notebooks/05_agent_as_code_driver.py
75
74
  base_parameters:
76
75
  config-path: ${var.config_path}
77
- environment_key: default
76
+ environment_key: dao-ai-env
78
77
  - task_key: run-evaluation
79
78
  depends_on:
80
79
  - task_key: deploy-agents
@@ -83,7 +82,7 @@ resources:
83
82
  notebook_path: ./notebooks/06_run_evaluation.py
84
83
  base_parameters:
85
84
  config-path: ${var.config_path}
86
- environment_key: default
85
+ environment_key: dao-ai-env
87
86
 
88
87
  targets:
89
88
  dev:
@@ -0,0 +1,52 @@
1
+ environment_version: '3'
2
+ dependencies:
3
+ - --index-url https://pypi.org/simple
4
+ # Core framework dependencies
5
+ - langchain==0.3.27
6
+ - langchain-core==0.3.72
7
+ - langchain-community==0.3.26
8
+ - langchain-anthropic==0.3.18
9
+ - langchain-openai==0.3.24
10
+ - langgraph==0.6.5
11
+ - langgraph-checkpoint==2.1.1
12
+ - langgraph-checkpoint-postgres==2.0.23
13
+ - langgraph-prebuilt==0.6.3
14
+ - langgraph-supervisor==0.0.29
15
+ - langmem==0.0.29
16
+ - langsmith==0.4.1
17
+ # Databricks dependencies
18
+ - databricks-agents==1.2.0
19
+ - databricks-ai-bridge==0.5.1
20
+ - databricks-langchain==0.5.1
21
+ - databricks-sdk==0.61.0
22
+ - databricks-vectorsearch==0.56
23
+ - unitycatalog-ai==0.3.1
24
+ - unitycatalog-langchain==0.2.0
25
+ # MLflow and AI model dependencies
26
+ - mlflow==3.1.1
27
+ - anthropic==0.60.0
28
+ - openai==1.90.0
29
+ - tiktoken==0.9.0
30
+ # Data processing dependencies
31
+ - pandas==2.3.0
32
+ - numpy==1.26.4
33
+ - pyarrow==20.0.0
34
+ - sqlparse==0.5.3
35
+ - pydantic==2.11.7
36
+ - pydantic-settings==2.10.0
37
+ # Database dependencies
38
+ - psycopg==3.2.9
39
+ - psycopg-binary==3.2.9
40
+ - psycopg-pool==3.2.6
41
+ - sqlalchemy==2.0.41
42
+ # Web framework dependencies
43
+ - fastapi==0.115.13
44
+ - uvicorn==0.34.3
45
+ - starlette==0.46.2
46
+ # Utilities
47
+ - loguru==0.7.3
48
+ - python-dotenv==1.1.0
49
+ - pyyaml==6.0.2
50
+ - requests==2.32.4
51
+ - tenacity==9.1.2
52
+ - typing-extensions==4.14.0
@@ -225,14 +225,20 @@ eval_df: pd.DataFrame = spark.read.table(payload_table).toPandas()
225
225
 
226
226
  evaluation_table_name: str = config.evaluation.table.full_name
227
227
 
228
- scorers_list = [Safety(), clarity, response_completeness, tool_call_efficiency]
228
+ scorers = [Safety(), clarity, response_completeness, tool_call_efficiency]
229
+ custom_scorers = []
230
+
231
+ if config.evaluation.guidelines:
232
+ custom_scorers = [Guidelines(name=guideline.name, guidelines=guideline.guidelines) for guideline in config.evaluation.guidelines]
233
+
234
+ scorers += custom_scorers
229
235
 
230
236
  with mlflow.start_run(run_id=model_version.run_id):
231
237
  eval_results = mlflow.genai.evaluate(
232
238
  data=eval_df,
233
239
  predict_fn=predict_fn,
234
240
  model_id=model_version.model_id,
235
- scorers=scorers_list,
241
+ scorers=scorers,
236
242
  )
237
243
 
238
244
 
@@ -1,5 +1,7 @@
1
1
  # Databricks notebook source
2
2
  # MAGIC %pip install --quiet -r ../requirements.txt
3
+ # MAGIC %pip uninstall -y databricks-connect pyspark pyspark-connect
4
+ # MAGIC %pip install databricks-connect
3
5
  # MAGIC %restart_python
4
6
 
5
7
  # COMMAND ----------
@@ -4,11 +4,11 @@ build-backend = "hatchling.build"
4
4
 
5
5
  [project]
6
6
  name = "dao-ai"
7
- version = "0.0.6"
7
+ version = "0.0.8"
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.11"
11
+ requires-python = ">=3.12"
12
12
  authors = [
13
13
  { name = "Nate Fleming", email = "nate.fleming@databricks.com" },
14
14
  { name = "Nate Fleming", email = "nate.fleming@gmail.com" },
@@ -48,21 +48,20 @@ dependencies = [
48
48
  "databricks-vectorsearch>=0.56",
49
49
  "duckduckgo-search>=8.0.2",
50
50
  "grandalf>=0.8",
51
- "langchain>=0.3.24",
52
- "langchain-mcp-adapters>=0.1.4",
53
- "langgraph<=0.4.10",
54
- "langgraph-checkpoint-postgres>=2.0.21",
55
- "langgraph-prebuilt<=0.2.3",
56
- "langgraph-supervisor>=0.0.27",
57
- "langgraph-swarm>=0.0.11",
58
- "langmem>=0.0.27",
51
+ "langchain>=0.3.27",
52
+ "langchain-mcp-adapters>=0.1.9",
53
+ "langgraph>=0.6.5",
54
+ "langgraph-checkpoint-postgres>=2.0.23",
55
+ "langgraph-supervisor>=0.0.29",
56
+ "langgraph-swarm>=0.0.14",
57
+ "langmem>=0.0.29",
59
58
  "loguru>=0.7.3",
60
59
  "mcp>=1.9.1",
61
60
  "mlflow>=3.1.1",
62
61
  "nest-asyncio>=1.6.0",
63
62
  "openevals>=0.0.19",
64
63
  "openpyxl>=3.1.5",
65
- "psycopg[binary,pool]>=3.2.6",
64
+ "psycopg[binary,pool]>=3.2.9",
66
65
  "pydantic>=2.11.3",
67
66
  "python-dotenv>=1.1.0",
68
67
  "pyyaml>=6.0.2",
@@ -4,7 +4,7 @@ aiohttp-retry==2.9.1
4
4
  aiosignal==1.3.2
5
5
  alembic==1.16.2
6
6
  annotated-types==0.7.0
7
- anthropic==0.54.0
7
+ anthropic==0.60.0
8
8
  anyio==4.9.0
9
9
  attrs==25.3.0
10
10
  blinker==1.9.0
@@ -20,7 +20,7 @@ contourpy==1.3.2
20
20
  cycler==0.12.1
21
21
  databricks-agents==1.2.0
22
22
  databricks-ai-bridge==0.5.1
23
- databricks-connect==16.1.6
23
+ databricks-connect==16.3.4
24
24
  databricks-langchain==0.5.1
25
25
  databricks-sdk==0.61.0
26
26
  databricks-vectorsearch==0.56
@@ -65,21 +65,21 @@ joblib==1.5.1
65
65
  jsonpatch==1.33
66
66
  jsonpointer==3.0.0
67
67
  kiwisolver==1.4.8
68
- langchain==0.3.26
69
- langchain-anthropic==0.3.15
68
+ langchain==0.3.27
69
+ langchain-anthropic==0.3.18
70
70
  langchain-community==0.3.26
71
- langchain-core==0.3.66
72
- langchain-mcp-adapters==0.1.7
71
+ langchain-core==0.3.72
72
+ langchain-mcp-adapters==0.1.9
73
73
  langchain-openai==0.3.24
74
- langchain-text-splitters==0.3.8
75
- langgraph==0.4.8
76
- langgraph-checkpoint==2.1.0
77
- langgraph-checkpoint-postgres==2.0.21
78
- langgraph-prebuilt==0.2.2
79
- langgraph-sdk==0.1.70
80
- langgraph-supervisor==0.0.27
81
- langgraph-swarm==0.0.11
82
- langmem==0.0.27
74
+ langchain-text-splitters==0.3.9
75
+ langgraph==0.6.5
76
+ langgraph-checkpoint==2.1.1
77
+ langgraph-checkpoint-postgres==2.0.23
78
+ langgraph-prebuilt==0.6.3
79
+ langgraph-sdk==0.2.0
80
+ langgraph-supervisor==0.0.29
81
+ langgraph-swarm==0.0.14
82
+ langmem==0.0.29
83
83
  langsmith==0.4.1
84
84
  loguru==0.7.3
85
85
  lxml==5.4.0
@@ -466,16 +466,9 @@
466
466
  "title": "Max Messages Before Summary"
467
467
  },
468
468
  "max_summary_tokens": {
469
- "anyOf": [
470
- {
471
- "type": "integer"
472
- },
473
- {
474
- "type": "null"
475
- }
476
- ],
477
- "default": null,
478
- "title": "Max Summary Tokens"
469
+ "default": 255,
470
+ "title": "Max Summary Tokens",
471
+ "type": "integer"
479
472
  }
480
473
  },
481
474
  "required": [
@@ -1097,6 +1090,13 @@
1097
1090
  "additionalProperties": true,
1098
1091
  "title": "Custom Inputs",
1099
1092
  "type": "object"
1093
+ },
1094
+ "guidelines": {
1095
+ "items": {
1096
+ "$ref": "#/$defs/GuidelineModel"
1097
+ },
1098
+ "title": "Guidelines",
1099
+ "type": "array"
1100
1100
  }
1101
1101
  },
1102
1102
  "required": [
@@ -1264,6 +1264,28 @@
1264
1264
  "title": "GuardrailModel",
1265
1265
  "type": "object"
1266
1266
  },
1267
+ "GuidelineModel": {
1268
+ "additionalProperties": false,
1269
+ "properties": {
1270
+ "name": {
1271
+ "title": "Name",
1272
+ "type": "string"
1273
+ },
1274
+ "guidelines": {
1275
+ "items": {
1276
+ "type": "string"
1277
+ },
1278
+ "title": "Guidelines",
1279
+ "type": "array"
1280
+ }
1281
+ },
1282
+ "required": [
1283
+ "name",
1284
+ "guidelines"
1285
+ ],
1286
+ "title": "GuidelineModel",
1287
+ "type": "object"
1288
+ },
1267
1289
  "HumanInTheLoopModel": {
1268
1290
  "additionalProperties": false,
1269
1291
  "properties": {
@@ -3,6 +3,7 @@ import json
3
3
  import os
4
4
  import subprocess
5
5
  import sys
6
+ import traceback
6
7
  from argparse import ArgumentParser, Namespace
7
8
  from pathlib import Path
8
9
  from typing import Optional, Sequence
@@ -388,7 +389,9 @@ def handle_chat_command(options: Namespace) -> None:
388
389
 
389
390
  except Exception as e:
390
391
  print(f"\n❌ Error during streaming: {e}")
392
+ print(f"Stack trace:\n{traceback.format_exc()}")
391
393
  logger.error(f"Streaming error: {e}")
394
+ logger.error(f"Stack trace: {traceback.format_exc()}")
392
395
 
393
396
  except EOFError:
394
397
  # Handle Ctrl-D
@@ -28,6 +28,7 @@ from langchain_core.language_models import LanguageModelLike
28
28
  from langchain_core.runnables.base import RunnableLike
29
29
  from langchain_openai import ChatOpenAI
30
30
  from langgraph.checkpoint.base import BaseCheckpointSaver
31
+ from langgraph.graph.state import CompiledStateGraph
31
32
  from langgraph.store.base import BaseStore
32
33
  from loguru import logger
33
34
  from mlflow.models import ModelConfig
@@ -41,10 +42,9 @@ from mlflow.models.resources import (
41
42
  DatabricksUCConnection,
42
43
  DatabricksVectorSearchIndex,
43
44
  )
45
+ from mlflow.pyfunc import ChatModel
44
46
  from pydantic import BaseModel, ConfigDict, Field, field_serializer, model_validator
45
47
 
46
- from dao_ai.chat_models import ChatDatabricksFiltered
47
-
48
48
 
49
49
  class HasValue(ABC):
50
50
  @abstractmethod
@@ -275,9 +275,14 @@ class LLMModel(BaseModel, IsDatabricksResource):
275
275
  # chat_client: LanguageModelLike = self.as_open_ai_client()
276
276
 
277
277
  # Create ChatDatabricksWrapper instance directly
278
+ from dao_ai.chat_models import ChatDatabricksFiltered
279
+
278
280
  chat_client: LanguageModelLike = ChatDatabricksFiltered(
279
281
  model=self.name, temperature=self.temperature, max_tokens=self.max_tokens
280
282
  )
283
+ # chat_client: LanguageModelLike = ChatDatabricks(
284
+ # model=self.name, temperature=self.temperature, max_tokens=self.max_tokens
285
+ # )
281
286
 
282
287
  fallbacks: Sequence[LanguageModelLike] = []
283
288
  for fallback in self.fallbacks:
@@ -1001,7 +1006,15 @@ class ChatHistoryModel(BaseModel):
1001
1006
  max_tokens: int = 256
1002
1007
  max_tokens_before_summary: Optional[int] = None
1003
1008
  max_messages_before_summary: Optional[int] = None
1004
- max_summary_tokens: Optional[int] = None
1009
+ max_summary_tokens: int = 255
1010
+
1011
+ @model_validator(mode="after")
1012
+ def validate_max_summary_tokens(self) -> "ChatHistoryModel":
1013
+ if self.max_summary_tokens >= self.max_tokens:
1014
+ raise ValueError(
1015
+ f"max_summary_tokens ({self.max_summary_tokens}) must be less than max_tokens ({self.max_tokens})"
1016
+ )
1017
+ return self
1005
1018
 
1006
1019
 
1007
1020
  class AppModel(BaseModel):
@@ -1057,12 +1070,19 @@ class AppModel(BaseModel):
1057
1070
  return self
1058
1071
 
1059
1072
 
1073
+ class GuidelineModel(BaseModel):
1074
+ model_config = ConfigDict(use_enum_values=True, extra="forbid")
1075
+ name: str
1076
+ guidelines: list[str]
1077
+
1078
+
1060
1079
  class EvaluationModel(BaseModel):
1061
1080
  model_config = ConfigDict(use_enum_values=True, extra="forbid")
1062
1081
  model: LLMModel
1063
1082
  table: TableModel
1064
1083
  num_evals: int
1065
1084
  custom_inputs: dict[str, Any] = Field(default_factory=dict)
1085
+ guidelines: list[GuidelineModel] = Field(default_factory=list)
1066
1086
 
1067
1087
 
1068
1088
  class DatasetFormat(str, Enum):
@@ -1302,3 +1322,16 @@ class AppConfig(BaseModel):
1302
1322
  return [
1303
1323
  guardrail for guardrail in self.guardrails.values() if predicate(guardrail)
1304
1324
  ]
1325
+
1326
+ def as_graph(self) -> CompiledStateGraph:
1327
+ from dao_ai.graph import create_dao_ai_graph
1328
+
1329
+ graph: CompiledStateGraph = create_dao_ai_graph(config=self)
1330
+ return graph
1331
+
1332
+ def as_chat_model(self) -> ChatModel:
1333
+ from dao_ai.models import create_agent
1334
+
1335
+ graph: CompiledStateGraph = self.as_graph()
1336
+ app: ChatModel = create_agent(graph)
1337
+ return app