flock-core 0.4.0b23__tar.gz → 0.4.0b25__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 (528) hide show
  1. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/PKG-INFO +1 -1
  2. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/pyproject.toml +1 -1
  3. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/flock.py +28 -7
  4. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/flock_agent.py +159 -5
  5. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/flock_factory.py +7 -5
  6. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/flock_registry.py +63 -15
  7. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/evaluators/declarative/declarative_evaluator.py +2 -0
  8. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/evaluators/memory/memory_evaluator.py +2 -0
  9. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/evaluators/test/test_case_evaluator.py +2 -0
  10. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/evaluators/zep/zep_evaluator.py +2 -0
  11. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/modules/assertion/assertion_module.py +1 -1
  12. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/modules/callback/callback_module.py +2 -0
  13. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/modules/memory/memory_module.py +2 -0
  14. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/modules/output/output_module.py +2 -0
  15. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/modules/performance/metrics_module.py +2 -0
  16. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/modules/zep/zep_module.py +2 -0
  17. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/routers/agent/agent_router.py +2 -0
  18. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/routers/conditional/conditional_router.py +1 -1
  19. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/routers/default/default_router.py +2 -0
  20. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/routers/feedback/feedback_router.py +1 -1
  21. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/routers/list_generator/list_generator_router.py +1 -1
  22. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/routers/llm/llm_router.py +2 -0
  23. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/tests/core/test_flock_core.py +30 -27
  24. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/tests/serialization/test_file_path_serialization.py +1 -1
  25. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/uv.lock +1 -1
  26. flock_core-0.4.0b23/src/flock/evaluators/memory/azure_search_evaluator.py +0 -0
  27. flock_core-0.4.0b23/src/flock/evaluators/natural_language/natural_language_evaluator.py +0 -66
  28. flock_core-0.4.0b23/src/flock/modules/azure-search/azure_search_module.py +0 -0
  29. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/.devcontainer/devcontainer.json +0 -0
  30. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/.env_template +0 -0
  31. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  32. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  33. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  34. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/.github/workflows/.gitkeep +0 -0
  35. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/.github/workflows/deploy-documentation.yml +0 -0
  36. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
  37. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/.gitignore +0 -0
  38. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/.vscode/launch.json +0 -0
  39. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/.vscode/settings.json +0 -0
  40. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/.vscode/tasks.json +0 -0
  41. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/LICENSE +0 -0
  42. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/README.md +0 -0
  43. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/about/changelog.md +0 -0
  44. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/about/contributing.md +0 -0
  45. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/drawio/architecture.drawio +0 -0
  46. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/cli_outputs/out.png +0 -0
  47. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/components_chart.png +0 -0
  48. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/examples/01_01.png +0 -0
  49. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/examples/01_02.png +0 -0
  50. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/examples/01_03.png +0 -0
  51. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/examples/01_04.png +0 -0
  52. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/examples/01_05.png +0 -0
  53. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/examples/01_06.png +0 -0
  54. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/flock.png +0 -0
  55. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/flock_cli.png +0 -0
  56. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/flow_chart.png +0 -0
  57. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/getting-started/first_agent_00.png +0 -0
  58. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/hummingbird.png +0 -0
  59. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/icon.png +0 -0
  60. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/icon.png~ +0 -0
  61. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/logo.png +0 -0
  62. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/memory_concepts.png +0 -0
  63. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/memory_flow.png +0 -0
  64. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/assets/images/memory_flow_chart.png +0 -0
  65. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/components/evaluators.md +0 -0
  66. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/components/index.md +0 -0
  67. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/components/modules.md +0 -0
  68. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/components/tools.md +0 -0
  69. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/core-concepts/agents.md +0 -0
  70. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/core-concepts/declarative.md +0 -0
  71. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/core-concepts/index.md +0 -0
  72. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/core-concepts/workflows.md +0 -0
  73. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/create_doc_boilerplate.py +0 -0
  74. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/deployment/index.md +0 -0
  75. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/deployment/temporal.md +0 -0
  76. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/getting-started/configuration.md +0 -0
  77. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/getting-started/index.md +0 -0
  78. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/getting-started/installation.md +0 -0
  79. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/getting-started/quickstart.md +0 -0
  80. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/guides/chaining-agents.md +0 -0
  81. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/guides/index.md +0 -0
  82. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/index.md +0 -0
  83. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/interacting-with-flock/cli-tool.md +0 -0
  84. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/interacting-with-flock/index.md +0 -0
  85. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/interacting-with-flock/interactive-cli.md +0 -0
  86. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/interacting-with-flock/programmatic.md +0 -0
  87. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/interacting-with-flock/rest-api.md +0 -0
  88. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/interacting-with-flock/web-ui.md +0 -0
  89. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/reference/flock_agent.md +0 -0
  90. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/reference/index.md +0 -0
  91. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/release-notes/magpie.md +0 -0
  92. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/docs/stylesheets/extra.css +0 -0
  93. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/mkdocs.yml +0 -0
  94. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/requirements.txt +0 -0
  95. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/scripts/code_collector.py +0 -0
  96. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/scripts/create_docs.py +0 -0
  97. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/__init__.py +0 -0
  98. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/assets/release_notes.md +0 -0
  99. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/config.py +0 -0
  100. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/constants.py +0 -0
  101. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/create_agent.py +0 -0
  102. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/create_flock.py +0 -0
  103. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/execute_flock.py +0 -0
  104. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/load_agent.py +0 -0
  105. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/load_examples.py +0 -0
  106. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/load_flock.py +0 -0
  107. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/load_release_notes.py +0 -0
  108. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/loaded_flock_cli.py +0 -0
  109. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/manage_agents.py +0 -0
  110. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/registry_management.py +0 -0
  111. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/runner.py +0 -0
  112. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/settings.py +0 -0
  113. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/utils.py +0 -0
  114. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/view_results.py +0 -0
  115. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/cli/yaml_editor.py +0 -0
  116. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/config.py +0 -0
  117. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/__init__.py +0 -0
  118. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/api/__init__.py +0 -0
  119. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/api/endpoints.py +0 -0
  120. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/api/main.py +0 -0
  121. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/api/models.py +0 -0
  122. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/api/run_store.py +0 -0
  123. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/api/runner.py +0 -0
  124. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/api/ui/__init__.py +0 -0
  125. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/api/ui/routes.py +0 -0
  126. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/api/ui/utils.py +0 -0
  127. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/context/context.py +0 -0
  128. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/context/context_manager.py +0 -0
  129. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/context/context_vars.py +0 -0
  130. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/evaluation/utils.py +0 -0
  131. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/execution/batch_executor.py +0 -0
  132. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/execution/evaluation_executor.py +0 -0
  133. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/execution/local_executor.py +0 -0
  134. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/execution/temporal_executor.py +0 -0
  135. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/flock_evaluator.py +0 -0
  136. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/flock_module.py +0 -0
  137. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/flock_router.py +0 -0
  138. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/interpreter/python_interpreter.py +0 -0
  139. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/logging/__init__.py +0 -0
  140. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/logging/formatters/enum_builder.py +0 -0
  141. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/logging/formatters/theme_builder.py +0 -0
  142. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
  143. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/logging/formatters/themes.py +0 -0
  144. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/logging/logging.py +0 -0
  145. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
  146. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/logging/telemetry.py +0 -0
  147. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
  148. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
  149. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
  150. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/logging/trace_and_logged.py +0 -0
  151. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/mixin/dspy_integration.py +0 -0
  152. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/mixin/prompt_parser.py +0 -0
  153. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/serialization/__init__.py +0 -0
  154. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/serialization/callable_registry.py +0 -0
  155. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/serialization/flock_serializer.py +0 -0
  156. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/serialization/json_encoder.py +0 -0
  157. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/serialization/secure_serializer.py +0 -0
  158. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/serialization/serializable.py +0 -0
  159. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/serialization/serialization_utils.py +0 -0
  160. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/tools/azure_tools.py +0 -0
  161. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/tools/basic_tools.py +0 -0
  162. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/tools/dev_tools/github.py +0 -0
  163. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/tools/llm_tools.py +0 -0
  164. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/tools/markdown_tools.py +0 -0
  165. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/tools/zendesk_tools.py +0 -0
  166. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/util/cli_helper.py +0 -0
  167. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/util/file_path_utils.py +0 -0
  168. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/util/hydrator.py +0 -0
  169. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/util/input_resolver.py +0 -0
  170. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/core/util/loader.py +0 -0
  171. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/modules/memory/memory_parser.py +0 -0
  172. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/modules/memory/memory_storage.py +0 -0
  173. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/platform/docker_tools.py +0 -0
  174. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/platform/jaeger_install.py +0 -0
  175. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/routers/__init__.py +0 -0
  176. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/routers/agent/__init__.py +0 -0
  177. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/routers/agent/handoff_agent.py +0 -0
  178. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/routers/default/__init__.py +0 -0
  179. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/routers/llm/__init__.py +0 -0
  180. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/3024-day.toml +0 -0
  181. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/3024-night.toml +0 -0
  182. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/aardvark-blue.toml +0 -0
  183. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/abernathy.toml +0 -0
  184. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/adventure.toml +0 -0
  185. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/adventuretime.toml +0 -0
  186. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/afterglow.toml +0 -0
  187. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/alabaster.toml +0 -0
  188. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/alienblood.toml +0 -0
  189. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/andromeda.toml +0 -0
  190. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/apple-classic.toml +0 -0
  191. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/apple-system-colors.toml +0 -0
  192. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/arcoiris.toml +0 -0
  193. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/argonaut copy.toml +0 -0
  194. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/argonaut.toml +0 -0
  195. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/arthur.toml +0 -0
  196. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/ateliersulphurpool.toml +0 -0
  197. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/atom.toml +0 -0
  198. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/atom_test.toml +0 -0
  199. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/atomonelight.toml +0 -0
  200. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/aurora.toml +0 -0
  201. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/ayu copy.toml +0 -0
  202. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/ayu-light.toml +0 -0
  203. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/ayu-mirage.toml +0 -0
  204. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/ayu.toml +0 -0
  205. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/banana-blueberry.toml +0 -0
  206. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/batman.toml +0 -0
  207. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/belafonte-day.toml +0 -0
  208. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/belafonte-night.toml +0 -0
  209. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/birdsofparadise.toml +0 -0
  210. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/blazer.toml +0 -0
  211. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/blue-matrix.toml +0 -0
  212. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/blueberrypie.toml +0 -0
  213. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/bluedolphin.toml +0 -0
  214. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/blulocodark.toml +0 -0
  215. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/blulocolight.toml +0 -0
  216. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/borland.toml +0 -0
  217. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/breeze.toml +0 -0
  218. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/bright-lights.toml +0 -0
  219. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/broadcast.toml +0 -0
  220. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/brogrammer.toml +0 -0
  221. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/builtin-dark.toml +0 -0
  222. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/builtin-light.toml +0 -0
  223. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/builtin-pastel-dark.toml +0 -0
  224. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/builtin-solarized-dark.toml +0 -0
  225. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/builtin-solarized-light.toml +0 -0
  226. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/builtin-tango-dark.toml +0 -0
  227. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/builtin-tango-light.toml +0 -0
  228. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/c64.toml +0 -0
  229. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/calamity.toml +0 -0
  230. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/catppuccin-frappe.toml +0 -0
  231. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/catppuccin-latte.toml +0 -0
  232. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/catppuccin-macchiato.toml +0 -0
  233. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/catppuccin-mocha.toml +0 -0
  234. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/cga.toml +0 -0
  235. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/chalk.toml +0 -0
  236. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/chalkboard.toml +0 -0
  237. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/challengerdeep.toml +0 -0
  238. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/chester.toml +0 -0
  239. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/ciapre.toml +0 -0
  240. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/clrs.toml +0 -0
  241. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/cobalt-neon.toml +0 -0
  242. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/cobalt2.toml +0 -0
  243. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/coffee-theme.toml +0 -0
  244. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/crayonponyfish.toml +0 -0
  245. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/cutiepro.toml +0 -0
  246. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/cyberdyne.toml +0 -0
  247. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/cyberpunk.toml +0 -0
  248. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
  249. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/dark+.toml +0 -0
  250. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/dark-pastel.toml +0 -0
  251. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/darkermatrix.toml +0 -0
  252. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/darkmatrix.toml +0 -0
  253. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/darkside.toml +0 -0
  254. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/dayfox.toml +0 -0
  255. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/deep.toml +0 -0
  256. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/desert.toml +0 -0
  257. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/dimidium.toml +0 -0
  258. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/dimmedmonokai.toml +0 -0
  259. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/django.toml +0 -0
  260. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/djangorebornagain.toml +0 -0
  261. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/djangosmooth.toml +0 -0
  262. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/doom-peacock.toml +0 -0
  263. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/doomone.toml +0 -0
  264. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/dotgov.toml +0 -0
  265. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/dracula+.toml +0 -0
  266. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/dracula.toml +0 -0
  267. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/duckbones.toml +0 -0
  268. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/duotone-dark.toml +0 -0
  269. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/earthsong.toml +0 -0
  270. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/elemental.toml +0 -0
  271. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/elementary.toml +0 -0
  272. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/encom.toml +0 -0
  273. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/espresso-libre.toml +0 -0
  274. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/espresso.toml +0 -0
  275. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/everblush.toml +0 -0
  276. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/fahrenheit.toml +0 -0
  277. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/fairyfloss.toml +0 -0
  278. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/farmhouse-dark.toml +0 -0
  279. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/farmhouse-light.toml +0 -0
  280. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/fideloper.toml +0 -0
  281. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/firefly-traditional.toml +0 -0
  282. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/firefoxdev.toml +0 -0
  283. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/firewatch.toml +0 -0
  284. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/fishtank.toml +0 -0
  285. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/flat.toml +0 -0
  286. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/flatland.toml +0 -0
  287. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/flexoki-dark.toml +0 -0
  288. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/flexoki-light.toml +0 -0
  289. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/floraverse.toml +0 -0
  290. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/forestblue.toml +0 -0
  291. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/framer.toml +0 -0
  292. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/frontenddelight.toml +0 -0
  293. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/funforrest.toml +0 -0
  294. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/galaxy.toml +0 -0
  295. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/galizur.toml +0 -0
  296. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/github-dark.toml +0 -0
  297. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/github.toml +0 -0
  298. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/glacier.toml +0 -0
  299. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/grape.toml +0 -0
  300. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/grass.toml +0 -0
  301. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/grey-green.toml +0 -0
  302. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/gruber-darker.toml +0 -0
  303. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/gruvboxdark.toml +0 -0
  304. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/gruvboxdarkhard.toml +0 -0
  305. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/gruvboxlight.toml +0 -0
  306. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/guezwhoz.toml +0 -0
  307. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/hacktober.toml +0 -0
  308. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/hardcore.toml +0 -0
  309. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/harper.toml +0 -0
  310. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/hax0r-blue.toml +0 -0
  311. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/hax0r-gr33n.toml +0 -0
  312. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/hax0r-r3d.toml +0 -0
  313. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/highway.toml +0 -0
  314. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/hipster-green.toml +0 -0
  315. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/hivacruz.toml +0 -0
  316. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/homebrew.toml +0 -0
  317. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/hopscotch.256.toml +0 -0
  318. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/hopscotch.toml +0 -0
  319. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/hurtado.toml +0 -0
  320. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/hybrid.toml +0 -0
  321. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/ic-green-ppl.toml +0 -0
  322. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/ic-orange-ppl.toml +0 -0
  323. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/iceberg-dark.toml +0 -0
  324. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/iceberg-light.toml +0 -0
  325. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/idea.toml +0 -0
  326. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/idletoes.toml +0 -0
  327. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/ir-black.toml +0 -0
  328. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/iterm2-dark-background.toml +0 -0
  329. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/iterm2-default.toml +0 -0
  330. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/iterm2-light-background.toml +0 -0
  331. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
  332. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/iterm2-smoooooth.toml +0 -0
  333. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
  334. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/iterm2-solarized-light.toml +0 -0
  335. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/iterm2-tango-dark.toml +0 -0
  336. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/iterm2-tango-light.toml +0 -0
  337. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/jackie-brown.toml +0 -0
  338. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/japanesque.toml +0 -0
  339. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/jellybeans.toml +0 -0
  340. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/jetbrains-darcula.toml +0 -0
  341. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/jubi.toml +0 -0
  342. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/kanagawabones.toml +0 -0
  343. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/kibble.toml +0 -0
  344. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/kolorit.toml +0 -0
  345. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/konsolas.toml +0 -0
  346. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/kurokula.toml +0 -0
  347. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/lab-fox.toml +0 -0
  348. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/laser.toml +0 -0
  349. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/later-this-evening.toml +0 -0
  350. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/lavandula.toml +0 -0
  351. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/liquidcarbon.toml +0 -0
  352. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/liquidcarbontransparent.toml +0 -0
  353. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
  354. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/lovelace.toml +0 -0
  355. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/man-page.toml +0 -0
  356. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/mariana.toml +0 -0
  357. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/material.toml +0 -0
  358. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/materialdark.toml +0 -0
  359. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/materialdarker.toml +0 -0
  360. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/materialdesigncolors.toml +0 -0
  361. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/materialocean.toml +0 -0
  362. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/mathias.toml +0 -0
  363. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/matrix.toml +0 -0
  364. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/medallion.toml +0 -0
  365. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/mellifluous.toml +0 -0
  366. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/midnight-in-mojave.toml +0 -0
  367. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/mirage.toml +0 -0
  368. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/misterioso.toml +0 -0
  369. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/molokai.toml +0 -0
  370. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/monalisa.toml +0 -0
  371. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/monokai-remastered.toml +0 -0
  372. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/monokai-soda.toml +0 -0
  373. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/monokai-vivid.toml +0 -0
  374. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/n0tch2k.toml +0 -0
  375. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/neobones-dark.toml +0 -0
  376. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/neobones-light.toml +0 -0
  377. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/neon.toml +0 -0
  378. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/neopolitan.toml +0 -0
  379. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/neutron.toml +0 -0
  380. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/night-owlish-light.toml +0 -0
  381. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/nightfox.toml +0 -0
  382. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/nightlion-v1.toml +0 -0
  383. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/nightlion-v2.toml +0 -0
  384. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/niji.toml +0 -0
  385. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/nocturnal-winter.toml +0 -0
  386. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/nord-light.toml +0 -0
  387. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/nord.toml +0 -0
  388. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/novel.toml +0 -0
  389. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/nvimdark.toml +0 -0
  390. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/nvimlight.toml +0 -0
  391. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/obsidian.toml +0 -0
  392. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/ocean.toml +0 -0
  393. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/oceanic-next.toml +0 -0
  394. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/oceanicmaterial.toml +0 -0
  395. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/ollie.toml +0 -0
  396. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/onehalfdark.toml +0 -0
  397. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/onehalflight.toml +0 -0
  398. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/operator-mono-dark.toml +0 -0
  399. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/overnight-slumber.toml +0 -0
  400. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/oxocarbon.toml +0 -0
  401. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/palenighthc.toml +0 -0
  402. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/pandora.toml +0 -0
  403. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/paraiso-dark.toml +0 -0
  404. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/paulmillr.toml +0 -0
  405. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/pencildark.toml +0 -0
  406. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/pencillight.toml +0 -0
  407. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/peppermint.toml +0 -0
  408. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/piatto-light.toml +0 -0
  409. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/pnevma.toml +0 -0
  410. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/popping-and-locking.toml +0 -0
  411. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/primary.toml +0 -0
  412. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/pro-light.toml +0 -0
  413. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/pro.toml +0 -0
  414. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/purple-rain.toml +0 -0
  415. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/purplepeter.toml +0 -0
  416. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/rapture.toml +0 -0
  417. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/raycast-dark.toml +0 -0
  418. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/raycast-light.toml +0 -0
  419. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/rebecca.toml +0 -0
  420. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/red-alert.toml +0 -0
  421. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/red-planet.toml +0 -0
  422. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/red-sands.toml +0 -0
  423. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/relaxed.toml +0 -0
  424. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/retro.toml +0 -0
  425. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/rippedcasts.toml +0 -0
  426. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/rose-pine-dawn.toml +0 -0
  427. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/rose-pine-moon.toml +0 -0
  428. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/rose-pine.toml +0 -0
  429. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/rouge-2.toml +0 -0
  430. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/royal.toml +0 -0
  431. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/ryuuko.toml +0 -0
  432. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/sakura.toml +0 -0
  433. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/scarlet-protocol.toml +0 -0
  434. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/seafoam-pastel.toml +0 -0
  435. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/seashells.toml +0 -0
  436. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/seoulbones-dark.toml +0 -0
  437. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/seoulbones-light.toml +0 -0
  438. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/seti.toml +0 -0
  439. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/shades-of-purple.toml +0 -0
  440. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/shaman.toml +0 -0
  441. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/slate.toml +0 -0
  442. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/sleepyhollow.toml +0 -0
  443. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/smyck.toml +0 -0
  444. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/snazzy.toml +0 -0
  445. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/softserver.toml +0 -0
  446. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/solarized-darcula.toml +0 -0
  447. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/solarized-dark---patched.toml +0 -0
  448. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
  449. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/spacedust.toml +0 -0
  450. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
  451. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/spacegray-eighties.toml +0 -0
  452. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/spacegray.toml +0 -0
  453. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/spiderman.toml +0 -0
  454. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/spring.toml +0 -0
  455. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/square.toml +0 -0
  456. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/sublette.toml +0 -0
  457. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/subliminal.toml +0 -0
  458. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/sugarplum.toml +0 -0
  459. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/sundried.toml +0 -0
  460. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/symfonic.toml +0 -0
  461. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/synthwave-everything.toml +0 -0
  462. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/synthwave.toml +0 -0
  463. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/synthwavealpha.toml +0 -0
  464. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/tango-adapted.toml +0 -0
  465. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/tango-half-adapted.toml +0 -0
  466. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/teerb.toml +0 -0
  467. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/terafox.toml +0 -0
  468. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/terminal-basic.toml +0 -0
  469. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/thayer-bright.toml +0 -0
  470. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/the-hulk.toml +0 -0
  471. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/tinacious-design-(dark).toml +0 -0
  472. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/tinacious-design-(light).toml +0 -0
  473. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/tokyonight-day.toml +0 -0
  474. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/tokyonight-storm.toml +0 -0
  475. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/tokyonight.toml +0 -0
  476. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/tomorrow-night-blue.toml +0 -0
  477. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/tomorrow-night-bright.toml +0 -0
  478. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/tomorrow-night-burns.toml +0 -0
  479. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
  480. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/tomorrow-night.toml +0 -0
  481. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/tomorrow.toml +0 -0
  482. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/toychest.toml +0 -0
  483. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/treehouse.toml +0 -0
  484. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/twilight.toml +0 -0
  485. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/ubuntu.toml +0 -0
  486. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/ultradark.toml +0 -0
  487. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/ultraviolent.toml +0 -0
  488. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/underthesea.toml +0 -0
  489. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/unikitty.toml +0 -0
  490. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/urple.toml +0 -0
  491. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/vaughn.toml +0 -0
  492. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/vesper.toml +0 -0
  493. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/vibrantink.toml +0 -0
  494. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/vimbones.toml +0 -0
  495. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/violet-dark.toml +0 -0
  496. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/violet-light.toml +0 -0
  497. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/warmneon.toml +0 -0
  498. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/wez.toml +0 -0
  499. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/whimsy.toml +0 -0
  500. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/wildcherry.toml +0 -0
  501. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/wilmersdorf.toml +0 -0
  502. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/wombat.toml +0 -0
  503. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/wryan.toml +0 -0
  504. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/xcodedark.toml +0 -0
  505. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/xcodedarkhc.toml +0 -0
  506. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/xcodelight.toml +0 -0
  507. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/xcodelighthc.toml +0 -0
  508. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/xcodewwdc.toml +0 -0
  509. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/zenbones-dark.toml +0 -0
  510. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/zenbones-light.toml +0 -0
  511. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/zenbones.toml +0 -0
  512. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/zenburn.toml +0 -0
  513. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/zenburned.toml +0 -0
  514. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/zenwritten-dark.toml +0 -0
  515. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/themes/zenwritten-light.toml +0 -0
  516. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/workflow/__init__.py +0 -0
  517. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/workflow/activities.py +0 -0
  518. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/workflow/agent_activities.py +0 -0
  519. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/workflow/temporal_setup.py +0 -0
  520. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/src/flock/workflow/workflow.py +0 -0
  521. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/tests/__init__.py +0 -0
  522. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/tests/core/test_flock_batch.py +0 -0
  523. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/tests/serialization/__init__.py +0 -0
  524. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/tests/serialization/test_enhanced_serialization.py +0 -0
  525. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/tests/serialization/test_flock_serializer.py +0 -0
  526. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/tests/serialization/test_nested_serialization.py +0 -0
  527. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/tests/serialization/test_yaml_serialization.py +0 -0
  528. {flock_core-0.4.0b23 → flock_core-0.4.0b25}/tests/tools/test_zendesk_tools.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flock-core
3
- Version: 0.4.0b23
3
+ Version: 0.4.0b25
4
4
  Summary: Declarative LLM Orchestration at Scale
5
5
  Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
6
6
  License-File: LICENSE
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "flock-core"
3
- version = "0.4.0b-23"
3
+ version = "0.4.0b-25"
4
4
  description = "Declarative LLM Orchestration at Scale"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -59,6 +59,10 @@ FlockRegistry = get_registry() # Get the registry instance
59
59
  # Define TypeVar for generic class methods like from_dict
60
60
  T = TypeVar("T", bound="Flock")
61
61
 
62
+ from rich.traceback import install
63
+
64
+ install(show_locals=True)
65
+
62
66
 
63
67
  class Flock(BaseModel, Serializable):
64
68
  """Orchestrator for managing and executing agent systems.
@@ -336,6 +340,10 @@ class Flock(BaseModel, Serializable):
336
340
  "No start_agent specified and multiple/no agents exist."
337
341
  )
338
342
 
343
+ # Check if start_agent is in agents
344
+ if start_agent_name not in self._agents:
345
+ raise ValueError(f"Start agent '{start_agent_name}' not found.")
346
+
339
347
  run_input = input if input is not None else self._start_input
340
348
  effective_run_id = run_id or f"flockrun_{uuid.uuid4().hex[:8]}"
341
349
 
@@ -350,9 +358,13 @@ class Flock(BaseModel, Serializable):
350
358
  try:
351
359
  resolved_start_agent = self._agents.get(start_agent_name)
352
360
  if not resolved_start_agent:
353
- resolved_start_agent = FlockRegistry.get_agent(start_agent_name)
361
+ resolved_start_agent = FlockRegistry.get_agent(
362
+ start_agent_name
363
+ )
354
364
  if not resolved_start_agent:
355
- raise ValueError(f"Start agent '{start_agent_name}' not found.")
365
+ raise ValueError(
366
+ f"Start agent '{start_agent_name}' not found."
367
+ )
356
368
  self.add_agent(resolved_start_agent)
357
369
 
358
370
  run_context = context if context else FlockContext()
@@ -384,15 +396,20 @@ class Flock(BaseModel, Serializable):
384
396
 
385
397
  # Execute workflow
386
398
  if not self.enable_temporal:
387
- result = await run_local_workflow(run_context, box_result=False)
399
+ result = await run_local_workflow(
400
+ run_context, box_result=False
401
+ )
388
402
  else:
389
- result = await run_temporal_workflow(run_context, box_result=False)
403
+ result = await run_temporal_workflow(
404
+ run_context, box_result=False
405
+ )
390
406
 
391
407
  span.set_attribute("result.type", str(type(result)))
392
408
  result_str = str(result)
393
409
  span.set_attribute(
394
410
  "result.preview",
395
- result_str[:1000] + ("..." if len(result_str) > 1000 else ""),
411
+ result_str[:1000]
412
+ + ("..." if len(result_str) > 1000 else ""),
396
413
  )
397
414
 
398
415
  if box_result:
@@ -400,13 +417,17 @@ class Flock(BaseModel, Serializable):
400
417
  logger.debug("Boxing final result.")
401
418
  return Box(result)
402
419
  except ImportError:
403
- logger.warning("Box library not installed, returning raw dict.")
420
+ logger.warning(
421
+ "Box library not installed, returning raw dict."
422
+ )
404
423
  return result
405
424
  else:
406
425
  return result
407
426
 
408
427
  except Exception as e:
409
- logger.error(f"Flock run '{self.name}' failed: {e}", exc_info=True)
428
+ logger.error(
429
+ f"Flock run '{self.name}' failed: {e}", exc_info=True
430
+ )
410
431
  span.record_exception(e)
411
432
  span.set_status(trace.Status(trace.StatusCode.ERROR, str(e)))
412
433
  return {
@@ -23,9 +23,9 @@ from rich.console import Console
23
23
 
24
24
  # Core Flock components (ensure these are importable)
25
25
  from flock.core.context.context import FlockContext
26
- from flock.core.flock_evaluator import FlockEvaluator
27
- from flock.core.flock_module import FlockModule
28
- from flock.core.flock_router import FlockRouter
26
+ from flock.core.flock_evaluator import FlockEvaluator, FlockEvaluatorConfig
27
+ from flock.core.flock_module import FlockModule, FlockModuleConfig
28
+ from flock.core.flock_router import FlockRouter, FlockRouterConfig
29
29
  from flock.core.logging.logging import get_logger
30
30
 
31
31
  # Mixins and Serialization components
@@ -45,6 +45,15 @@ tracer = trace.get_tracer(__name__)
45
45
  T = TypeVar("T", bound="FlockAgent")
46
46
 
47
47
 
48
+ SignatureType = (
49
+ str
50
+ | Callable[..., str]
51
+ | type[BaseModel]
52
+ | Callable[..., type[BaseModel]]
53
+ | None
54
+ )
55
+
56
+
48
57
  # Make FlockAgent inherit from Serializable
49
58
  class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
50
59
  """Core, declarative base class for Flock agents, enabling serialization,
@@ -61,14 +70,14 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
61
70
  "",
62
71
  description="A human-readable description or a callable returning one.",
63
72
  )
64
- input: str | Callable[..., str] | None = Field(
73
+ input: SignatureType = Field(
65
74
  None,
66
75
  description=(
67
76
  "Signature for input keys. Supports type hints (:) and descriptions (|). "
68
77
  "E.g., 'query: str | Search query, context: dict | Conversation context'. Can be a callable."
69
78
  ),
70
79
  )
71
- output: str | Callable[..., str] | None = Field(
80
+ output: SignatureType = Field(
72
81
  None,
73
82
  description=(
74
83
  "Signature for output keys. Supports type hints (:) and descriptions (|). "
@@ -111,6 +120,43 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
111
120
  description="Runtime context associated with the flock execution.",
112
121
  )
113
122
 
123
+ def __init__(
124
+ self,
125
+ name: str,
126
+ model: str | None = None,
127
+ description: str | Callable[..., str] | None = "",
128
+ input: SignatureType = None,
129
+ output: SignatureType = None,
130
+ tools: list[Callable[..., Any]] | None = None,
131
+ evaluator: "FlockEvaluator | None" = None,
132
+ handoff_router: "FlockRouter | None" = None,
133
+ modules: dict[str, "FlockModule"] | None = None, # Use dict for modules
134
+ write_to_file: bool = False,
135
+ wait_for_input: bool = False,
136
+ **kwargs,
137
+ ):
138
+ super().__init__(
139
+ name=name,
140
+ model=model,
141
+ description=description,
142
+ input=input, # Store the raw input spec
143
+ output=output, # Store the raw output spec
144
+ tools=tools,
145
+ write_to_file=write_to_file,
146
+ wait_for_input=wait_for_input,
147
+ evaluator=evaluator,
148
+ handoff_router=handoff_router,
149
+ modules=modules
150
+ if modules is not None
151
+ else {}, # Ensure modules is a dict
152
+ **kwargs,
153
+ )
154
+
155
+ if isinstance(self.input, type) and issubclass(self.input, BaseModel):
156
+ self._input_model = self.input
157
+ if isinstance(self.output, type) and issubclass(self.output, BaseModel):
158
+ self._output_model = self.output
159
+
114
160
  # --- Existing Methods (add_module, remove_module, etc.) ---
115
161
  # (Keep these methods as they were, adding type hints where useful)
116
162
  def add_module(self, module: FlockModule) -> None:
@@ -359,6 +405,114 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
359
405
  span.record_exception(temporal_error)
360
406
  raise
361
407
 
408
+ def add_component(
409
+ self,
410
+ config_instance: FlockModuleConfig
411
+ | FlockRouterConfig
412
+ | FlockEvaluatorConfig,
413
+ component_name: str | None = None,
414
+ ) -> "FlockAgent":
415
+ """Adds or replaces a component (Evaluator, Router, Module) based on its configuration object.
416
+
417
+ Args:
418
+ config_instance: An instance of a config class inheriting from
419
+ FlockModuleConfig, FlockRouterConfig, or FlockEvaluatorConfig.
420
+ component_name: Explicit name for the component (required for Modules if not in config).
421
+
422
+ Returns:
423
+ self for potential chaining.
424
+ """
425
+ from flock.core.flock_registry import get_registry
426
+
427
+ config_type = type(config_instance)
428
+ registry = get_registry() # Get registry instance
429
+ logger.debug(
430
+ f"Attempting to add component via config: {config_type.__name__}"
431
+ )
432
+
433
+ # --- 1. Find Component Class using Registry Map ---
434
+ ComponentClass = registry.get_component_class_for_config(config_type)
435
+
436
+ if not ComponentClass:
437
+ logger.error(
438
+ f"No component class registered for config type {config_type.__name__}. Use @flock_component(config_class=...) on the component."
439
+ )
440
+ raise TypeError(
441
+ f"Cannot find component class for config {config_type.__name__}"
442
+ )
443
+
444
+ component_class_name = ComponentClass.__name__
445
+ logger.debug(
446
+ f"Found component class '{component_class_name}' mapped to config '{config_type.__name__}'"
447
+ )
448
+
449
+ # --- 2. Determine Assignment Target and Name (Same as before) ---
450
+ instance_name = component_name
451
+ attribute_name: str = ""
452
+
453
+ if issubclass(ComponentClass, FlockEvaluator):
454
+ attribute_name = "evaluator"
455
+ if not instance_name:
456
+ instance_name = getattr(
457
+ config_instance, "name", component_class_name.lower()
458
+ )
459
+
460
+ elif issubclass(ComponentClass, FlockRouter):
461
+ attribute_name = "handoff_router"
462
+ if not instance_name:
463
+ instance_name = getattr(
464
+ config_instance, "name", component_class_name.lower()
465
+ )
466
+
467
+ elif issubclass(ComponentClass, FlockModule):
468
+ attribute_name = "modules"
469
+ if not instance_name:
470
+ instance_name = getattr(
471
+ config_instance, "name", component_class_name.lower()
472
+ )
473
+ if not instance_name:
474
+ raise ValueError(
475
+ "Module name must be provided either in config or as component_name argument."
476
+ )
477
+ # Ensure config has name if module expects it
478
+ if hasattr(config_instance, "name") and not getattr(
479
+ config_instance, "name", None
480
+ ):
481
+ setattr(config_instance, "name", instance_name)
482
+
483
+ else: # Should be caught by registry map logic ideally
484
+ raise TypeError(
485
+ f"Class '{component_class_name}' mapped from config is not a valid Flock component."
486
+ )
487
+
488
+ # --- 3. Instantiate the Component (Same as before) ---
489
+ try:
490
+ init_args = {"config": config_instance, "name": instance_name}
491
+
492
+ component_instance = ComponentClass(**init_args)
493
+ except Exception as e:
494
+ logger.error(
495
+ f"Failed to instantiate {ComponentClass.__name__} with config {config_type.__name__}: {e}",
496
+ exc_info=True,
497
+ )
498
+ raise RuntimeError(f"Component instantiation failed: {e}") from e
499
+
500
+ # --- 4. Assign to the Agent (Same as before) ---
501
+ if attribute_name == "modules":
502
+ if not isinstance(self.modules, dict):
503
+ self.modules = {}
504
+ self.modules[instance_name] = component_instance
505
+ logger.info(
506
+ f"Added/Updated module '{instance_name}' (type: {ComponentClass.__name__}) to agent '{self.name}'"
507
+ )
508
+ else:
509
+ setattr(self, attribute_name, component_instance)
510
+ logger.info(
511
+ f"Set {attribute_name} to {ComponentClass.__name__} (instance name: '{instance_name}') for agent '{self.name}'"
512
+ )
513
+
514
+ return self
515
+
362
516
  # resolve_callables remains useful for dynamic definitions
363
517
  def resolve_callables(self, context: FlockContext | None = None) -> None:
364
518
  """Resolves callable fields (description, input, output) using context."""
@@ -3,7 +3,7 @@
3
3
  from collections.abc import Callable
4
4
  from typing import Any
5
5
 
6
- from flock.core.flock_agent import FlockAgent
6
+ from flock.core.flock_agent import FlockAgent, SignatureType
7
7
  from flock.core.logging.formatters.themes import OutputTheme
8
8
  from flock.evaluators.declarative.declarative_evaluator import (
9
9
  DeclarativeEvaluator,
@@ -24,8 +24,8 @@ class FlockFactory:
24
24
  name: str,
25
25
  description: str | Callable[..., str] | None = None,
26
26
  model: str | Callable[..., str] | None = None,
27
- input: str | Callable[..., str] | None = None,
28
- output: str | Callable[..., str] | None = None,
27
+ input: SignatureType = None,
28
+ output: SignatureType = None,
29
29
  tools: list[Callable[..., Any] | Any] | None = None,
30
30
  use_cache: bool = True,
31
31
  enable_rich_tables: bool = False,
@@ -42,10 +42,12 @@ class FlockFactory:
42
42
  ) -> FlockAgent:
43
43
  """Creates a default FlockAgent.
44
44
 
45
- The default agent includes a declarative evaluator with the following modules:
45
+ The default agent includes the following modules:
46
+ - DeclarativeEvaluator
46
47
  - OutputModule
48
+ - MetricsModule
47
49
 
48
- It also includes often needed configurations like cache usage, rich tables, and output theme.
50
+ It also includes direct acces to the most important configurations.
49
51
  """
50
52
  eval_config = DeclarativeEvaluatorConfig(
51
53
  model=model,
@@ -32,6 +32,7 @@ if TYPE_CHECKING:
32
32
  from flock.core.flock_router import FlockRouter
33
33
 
34
34
  COMPONENT_BASE_TYPES = (FlockModule, FlockEvaluator, FlockRouter)
35
+
35
36
  IS_COMPONENT_CHECK_ENABLED = True
36
37
  else:
37
38
  # Define dummy types or skip check if not type checking
@@ -41,12 +42,15 @@ else:
41
42
 
42
43
  # Fallback if core types aren't available during setup
43
44
 
45
+ from flock.core.flock_module import FlockModuleConfig
44
46
  from flock.core.logging.logging import get_logger
45
47
 
46
48
  logger = get_logger("registry")
47
49
  T = TypeVar("T")
48
50
  ClassType = TypeVar("ClassType", bound=type)
49
51
  FuncType = TypeVar("FuncType", bound=Callable)
52
+ ConfigType = TypeVar("ConfigType", bound=BaseModel)
53
+ _COMPONENT_CONFIG_MAP: dict[type[BaseModel], type[any]] = {}
50
54
 
51
55
 
52
56
  class FlockRegistry:
@@ -105,6 +109,45 @@ class FlockRegistry:
105
109
  except Exception as e:
106
110
  logger.error(f"Failed to auto-register core type {t}: {e}")
107
111
 
112
+ @staticmethod
113
+ def register_config_component_pair(
114
+ config_cls: type[ConfigType], component_cls: type[ClassType]
115
+ ):
116
+ """Explicitly registers the mapping between a config and component class."""
117
+ from flock.core.flock_evaluator import (
118
+ FlockEvaluatorConfig,
119
+ )
120
+ from flock.core.flock_router import FlockRouterConfig
121
+
122
+ if not issubclass(
123
+ config_cls,
124
+ FlockModuleConfig | FlockRouterConfig | FlockEvaluatorConfig,
125
+ ):
126
+ logger.warning(
127
+ f"Config class {config_cls.__name__} does not inherit from a standard Flock config base."
128
+ )
129
+ # Add more checks if needed (e.g., component_cls inherits from Module/Router/Evaluator)
130
+
131
+ if (
132
+ config_cls in _COMPONENT_CONFIG_MAP
133
+ and _COMPONENT_CONFIG_MAP[config_cls] != component_cls
134
+ ):
135
+ logger.warning(
136
+ f"Config class {config_cls.__name__} already mapped to {_COMPONENT_CONFIG_MAP[config_cls].__name__}. Overwriting with {component_cls.__name__}."
137
+ )
138
+
139
+ _COMPONENT_CONFIG_MAP[config_cls] = component_cls
140
+ logger.debug(
141
+ f"Registered config mapping: {config_cls.__name__} -> {component_cls.__name__}"
142
+ )
143
+
144
+ @staticmethod
145
+ def get_component_class_for_config(
146
+ config_cls: type[ConfigType],
147
+ ) -> type[ClassType] | None:
148
+ """Looks up the Component Class associated with a Config Class."""
149
+ return _COMPONENT_CONFIG_MAP.get(config_cls)
150
+
108
151
  # --- Path String Generation ---
109
152
  @staticmethod
110
153
  def _get_path_string(obj: Callable | type) -> str | None:
@@ -439,36 +482,41 @@ def get_registry() -> FlockRegistry:
439
482
 
440
483
  # Type hinting for decorators to preserve signature
441
484
  @overload
442
- def flock_component(cls: ClassType) -> ClassType: ...
485
+ def flock_component(cls: ClassType) -> ClassType: ... # Basic registration
443
486
  @overload
444
487
  def flock_component(
445
- *, name: str | None = None
446
- ) -> Callable[[ClassType], ClassType]: ...
488
+ *, name: str | None = None, config_class: type[ConfigType] | None = None
489
+ ) -> Callable[[ClassType], ClassType]: ... # With options
447
490
 
448
491
 
449
492
  def flock_component(
450
- cls: ClassType | None = None, *, name: str | None = None
493
+ cls: ClassType | None = None,
494
+ *,
495
+ name: str | None = None,
496
+ config_class: type[ConfigType] | None = None,
451
497
  ) -> Any:
452
- """Decorator to register a Flock Component class (Module, Evaluator, Router).
453
-
454
- Usage:
455
- @flock_component
456
- class MyModule(FlockModule): ...
457
-
458
- @flock_component(name="CustomRouterAlias")
459
- class MyRouter(FlockRouter): ...
460
- """
498
+ """Decorator to register a Flock Component class and optionally link its config class."""
461
499
  registry = get_registry()
462
500
 
463
501
  def decorator(inner_cls: ClassType) -> ClassType:
464
502
  if not inspect.isclass(inner_cls):
465
503
  raise TypeError("@flock_component can only decorate classes.")
504
+
466
505
  component_name = name or inner_cls.__name__
467
- registry.register_component(inner_cls, name=component_name)
506
+ registry.register_component(
507
+ inner_cls, name=component_name
508
+ ) # Register component by name
509
+
510
+ # If config_class is provided, register the mapping
511
+ if config_class:
512
+ FlockRegistry.register_config_component_pair(
513
+ config_class, inner_cls
514
+ )
515
+
468
516
  return inner_cls
469
517
 
470
518
  if cls is None:
471
- # Called as @flock_component(name="...")
519
+ # Called as @flock_component(name="...", config_class=...)
472
520
  return decorator
473
521
  else:
474
522
  # Called as @flock_component
@@ -7,6 +7,7 @@ from rich.console import Console
7
7
 
8
8
  from flock.core.flock_agent import FlockAgent
9
9
  from flock.core.flock_evaluator import FlockEvaluator, FlockEvaluatorConfig
10
+ from flock.core.flock_registry import flock_component
10
11
  from flock.core.logging.logging import get_logger
11
12
  from flock.core.mixin.dspy_integration import DSPyIntegrationMixin
12
13
  from flock.core.mixin.prompt_parser import PromptParserMixin
@@ -35,6 +36,7 @@ class DeclarativeEvaluatorConfig(FlockEvaluatorConfig):
35
36
  kwargs: dict[str, Any] = Field(default_factory=dict)
36
37
 
37
38
 
39
+ @flock_component(config_class=DeclarativeEvaluatorConfig)
38
40
  class DeclarativeEvaluator(
39
41
  FlockEvaluator, DSPyIntegrationMixin, PromptParserMixin
40
42
  ):
@@ -4,6 +4,7 @@ from pydantic import Field
4
4
 
5
5
  from flock.core.flock_agent import FlockAgent
6
6
  from flock.core.flock_evaluator import FlockEvaluator, FlockEvaluatorConfig
7
+ from flock.core.flock_registry import flock_component
7
8
  from flock.core.mixin.dspy_integration import DSPyIntegrationMixin
8
9
  from flock.core.mixin.prompt_parser import PromptParserMixin
9
10
  from flock.modules.memory.memory_module import MemoryModule, MemoryModuleConfig
@@ -45,6 +46,7 @@ class MemoryEvaluatorConfig(FlockEvaluatorConfig):
45
46
  )
46
47
 
47
48
 
49
+ @flock_component(config_class=MemoryEvaluatorConfig)
48
50
  class MemoryEvaluator(FlockEvaluator, DSPyIntegrationMixin, PromptParserMixin):
49
51
  """Evaluator that uses DSPy for generation."""
50
52
 
@@ -4,6 +4,7 @@ from pydantic import Field
4
4
 
5
5
  from flock.core.flock_agent import FlockAgent
6
6
  from flock.core.flock_evaluator import FlockEvaluator, FlockEvaluatorConfig
7
+ from flock.core.flock_registry import flock_component
7
8
  from flock.core.mixin.dspy_integration import DSPyIntegrationMixin
8
9
 
9
10
 
@@ -13,6 +14,7 @@ class TestCaseEvaluatorConfig(FlockEvaluatorConfig):
13
14
  pass
14
15
 
15
16
 
17
+ @flock_component(config_class=TestCaseEvaluatorConfig)
16
18
  class TestCaseEvaluator(FlockEvaluator, DSPyIntegrationMixin):
17
19
  """Evaluator for test cases."""
18
20
 
@@ -4,6 +4,7 @@ from pydantic import Field
4
4
 
5
5
  from flock.core.flock_agent import FlockAgent
6
6
  from flock.core.flock_evaluator import FlockEvaluator, FlockEvaluatorConfig
7
+ from flock.core.flock_registry import flock_component
7
8
  from flock.core.mixin.dspy_integration import DSPyIntegrationMixin
8
9
  from flock.core.mixin.prompt_parser import PromptParserMixin
9
10
  from flock.modules.zep.zep_module import ZepModule, ZepModuleConfig
@@ -17,6 +18,7 @@ class ZepEvaluatorConfig(FlockEvaluatorConfig):
17
18
  )
18
19
 
19
20
 
21
+ @flock_component(config_class=ZepEvaluatorConfig)
20
22
  class ZepEvaluator(FlockEvaluator, DSPyIntegrationMixin, PromptParserMixin):
21
23
  """Evaluator that uses DSPy for generation."""
22
24
 
@@ -86,7 +86,7 @@ class AssertionModuleConfig(FlockModuleConfig):
86
86
  )
87
87
 
88
88
 
89
- @flock_component
89
+ @flock_component(config_class=AssertionModuleConfig)
90
90
  class AssertionCheckerModule(FlockModule):
91
91
  """Checks the output of an agent against a set of defined rules.
92
92
 
@@ -7,6 +7,7 @@ from pydantic import Field
7
7
 
8
8
  from flock.core import FlockModule, FlockModuleConfig
9
9
  from flock.core.context.context import FlockContext
10
+ from flock.core.flock_registry import flock_component
10
11
 
11
12
 
12
13
  class CallbackModuleConfig(FlockModuleConfig):
@@ -36,6 +37,7 @@ class CallbackModuleConfig(FlockModuleConfig):
36
37
  )
37
38
 
38
39
 
40
+ @flock_component(config_class=CallbackModuleConfig)
39
41
  class CallbackModule(FlockModule):
40
42
  """Module that provides callback functionality for agent lifecycle events."""
41
43
 
@@ -12,6 +12,7 @@ from flock.core.context.context import FlockContext
12
12
  # from flock.core import FlockAgent
13
13
  from flock.core.flock_agent import FlockAgent
14
14
  from flock.core.flock_module import FlockModule, FlockModuleConfig
15
+ from flock.core.flock_registry import flock_component
15
16
  from flock.core.logging.logging import get_logger
16
17
  from flock.modules.memory.memory_parser import MemoryMappingParser
17
18
  from flock.modules.memory.memory_storage import FlockMemoryStore, MemoryEntry
@@ -59,6 +60,7 @@ class MemoryModuleConfig(FlockModuleConfig):
59
60
  )
60
61
 
61
62
 
63
+ @flock_component(config_class=MemoryModuleConfig)
62
64
  class MemoryModule(FlockModule):
63
65
  """Module that adds memory capabilities to a Flock agent."""
64
66
 
@@ -5,6 +5,7 @@ from typing import TYPE_CHECKING, Any
5
5
  from pydantic import Field
6
6
 
7
7
  from flock.core.context.context_vars import FLOCK_BATCH_SILENT_MODE
8
+ from flock.core.flock_registry import flock_component
8
9
 
9
10
  if TYPE_CHECKING:
10
11
  from flock.core import FlockAgent
@@ -60,6 +61,7 @@ class OutputModuleConfig(FlockModuleConfig):
60
61
  )
61
62
 
62
63
 
64
+ @flock_component(config_class=OutputModuleConfig)
63
65
  class OutputModule(FlockModule):
64
66
  """Module that handles output formatting and display."""
65
67
 
@@ -14,6 +14,7 @@ from pydantic import BaseModel, Field, validator
14
14
  from flock.core.context.context import FlockContext
15
15
  from flock.core.flock_agent import FlockAgent
16
16
  from flock.core.flock_module import FlockModule, FlockModuleConfig
17
+ from flock.core.flock_registry import flock_component
17
18
 
18
19
 
19
20
  class MetricPoint(BaseModel):
@@ -69,6 +70,7 @@ class MetricsModuleConfig(FlockModuleConfig):
69
70
  return v
70
71
 
71
72
 
73
+ @flock_component(config_class=MetricsModuleConfig)
72
74
  class MetricsModule(FlockModule):
73
75
  """Module for collecting and analyzing agent performance metrics."""
74
76
 
@@ -8,6 +8,7 @@ from zep_python.types import Message as ZepMessage, SessionSearchResult
8
8
  from flock.core.context.context import FlockContext
9
9
  from flock.core.flock_agent import FlockAgent
10
10
  from flock.core.flock_module import FlockModule, FlockModuleConfig
11
+ from flock.core.flock_registry import flock_component
11
12
  from flock.core.logging.logging import get_logger
12
13
 
13
14
  logger = get_logger("module.zep")
@@ -25,6 +26,7 @@ class ZepModuleConfig(FlockModuleConfig):
25
26
  enable_write: bool = False
26
27
 
27
28
 
29
+ @flock_component(config_class=ZepModuleConfig)
28
30
  class ZepModule(FlockModule):
29
31
  """Module that adds Zep capabilities to a Flock agent."""
30
32
 
@@ -4,6 +4,7 @@ from typing import Any
4
4
 
5
5
  from flock.core.context.context import FlockContext
6
6
  from flock.core.flock_agent import FlockAgent
7
+ from flock.core.flock_registry import flock_component
7
8
  from flock.core.flock_router import (
8
9
  FlockRouter,
9
10
  FlockRouterConfig,
@@ -34,6 +35,7 @@ class AgentRouterConfig(FlockRouterConfig):
34
35
  confidence_threshold: float = 0.5 # No additional parameters needed for now
35
36
 
36
37
 
38
+ @flock_component(config_class=AgentRouterConfig)
37
39
  class AgentRouter(FlockRouter):
38
40
  """Router that uses a FlockAgent to determine the next agent in a workflow.
39
41
 
@@ -146,7 +146,7 @@ class ConditionalRouterConfig(FlockRouterConfig):
146
146
  return self
147
147
 
148
148
 
149
- @flock_component
149
+ @flock_component(config_class=ConditionalRouterConfig)
150
150
  class ConditionalRouter(FlockRouter):
151
151
  """Routes workflow based on evaluating a condition against a value in the FlockContext.
152
152
  Supports various built-in checks (string, number, list, type, bool, existence)
@@ -7,6 +7,7 @@ from pydantic import Field
7
7
 
8
8
  from flock.core.context.context import FlockContext
9
9
  from flock.core.flock_agent import FlockAgent
10
+ from flock.core.flock_registry import flock_component
10
11
  from flock.core.flock_router import (
11
12
  FlockRouter,
12
13
  FlockRouterConfig,
@@ -25,6 +26,7 @@ class DefaultRouterConfig(FlockRouterConfig):
25
26
  )
26
27
 
27
28
 
29
+ @flock_component(config_class=DefaultRouterConfig)
28
30
  class DefaultRouter(FlockRouter):
29
31
  """Default router implementation.
30
32