flock-core 0.3.6__tar.gz → 0.3.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.

Potentially problematic release.


This version of flock-core might be problematic. Click here for more details.

Files changed (568) hide show
  1. {flock_core-0.3.6 → flock_core-0.3.8}/.gitignore +1 -0
  2. {flock_core-0.3.6 → flock_core-0.3.8}/PKG-INFO +1 -1
  3. flock_core-0.3.8/docs/architecture/components.md +477 -0
  4. flock_core-0.3.8/docs/architecture/overview.md +216 -0
  5. flock_core-0.3.8/docs/core-concepts/agents.md +386 -0
  6. flock_core-0.3.8/docs/core-concepts/declarative.md +248 -0
  7. flock_core-0.3.8/docs/core-concepts/error-handling.md +351 -0
  8. flock_core-0.3.8/docs/core-concepts/evaluators.md +263 -0
  9. {flock_core-0.3.6 → flock_core-0.3.8}/docs/core-concepts/memory.md +1 -1
  10. flock_core-0.3.8/docs/core-concepts/modules/memory.md +331 -0
  11. flock_core-0.3.8/docs/core-concepts/modules/metrics.md +325 -0
  12. flock_core-0.3.8/docs/core-concepts/modules/output.md +331 -0
  13. flock_core-0.3.8/docs/core-concepts/modules.md +368 -0
  14. flock_core-0.3.8/docs/core-concepts/routers/agent.md +197 -0
  15. flock_core-0.3.8/docs/core-concepts/routers/default.md +200 -0
  16. flock_core-0.3.8/docs/core-concepts/routers/llm.md +169 -0
  17. flock_core-0.3.8/docs/core-concepts/routers.md +227 -0
  18. flock_core-0.3.8/docs/core-concepts/type-system.md +273 -0
  19. flock_core-0.3.8/docs/core-concepts/workflows.md +300 -0
  20. flock_core-0.3.8/docs/deployment/monitoring.md +452 -0
  21. flock_core-0.3.8/docs/deployment/production-setup.md +471 -0
  22. flock_core-0.3.8/docs/examples/chain-gang.md +379 -0
  23. flock_core-0.3.8/docs/examples/hello-flock.md +270 -0
  24. flock_core-0.3.8/docs/getting-started/configuration.md +371 -0
  25. flock_core-0.3.8/docs/getting-started/installation.md +129 -0
  26. flock_core-0.3.8/docs/integrations/rest-api.md +296 -0
  27. flock_core-0.3.8/docs/integrations/temporal.md +240 -0
  28. {flock_core-0.3.6 → flock_core-0.3.8}/docs/release-notes/release_notes.md +31 -10
  29. flock_core-0.3.8/examples/01_introduction/06_simple_hand_off.py +42 -0
  30. flock_core-0.3.8/examples/02_cook_book/repo_analyzer/repo_analyzer.py +721 -0
  31. flock_core-0.3.8/examples/02_cook_book/repo_analyzer/repo_analyzer_llm.py +285 -0
  32. {flock_core-0.3.6 → flock_core-0.3.8}/examples/02_cook_book/self_improvement_with_memory.py +3 -2
  33. {flock_core-0.3.6 → flock_core-0.3.8}/examples/03_misc/evaluator/multi_hops.py +1 -1
  34. flock_core-0.3.8/examples/03_misc/router/router_example.py +99 -0
  35. {flock_core-0.3.6 → flock_core-0.3.8}/mkdocs.yml +18 -10
  36. {flock_core-0.3.6 → flock_core-0.3.8}/pyproject.toml +1 -1
  37. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/cli/assets/release_notes.md +37 -9
  38. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/flock_agent.py +5 -23
  39. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/flock_factory.py +8 -5
  40. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/flock_module.py +3 -1
  41. flock_core-0.3.8/src/flock/core/flock_router.py +70 -0
  42. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/evaluators/zep/zep_evaluator.py +2 -0
  43. flock_core-0.3.8/src/flock/routers/__init__.py +1 -0
  44. flock_core-0.3.8/src/flock/routers/agent/__init__.py +1 -0
  45. flock_core-0.3.8/src/flock/routers/agent/agent_router.py +234 -0
  46. flock_core-0.3.8/src/flock/routers/agent/handoff_agent.py +58 -0
  47. flock_core-0.3.8/src/flock/routers/default/__init__.py +1 -0
  48. flock_core-0.3.8/src/flock/routers/default/default_router.py +76 -0
  49. flock_core-0.3.8/src/flock/routers/llm/__init__.py +1 -0
  50. flock_core-0.3.8/src/flock/routers/llm/llm_router.py +363 -0
  51. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/workflow/activities.py +74 -33
  52. flock_core-0.3.8/tests/unittests/test_agent_based_handoff.py +499 -0
  53. flock_core-0.3.8/tests/unittests/test_agent_router_property.py +125 -0
  54. {flock_core-0.3.6 → flock_core-0.3.8}/uv.lock +1 -1
  55. flock_core-0.3.6/docs/architecture/components.md +0 -3
  56. flock_core-0.3.6/docs/architecture/overview.md +0 -3
  57. flock_core-0.3.6/docs/core-concepts/agents.md +0 -3
  58. flock_core-0.3.6/docs/core-concepts/declarative.md +0 -3
  59. flock_core-0.3.6/docs/core-concepts/error-handling.md +0 -3
  60. flock_core-0.3.6/docs/core-concepts/evaluators.md +0 -1
  61. flock_core-0.3.6/docs/core-concepts/modules.md +0 -1
  62. flock_core-0.3.6/docs/core-concepts/workflows.md +0 -3
  63. flock_core-0.3.6/docs/deployment/monitoring.md +0 -3
  64. flock_core-0.3.6/docs/deployment/production-setup.md +0 -3
  65. flock_core-0.3.6/docs/examples/chain-gang.md +0 -3
  66. flock_core-0.3.6/docs/examples/hello-flock.md +0 -3
  67. flock_core-0.3.6/docs/examples/type-system.md +0 -3
  68. flock_core-0.3.6/docs/getting-started/configuration.md +0 -3
  69. flock_core-0.3.6/docs/getting-started/installation.md +0 -3
  70. flock_core-0.3.6/docs/integrations/temporal.md +0 -3
  71. flock_core-0.3.6/examples/01_introduction/06_simple_hand_off.py +0 -31
  72. {flock_core-0.3.6 → flock_core-0.3.8}/.devcontainer/devcontainer.json +0 -0
  73. {flock_core-0.3.6 → flock_core-0.3.8}/.env_template +0 -0
  74. {flock_core-0.3.6 → flock_core-0.3.8}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  75. {flock_core-0.3.6 → flock_core-0.3.8}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  76. {flock_core-0.3.6 → flock_core-0.3.8}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  77. {flock_core-0.3.6 → flock_core-0.3.8}/.github/workflows/.gitkeep +0 -0
  78. {flock_core-0.3.6 → flock_core-0.3.8}/.github/workflows/deploy-documentation.yml +0 -0
  79. {flock_core-0.3.6 → flock_core-0.3.8}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
  80. {flock_core-0.3.6 → flock_core-0.3.8}/.vscode/launch.json +0 -0
  81. {flock_core-0.3.6 → flock_core-0.3.8}/.vscode/settings.json +0 -0
  82. {flock_core-0.3.6 → flock_core-0.3.8}/.vscode/tasks.json +0 -0
  83. {flock_core-0.3.6 → flock_core-0.3.8}/LICENSE +0 -0
  84. {flock_core-0.3.6 → flock_core-0.3.8}/README.md +0 -0
  85. {flock_core-0.3.6 → flock_core-0.3.8}/docs/advanced/complex-workflows.md +0 -0
  86. {flock_core-0.3.6 → flock_core-0.3.8}/docs/advanced/custom-agents.md +0 -0
  87. {flock_core-0.3.6 → flock_core-0.3.8}/docs/advanced/performance.md +0 -0
  88. {flock_core-0.3.6 → flock_core-0.3.8}/docs/advanced/testing.md +0 -0
  89. {flock_core-0.3.6 → flock_core-0.3.8}/docs/api/flock-core.md +0 -0
  90. {flock_core-0.3.6 → flock_core-0.3.8}/docs/api/flockagent.md +0 -0
  91. {flock_core-0.3.6 → flock_core-0.3.8}/docs/api/types.md +0 -0
  92. {flock_core-0.3.6 → flock_core-0.3.8}/docs/api/utilities.md +0 -0
  93. {flock_core-0.3.6 → flock_core-0.3.8}/docs/architecture/design-decisions.md +0 -0
  94. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/drawio/architecture.drawio +0 -0
  95. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/cli_outputs/out.png +0 -0
  96. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/components_chart.png +0 -0
  97. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/examples/01_01.png +0 -0
  98. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/examples/01_02.png +0 -0
  99. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/examples/01_03.png +0 -0
  100. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/examples/01_04.png +0 -0
  101. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/examples/01_05.png +0 -0
  102. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/examples/01_06.png +0 -0
  103. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/flock.png +0 -0
  104. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/flock_cli.png +0 -0
  105. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/flow_chart.png +0 -0
  106. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/getting-started/first_agent_00.png +0 -0
  107. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/hummingbird.png +0 -0
  108. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/icon.png +0 -0
  109. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/icon.png~ +0 -0
  110. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/logo.png +0 -0
  111. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/memory_concepts.png +0 -0
  112. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/memory_flow.png +0 -0
  113. {flock_core-0.3.6 → flock_core-0.3.8}/docs/assets/images/memory_flow_chart.png +0 -0
  114. {flock_core-0.3.6 → flock_core-0.3.8}/docs/contributing/code-style.md +0 -0
  115. {flock_core-0.3.6 → flock_core-0.3.8}/docs/contributing/development.md +0 -0
  116. {flock_core-0.3.6 → flock_core-0.3.8}/docs/contributing/documentation.md +0 -0
  117. {flock_core-0.3.6 → flock_core-0.3.8}/docs/contributing/testing.md +0 -0
  118. {flock_core-0.3.6 → flock_core-0.3.8}/docs/create_doc_boilerplate.py +0 -0
  119. {flock_core-0.3.6 → flock_core-0.3.8}/docs/deployment/scalability.md +0 -0
  120. {flock_core-0.3.6 → flock_core-0.3.8}/docs/deployment/security.md +0 -0
  121. {flock_core-0.3.6 → flock_core-0.3.8}/docs/development/dev.md +0 -0
  122. {flock_core-0.3.6 → flock_core-0.3.8}/docs/development/replace-dspy/implementation_plan.md +0 -0
  123. {flock_core-0.3.6 → flock_core-0.3.8}/docs/development/topics.md +0 -0
  124. {flock_core-0.3.6 → flock_core-0.3.8}/docs/examples/pydantic.md +0 -0
  125. {flock_core-0.3.6/docs/core-concepts → flock_core-0.3.8/docs/examples}/type-system.md +0 -0
  126. {flock_core-0.3.6 → flock_core-0.3.8}/docs/features/agent-chaining.md +0 -0
  127. {flock_core-0.3.6 → flock_core-0.3.8}/docs/features/agent-definition.md +0 -0
  128. {flock_core-0.3.6 → flock_core-0.3.8}/docs/features/lifecycle-hooks.md +0 -0
  129. {flock_core-0.3.6 → flock_core-0.3.8}/docs/features/pydantic.md +0 -0
  130. {flock_core-0.3.6 → flock_core-0.3.8}/docs/features/type-safety.md +0 -0
  131. {flock_core-0.3.6 → flock_core-0.3.8}/docs/getting-started/concepts.md +0 -0
  132. {flock_core-0.3.6 → flock_core-0.3.8}/docs/getting-started/quickstart.md +0 -0
  133. {flock_core-0.3.6 → flock_core-0.3.8}/docs/index.md +0 -0
  134. {flock_core-0.3.6 → flock_core-0.3.8}/docs/integrations/dspy.md +0 -0
  135. {flock_core-0.3.6 → flock_core-0.3.8}/docs/integrations/litellm.md +0 -0
  136. {flock_core-0.3.6 → flock_core-0.3.8}/docs/integrations/tavily.md +0 -0
  137. {flock_core-0.3.6 → flock_core-0.3.8}/docs/stylesheets/extra.css +0 -0
  138. {flock_core-0.3.6 → flock_core-0.3.8}/docs/tutorials/blog-generator.md +0 -0
  139. {flock_core-0.3.6 → flock_core-0.3.8}/docs/tutorials/custom-tools.md +0 -0
  140. {flock_core-0.3.6 → flock_core-0.3.8}/docs/tutorials/error-recovery.md +0 -0
  141. {flock_core-0.3.6 → flock_core-0.3.8}/docs/tutorials/multi-agent.md +0 -0
  142. {flock_core-0.3.6 → flock_core-0.3.8}/examples/01_introduction/01_simple_example.py +0 -0
  143. {flock_core-0.3.6 → flock_core-0.3.8}/examples/01_introduction/02_typed_output.py +0 -0
  144. {flock_core-0.3.6 → flock_core-0.3.8}/examples/01_introduction/03_tool_and_code_agent.py +0 -0
  145. {flock_core-0.3.6 → flock_core-0.3.8}/examples/01_introduction/04_descriptions.py +0 -0
  146. {flock_core-0.3.6 → flock_core-0.3.8}/examples/01_introduction/05_typed_output2.py +0 -0
  147. {flock_core-0.3.6 → flock_core-0.3.8}/examples/02_cook_book/flock_without_llms.py +0 -0
  148. {flock_core-0.3.6 → flock_core-0.3.8}/examples/02_cook_book/long_research_no_handoff.py +0 -0
  149. {flock_core-0.3.6 → flock_core-0.3.8}/examples/02_cook_book/painting_by_numbers.py +0 -0
  150. {flock_core-0.3.6 → flock_core-0.3.8}/examples/02_cook_book/project_manager.py +0 -0
  151. {flock_core-0.3.6 → flock_core-0.3.8}/examples/02_cook_book/save_and_load/load_01.py +0 -0
  152. {flock_core-0.3.6 → flock_core-0.3.8}/examples/02_cook_book/save_and_load/load_02.py +0 -0
  153. {flock_core-0.3.6 → flock_core-0.3.8}/examples/02_cook_book/save_and_load/load_03.py +0 -0
  154. {flock_core-0.3.6 → flock_core-0.3.8}/examples/02_cook_book/save_and_load/load_04.py +0 -0
  155. {flock_core-0.3.6 → flock_core-0.3.8}/examples/02_cook_book/save_and_load/save_01.py +0 -0
  156. {flock_core-0.3.6 → flock_core-0.3.8}/examples/02_cook_book/save_and_load/save_02.py +0 -0
  157. {flock_core-0.3.6 → flock_core-0.3.8}/examples/02_cook_book/save_and_load/save_03.py +0 -0
  158. {flock_core-0.3.6 → flock_core-0.3.8}/examples/03_misc/api/api_client.py +0 -0
  159. {flock_core-0.3.6 → flock_core-0.3.8}/examples/03_misc/api/api_server.py +0 -0
  160. {flock_core-0.3.6 → flock_core-0.3.8}/examples/03_misc/modules/use_modules.py +0 -0
  161. {flock_core-0.3.6 → flock_core-0.3.8}/examples/README.md +0 -0
  162. {flock_core-0.3.6 → flock_core-0.3.8}/examples/documentation/getting-started/first_agent_01.py +0 -0
  163. {flock_core-0.3.6 → flock_core-0.3.8}/examples/documentation/getting-started/first_agent_02.py +0 -0
  164. {flock_core-0.3.6 → flock_core-0.3.8}/examples/documentation/getting-started/first_agent_03.py +0 -0
  165. {flock_core-0.3.6 → flock_core-0.3.8}/examples/notebooks_wip/Untitled-1.ipynb +0 -0
  166. {flock_core-0.3.6 → flock_core-0.3.8}/examples/notebooks_wip/my_agent.json +0 -0
  167. {flock_core-0.3.6 → flock_core-0.3.8}/examples/playground/memory.py +0 -0
  168. {flock_core-0.3.6 → flock_core-0.3.8}/examples/playground/self_learner.py +0 -0
  169. {flock_core-0.3.6 → flock_core-0.3.8}/examples/playground/self_learner2.py +0 -0
  170. {flock_core-0.3.6 → flock_core-0.3.8}/requirements.txt +0 -0
  171. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/__init__.py +0 -0
  172. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/cli/constants.py +0 -0
  173. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/cli/create_agent.py +0 -0
  174. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/cli/create_flock.py +0 -0
  175. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/cli/load_agent.py +0 -0
  176. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/cli/load_examples.py +0 -0
  177. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/cli/load_flock.py +0 -0
  178. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/cli/load_release_notes.py +0 -0
  179. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/cli/settings.py +0 -0
  180. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/config.py +0 -0
  181. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/__init__.py +0 -0
  182. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/context/context.py +0 -0
  183. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/context/context_manager.py +0 -0
  184. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/context/context_vars.py +0 -0
  185. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/execution/local_executor.py +0 -0
  186. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/execution/temporal_executor.py +0 -0
  187. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/flock.py +0 -0
  188. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/flock_api.py +0 -0
  189. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/flock_evaluator.py +0 -0
  190. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/interpreter/python_interpreter.py +0 -0
  191. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/logging/__init__.py +0 -0
  192. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/logging/formatters/enum_builder.py +0 -0
  193. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/logging/formatters/theme_builder.py +0 -0
  194. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
  195. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/logging/formatters/themes.py +0 -0
  196. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/logging/logging.py +0 -0
  197. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
  198. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/logging/telemetry.py +0 -0
  199. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
  200. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
  201. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
  202. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/logging/trace_and_logged.py +0 -0
  203. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/mixin/dspy_integration.py +0 -0
  204. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/mixin/prompt_parser.py +0 -0
  205. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/registry/agent_registry.py +0 -0
  206. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/serialization/secure_serializer.py +0 -0
  207. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/serialization/serializable.py +0 -0
  208. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/tools/basic_tools.py +0 -0
  209. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/tools/dev_tools/github.py +0 -0
  210. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/util/cli_helper.py +0 -0
  211. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/util/hydrator.py +0 -0
  212. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/core/util/input_resolver.py +0 -0
  213. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/evaluators/declarative/declarative_evaluator.py +0 -0
  214. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/evaluators/natural_language/natural_language_evaluator.py +0 -0
  215. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/modules/callback/callback_module.py +0 -0
  216. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/modules/memory/memory_module.py +0 -0
  217. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/modules/memory/memory_parser.py +0 -0
  218. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/modules/memory/memory_storage.py +0 -0
  219. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/modules/output/output_module.py +0 -0
  220. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/modules/performance/metrics_module.py +0 -0
  221. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/modules/zep/zep_module.py +0 -0
  222. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/platform/docker_tools.py +0 -0
  223. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/platform/jaeger_install.py +0 -0
  224. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/3024-day.toml +0 -0
  225. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/3024-night.toml +0 -0
  226. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/aardvark-blue.toml +0 -0
  227. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/abernathy.toml +0 -0
  228. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/adventure.toml +0 -0
  229. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/adventuretime.toml +0 -0
  230. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/afterglow.toml +0 -0
  231. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/alabaster.toml +0 -0
  232. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/alienblood.toml +0 -0
  233. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/andromeda.toml +0 -0
  234. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/apple-classic.toml +0 -0
  235. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/apple-system-colors.toml +0 -0
  236. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/arcoiris.toml +0 -0
  237. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/argonaut copy.toml +0 -0
  238. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/argonaut.toml +0 -0
  239. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/arthur.toml +0 -0
  240. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/ateliersulphurpool.toml +0 -0
  241. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/atom.toml +0 -0
  242. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/atom_test.toml +0 -0
  243. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/atomonelight.toml +0 -0
  244. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/aurora.toml +0 -0
  245. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/ayu copy.toml +0 -0
  246. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/ayu-light.toml +0 -0
  247. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/ayu-mirage.toml +0 -0
  248. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/ayu.toml +0 -0
  249. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/banana-blueberry.toml +0 -0
  250. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/batman.toml +0 -0
  251. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/belafonte-day.toml +0 -0
  252. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/belafonte-night.toml +0 -0
  253. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/birdsofparadise.toml +0 -0
  254. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/blazer.toml +0 -0
  255. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/blue-matrix.toml +0 -0
  256. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/blueberrypie.toml +0 -0
  257. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/bluedolphin.toml +0 -0
  258. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/blulocodark.toml +0 -0
  259. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/blulocolight.toml +0 -0
  260. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/borland.toml +0 -0
  261. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/breeze.toml +0 -0
  262. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/bright-lights.toml +0 -0
  263. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/broadcast.toml +0 -0
  264. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/brogrammer.toml +0 -0
  265. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/builtin-dark.toml +0 -0
  266. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/builtin-light.toml +0 -0
  267. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/builtin-pastel-dark.toml +0 -0
  268. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/builtin-solarized-dark.toml +0 -0
  269. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/builtin-solarized-light.toml +0 -0
  270. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/builtin-tango-dark.toml +0 -0
  271. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/builtin-tango-light.toml +0 -0
  272. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/c64.toml +0 -0
  273. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/calamity.toml +0 -0
  274. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/catppuccin-frappe.toml +0 -0
  275. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/catppuccin-latte.toml +0 -0
  276. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/catppuccin-macchiato.toml +0 -0
  277. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/catppuccin-mocha.toml +0 -0
  278. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/cga.toml +0 -0
  279. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/chalk.toml +0 -0
  280. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/chalkboard.toml +0 -0
  281. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/challengerdeep.toml +0 -0
  282. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/chester.toml +0 -0
  283. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/ciapre.toml +0 -0
  284. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/clrs.toml +0 -0
  285. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/cobalt-neon.toml +0 -0
  286. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/cobalt2.toml +0 -0
  287. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/coffee-theme.toml +0 -0
  288. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/crayonponyfish.toml +0 -0
  289. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/cutiepro.toml +0 -0
  290. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/cyberdyne.toml +0 -0
  291. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/cyberpunk.toml +0 -0
  292. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
  293. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/dark+.toml +0 -0
  294. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/dark-pastel.toml +0 -0
  295. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/darkermatrix.toml +0 -0
  296. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/darkmatrix.toml +0 -0
  297. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/darkside.toml +0 -0
  298. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/dayfox.toml +0 -0
  299. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/deep.toml +0 -0
  300. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/desert.toml +0 -0
  301. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/dimidium.toml +0 -0
  302. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/dimmedmonokai.toml +0 -0
  303. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/django.toml +0 -0
  304. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/djangorebornagain.toml +0 -0
  305. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/djangosmooth.toml +0 -0
  306. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/doom-peacock.toml +0 -0
  307. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/doomone.toml +0 -0
  308. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/dotgov.toml +0 -0
  309. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/dracula+.toml +0 -0
  310. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/dracula.toml +0 -0
  311. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/duckbones.toml +0 -0
  312. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/duotone-dark.toml +0 -0
  313. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/earthsong.toml +0 -0
  314. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/elemental.toml +0 -0
  315. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/elementary.toml +0 -0
  316. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/encom.toml +0 -0
  317. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/espresso-libre.toml +0 -0
  318. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/espresso.toml +0 -0
  319. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/everblush.toml +0 -0
  320. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/fahrenheit.toml +0 -0
  321. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/fairyfloss.toml +0 -0
  322. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/farmhouse-dark.toml +0 -0
  323. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/farmhouse-light.toml +0 -0
  324. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/fideloper.toml +0 -0
  325. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/firefly-traditional.toml +0 -0
  326. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/firefoxdev.toml +0 -0
  327. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/firewatch.toml +0 -0
  328. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/fishtank.toml +0 -0
  329. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/flat.toml +0 -0
  330. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/flatland.toml +0 -0
  331. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/flexoki-dark.toml +0 -0
  332. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/flexoki-light.toml +0 -0
  333. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/floraverse.toml +0 -0
  334. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/forestblue.toml +0 -0
  335. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/framer.toml +0 -0
  336. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/frontenddelight.toml +0 -0
  337. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/funforrest.toml +0 -0
  338. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/galaxy.toml +0 -0
  339. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/galizur.toml +0 -0
  340. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/github-dark.toml +0 -0
  341. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/github.toml +0 -0
  342. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/glacier.toml +0 -0
  343. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/grape.toml +0 -0
  344. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/grass.toml +0 -0
  345. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/grey-green.toml +0 -0
  346. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/gruber-darker.toml +0 -0
  347. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/gruvboxdark.toml +0 -0
  348. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/gruvboxdarkhard.toml +0 -0
  349. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/gruvboxlight.toml +0 -0
  350. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/guezwhoz.toml +0 -0
  351. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/hacktober.toml +0 -0
  352. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/hardcore.toml +0 -0
  353. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/harper.toml +0 -0
  354. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/hax0r-blue.toml +0 -0
  355. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/hax0r-gr33n.toml +0 -0
  356. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/hax0r-r3d.toml +0 -0
  357. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/highway.toml +0 -0
  358. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/hipster-green.toml +0 -0
  359. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/hivacruz.toml +0 -0
  360. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/homebrew.toml +0 -0
  361. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/hopscotch.256.toml +0 -0
  362. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/hopscotch.toml +0 -0
  363. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/hurtado.toml +0 -0
  364. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/hybrid.toml +0 -0
  365. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/ic-green-ppl.toml +0 -0
  366. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/ic-orange-ppl.toml +0 -0
  367. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/iceberg-dark.toml +0 -0
  368. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/iceberg-light.toml +0 -0
  369. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/idea.toml +0 -0
  370. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/idletoes.toml +0 -0
  371. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/ir-black.toml +0 -0
  372. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/iterm2-dark-background.toml +0 -0
  373. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/iterm2-default.toml +0 -0
  374. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/iterm2-light-background.toml +0 -0
  375. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
  376. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/iterm2-smoooooth.toml +0 -0
  377. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
  378. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/iterm2-solarized-light.toml +0 -0
  379. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/iterm2-tango-dark.toml +0 -0
  380. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/iterm2-tango-light.toml +0 -0
  381. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/jackie-brown.toml +0 -0
  382. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/japanesque.toml +0 -0
  383. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/jellybeans.toml +0 -0
  384. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/jetbrains-darcula.toml +0 -0
  385. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/jubi.toml +0 -0
  386. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/kanagawabones.toml +0 -0
  387. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/kibble.toml +0 -0
  388. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/kolorit.toml +0 -0
  389. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/konsolas.toml +0 -0
  390. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/kurokula.toml +0 -0
  391. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/lab-fox.toml +0 -0
  392. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/laser.toml +0 -0
  393. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/later-this-evening.toml +0 -0
  394. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/lavandula.toml +0 -0
  395. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/liquidcarbon.toml +0 -0
  396. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/liquidcarbontransparent.toml +0 -0
  397. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
  398. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/lovelace.toml +0 -0
  399. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/man-page.toml +0 -0
  400. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/mariana.toml +0 -0
  401. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/material.toml +0 -0
  402. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/materialdark.toml +0 -0
  403. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/materialdarker.toml +0 -0
  404. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/materialdesigncolors.toml +0 -0
  405. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/materialocean.toml +0 -0
  406. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/mathias.toml +0 -0
  407. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/matrix.toml +0 -0
  408. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/medallion.toml +0 -0
  409. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/mellifluous.toml +0 -0
  410. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/midnight-in-mojave.toml +0 -0
  411. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/mirage.toml +0 -0
  412. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/misterioso.toml +0 -0
  413. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/molokai.toml +0 -0
  414. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/monalisa.toml +0 -0
  415. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/monokai-remastered.toml +0 -0
  416. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/monokai-soda.toml +0 -0
  417. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/monokai-vivid.toml +0 -0
  418. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/n0tch2k.toml +0 -0
  419. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/neobones-dark.toml +0 -0
  420. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/neobones-light.toml +0 -0
  421. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/neon.toml +0 -0
  422. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/neopolitan.toml +0 -0
  423. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/neutron.toml +0 -0
  424. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/night-owlish-light.toml +0 -0
  425. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/nightfox.toml +0 -0
  426. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/nightlion-v1.toml +0 -0
  427. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/nightlion-v2.toml +0 -0
  428. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/niji.toml +0 -0
  429. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/nocturnal-winter.toml +0 -0
  430. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/nord-light.toml +0 -0
  431. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/nord.toml +0 -0
  432. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/novel.toml +0 -0
  433. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/nvimdark.toml +0 -0
  434. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/nvimlight.toml +0 -0
  435. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/obsidian.toml +0 -0
  436. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/ocean.toml +0 -0
  437. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/oceanic-next.toml +0 -0
  438. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/oceanicmaterial.toml +0 -0
  439. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/ollie.toml +0 -0
  440. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/onehalfdark.toml +0 -0
  441. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/onehalflight.toml +0 -0
  442. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/operator-mono-dark.toml +0 -0
  443. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/overnight-slumber.toml +0 -0
  444. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/oxocarbon.toml +0 -0
  445. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/palenighthc.toml +0 -0
  446. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/pandora.toml +0 -0
  447. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/paraiso-dark.toml +0 -0
  448. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/paulmillr.toml +0 -0
  449. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/pencildark.toml +0 -0
  450. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/pencillight.toml +0 -0
  451. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/peppermint.toml +0 -0
  452. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/piatto-light.toml +0 -0
  453. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/pnevma.toml +0 -0
  454. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/popping-and-locking.toml +0 -0
  455. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/primary.toml +0 -0
  456. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/pro-light.toml +0 -0
  457. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/pro.toml +0 -0
  458. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/purple-rain.toml +0 -0
  459. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/purplepeter.toml +0 -0
  460. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/rapture.toml +0 -0
  461. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/raycast-dark.toml +0 -0
  462. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/raycast-light.toml +0 -0
  463. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/rebecca.toml +0 -0
  464. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/red-alert.toml +0 -0
  465. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/red-planet.toml +0 -0
  466. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/red-sands.toml +0 -0
  467. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/relaxed.toml +0 -0
  468. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/retro.toml +0 -0
  469. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/rippedcasts.toml +0 -0
  470. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/rose-pine-dawn.toml +0 -0
  471. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/rose-pine-moon.toml +0 -0
  472. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/rose-pine.toml +0 -0
  473. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/rouge-2.toml +0 -0
  474. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/royal.toml +0 -0
  475. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/ryuuko.toml +0 -0
  476. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/sakura.toml +0 -0
  477. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/scarlet-protocol.toml +0 -0
  478. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/seafoam-pastel.toml +0 -0
  479. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/seashells.toml +0 -0
  480. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/seoulbones-dark.toml +0 -0
  481. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/seoulbones-light.toml +0 -0
  482. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/seti.toml +0 -0
  483. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/shades-of-purple.toml +0 -0
  484. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/shaman.toml +0 -0
  485. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/slate.toml +0 -0
  486. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/sleepyhollow.toml +0 -0
  487. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/smyck.toml +0 -0
  488. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/snazzy.toml +0 -0
  489. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/softserver.toml +0 -0
  490. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/solarized-darcula.toml +0 -0
  491. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/solarized-dark---patched.toml +0 -0
  492. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
  493. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/spacedust.toml +0 -0
  494. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
  495. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/spacegray-eighties.toml +0 -0
  496. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/spacegray.toml +0 -0
  497. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/spiderman.toml +0 -0
  498. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/spring.toml +0 -0
  499. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/square.toml +0 -0
  500. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/sublette.toml +0 -0
  501. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/subliminal.toml +0 -0
  502. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/sugarplum.toml +0 -0
  503. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/sundried.toml +0 -0
  504. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/symfonic.toml +0 -0
  505. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/synthwave-everything.toml +0 -0
  506. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/synthwave.toml +0 -0
  507. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/synthwavealpha.toml +0 -0
  508. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/tango-adapted.toml +0 -0
  509. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/tango-half-adapted.toml +0 -0
  510. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/teerb.toml +0 -0
  511. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/terafox.toml +0 -0
  512. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/terminal-basic.toml +0 -0
  513. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/thayer-bright.toml +0 -0
  514. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/the-hulk.toml +0 -0
  515. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/tinacious-design-(dark).toml +0 -0
  516. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/tinacious-design-(light).toml +0 -0
  517. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/tokyonight-day.toml +0 -0
  518. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/tokyonight-storm.toml +0 -0
  519. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/tokyonight.toml +0 -0
  520. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/tomorrow-night-blue.toml +0 -0
  521. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/tomorrow-night-bright.toml +0 -0
  522. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/tomorrow-night-burns.toml +0 -0
  523. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
  524. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/tomorrow-night.toml +0 -0
  525. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/tomorrow.toml +0 -0
  526. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/toychest.toml +0 -0
  527. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/treehouse.toml +0 -0
  528. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/twilight.toml +0 -0
  529. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/ubuntu.toml +0 -0
  530. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/ultradark.toml +0 -0
  531. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/ultraviolent.toml +0 -0
  532. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/underthesea.toml +0 -0
  533. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/unikitty.toml +0 -0
  534. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/urple.toml +0 -0
  535. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/vaughn.toml +0 -0
  536. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/vesper.toml +0 -0
  537. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/vibrantink.toml +0 -0
  538. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/vimbones.toml +0 -0
  539. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/violet-dark.toml +0 -0
  540. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/violet-light.toml +0 -0
  541. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/warmneon.toml +0 -0
  542. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/wez.toml +0 -0
  543. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/whimsy.toml +0 -0
  544. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/wildcherry.toml +0 -0
  545. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/wilmersdorf.toml +0 -0
  546. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/wombat.toml +0 -0
  547. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/wryan.toml +0 -0
  548. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/xcodedark.toml +0 -0
  549. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/xcodedarkhc.toml +0 -0
  550. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/xcodelight.toml +0 -0
  551. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/xcodelighthc.toml +0 -0
  552. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/xcodewwdc.toml +0 -0
  553. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/zenbones-dark.toml +0 -0
  554. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/zenbones-light.toml +0 -0
  555. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/zenbones.toml +0 -0
  556. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/zenburn.toml +0 -0
  557. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/zenburned.toml +0 -0
  558. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/zenwritten-dark.toml +0 -0
  559. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/themes/zenwritten-light.toml +0 -0
  560. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/workflow/__init__.py +0 -0
  561. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/workflow/agent_activities.py +0 -0
  562. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/workflow/temporal_setup.py +0 -0
  563. {flock_core-0.3.6 → flock_core-0.3.8}/src/flock/workflow/workflow.py +0 -0
  564. {flock_core-0.3.6 → flock_core-0.3.8}/tests/integration/test_agent_integration.py +0 -0
  565. {flock_core-0.3.6 → flock_core-0.3.8}/tests/unittests/test_flock.py +0 -0
  566. {flock_core-0.3.6 → flock_core-0.3.8}/tests/unittests/test_flock_agent.py +0 -0
  567. {flock_core-0.3.6 → flock_core-0.3.8}/tests/unittests/test_memory_operations.py +0 -0
  568. {flock_core-0.3.6 → flock_core-0.3.8}/tests/unittests/test_memory_store.py +0 -0
@@ -27,6 +27,7 @@ share/python-wheels/
27
27
  MANIFEST
28
28
  logs/
29
29
  metrics/
30
+ .claude/
30
31
 
31
32
 
32
33
  # PyInstaller
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flock-core
3
- Version: 0.3.6
3
+ Version: 0.3.8
4
4
  Summary: Declarative LLM Orchestration at Scale
5
5
  Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
6
6
  License-File: LICENSE
@@ -0,0 +1,477 @@
1
+ # Architecture Components
2
+
3
+ This document provides detailed information about the specific components of the Flock framework and how they interact with each other.
4
+
5
+ ## Flock
6
+
7
+ The `Flock` class is the main orchestrator for creating and executing agents. It manages the registration of agents and tools, sets up the global context, and runs the agent workflows.
8
+
9
+ ```mermaid
10
+ classDiagram
11
+ class Flock {
12
+ +model: str
13
+ +local_debug: bool
14
+ +enable_logging: bool
15
+ +enable_telemetry: bool
16
+ +temporal_executor_config: TemporalExecutorConfig
17
+ +telemetry_config: TelemetryConfig
18
+ +logger: Logger
19
+ +add_agent(agent: FlockAgent)
20
+ +add_tool(tool_name: str, tool: Callable)
21
+ +run(start_agent: FlockAgent, input: dict)
22
+ +run_async(start_agent: FlockAgent, input: dict)
23
+ +save_to_file(file_path: str)
24
+ +load_from_file(file_path: str)
25
+ }
26
+ ```
27
+
28
+ ### Key Features
29
+
30
+ - **Agent Management**: Add and manage multiple agents in a single system.
31
+ - **Tool Registration**: Register tools that agents can use during execution.
32
+ - **Context Management**: Set up and maintain the global execution context.
33
+ - **Workflow Execution**: Run agent workflows either locally or via Temporal.
34
+ - **Serialization**: Save and load Flock instances to/from files.
35
+
36
+ ### Important Methods
37
+
38
+ - `add_agent(agent)`: Add a new agent to the Flock system.
39
+ - `add_tool(tool_name, tool)`: Register a tool with the Flock system.
40
+ - `run(start_agent, input, ...)`: Run an agent workflow synchronously.
41
+ - `run_async(start_agent, input, ...)`: Run an agent workflow asynchronously.
42
+ - `save_to_file(file_path)`: Save the Flock instance to a file.
43
+ - `load_from_file(file_path)`: Load a Flock instance from a file.
44
+
45
+ ## FlockAgent
46
+
47
+ The `FlockAgent` class is the core, declarative base class for all agents in the Flock framework. It defines the agent's inputs, outputs, tools, and lifecycle hooks.
48
+
49
+ ```mermaid
50
+ classDiagram
51
+ class FlockAgent {
52
+ +name: str
53
+ +model: str
54
+ +description: str
55
+ +input: str
56
+ +output: str
57
+ +tools: list
58
+ +hand_off: HandOff
59
+ +evaluator: FlockEvaluator
60
+ +modules: list
61
+ +initialize(inputs: dict)
62
+ +evaluate(inputs: dict)
63
+ +terminate(inputs: dict, result: dict)
64
+ +on_error(error: Exception, inputs: dict)
65
+ +run(inputs: dict)
66
+ +run_async(inputs: dict)
67
+ +add_module(module: FlockModule)
68
+ +save_to_file(file_path: str)
69
+ +load_from_file(file_path: str)
70
+ }
71
+ ```
72
+
73
+ ### Key Features
74
+
75
+ - **Declarative Definition**: Define agents by their inputs and outputs.
76
+ - **Type Hints**: Support for type hints and descriptions in input/output definitions.
77
+ - **Tool Integration**: Use tools to extend agent capabilities.
78
+ - **Lifecycle Hooks**: Hooks for initialization, termination, evaluation, and error handling.
79
+ - **Module Support**: Attach modules to extend agent functionality.
80
+ - **Serialization**: Save and load agent instances to/from files.
81
+
82
+ ### Important Properties
83
+
84
+ - `name`: Unique identifier for the agent.
85
+ - `model`: The model to use (e.g., 'openai/gpt-4o').
86
+ - `description`: A human-readable description of the agent.
87
+ - `input`: A comma-separated list of input keys with optional type hints and descriptions.
88
+ - `output`: A comma-separated list of output keys with optional type hints and descriptions.
89
+ - `tools`: An optional list of callable tools that the agent can leverage during execution.
90
+ - `hand_off`: Specifies the next agent in the workflow or a callable that determines the handoff.
91
+ - `evaluator`: The evaluator to use for agent evaluation.
92
+ - `modules`: FlockModules attached to this agent.
93
+
94
+ ### Lifecycle Hooks
95
+
96
+ - `initialize(inputs)`: Called when the agent starts running.
97
+ - `evaluate(inputs)`: Called to evaluate inputs and produce outputs.
98
+ - `terminate(inputs, result)`: Called when the agent finishes running.
99
+ - `on_error(error, inputs)`: Called when an error occurs during agent execution.
100
+
101
+ ## FlockEvaluator
102
+
103
+ The `FlockEvaluator` class is the base class for all evaluators in Flock. An evaluator is responsible for taking inputs and producing outputs using some evaluation strategy.
104
+
105
+ ```mermaid
106
+ classDiagram
107
+ class FlockEvaluator {
108
+ +name: str
109
+ +config: FlockEvaluatorConfig
110
+ +evaluate(agent: FlockAgent, inputs: dict, tools: list)
111
+ }
112
+
113
+ class DeclarativeEvaluator {
114
+ +evaluate(agent: FlockAgent, inputs: dict, tools: list)
115
+ }
116
+
117
+ class NaturalLanguageEvaluator {
118
+ +evaluate(agent: FlockAgent, inputs: dict, tools: list)
119
+ }
120
+
121
+ FlockEvaluator <|-- DeclarativeEvaluator
122
+ FlockEvaluator <|-- NaturalLanguageEvaluator
123
+ ```
124
+
125
+ ### Key Features
126
+
127
+ - **Evaluation Strategy**: Define how inputs are evaluated to produce outputs.
128
+ - **Configuration**: Configure the evaluator's behavior.
129
+ - **Abstract Interface**: Provide a common interface for different evaluation strategies.
130
+
131
+ ### Important Methods
132
+
133
+ - `evaluate(agent, inputs, tools)`: Evaluate inputs to produce outputs.
134
+
135
+ ### Built-in Evaluators
136
+
137
+ - **DeclarativeEvaluator**: The default evaluator that uses a declarative approach to evaluation.
138
+ - **NaturalLanguageEvaluator**: An evaluator that uses natural language for evaluation.
139
+
140
+ ## FlockModule
141
+
142
+ The `FlockModule` class is the base class for all Flock modules. Modules can hook into agent lifecycle events and modify or enhance agent behavior.
143
+
144
+ ```mermaid
145
+ classDiagram
146
+ class FlockModule {
147
+ +name: str
148
+ +config: FlockModuleConfig
149
+ +initialize(agent: FlockAgent, inputs: dict)
150
+ +pre_evaluate(agent: FlockAgent, inputs: dict)
151
+ +post_evaluate(agent: FlockAgent, inputs: dict, result: dict)
152
+ +terminate(agent: FlockAgent, inputs: dict, result: dict)
153
+ +on_error(agent: FlockAgent, error: Exception, inputs: dict)
154
+ }
155
+
156
+ class MemoryModule {
157
+ +initialize(agent: FlockAgent, inputs: dict)
158
+ +pre_evaluate(agent: FlockAgent, inputs: dict)
159
+ +post_evaluate(agent: FlockAgent, inputs: dict, result: dict)
160
+ }
161
+
162
+ class MetricsModule {
163
+ +initialize(agent: FlockAgent, inputs: dict)
164
+ +pre_evaluate(agent: FlockAgent, inputs: dict)
165
+ +post_evaluate(agent: FlockAgent, inputs: dict, result: dict)
166
+ +terminate(agent: FlockAgent, inputs: dict, result: dict)
167
+ }
168
+
169
+ class OutputModule {
170
+ +post_evaluate(agent: FlockAgent, inputs: dict, result: dict)
171
+ }
172
+
173
+ FlockModule <|-- MemoryModule
174
+ FlockModule <|-- MetricsModule
175
+ FlockModule <|-- OutputModule
176
+ ```
177
+
178
+ ### Key Features
179
+
180
+ - **Lifecycle Hooks**: Hook into agent lifecycle events.
181
+ - **State Management**: Maintain state across agent executions.
182
+ - **Configuration**: Configure the module's behavior.
183
+ - **Pluggable**: Easily attach to and detach from agents.
184
+
185
+ ### Lifecycle Hooks
186
+
187
+ - `initialize(agent, inputs)`: Called when the agent starts running.
188
+ - `pre_evaluate(agent, inputs)`: Called before agent evaluation, can modify inputs.
189
+ - `post_evaluate(agent, inputs, result)`: Called after agent evaluation, can modify results.
190
+ - `terminate(agent, inputs, result)`: Called when the agent finishes running.
191
+ - `on_error(agent, error, inputs)`: Called when an error occurs during agent execution.
192
+
193
+ ### Built-in Modules
194
+
195
+ - **MemoryModule**: Provides persistent memory for agents.
196
+ - **MetricsModule**: Collects metrics about agent execution.
197
+ - **OutputModule**: Formats and stores agent outputs.
198
+
199
+ ## HandOff
200
+
201
+ The `HandOff` class is used to specify the next agent in a workflow and the input data to pass to it.
202
+
203
+ ```mermaid
204
+ classDiagram
205
+ class HandOff {
206
+ +next_agent: Union[str, FlockAgent, Callable]
207
+ +input: dict
208
+ +context: dict
209
+ }
210
+ ```
211
+
212
+ ### Key Properties
213
+
214
+ - `next_agent`: The next agent to invoke (either a string name, a FlockAgent instance, or a callable that returns an agent).
215
+ - `input`: Input data for the next agent.
216
+ - `context`: Override context parameters.
217
+
218
+ ## Registry
219
+
220
+ The registry manages the registration of agents and tools.
221
+
222
+ ```mermaid
223
+ classDiagram
224
+ class Registry {
225
+ +agents: dict
226
+ +tools: dict
227
+ +register_agent(agent: FlockAgent)
228
+ +register_tool(tool_name: str, tool: Callable)
229
+ +get_agent(agent_name: str)
230
+ +get_tool(tool_name: str)
231
+ +get_all_agents()
232
+ +get_all_tools()
233
+ }
234
+ ```
235
+
236
+ ### Key Features
237
+
238
+ - **Agent Registration**: Register agents with the registry.
239
+ - **Tool Registration**: Register tools with the registry.
240
+ - **Lookup**: Look up agents and tools by name.
241
+
242
+ ### Important Methods
243
+
244
+ - `register_agent(agent)`: Register an agent with the registry.
245
+ - `register_tool(tool_name, tool)`: Register a tool with the registry.
246
+ - `get_agent(agent_name)`: Get an agent by name.
247
+ - `get_tool(tool_name)`: Get a tool by name.
248
+ - `get_all_agents()`: Get all registered agents.
249
+ - `get_all_tools()`: Get all registered tools.
250
+
251
+ ## Context
252
+
253
+ The context maintains the global execution state.
254
+
255
+ ```mermaid
256
+ classDiagram
257
+ class Context {
258
+ +variables: dict
259
+ +get(key: str, default=None)
260
+ +set(key: str, value)
261
+ +update(variables: dict)
262
+ +clear()
263
+ }
264
+ ```
265
+
266
+ ### Key Features
267
+
268
+ - **Variable Storage**: Store global variables that are accessible to all agents.
269
+ - **Variable Access**: Get and set context variables.
270
+ - **Variable Lifecycle**: Manage the lifecycle of context variables.
271
+
272
+ ### Important Methods
273
+
274
+ - `get(key, default=None)`: Get a context variable.
275
+ - `set(key, value)`: Set a context variable.
276
+ - `update(variables)`: Update multiple context variables.
277
+ - `clear()`: Clear all context variables.
278
+
279
+ ## Executor
280
+
281
+ The executor runs agent workflows. Flock supports two types of executors:
282
+
283
+ ```mermaid
284
+ classDiagram
285
+ class Executor {
286
+ +execute(start_agent: FlockAgent, input: dict)
287
+ +execute_async(start_agent: FlockAgent, input: dict)
288
+ }
289
+
290
+ class LocalExecutor {
291
+ +execute(start_agent: FlockAgent, input: dict)
292
+ +execute_async(start_agent: FlockAgent, input: dict)
293
+ }
294
+
295
+ class TemporalExecutor {
296
+ +config: TemporalExecutorConfig
297
+ +execute(start_agent: FlockAgent, input: dict)
298
+ +execute_async(start_agent: FlockAgent, input: dict)
299
+ }
300
+
301
+ Executor <|-- LocalExecutor
302
+ Executor <|-- TemporalExecutor
303
+ ```
304
+
305
+ ### Key Features
306
+
307
+ - **Workflow Execution**: Execute agent workflows.
308
+ - **Synchronous and Asynchronous Execution**: Support for both synchronous and asynchronous execution.
309
+ - **Error Handling**: Handle errors during workflow execution.
310
+
311
+ ### Important Methods
312
+
313
+ - `execute(start_agent, input)`: Execute a workflow synchronously.
314
+ - `execute_async(start_agent, input)`: Execute a workflow asynchronously.
315
+
316
+ ### Executor Types
317
+
318
+ - **LocalExecutor**: Runs workflows locally for development and testing.
319
+ - **TemporalExecutor**: Runs workflows via Temporal for production-grade execution.
320
+
321
+ ## Router
322
+
323
+ The router determines the next agent in a workflow.
324
+
325
+ ```mermaid
326
+ classDiagram
327
+ class FlockRouter {
328
+ +name: str
329
+ +config: FlockRouterConfig
330
+ +route(agent: FlockAgent, result: dict)
331
+ }
332
+
333
+ class DefaultRouter {
334
+ +route(agent: FlockAgent, result: dict)
335
+ }
336
+
337
+ class LLMRouter {
338
+ +route(agent: FlockAgent, result: dict)
339
+ }
340
+
341
+ class AgentRouter {
342
+ +route(agent: FlockAgent, result: dict)
343
+ }
344
+
345
+ FlockRouter <|-- DefaultRouter
346
+ FlockRouter <|-- LLMRouter
347
+ FlockRouter <|-- AgentRouter
348
+ ```
349
+
350
+ ### Key Features
351
+
352
+ - **Routing Strategy**: Define how to determine the next agent in a workflow.
353
+ - **Configuration**: Configure the router's behavior.
354
+ - **Abstract Interface**: Provide a common interface for different routing strategies.
355
+
356
+ ### Important Methods
357
+
358
+ - `route(agent, result)`: Determine the next agent in the workflow.
359
+
360
+ ### Router Types
361
+
362
+ - **DefaultRouter**: Uses the agent's `hand_off` property to determine the next agent.
363
+ - **LLMRouter**: Uses an LLM to determine the next agent.
364
+ - **AgentRouter**: Uses a dedicated agent to make routing decisions.
365
+
366
+ ## Tools
367
+
368
+ Tools are functions that agents can use to perform specific tasks.
369
+
370
+ ```mermaid
371
+ classDiagram
372
+ class Tool {
373
+ +name: str
374
+ +description: str
375
+ +function: Callable
376
+ +parameters: dict
377
+ +returns: dict
378
+ }
379
+ ```
380
+
381
+ ### Key Features
382
+
383
+ - **Function Wrapping**: Wrap Python functions as tools.
384
+ - **Documentation**: Provide documentation for tools.
385
+ - **Parameter Validation**: Validate tool parameters.
386
+ - **Result Formatting**: Format tool results.
387
+
388
+ ### Built-in Tools
389
+
390
+ - **Web Search**: Search the web for information.
391
+ - **Code Evaluation**: Evaluate Python code.
392
+ - **Web Content Retrieval**: Get content from web pages.
393
+ - **Math Evaluation**: Evaluate mathematical expressions.
394
+ - **Utility Functions**: Various utility functions like getting the current time.
395
+
396
+ ## API Server
397
+
398
+ The API server allows you to expose your agents via HTTP endpoints.
399
+
400
+ ```mermaid
401
+ classDiagram
402
+ class FlockAPI {
403
+ +flock: Flock
404
+ +app: FastAPI
405
+ +start(host: str, port: int)
406
+ +run_agent(agent_name: str, inputs: dict, async_run: bool)
407
+ +run_flock(agent_name: str, inputs: dict, async_run: bool)
408
+ +get_run_status(run_id: str)
409
+ +list_agents()
410
+ }
411
+ ```
412
+
413
+ ### Key Features
414
+
415
+ - **HTTP Endpoints**: Expose agents via HTTP endpoints.
416
+ - **Synchronous and Asynchronous Execution**: Support for both synchronous and asynchronous execution.
417
+ - **Run Status Tracking**: Track the status of runs.
418
+ - **Agent Discovery**: List available agents.
419
+
420
+ ### Important Methods
421
+
422
+ - `start(host, port)`: Start the API server.
423
+ - `run_agent(agent_name, inputs, async_run)`: Run an agent.
424
+ - `run_flock(agent_name, inputs, async_run)`: Run a Flock workflow.
425
+ - `get_run_status(run_id)`: Get the status of a run.
426
+ - `list_agents()`: List available agents.
427
+
428
+ ## Component Interactions
429
+
430
+ The following diagram shows how the components interact with each other during a typical workflow execution:
431
+
432
+ ```mermaid
433
+ sequenceDiagram
434
+ participant User
435
+ participant Flock
436
+ participant Registry
437
+ participant Context
438
+ participant Executor
439
+ participant Router
440
+ participant Agent1
441
+ participant Evaluator1
442
+ participant Module1
443
+ participant Agent2
444
+ participant Evaluator2
445
+ participant Module2
446
+
447
+ User->>Flock: Create Flock instance
448
+ User->>Flock: Add agents
449
+ Flock->>Registry: Register agents
450
+ User->>Flock: Run workflow
451
+ Flock->>Context: Initialize context
452
+ Flock->>Executor: Execute workflow
453
+ Executor->>Agent1: Execute agent
454
+ Agent1->>Module1: Initialize
455
+ Agent1->>Evaluator1: Evaluate
456
+ Evaluator1->>Agent1: Return result
457
+ Agent1->>Module1: Post-evaluate
458
+ Agent1->>Router: Determine next agent
459
+ Router->>Agent1: Return next agent
460
+ Agent1->>Agent2: Hand off
461
+ Agent2->>Module2: Initialize
462
+ Agent2->>Evaluator2: Evaluate
463
+ Evaluator2->>Agent2: Return result
464
+ Agent2->>Module2: Post-evaluate
465
+ Agent2->>Executor: Return result
466
+ Executor->>Flock: Return result
467
+ Flock->>User: Return result
468
+ ```
469
+
470
+ ## Next Steps
471
+
472
+ Now that you understand the specific components of Flock, you might want to explore:
473
+
474
+ - [Overview](overview.md) - Get a high-level overview of the Flock architecture
475
+ - [Design Decisions](design-decisions.md) - Understand the design decisions behind Flock
476
+ - [Core Concepts](../core-concepts/agents.md) - Learn about the core concepts of Flock
477
+ - [Examples](../examples/hello-flock.md) - See examples of Flock in action
@@ -0,0 +1,216 @@
1
+ # Architecture Overview
2
+
3
+ This document provides a high-level overview of the Flock framework's architecture, explaining the key components and how they interact with each other.
4
+
5
+ ```mermaid
6
+ flowchart TD
7
+ A[Flock] --> B[FlockAgent]
8
+ A --> C[Registry]
9
+ A --> D[Context]
10
+ A --> E[Executor]
11
+
12
+ B --> F[Evaluator]
13
+ B --> G[Modules]
14
+ B --> H[Tools]
15
+ B --> I[HandOff]
16
+
17
+ E --> J[Local Executor]
18
+ E --> K[Temporal Executor]
19
+
20
+ F --> L[Declarative Evaluator]
21
+ F --> M[Natural Language Evaluator]
22
+ F --> N[Custom Evaluators]
23
+
24
+ G --> O[Memory Module]
25
+ G --> P[Metrics Module]
26
+ G --> Q[Output Module]
27
+ G --> R[Custom Modules]
28
+
29
+ C --> S[Agent Registry]
30
+ C --> T[Tool Registry]
31
+
32
+ style A fill:#f9d77e,stroke:#333,stroke-width:2px
33
+ style B,C,D,E fill:#7ecef9,stroke:#333,stroke-width:2px
34
+ style F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T fill:#7ef9a2,stroke:#333,stroke-width:2px
35
+ ```
36
+
37
+ ## Core Architecture
38
+
39
+ Flock is designed with a modular architecture that separates concerns and allows for flexibility and extensibility. The main components are:
40
+
41
+ 1. **Flock**: The main orchestrator that manages agents, tools, and workflows.
42
+ 2. **FlockAgent**: The base class for all agents, defining their inputs, outputs, and behavior.
43
+ 3. **Registry**: Manages the registration of agents and tools.
44
+ 4. **Context**: Maintains the global execution context.
45
+ 5. **Executor**: Runs agent workflows either locally or via Temporal.
46
+
47
+ ## Component Relationships
48
+
49
+ ### Flock
50
+
51
+ The `Flock` class is the main entry point for the framework. It:
52
+
53
+ - Manages a collection of agents
54
+ - Registers tools that agents can use
55
+ - Maintains the global context
56
+ - Orchestrates the execution of workflows
57
+
58
+ ### FlockAgent
59
+
60
+ The `FlockAgent` class is the core, declarative base class for all agents. It:
61
+
62
+ - Defines the agent's inputs and outputs
63
+ - Specifies the tools the agent can use
64
+ - Defines the agent's behavior through lifecycle hooks
65
+ - Manages the agent's modules
66
+ - Specifies the next agent in the workflow (handoff)
67
+
68
+ ### Registry
69
+
70
+ The registry manages the registration of agents and tools. It:
71
+
72
+ - Maintains a mapping of agent names to agent instances
73
+ - Maintains a mapping of tool names to tool functions
74
+ - Provides methods for registering and retrieving agents and tools
75
+
76
+ ### Context
77
+
78
+ The context maintains the global execution state. It:
79
+
80
+ - Stores global variables that are accessible to all agents
81
+ - Provides methods for getting and setting context variables
82
+ - Manages the lifecycle of context variables
83
+
84
+ ### Executor
85
+
86
+ The executor runs agent workflows. Flock supports two types of executors:
87
+
88
+ - **Local Executor**: Runs workflows locally for development and testing
89
+ - **Temporal Executor**: Runs workflows via Temporal for production-grade execution
90
+
91
+ ## Execution Flow
92
+
93
+ The execution flow in Flock follows these steps:
94
+
95
+ 1. **Initialization**: The Flock instance is created and agents are added.
96
+ 2. **Registration**: Agents and tools are registered with the registry.
97
+ 3. **Context Setup**: The global context is initialized with standardized variables.
98
+ 4. **Workflow Execution**: The agent workflow is executed either locally or via Temporal.
99
+ 5. **Agent Execution**: Each agent in the workflow is executed in sequence.
100
+ 6. **Handoff**: Agents can hand off to other agents to continue the workflow.
101
+ 7. **Termination**: The workflow terminates when the last agent completes or an error occurs.
102
+
103
+ ```mermaid
104
+ sequenceDiagram
105
+ participant User
106
+ participant Flock
107
+ participant Registry
108
+ participant Context
109
+ participant Executor
110
+ participant Agent1
111
+ participant Agent2
112
+
113
+ User->>Flock: Create Flock instance
114
+ User->>Flock: Add agents
115
+ Flock->>Registry: Register agents
116
+ User->>Flock: Run workflow
117
+ Flock->>Context: Initialize context
118
+ Flock->>Executor: Execute workflow
119
+ Executor->>Agent1: Execute agent
120
+ Agent1->>Agent1: Initialize
121
+ Agent1->>Agent1: Evaluate
122
+ Agent1->>Agent1: Terminate
123
+ Agent1->>Agent2: Hand off
124
+ Agent2->>Agent2: Initialize
125
+ Agent2->>Agent2: Evaluate
126
+ Agent2->>Agent2: Terminate
127
+ Agent2->>Executor: Return result
128
+ Executor->>Flock: Return result
129
+ Flock->>User: Return result
130
+ ```
131
+
132
+ ## Evaluators
133
+
134
+ Evaluators are responsible for evaluating agent inputs to produce outputs. Flock supports different types of evaluators:
135
+
136
+ - **Declarative Evaluator**: The default evaluator that uses a declarative approach to evaluation.
137
+ - **Natural Language Evaluator**: An evaluator that uses natural language for evaluation.
138
+ - **Custom Evaluators**: You can create custom evaluators by subclassing `FlockEvaluator`.
139
+
140
+ ## Modules
141
+
142
+ Modules are pluggable components that can hook into agent lifecycle events. Flock includes several built-in modules:
143
+
144
+ - **Memory Module**: Provides persistent memory for agents.
145
+ - **Metrics Module**: Collects metrics about agent execution.
146
+ - **Output Module**: Formats and stores agent outputs.
147
+ - **Custom Modules**: You can create custom modules by subclassing `FlockModule`.
148
+
149
+ ## Tools
150
+
151
+ Tools are functions that agents can use to perform specific tasks. Flock includes several built-in tools:
152
+
153
+ - **Web Search**: Search the web for information.
154
+ - **Code Evaluation**: Evaluate Python code.
155
+ - **Web Content Retrieval**: Get content from web pages.
156
+ - **Math Evaluation**: Evaluate mathematical expressions.
157
+ - **Utility Functions**: Various utility functions like getting the current time.
158
+ - **Custom Tools**: You can create custom tools by defining Python functions.
159
+
160
+ ## Routers
161
+
162
+ Routers determine the next agent in a workflow. Flock supports different types of routers:
163
+
164
+ - **Default Router**: Uses the agent's `hand_off` property to determine the next agent.
165
+ - **LLM Router**: Uses an LLM to determine the next agent.
166
+ - **Agent Router**: Uses a dedicated agent to make routing decisions.
167
+ - **Custom Routers**: You can create custom routers by subclassing `FlockRouter`.
168
+
169
+ ## Temporal Integration
170
+
171
+ Flock integrates with Temporal for production-grade workflow execution. This provides:
172
+
173
+ - **Durability**: Persistent state management even in the case of failures.
174
+ - **Retries & Error Handling**: Automatic recovery via Temporal's built-in mechanisms.
175
+ - **Scalability**: Seamless orchestration of distributed agent workflows.
176
+
177
+ ## API Server
178
+
179
+ Flock includes a REST API server that allows you to expose your agents via HTTP endpoints. This makes it easy to integrate Flock agents into web applications, microservices, or any system that can make HTTP requests.
180
+
181
+ ## Design Principles
182
+
183
+ Flock is designed with the following principles in mind:
184
+
185
+ ### Declarative Approach
186
+
187
+ Flock takes a declarative approach to agent definition, focusing on what agents need as input and what they produce as output, rather than requiring complex prompt engineering.
188
+
189
+ ### Type Safety
190
+
191
+ Flock uses Pydantic models for type safety and clear contracts for inputs and outputs. This provides automatic JSON serialization/deserialization, strong typing, and an explicit contract for inputs and outputs.
192
+
193
+ ### Lifecycle Hooks
194
+
195
+ Flock agents support lifecycle hooks such as `initialize()`, `terminate()`, `evaluate()`, and `on_error()`. This ensures that agents can perform setup, cleanup, and robust error handling—all without cluttering the main business logic.
196
+
197
+ ### Fault Tolerance
198
+
199
+ Flock integrates with Temporal for fault tolerance and production readiness. This provides automatic retries, durable state management, and resilience against failures.
200
+
201
+ ### Modularity
202
+
203
+ Flock is designed to be modular, with clear separation of concerns. This makes it easy to extend and customize the framework for specific use cases.
204
+
205
+ ### Flexibility
206
+
207
+ Flock is designed to be flexible, allowing for a wide range of agent types and workflows. Agents can be chained together, run in parallel, or run in a batch mode.
208
+
209
+ ## Next Steps
210
+
211
+ Now that you understand the high-level architecture of Flock, you might want to explore:
212
+
213
+ - [Components](components.md) - Learn more about the specific components of Flock
214
+ - [Design Decisions](design-decisions.md) - Understand the design decisions behind Flock
215
+ - [Core Concepts](../core-concepts/agents.md) - Learn about the core concepts of Flock
216
+ - [Examples](../examples/hello-flock.md) - See examples of Flock in action