flock-core 0.4.0b46__tar.gz → 0.4.0b48__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 (616) hide show
  1. flock_core-0.4.0b48/.github/ISSUE_TEMPLATE/bug_report.yaml +27 -0
  2. flock_core-0.4.0b48/.github/ISSUE_TEMPLATE/feature_request.yaml +29 -0
  3. flock_core-0.4.0b48/.github/PULL_REQUEST_TEMPLATE.yaml +45 -0
  4. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/PKG-INFO +24 -13
  5. flock_core-0.4.0b48/SECURITY.md +42 -0
  6. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/pyproject.toml +28 -9
  7. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/flock.py +105 -61
  8. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/flock_registry.py +45 -38
  9. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/util/spliter.py +4 -0
  10. flock_core-0.4.0b48/src/flock/evaluators/__init__.py +1 -0
  11. flock_core-0.4.0b48/src/flock/evaluators/declarative/__init__.py +1 -0
  12. flock_core-0.4.0b48/src/flock/modules/__init__.py +1 -0
  13. flock_core-0.4.0b48/src/flock/modules/assertion/__init__.py +1 -0
  14. flock_core-0.4.0b48/src/flock/modules/callback/__init__.py +1 -0
  15. flock_core-0.4.0b48/src/flock/modules/memory/__init__.py +1 -0
  16. flock_core-0.4.0b48/src/flock/modules/output/__init__.py +1 -0
  17. flock_core-0.4.0b48/src/flock/modules/performance/__init__.py +1 -0
  18. flock_core-0.4.0b48/src/flock/modules/zep/__init__.py +1 -0
  19. flock_core-0.4.0b48/src/flock/tools/__init__.py +188 -0
  20. {flock_core-0.4.0b46/src/flock/core → flock_core-0.4.0b48/src/flock}/tools/azure_tools.py +284 -0
  21. flock_core-0.4.0b48/src/flock/tools/code_tools.py +56 -0
  22. flock_core-0.4.0b48/src/flock/tools/file_tools.py +140 -0
  23. flock_core-0.4.0b46/src/flock/core/tools/dev_tools/github.py → flock_core-0.4.0b48/src/flock/tools/github_tools.py +3 -3
  24. {flock_core-0.4.0b46/src/flock/core → flock_core-0.4.0b48/src/flock}/tools/markdown_tools.py +14 -4
  25. flock_core-0.4.0b48/src/flock/tools/system_tools.py +9 -0
  26. flock_core-0.4.0b46/src/flock/core/tools/llm_tools.py → flock_core-0.4.0b48/src/flock/tools/text_tools.py +47 -25
  27. flock_core-0.4.0b48/src/flock/tools/web_tools.py +90 -0
  28. {flock_core-0.4.0b46/src/flock/core → flock_core-0.4.0b48/src/flock}/tools/zendesk_tools.py +6 -6
  29. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/config.py +1 -1
  30. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/main.py +109 -16
  31. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/workflow/activities.py +1 -0
  32. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/uv.lock +232 -26
  33. flock_core-0.4.0b46/.github/ISSUE_TEMPLATE/bug_report.md +0 -24
  34. flock_core-0.4.0b46/.github/ISSUE_TEMPLATE/feature_request.md +0 -19
  35. flock_core-0.4.0b46/.github/PULL_REQUEST_TEMPLATE.md +0 -17
  36. flock_core-0.4.0b46/src/flock/core/tools/basic_tools.py +0 -317
  37. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/.devcontainer/devcontainer.json +0 -0
  38. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/.env_template +0 -0
  39. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/.github/ISSUE_TEMPLATE/vulnerability_report.md +0 -0
  40. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/.github/workflows/.gitkeep +0 -0
  41. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/.github/workflows/deploy-documentation.yml +0 -0
  42. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
  43. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/.gitignore +0 -0
  44. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/.gitmodules +0 -0
  45. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/.vscode/launch.json +0 -0
  46. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/.vscode/settings.json +0 -0
  47. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/.vscode/tasks.json +0 -0
  48. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/CODE_OF_CONDUCT.md +0 -0
  49. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/CONTRIBUTING.md +0 -0
  50. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/LICENSE +0 -0
  51. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/README.md +0 -0
  52. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/about/changelog.md +0 -0
  53. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/about/contributing.md +0 -0
  54. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/drawio/architecture.drawio +0 -0
  55. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/cli_outputs/out.png +0 -0
  56. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/components_chart.png +0 -0
  57. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/examples/01_01.png +0 -0
  58. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/examples/01_02.png +0 -0
  59. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/examples/01_03.png +0 -0
  60. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/examples/01_04.png +0 -0
  61. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/examples/01_05.png +0 -0
  62. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/examples/01_06.png +0 -0
  63. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/flock.png +0 -0
  64. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/flock_cli.png +0 -0
  65. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/flow_chart.png +0 -0
  66. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/getting-started/first_agent_00.png +0 -0
  67. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/hummingbird.png +0 -0
  68. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/icon.png +0 -0
  69. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/icon.png~ +0 -0
  70. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/logo.png +0 -0
  71. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/memory_concepts.png +0 -0
  72. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/memory_flow.png +0 -0
  73. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/assets/images/memory_flow_chart.png +0 -0
  74. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/components/evaluators.md +0 -0
  75. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/components/index.md +0 -0
  76. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/components/modules.md +0 -0
  77. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/components/tools.md +0 -0
  78. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/core-concepts/agents.md +0 -0
  79. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/core-concepts/declarative.md +0 -0
  80. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/core-concepts/index.md +0 -0
  81. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/core-concepts/workflows.md +0 -0
  82. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/create_doc_boilerplate.py +0 -0
  83. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/deployment/index.md +0 -0
  84. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/deployment/temporal.md +0 -0
  85. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/getting-started/concepts.md +0 -0
  86. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/getting-started/configuration.md +0 -0
  87. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/getting-started/index.md +0 -0
  88. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/getting-started/installation.md +0 -0
  89. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/getting-started/quickstart.md +0 -0
  90. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/guides/chaining-agents.md +0 -0
  91. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/guides/custom-endpoints.md +0 -0
  92. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/guides/index.md +0 -0
  93. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/guides/temporal-configuration.md +0 -0
  94. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/index.md +0 -0
  95. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/interacting-with-flock/cli-tool.md +0 -0
  96. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/interacting-with-flock/index.md +0 -0
  97. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/interacting-with-flock/interactive-cli.md +0 -0
  98. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/interacting-with-flock/programmatic.md +0 -0
  99. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/interacting-with-flock/rest-api.md +0 -0
  100. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/interacting-with-flock/web-ui.md +0 -0
  101. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/reference/flock_agent.md +0 -0
  102. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/reference/index.md +0 -0
  103. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/release-notes/magpie.md +0 -0
  104. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/docs/stylesheets/extra.css +0 -0
  105. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/mkdocs.yml +0 -0
  106. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/requirements.txt +0 -0
  107. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/scripts/code_collector.py +0 -0
  108. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/scripts/create_docs.py +0 -0
  109. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/scripts/ensure_uv.py +0 -0
  110. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/__init__.py +0 -0
  111. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/assets/release_notes.md +0 -0
  112. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/config.py +0 -0
  113. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/constants.py +0 -0
  114. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/create_agent.py +0 -0
  115. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/create_flock.py +0 -0
  116. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/execute_flock.py +0 -0
  117. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/load_agent.py +0 -0
  118. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/load_examples.py +0 -0
  119. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/load_flock.py +0 -0
  120. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/load_release_notes.py +0 -0
  121. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/loaded_flock_cli.py +0 -0
  122. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/manage_agents.py +0 -0
  123. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/registry_management.py +0 -0
  124. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/runner.py +0 -0
  125. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/settings.py +0 -0
  126. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/utils.py +0 -0
  127. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/view_results.py +0 -0
  128. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/cli/yaml_editor.py +0 -0
  129. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/config.py +0 -0
  130. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/__init__.py +0 -0
  131. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/api/__init__.py +0 -0
  132. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/api/custom_endpoint.py +0 -0
  133. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/api/endpoints.py +0 -0
  134. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/api/main.py +0 -0
  135. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/api/models.py +0 -0
  136. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/api/run_store.py +0 -0
  137. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/api/runner.py +0 -0
  138. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/api/service.py +0 -0
  139. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/api/ui/__init__.py +0 -0
  140. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/api/ui/routes.py +0 -0
  141. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/api/ui/utils.py +0 -0
  142. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/context/context.py +0 -0
  143. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/context/context_manager.py +0 -0
  144. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/context/context_vars.py +0 -0
  145. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/evaluation/utils.py +0 -0
  146. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/execution/batch_executor.py +0 -0
  147. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/execution/evaluation_executor.py +0 -0
  148. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/execution/local_executor.py +0 -0
  149. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/execution/temporal_executor.py +0 -0
  150. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/flock_agent.py +0 -0
  151. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/flock_evaluator.py +0 -0
  152. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/flock_factory.py +0 -0
  153. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/flock_module.py +0 -0
  154. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/flock_router.py +0 -0
  155. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/interpreter/python_interpreter.py +0 -0
  156. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/logging/__init__.py +0 -0
  157. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/logging/formatters/enum_builder.py +0 -0
  158. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/logging/formatters/theme_builder.py +0 -0
  159. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
  160. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/logging/formatters/themes.py +0 -0
  161. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/logging/logging.py +0 -0
  162. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
  163. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/logging/telemetry.py +0 -0
  164. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
  165. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
  166. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
  167. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/logging/trace_and_logged.py +0 -0
  168. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/mixin/dspy_integration.py +0 -0
  169. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/mixin/prompt_parser.py +0 -0
  170. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/serialization/__init__.py +0 -0
  171. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/serialization/callable_registry.py +0 -0
  172. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/serialization/flock_serializer.py +0 -0
  173. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/serialization/json_encoder.py +0 -0
  174. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/serialization/secure_serializer.py +0 -0
  175. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/serialization/serializable.py +0 -0
  176. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/serialization/serialization_utils.py +0 -0
  177. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/util/cli_helper.py +0 -0
  178. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/util/file_path_utils.py +0 -0
  179. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/util/hydrator.py +0 -0
  180. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/util/input_resolver.py +0 -0
  181. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/core/util/loader.py +0 -0
  182. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/evaluators/declarative/declarative_evaluator.py +0 -0
  183. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/evaluators/memory/memory_evaluator.py +0 -0
  184. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/evaluators/test/test_case_evaluator.py +0 -0
  185. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/evaluators/zep/zep_evaluator.py +0 -0
  186. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/modules/assertion/assertion_module.py +0 -0
  187. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/modules/callback/callback_module.py +0 -0
  188. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/modules/memory/memory_module.py +0 -0
  189. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/modules/memory/memory_parser.py +0 -0
  190. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/modules/memory/memory_storage.py +0 -0
  191. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/modules/output/output_module.py +0 -0
  192. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/modules/performance/metrics_module.py +0 -0
  193. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/modules/zep/zep_module.py +0 -0
  194. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/platform/docker_tools.py +0 -0
  195. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/platform/jaeger_install.py +0 -0
  196. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/routers/__init__.py +0 -0
  197. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/routers/agent/__init__.py +0 -0
  198. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/routers/agent/agent_router.py +0 -0
  199. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/routers/agent/handoff_agent.py +0 -0
  200. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/routers/conditional/conditional_router.py +0 -0
  201. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/routers/default/__init__.py +0 -0
  202. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/routers/default/default_router.py +0 -0
  203. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/routers/feedback/feedback_router.py +0 -0
  204. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/routers/list_generator/list_generator_router.py +0 -0
  205. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/routers/llm/__init__.py +0 -0
  206. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/routers/llm/llm_router.py +0 -0
  207. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/3024-day.toml +0 -0
  208. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/3024-night.toml +0 -0
  209. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/aardvark-blue.toml +0 -0
  210. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/abernathy.toml +0 -0
  211. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/adventure.toml +0 -0
  212. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/adventuretime.toml +0 -0
  213. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/afterglow.toml +0 -0
  214. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/alabaster.toml +0 -0
  215. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/alienblood.toml +0 -0
  216. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/andromeda.toml +0 -0
  217. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/apple-classic.toml +0 -0
  218. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/apple-system-colors.toml +0 -0
  219. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/arcoiris.toml +0 -0
  220. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/argonaut copy.toml +0 -0
  221. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/argonaut.toml +0 -0
  222. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/arthur.toml +0 -0
  223. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/ateliersulphurpool.toml +0 -0
  224. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/atom.toml +0 -0
  225. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/atom_test.toml +0 -0
  226. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/atomonelight.toml +0 -0
  227. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/aurora.toml +0 -0
  228. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/ayu copy.toml +0 -0
  229. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/ayu-light.toml +0 -0
  230. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/ayu-mirage.toml +0 -0
  231. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/ayu.toml +0 -0
  232. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/banana-blueberry.toml +0 -0
  233. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/batman.toml +0 -0
  234. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/belafonte-day.toml +0 -0
  235. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/belafonte-night.toml +0 -0
  236. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/birdsofparadise.toml +0 -0
  237. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/blazer.toml +0 -0
  238. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/blue-matrix.toml +0 -0
  239. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/blueberrypie.toml +0 -0
  240. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/bluedolphin.toml +0 -0
  241. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/blulocodark.toml +0 -0
  242. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/blulocolight.toml +0 -0
  243. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/borland.toml +0 -0
  244. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/breeze.toml +0 -0
  245. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/bright-lights.toml +0 -0
  246. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/broadcast.toml +0 -0
  247. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/brogrammer.toml +0 -0
  248. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/builtin-dark.toml +0 -0
  249. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/builtin-light.toml +0 -0
  250. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/builtin-pastel-dark.toml +0 -0
  251. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/builtin-solarized-dark.toml +0 -0
  252. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/builtin-solarized-light.toml +0 -0
  253. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/builtin-tango-dark.toml +0 -0
  254. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/builtin-tango-light.toml +0 -0
  255. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/c64.toml +0 -0
  256. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/calamity.toml +0 -0
  257. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/catppuccin-frappe.toml +0 -0
  258. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/catppuccin-latte.toml +0 -0
  259. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/catppuccin-macchiato.toml +0 -0
  260. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/catppuccin-mocha.toml +0 -0
  261. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/cga.toml +0 -0
  262. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/chalk.toml +0 -0
  263. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/chalkboard.toml +0 -0
  264. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/challengerdeep.toml +0 -0
  265. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/chester.toml +0 -0
  266. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/ciapre.toml +0 -0
  267. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/clrs.toml +0 -0
  268. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/cobalt-neon.toml +0 -0
  269. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/cobalt2.toml +0 -0
  270. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/coffee-theme.toml +0 -0
  271. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/crayonponyfish.toml +0 -0
  272. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/cutiepro.toml +0 -0
  273. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/cyberdyne.toml +0 -0
  274. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/cyberpunk.toml +0 -0
  275. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
  276. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/dark+.toml +0 -0
  277. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/dark-pastel.toml +0 -0
  278. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/darkermatrix.toml +0 -0
  279. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/darkmatrix.toml +0 -0
  280. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/darkside.toml +0 -0
  281. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/dayfox.toml +0 -0
  282. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/deep.toml +0 -0
  283. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/desert.toml +0 -0
  284. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/dimidium.toml +0 -0
  285. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/dimmedmonokai.toml +0 -0
  286. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/django.toml +0 -0
  287. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/djangorebornagain.toml +0 -0
  288. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/djangosmooth.toml +0 -0
  289. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/doom-peacock.toml +0 -0
  290. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/doomone.toml +0 -0
  291. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/dotgov.toml +0 -0
  292. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/dracula+.toml +0 -0
  293. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/dracula.toml +0 -0
  294. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/duckbones.toml +0 -0
  295. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/duotone-dark.toml +0 -0
  296. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/earthsong.toml +0 -0
  297. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/elemental.toml +0 -0
  298. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/elementary.toml +0 -0
  299. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/encom.toml +0 -0
  300. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/espresso-libre.toml +0 -0
  301. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/espresso.toml +0 -0
  302. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/everblush.toml +0 -0
  303. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/fahrenheit.toml +0 -0
  304. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/fairyfloss.toml +0 -0
  305. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/farmhouse-dark.toml +0 -0
  306. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/farmhouse-light.toml +0 -0
  307. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/fideloper.toml +0 -0
  308. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/firefly-traditional.toml +0 -0
  309. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/firefoxdev.toml +0 -0
  310. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/firewatch.toml +0 -0
  311. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/fishtank.toml +0 -0
  312. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/flat.toml +0 -0
  313. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/flatland.toml +0 -0
  314. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/flexoki-dark.toml +0 -0
  315. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/flexoki-light.toml +0 -0
  316. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/floraverse.toml +0 -0
  317. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/forestblue.toml +0 -0
  318. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/framer.toml +0 -0
  319. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/frontenddelight.toml +0 -0
  320. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/funforrest.toml +0 -0
  321. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/galaxy.toml +0 -0
  322. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/galizur.toml +0 -0
  323. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/github-dark.toml +0 -0
  324. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/github.toml +0 -0
  325. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/glacier.toml +0 -0
  326. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/grape.toml +0 -0
  327. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/grass.toml +0 -0
  328. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/grey-green.toml +0 -0
  329. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/gruber-darker.toml +0 -0
  330. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/gruvboxdark.toml +0 -0
  331. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/gruvboxdarkhard.toml +0 -0
  332. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/gruvboxlight.toml +0 -0
  333. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/guezwhoz.toml +0 -0
  334. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/hacktober.toml +0 -0
  335. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/hardcore.toml +0 -0
  336. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/harper.toml +0 -0
  337. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/hax0r-blue.toml +0 -0
  338. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/hax0r-gr33n.toml +0 -0
  339. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/hax0r-r3d.toml +0 -0
  340. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/highway.toml +0 -0
  341. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/hipster-green.toml +0 -0
  342. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/hivacruz.toml +0 -0
  343. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/homebrew.toml +0 -0
  344. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/hopscotch.256.toml +0 -0
  345. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/hopscotch.toml +0 -0
  346. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/hurtado.toml +0 -0
  347. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/hybrid.toml +0 -0
  348. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/ic-green-ppl.toml +0 -0
  349. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/ic-orange-ppl.toml +0 -0
  350. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/iceberg-dark.toml +0 -0
  351. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/iceberg-light.toml +0 -0
  352. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/idea.toml +0 -0
  353. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/idletoes.toml +0 -0
  354. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/ir-black.toml +0 -0
  355. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/iterm2-dark-background.toml +0 -0
  356. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/iterm2-default.toml +0 -0
  357. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/iterm2-light-background.toml +0 -0
  358. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
  359. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/iterm2-smoooooth.toml +0 -0
  360. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
  361. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/iterm2-solarized-light.toml +0 -0
  362. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/iterm2-tango-dark.toml +0 -0
  363. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/iterm2-tango-light.toml +0 -0
  364. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/jackie-brown.toml +0 -0
  365. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/japanesque.toml +0 -0
  366. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/jellybeans.toml +0 -0
  367. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/jetbrains-darcula.toml +0 -0
  368. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/jubi.toml +0 -0
  369. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/kanagawabones.toml +0 -0
  370. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/kibble.toml +0 -0
  371. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/kolorit.toml +0 -0
  372. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/konsolas.toml +0 -0
  373. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/kurokula.toml +0 -0
  374. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/lab-fox.toml +0 -0
  375. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/laser.toml +0 -0
  376. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/later-this-evening.toml +0 -0
  377. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/lavandula.toml +0 -0
  378. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/liquidcarbon.toml +0 -0
  379. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/liquidcarbontransparent.toml +0 -0
  380. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
  381. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/lovelace.toml +0 -0
  382. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/man-page.toml +0 -0
  383. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/mariana.toml +0 -0
  384. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/material.toml +0 -0
  385. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/materialdark.toml +0 -0
  386. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/materialdarker.toml +0 -0
  387. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/materialdesigncolors.toml +0 -0
  388. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/materialocean.toml +0 -0
  389. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/mathias.toml +0 -0
  390. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/matrix.toml +0 -0
  391. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/medallion.toml +0 -0
  392. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/mellifluous.toml +0 -0
  393. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/midnight-in-mojave.toml +0 -0
  394. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/mirage.toml +0 -0
  395. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/misterioso.toml +0 -0
  396. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/molokai.toml +0 -0
  397. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/monalisa.toml +0 -0
  398. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/monokai-remastered.toml +0 -0
  399. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/monokai-soda.toml +0 -0
  400. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/monokai-vivid.toml +0 -0
  401. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/n0tch2k.toml +0 -0
  402. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/neobones-dark.toml +0 -0
  403. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/neobones-light.toml +0 -0
  404. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/neon.toml +0 -0
  405. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/neopolitan.toml +0 -0
  406. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/neutron.toml +0 -0
  407. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/night-owlish-light.toml +0 -0
  408. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/nightfox.toml +0 -0
  409. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/nightlion-v1.toml +0 -0
  410. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/nightlion-v2.toml +0 -0
  411. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/niji.toml +0 -0
  412. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/nocturnal-winter.toml +0 -0
  413. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/nord-light.toml +0 -0
  414. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/nord.toml +0 -0
  415. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/novel.toml +0 -0
  416. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/nvimdark.toml +0 -0
  417. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/nvimlight.toml +0 -0
  418. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/obsidian.toml +0 -0
  419. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/ocean.toml +0 -0
  420. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/oceanic-next.toml +0 -0
  421. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/oceanicmaterial.toml +0 -0
  422. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/ollie.toml +0 -0
  423. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/onehalfdark.toml +0 -0
  424. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/onehalflight.toml +0 -0
  425. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/operator-mono-dark.toml +0 -0
  426. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/overnight-slumber.toml +0 -0
  427. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/oxocarbon.toml +0 -0
  428. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/palenighthc.toml +0 -0
  429. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/pandora.toml +0 -0
  430. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/paraiso-dark.toml +0 -0
  431. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/paulmillr.toml +0 -0
  432. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/pencildark.toml +0 -0
  433. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/pencillight.toml +0 -0
  434. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/peppermint.toml +0 -0
  435. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/piatto-light.toml +0 -0
  436. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/pnevma.toml +0 -0
  437. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/popping-and-locking.toml +0 -0
  438. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/primary.toml +0 -0
  439. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/pro-light.toml +0 -0
  440. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/pro.toml +0 -0
  441. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/purple-rain.toml +0 -0
  442. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/purplepeter.toml +0 -0
  443. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/rapture.toml +0 -0
  444. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/raycast-dark.toml +0 -0
  445. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/raycast-light.toml +0 -0
  446. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/rebecca.toml +0 -0
  447. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/red-alert.toml +0 -0
  448. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/red-planet.toml +0 -0
  449. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/red-sands.toml +0 -0
  450. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/relaxed.toml +0 -0
  451. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/retro.toml +0 -0
  452. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/rippedcasts.toml +0 -0
  453. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/rose-pine-dawn.toml +0 -0
  454. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/rose-pine-moon.toml +0 -0
  455. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/rose-pine.toml +0 -0
  456. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/rouge-2.toml +0 -0
  457. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/royal.toml +0 -0
  458. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/ryuuko.toml +0 -0
  459. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/sakura.toml +0 -0
  460. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/scarlet-protocol.toml +0 -0
  461. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/seafoam-pastel.toml +0 -0
  462. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/seashells.toml +0 -0
  463. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/seoulbones-dark.toml +0 -0
  464. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/seoulbones-light.toml +0 -0
  465. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/seti.toml +0 -0
  466. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/shades-of-purple.toml +0 -0
  467. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/shaman.toml +0 -0
  468. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/slate.toml +0 -0
  469. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/sleepyhollow.toml +0 -0
  470. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/smyck.toml +0 -0
  471. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/snazzy.toml +0 -0
  472. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/softserver.toml +0 -0
  473. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/solarized-darcula.toml +0 -0
  474. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/solarized-dark---patched.toml +0 -0
  475. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
  476. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/spacedust.toml +0 -0
  477. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
  478. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/spacegray-eighties.toml +0 -0
  479. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/spacegray.toml +0 -0
  480. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/spiderman.toml +0 -0
  481. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/spring.toml +0 -0
  482. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/square.toml +0 -0
  483. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/sublette.toml +0 -0
  484. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/subliminal.toml +0 -0
  485. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/sugarplum.toml +0 -0
  486. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/sundried.toml +0 -0
  487. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/symfonic.toml +0 -0
  488. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/synthwave-everything.toml +0 -0
  489. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/synthwave.toml +0 -0
  490. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/synthwavealpha.toml +0 -0
  491. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/tango-adapted.toml +0 -0
  492. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/tango-half-adapted.toml +0 -0
  493. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/teerb.toml +0 -0
  494. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/terafox.toml +0 -0
  495. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/terminal-basic.toml +0 -0
  496. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/thayer-bright.toml +0 -0
  497. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/the-hulk.toml +0 -0
  498. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/tinacious-design-(dark).toml +0 -0
  499. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/tinacious-design-(light).toml +0 -0
  500. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/tokyonight-day.toml +0 -0
  501. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/tokyonight-storm.toml +0 -0
  502. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/tokyonight.toml +0 -0
  503. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/tomorrow-night-blue.toml +0 -0
  504. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/tomorrow-night-bright.toml +0 -0
  505. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/tomorrow-night-burns.toml +0 -0
  506. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
  507. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/tomorrow-night.toml +0 -0
  508. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/tomorrow.toml +0 -0
  509. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/toychest.toml +0 -0
  510. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/treehouse.toml +0 -0
  511. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/twilight.toml +0 -0
  512. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/ubuntu.toml +0 -0
  513. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/ultradark.toml +0 -0
  514. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/ultraviolent.toml +0 -0
  515. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/underthesea.toml +0 -0
  516. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/unikitty.toml +0 -0
  517. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/urple.toml +0 -0
  518. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/vaughn.toml +0 -0
  519. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/vesper.toml +0 -0
  520. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/vibrantink.toml +0 -0
  521. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/vimbones.toml +0 -0
  522. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/violet-dark.toml +0 -0
  523. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/violet-light.toml +0 -0
  524. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/warmneon.toml +0 -0
  525. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/wez.toml +0 -0
  526. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/whimsy.toml +0 -0
  527. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/wildcherry.toml +0 -0
  528. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/wilmersdorf.toml +0 -0
  529. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/wombat.toml +0 -0
  530. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/wryan.toml +0 -0
  531. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/xcodedark.toml +0 -0
  532. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/xcodedarkhc.toml +0 -0
  533. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/xcodelight.toml +0 -0
  534. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/xcodelighthc.toml +0 -0
  535. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/xcodewwdc.toml +0 -0
  536. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/zenbones-dark.toml +0 -0
  537. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/zenbones-light.toml +0 -0
  538. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/zenbones.toml +0 -0
  539. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/zenburn.toml +0 -0
  540. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/zenburned.toml +0 -0
  541. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/zenwritten-dark.toml +0 -0
  542. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/themes/zenwritten-light.toml +0 -0
  543. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/__init__.py +0 -0
  544. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/__init__.py +0 -0
  545. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/api/__init__.py +0 -0
  546. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/api/agent_management.py +0 -0
  547. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/api/execution.py +0 -0
  548. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/api/flock_management.py +0 -0
  549. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/api/registry_viewer.py +0 -0
  550. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/chat.py +0 -0
  551. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/dependencies.py +0 -0
  552. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/models_ui.py +0 -0
  553. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/services/__init__.py +0 -0
  554. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/services/flock_service.py +0 -0
  555. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/templates/theme_mapper.html +0 -0
  556. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/theme_mapper.py +0 -0
  557. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/app/utils.py +0 -0
  558. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/run.py +0 -0
  559. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/static/css/chat.css +0 -0
  560. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/static/css/components.css +0 -0
  561. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/static/css/header.css +0 -0
  562. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/static/css/layout.css +0 -0
  563. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/static/css/sidebar.css +0 -0
  564. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/base.html +0 -0
  565. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/chat.html +0 -0
  566. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/chat_settings.html +0 -0
  567. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/flock_editor.html +0 -0
  568. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/index.html +0 -0
  569. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_agent_detail_form.html +0 -0
  570. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_agent_list.html +0 -0
  571. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_agent_manager_view.html +0 -0
  572. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_agent_tools_checklist.html +0 -0
  573. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_chat_container.html +0 -0
  574. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_chat_messages.html +0 -0
  575. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_chat_settings_form.html +0 -0
  576. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_create_flock_form.html +0 -0
  577. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_dashboard_flock_detail.html +0 -0
  578. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_dashboard_flock_file_list.html +0 -0
  579. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_dashboard_flock_properties_preview.html +0 -0
  580. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_dashboard_upload_flock_form.html +0 -0
  581. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_dynamic_input_form_content.html +0 -0
  582. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_env_vars_table.html +0 -0
  583. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_execution_form.html +0 -0
  584. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_execution_view_container.html +0 -0
  585. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_flock_file_list.html +0 -0
  586. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_flock_properties_form.html +0 -0
  587. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_flock_upload_form.html +0 -0
  588. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_header_flock_status.html +0 -0
  589. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_load_manager_view.html +0 -0
  590. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_registry_table.html +0 -0
  591. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_registry_viewer_content.html +0 -0
  592. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_results_display.html +0 -0
  593. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_settings_env_content.html +0 -0
  594. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_settings_theme_content.html +0 -0
  595. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_settings_view.html +0 -0
  596. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_sidebar.html +0 -0
  597. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_structured_data_view.html +0 -0
  598. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/partials/_theme_preview.html +0 -0
  599. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/webapp/templates/registry_viewer.html +0 -0
  600. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/workflow/__init__.py +0 -0
  601. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/workflow/agent_activities.py +0 -0
  602. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/workflow/agent_execution_activity.py +0 -0
  603. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/workflow/flock_workflow.py +0 -0
  604. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/workflow/temporal_config.py +0 -0
  605. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/src/flock/workflow/temporal_setup.py +0 -0
  606. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/tests/__init__.py +0 -0
  607. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/tests/api/test_custom_endpoints.py +0 -0
  608. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/tests/core/test_flock_batch.py +0 -0
  609. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/tests/core/test_flock_core.py +0 -0
  610. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/tests/serialization/__init__.py +0 -0
  611. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/tests/serialization/test_enhanced_serialization.py +0 -0
  612. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/tests/serialization/test_file_path_serialization.py +0 -0
  613. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/tests/serialization/test_flock_serializer.py +0 -0
  614. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/tests/serialization/test_nested_serialization.py +0 -0
  615. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/tests/serialization/test_yaml_serialization.py +0 -0
  616. {flock_core-0.4.0b46 → flock_core-0.4.0b48}/tests/tools/test_zendesk_tools.py +0 -0
@@ -0,0 +1,27 @@
1
+ name: 🪲 Bug Report
2
+ description: File a Bug Report to help us improve
3
+ title: "🪲 [BUG] <title>"
4
+ labels: ["bug"]
5
+ body:
6
+ - type: textarea
7
+ attributes:
8
+ label: Describe the bug
9
+ description: A clear and concise description of what the bug is.
10
+ validations:
11
+ required: true
12
+ - type: textarea
13
+ attributes:
14
+ label: To Reproduce
15
+ description: Describe how to reproduce the bug.
16
+ validations:
17
+ required: true
18
+ - type: textarea
19
+ attributes:
20
+ label: Expected behavior
21
+ description: A clear and concise description of what you expected to happen.
22
+ validations:
23
+ required: true
24
+ - type: textarea
25
+ attributes:
26
+ label: Screenshots/Logs
27
+ description: If applicable, add screenshots and console output to help explain your problem. (You can drag and drop files here).
@@ -0,0 +1,29 @@
1
+ name: 🆕 Feature Request
2
+ description: Suggest an idea for this project
3
+ title: "🆕 [FEATURE] <title>"
4
+ labels: ["enhancement"]
5
+ body:
6
+ - tpye: textarea
7
+ attributes:
8
+ label: Is your feature request related to a problem?
9
+ description: Please describe. A clear and concise description of what the problem is.
10
+ validations:
11
+ required: false
12
+ - type: textarea
13
+ attributes:
14
+ label: Describe the solution you want to see
15
+ description: A clear and concise description of what you want to happen.
16
+ validations:
17
+ required: false
18
+ - type: textarea
19
+ attributes:
20
+ label: Describe alternatives you have considered
21
+ description: A clear and concise description of any alternative solutions or features you have considered.
22
+ validations:
23
+ required: false
24
+ - type: textarea
25
+ attributes:
26
+ label: Additional context
27
+ description: Add any other context or code snipptes about the feature request here.
28
+ validations:
29
+ required: false
@@ -0,0 +1,45 @@
1
+ name: 🔄 Pull Request
2
+ description: Create a Pull Request
3
+ title: "🔄 [PR] <title>"
4
+ labels: [""]
5
+ body:
6
+ - type: textarea
7
+ attributes:
8
+ label: Describe your Pull Request
9
+ description: A clear and concise description of what the Pull Request is about.
10
+ validations:
11
+ required: true
12
+ - type: checkboxes
13
+ attributes:
14
+ label: is there an existing issue for this?
15
+ description: Check to see if there is an issue for this PR (optional)
16
+ options:
17
+ - label: Existing Issue
18
+ required: false
19
+ validations:
20
+ required: false
21
+ - type: textarea
22
+ attributes:
23
+ label: Label of the exisiting Issue (if applicable)
24
+ description: Label/Name of the existing issue, if applicable
25
+ validations:
26
+ required: false
27
+ - type: checkboxes
28
+ attributes:
29
+ label: Please select relevant options:
30
+ description: Please select the options, which best describe this pull request.
31
+ options:
32
+ - label: Bug fix (non-breaking change which fixes an issue)
33
+ - label: New feature (non-breaking change which adds functionality)
34
+ - label: Breaking change (fix or feature that would cause existing functionality to not work as expected)
35
+ validations:
36
+ required: true
37
+ - type: checkboxes
38
+ attributes:
39
+ label: Checklist
40
+ description: Please make sure you have followed these steps
41
+ options:
42
+ - label: My code follows the style guidelines of this project
43
+ - label: I have made corresponding changes to the documentation
44
+ - label: I have added tests that prove my fix is effective or that my feature works
45
+ - label: I have checked my code and corrected any misspellings
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flock-core
3
- Version: 0.4.0b46
3
+ Version: 0.4.0b48
4
4
  Summary: Declarative LLM Orchestration at Scale
5
5
  Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
6
6
  License-File: LICENSE
@@ -8,22 +8,20 @@ Classifier: License :: OSI Approved :: MIT License
8
8
  Classifier: Operating System :: OS Independent
9
9
  Classifier: Programming Language :: Python :: 3
10
10
  Requires-Python: >=3.10
11
- Requires-Dist: azure-search-documents>=11.5.2
12
11
  Requires-Dist: chromadb>=0.6.3
13
12
  Requires-Dist: cloudpickle>=3.1.1
14
13
  Requires-Dist: datasets>=3.2.0
15
14
  Requires-Dist: devtools>=0.12.2
16
- Requires-Dist: dspy==2.6.16
17
- Requires-Dist: duckduckgo-search>=7.3.2
15
+ Requires-Dist: dspy==2.6.23
18
16
  Requires-Dist: fastapi>=0.115.8
19
17
  Requires-Dist: httpx>=0.28.1
20
18
  Requires-Dist: inspect-ai>=0.3.88
21
- Requires-Dist: litellm==1.63.7
19
+ Requires-Dist: litellm==1.69.3
22
20
  Requires-Dist: loguru>=0.7.3
23
21
  Requires-Dist: matplotlib>=3.10.0
24
22
  Requires-Dist: msgpack>=1.1.0
25
- Requires-Dist: nltk>=3.9.1
26
23
  Requires-Dist: notion-client>=2.3.0
24
+ Requires-Dist: openai==1.75.0
27
25
  Requires-Dist: opentelemetry-api>=1.30.0
28
26
  Requires-Dist: opentelemetry-exporter-jaeger-proto-grpc>=1.21.0
29
27
  Requires-Dist: opentelemetry-exporter-jaeger>=1.21.0
@@ -50,13 +48,26 @@ Requires-Dist: toml>=0.10.2
50
48
  Requires-Dist: tqdm>=4.67.1
51
49
  Requires-Dist: uvicorn>=0.34.0
52
50
  Requires-Dist: zep-python>=2.0.2
53
- Provides-Extra: all
54
- Requires-Dist: docling>=2.18.0; extra == 'all'
55
- Requires-Dist: markdownify>=0.14.1; extra == 'all'
56
- Requires-Dist: tavily-python>=0.5.0; extra == 'all'
57
- Provides-Extra: tools
58
- Requires-Dist: markdownify>=0.14.1; extra == 'tools'
59
- Requires-Dist: tavily-python>=0.5.0; extra == 'tools'
51
+ Provides-Extra: all-tools
52
+ Requires-Dist: azure-identity>=1.23.0; extra == 'all-tools'
53
+ Requires-Dist: azure-search-documents>=11.5.2; extra == 'all-tools'
54
+ Requires-Dist: azure-storage-blob>=12.25.1; extra == 'all-tools'
55
+ Requires-Dist: docling>=2.18.0; extra == 'all-tools'
56
+ Requires-Dist: duckduckgo-search>=7.3.2; extra == 'all-tools'
57
+ Requires-Dist: markdownify>=0.14.1; extra == 'all-tools'
58
+ Requires-Dist: nltk>=3.9.1; extra == 'all-tools'
59
+ Requires-Dist: tavily-python>=0.5.0; extra == 'all-tools'
60
+ Provides-Extra: azure-tools
61
+ Requires-Dist: azure-identity>=1.23.0; extra == 'azure-tools'
62
+ Requires-Dist: azure-search-documents>=11.5.2; extra == 'azure-tools'
63
+ Requires-Dist: azure-storage-blob>=12.25.1; extra == 'azure-tools'
64
+ Provides-Extra: basic-tools
65
+ Requires-Dist: docling>=2.18.0; extra == 'basic-tools'
66
+ Requires-Dist: duckduckgo-search>=7.3.2; extra == 'basic-tools'
67
+ Requires-Dist: markdownify>=0.14.1; extra == 'basic-tools'
68
+ Requires-Dist: tavily-python>=0.5.0; extra == 'basic-tools'
69
+ Provides-Extra: llm-tools
70
+ Requires-Dist: nltk>=3.9.1; extra == 'llm-tools'
60
71
  Description-Content-Type: text/markdown
61
72
 
62
73
  <p align="center">
@@ -0,0 +1,42 @@
1
+ # Security Policy
2
+
3
+ ## Supported Versions
4
+
5
+ The following versions of flock are currently actively receiving security updates:
6
+
7
+ | Version | Supported |
8
+ | ------- | ------------------ |
9
+ | 0.4.x | :white_check_mark: |
10
+
11
+ ## Reporting a Vulnerability
12
+
13
+ We take every report of a vulnerability very seriously,
14
+ and actively encourage our community-members to report
15
+ any issues with the Flock framework as soon as possible
16
+ in order to mitigate any potential risks.
17
+
18
+ To report a vulnerability, you have serveral options available:
19
+
20
+ ### 1. Creating a Vulnerability Report (preferred):
21
+
22
+ We prefer to keep our community informed about potential risks,
23
+ and therefore would prefer you open a new [Vulnerability Report](https://github.com/whiteducksoftware/flock/issues/new/choose)
24
+ on our Project Board.
25
+
26
+ This helps keep our community informed about existing risks and allows us to react quickly to a potential
27
+ vulnerability in the Flock framework.
28
+
29
+ ### 2. Contacting the Maintainers:
30
+
31
+ If you prefer to report a vulnerability in private, feel free to contact
32
+ any one of the core maintainers of Flock:
33
+
34
+ - @tilman-sattler
35
+ - @AndreRatzenberger
36
+ - @swolg
37
+
38
+
39
+ ### 3. Official email: (slow)
40
+
41
+ Alternatively, you can report any vulnerability you encounter to info@whiteduck.de.
42
+ Keep in mind however, that this might be slower than Options 1 and 2.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "flock-core"
3
- version = "0.4.0b-46"
3
+ version = "0.4.0b-48"
4
4
  description = "Declarative LLM Orchestration at Scale"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -13,21 +13,18 @@ classifiers = [
13
13
  ]
14
14
  requires-python = ">=3.10"
15
15
  dependencies = [
16
- "azure-search-documents>=11.5.2",
17
16
  "chromadb>=0.6.3",
18
17
  "cloudpickle>=3.1.1",
19
18
  "datasets>=3.2.0",
20
19
  "devtools>=0.12.2",
21
- "dspy==2.6.16",
22
- "duckduckgo-search>=7.3.2",
20
+ "dspy==2.6.23",
23
21
  "fastapi>=0.115.8",
24
22
  "httpx>=0.28.1",
25
23
  "inspect-ai>=0.3.88",
26
- "litellm==1.63.7",
24
+ "litellm==1.69.3",
27
25
  "loguru>=0.7.3",
28
26
  "matplotlib>=3.10.0",
29
27
  "msgpack>=1.1.0",
30
- "nltk>=3.9.1",
31
28
  "notion-client>=2.3.0",
32
29
  "opentelemetry-api>=1.30.0",
33
30
  "opentelemetry-exporter-jaeger>=1.21.0",
@@ -35,6 +32,7 @@ dependencies = [
35
32
  "opentelemetry-exporter-otlp>=1.30.0",
36
33
  "opentelemetry-instrumentation-logging>=0.51b0",
37
34
  "opentelemetry-sdk>=1.30.0",
35
+ "openai==1.75.0",
38
36
  "pandas>=2.2.3",
39
37
  "pillow>=10.4.0",
40
38
  "prometheus-client>=0.21.1",
@@ -58,9 +56,30 @@ dependencies = [
58
56
  ]
59
57
 
60
58
  [project.optional-dependencies]
61
- all = ["docling>=2.18.0", "tavily-python>=0.5.0", "markdownify>=0.14.1"]
62
- tools = ["tavily-python>=0.5.0", "markdownify>=0.14.1"]
63
-
59
+ basic-tools = [
60
+ "docling>=2.18.0",
61
+ "tavily-python>=0.5.0",
62
+ "markdownify>=0.14.1",
63
+ "duckduckgo-search>=7.3.2",
64
+ ]
65
+ azure-tools = [
66
+ "azure-identity>=1.23.0",
67
+ "azure-storage-blob>=12.25.1",
68
+ "azure-search-documents>=11.5.2",
69
+ ]
70
+ llm-tools = [
71
+ "nltk>=3.9.1",
72
+ ]
73
+ all-tools = [
74
+ "docling>=2.18.0",
75
+ "tavily-python>=0.5.0",
76
+ "markdownify>=0.14.1",
77
+ "duckduckgo-search>=7.3.2",
78
+ "azure-identity>=1.23.0",
79
+ "azure-storage-blob>=12.25.1",
80
+ "azure-search-documents>=11.5.2",
81
+ "nltk>=3.9.1",
82
+ ]
64
83
 
65
84
  [dependency-groups]
66
85
  dev = [
@@ -4,6 +4,7 @@
4
4
  from __future__ import annotations # Ensure forward references work
5
5
 
6
6
  import asyncio
7
+ import concurrent.futures # Added import
7
8
  import os
8
9
  import uuid
9
10
  from collections.abc import Callable, Sequence
@@ -115,6 +116,19 @@ class Flock(BaseModel, Serializable):
115
116
  default=True,
116
117
  description="If True (default) and enable_temporal=True, start a temporary in-process worker for development/testing convenience. Set to False when using dedicated workers.",
117
118
  )
119
+
120
+ benchmark_agent_name: str | None = Field(
121
+ default=None,
122
+ description="The name of the agent to use for the benchmark.",
123
+ )
124
+ benchmark_eval_field: str | None = Field(
125
+ default=None,
126
+ description="The output field to use for the benchmark.",
127
+ )
128
+ benchmark_input_field: str | None = Field(
129
+ default=None,
130
+ description="The input field to use for the benchmark.",
131
+ )
118
132
  # Internal agent storage - not part of the Pydantic model for direct serialization
119
133
  # Marked with underscore to indicate it's managed internally and accessed via property
120
134
  _agents: dict[str, FlockAgent]
@@ -190,6 +204,8 @@ class Flock(BaseModel, Serializable):
190
204
  # Ensure session ID exists in baggage
191
205
  self._ensure_session_id()
192
206
 
207
+ FlockRegistry.discover_and_register_components()
208
+
193
209
  logger.info(
194
210
  "Flock instance initialized",
195
211
  name=self.name,
@@ -197,6 +213,46 @@ class Flock(BaseModel, Serializable):
197
213
  enable_temporal=self.enable_temporal,
198
214
  )
199
215
 
216
+ def prepare_benchmark(self, agent: FlockAgent | str | None = None, input_field: str | None = None, eval_field: str | None = None):
217
+ """Prepare a benchmark for the Flock instance."""
218
+ from flock.core.flock_agent import FlockAgent as ConcreteFlockAgent
219
+
220
+ logger.info(f"Preparing benchmark for Flock instance '{self.name}' with agent '{agent}'.")
221
+
222
+ name = agent.name if isinstance(agent, ConcreteFlockAgent) else agent
223
+
224
+ if self._agents.get(name) is None:
225
+ raise ValueError(f"Agent '{name}' not found in Flock instance '{self.name}'.")
226
+
227
+ self.benchmark_agent_name = name
228
+ self.benchmark_eval_field = eval_field
229
+ self.benchmark_input_field = input_field
230
+
231
+
232
+
233
+ def inspect(self):
234
+ """Inspect the Flock instance."""
235
+ logger.info(f"Inspecting Flock instance '{self.name}' with start agent '{self.benchmark_agent_name}' and input '{input}'.")
236
+
237
+ async def run(input: dict[str, Any])-> dict[str, Any]:
238
+ """Inspect the Flock instance."""
239
+ logger.info(f"Inspecting Flock instance '{self.name}' with start agent '{self.benchmark_agent_name}' and input '{input}'.")
240
+ msg_content = input.get("messages")[0].get("content")
241
+
242
+ agent_input = {
243
+ self.benchmark_input_field: msg_content
244
+ }
245
+
246
+ result = await self.run_async(start_agent=self.benchmark_agent_name, input=agent_input, box_result=False)
247
+
248
+ agent_output = result.get(self.benchmark_eval_field, "No answer found")
249
+
250
+ return {
251
+ "output": agent_output,
252
+ }
253
+
254
+ return run
255
+
200
256
  def _configure_logging(self, enable_logging_config: bool | list[str]):
201
257
  """Configure logging levels based on the enable_logging flag."""
202
258
  is_enabled_globally = False
@@ -302,45 +358,37 @@ class Flock(BaseModel, Serializable):
302
358
  agents: list[FlockAgent] | None = None,
303
359
  ) -> Box | dict:
304
360
  """Entry point for running an agent system synchronously."""
361
+ # Prepare the coroutine that needs to be run
362
+ coro = self.run_async(
363
+ start_agent=start_agent,
364
+ input=input,
365
+ context=context,
366
+ run_id=run_id,
367
+ box_result=box_result, # run_async handles boxing
368
+ agents=agents,
369
+ )
370
+
305
371
  try:
372
+ # Check if an event loop is already running in the current thread
306
373
  loop = asyncio.get_running_loop()
307
- if loop.is_closed():
308
- raise RuntimeError("Event loop is closed")
309
- except RuntimeError: # No running loop
310
- loop = asyncio.new_event_loop()
311
- asyncio.set_event_loop(loop)
312
-
313
- # Ensure the loop runs the task and handles closure if we created it
314
- if asyncio.get_event_loop() is loop and not loop.is_running():
315
- result = loop.run_until_complete(
316
- self.run_async(
317
- start_agent=start_agent,
318
- input=input,
319
- context=context,
320
- run_id=run_id,
321
- box_result=box_result,
322
- agents=agents,
323
- )
324
- )
325
- return result
374
+ except RuntimeError:
375
+ # No event loop is running in the current thread.
376
+ # We can safely use asyncio.run() to create a new loop,
377
+ # run the coroutine, and close the loop.
378
+ return asyncio.run(coro)
326
379
  else:
327
- # If called from an already running loop (e.g. Jupyter, FastAPI endpoint)
328
- # Create a future and run it to completion. This is tricky and
329
- # ideally, one should use `await self.run_async` directly in async contexts.
330
- # This simple run_until_complete on a future might block the existing loop.
331
- # For truly non-blocking execution in an existing loop, one might need
332
- # to schedule the coroutine differently or advise users to use `await`.
333
- future = asyncio.ensure_future(
334
- self.run_async(
335
- start_agent=start_agent,
336
- input=input,
337
- context=context,
338
- run_id=run_id,
339
- box_result=box_result,
340
- agents=agents,
341
- )
380
+ # An event loop is already running in the current thread.
381
+ # Calling loop.run_until_complete() or asyncio.run() here would raise an error.
382
+ # To run the async code and wait for its result synchronously,
383
+ # we execute it in a separate thread with its own event loop.
384
+ logger.debug(
385
+ "Flock.run called in a context with an existing event loop. "
386
+ "Running async task in a separate thread to avoid event loop conflict."
342
387
  )
343
- return loop.run_until_complete(future)
388
+ with concurrent.futures.ThreadPoolExecutor(max_workers=1) as executor:
389
+ future = executor.submit(asyncio.run, coro)
390
+ # Block and wait for the result from the other thread
391
+ return future.result()
344
392
 
345
393
 
346
394
  async def run_async(
@@ -555,14 +603,6 @@ class Flock(BaseModel, Serializable):
555
603
  delimiter: str = ",",
556
604
  ) -> list[Box | dict | None | Exception]:
557
605
  """Synchronous wrapper for run_batch_async."""
558
- try:
559
- loop = asyncio.get_running_loop()
560
- if loop.is_closed():
561
- raise RuntimeError("Event loop is closed")
562
- except RuntimeError: # No running loop
563
- loop = asyncio.new_event_loop()
564
- asyncio.set_event_loop(loop)
565
-
566
606
  coro = self.run_batch_async(
567
607
  start_agent=start_agent,
568
608
  batch_inputs=batch_inputs,
@@ -579,12 +619,18 @@ class Flock(BaseModel, Serializable):
579
619
  delimiter=delimiter,
580
620
  )
581
621
 
582
- if asyncio.get_event_loop() is loop and not loop.is_running():
583
- results = loop.run_until_complete(coro)
584
- return results
622
+ try:
623
+ loop = asyncio.get_running_loop()
624
+ except RuntimeError:
625
+ return asyncio.run(coro)
585
626
  else:
586
- future = asyncio.ensure_future(coro)
587
- return loop.run_until_complete(future)
627
+ logger.debug(
628
+ "Flock.run_batch called in a context with an existing event loop. "
629
+ "Running async task in a separate thread."
630
+ )
631
+ with concurrent.futures.ThreadPoolExecutor(max_workers=1) as executor:
632
+ future = executor.submit(asyncio.run, coro)
633
+ return future.result()
588
634
 
589
635
  # --- Evaluation (Delegation) ---
590
636
  async def evaluate_async(
@@ -659,14 +705,6 @@ class Flock(BaseModel, Serializable):
659
705
  metadata_columns: list[str] | None = None,
660
706
  ) -> DataFrame | list[dict[str, Any]]: # type: ignore
661
707
  """Synchronous wrapper for evaluate_async."""
662
- try:
663
- loop = asyncio.get_running_loop()
664
- if loop.is_closed():
665
- raise RuntimeError("Event loop is closed")
666
- except RuntimeError: # No running loop
667
- loop = asyncio.new_event_loop()
668
- asyncio.set_event_loop(loop)
669
-
670
708
  coro = self.evaluate_async(
671
709
  dataset=dataset,
672
710
  start_agent=start_agent,
@@ -685,12 +723,18 @@ class Flock(BaseModel, Serializable):
685
723
  metadata_columns=metadata_columns,
686
724
  )
687
725
 
688
- if asyncio.get_event_loop() is loop and not loop.is_running():
689
- results = loop.run_until_complete(coro)
690
- return results
726
+ try:
727
+ loop = asyncio.get_running_loop()
728
+ except RuntimeError:
729
+ return asyncio.run(coro)
691
730
  else:
692
- future = asyncio.ensure_future(coro)
693
- return loop.run_until_complete(future)
731
+ logger.debug(
732
+ "Flock.evaluate called in a context with an existing event loop. "
733
+ "Running async task in a separate thread."
734
+ )
735
+ with concurrent.futures.ThreadPoolExecutor(max_workers=1) as executor:
736
+ future = executor.submit(asyncio.run, coro)
737
+ return future.result()
694
738
 
695
739
  # --- Server & CLI Starters (Delegation) ---
696
740
  def start_api(
@@ -8,6 +8,8 @@ from __future__ import annotations # Add this at the very top
8
8
  import builtins
9
9
  import importlib
10
10
  import inspect
11
+ import os
12
+ import pkgutil
11
13
  import sys
12
14
  from collections.abc import Callable, Mapping, Sequence
13
15
  from dataclasses import is_dataclass
@@ -614,45 +616,50 @@ def flock_type(cls: ClassType | None = None, *, name: str | None = None) -> Any:
614
616
 
615
617
 
616
618
  # --- Auto-register known core components and tools ---
617
- def _auto_register_by_path():
618
- components_to_register = [
619
- (
620
- "flock.evaluators.declarative.declarative_evaluator",
621
- "DeclarativeEvaluator",
622
- ),
623
- ("flock.evaluators.memory.memory_evaluator", "MemoryEvaluator"),
624
- ("flock.modules.output.output_module", "OutputModule"),
625
- ("flock.modules.performance.metrics_module", "MetricsModule"),
626
- ("flock.modules.memory.memory_module", "MemoryModule"),
627
- # ("flock.modules.hierarchical.module", "HierarchicalMemoryModule"), # Uncomment if exists
628
- ("flock.routers.default.default_router", "DefaultRouter"),
629
- ("flock.routers.llm.llm_router", "LLMRouter"),
630
- ("flock.routers.agent.agent_router", "AgentRouter"),
619
+ def _auto_register_by_path(self):
620
+ # List of base packages to scan for components and tools
621
+ packages_to_scan = [
622
+ "flock.tools",
623
+ "flock.evaluators",
624
+ "flock.modules",
625
+ "flock.routers",
631
626
  ]
632
- for module_path, class_name in components_to_register:
633
- try:
634
- module = importlib.import_module(module_path)
635
- component_class = getattr(module, class_name)
636
- _registry_instance.register_component(component_class)
637
- except (ImportError, AttributeError) as e:
638
- logger.warning(f"{class_name} not found for auto-registration: {e}")
639
-
640
- # Auto-register standard tools by scanning modules
641
- tool_modules = [
642
- "flock.core.tools.basic_tools",
643
- "flock.core.tools.azure_tools",
644
- "flock.core.tools.dev_tools.github",
645
- "flock.core.tools.llm_tools",
646
- "flock.core.tools.markdown_tools",
647
- ]
648
- for module_path in tool_modules:
649
- try:
650
- _registry_instance.register_module_components(module_path)
651
- except ImportError as e:
652
- logger.warning(
653
- f"Could not auto-register tools from {module_path}: {e}"
654
- )
655
627
 
628
+ for package_name in packages_to_scan:
629
+ try:
630
+ package_spec = importlib.util.find_spec(package_name)
631
+ if package_spec and package_spec.origin:
632
+ package_path_list = [os.path.dirname(package_spec.origin)]
633
+ logger.info(f"Recursively scanning for modules in package: {package_name} (path: {package_path_list[0]})")
634
+
635
+ # Use walk_packages to recursively find all modules
636
+ for module_loader, module_name, is_pkg in pkgutil.walk_packages(
637
+ path=package_path_list,
638
+ prefix=package_name + ".", # Ensures module_name is fully qualified
639
+ onerror=lambda name: logger.warning(f"Error importing module {name} during scan.")
640
+ ):
641
+ if not is_pkg and not module_name.split('.')[-1].startswith("_"):
642
+ # We are interested in actual modules, not sub-packages themselves for registration
643
+ # And also skip modules starting with underscore (e.g. __main__.py)
644
+ try:
645
+ logger.debug(f"Attempting to auto-register components from module: {module_name}")
646
+ _registry_instance.register_module_components(module_name)
647
+ except ImportError as e:
648
+ logger.warning(
649
+ f"Could not auto-register from {module_name}: Module not found or import error: {e}"
650
+ )
651
+ except Exception as e: # Catch other potential errors during registration
652
+ logger.error(
653
+ f"Unexpected error during auto-registration of {module_name}: {e}",
654
+ exc_info=True
655
+ )
656
+ else:
657
+ logger.warning(f"Could not find package spec for '{package_name}' to auto-register components/tools.")
658
+ except Exception as e:
659
+ logger.error(f"Error while trying to dynamically register from '{package_name}': {e}", exc_info=True)
656
660
 
657
661
  # Bootstrapping the registry
658
- # _auto_register_by_path()
662
+ # _auto_register_by_path() # Commented out or removed
663
+
664
+ # Make the registration function public and rename it
665
+ FlockRegistry.discover_and_register_components = _auto_register_by_path
@@ -185,6 +185,9 @@ if __name__ == "__main__":
185
185
  # 'Arbitrarily complex structure')
186
186
 
187
187
  SAMPLE_17 = "münze: str | Deutsche Münzbezeichnung, engl. 'coin'"
188
+
189
+
190
+ SAMPLE_18 = "ticket_info : str, reasoning : str, search_queries : list[str], relevant_documents: dict[str, float] | dict of pdf_ids as keys and scores as values"
188
191
  # ➜ [('münze', 'str', "Deutsche Münzbezeichnung, engl. 'coin'")]
189
192
 
190
193
  for title, spec in [
@@ -205,6 +208,7 @@ if __name__ == "__main__":
205
208
  ("Sample-15", SAMPLE_15),
206
209
  ("Sample-16", SAMPLE_16),
207
210
  ("Sample-17", SAMPLE_17),
211
+ ("Sample-18", SAMPLE_18),
208
212
  ]:
209
213
  print(f"\n{title}")
210
214
  for row in parse_schema(spec):
@@ -0,0 +1 @@
1
+ # Package for modules
@@ -0,0 +1 @@
1
+ # Package for modules
@@ -0,0 +1 @@
1
+ # Package for modules
@@ -0,0 +1 @@
1
+ # Package for modules
@@ -0,0 +1 @@
1
+ # Package for modules
@@ -0,0 +1 @@
1
+ # Package for modules
@@ -0,0 +1 @@
1
+ # Package for modules
@@ -0,0 +1 @@
1
+ # Package for modules
@@ -0,0 +1 @@
1
+ # Package for modules