flock-core 0.4.532__tar.gz → 0.4.533__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 (669) hide show
  1. {flock_core-0.4.532 → flock_core-0.4.533}/PKG-INFO +1 -1
  2. flock_core-0.4.533/docs/.codex/tool_set.md +67 -0
  3. {flock_core-0.4.532 → flock_core-0.4.533}/pyproject.toml +1 -1
  4. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/api/endpoints.py +11 -3
  5. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/api/models.py +4 -0
  6. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/context/context_manager.py +3 -0
  7. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/context/context_vars.py +1 -0
  8. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/flock.py +6 -0
  9. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/flock_agent.py +117 -17
  10. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/flock_factory.py +2 -0
  11. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/serialization/flock_serializer.py +26 -0
  12. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/api/execution.py +7 -1
  13. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/services/flock_service.py +10 -2
  14. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_execution_form.html +10 -1
  15. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/workflow/activities.py +18 -2
  16. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/workflow/agent_execution_activity.py +14 -2
  17. {flock_core-0.4.532 → flock_core-0.4.533}/uv.lock +1 -1
  18. {flock_core-0.4.532 → flock_core-0.4.533}/.devcontainer/devcontainer.json +0 -0
  19. {flock_core-0.4.532 → flock_core-0.4.533}/.env_template +0 -0
  20. {flock_core-0.4.532 → flock_core-0.4.533}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  21. {flock_core-0.4.532 → flock_core-0.4.533}/.github/ISSUE_TEMPLATE/documentation_improvement.yaml +0 -0
  22. {flock_core-0.4.532 → flock_core-0.4.533}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  23. {flock_core-0.4.532 → flock_core-0.4.533}/.github/ISSUE_TEMPLATE/question_support_request.yaml +0 -0
  24. {flock_core-0.4.532 → flock_core-0.4.533}/.github/ISSUE_TEMPLATE/vulnerability_report.md +0 -0
  25. {flock_core-0.4.532 → flock_core-0.4.533}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  26. {flock_core-0.4.532 → flock_core-0.4.533}/.github/workflows/.gitkeep +0 -0
  27. {flock_core-0.4.532 → flock_core-0.4.533}/.github/workflows/deploy-documentation.yml +0 -0
  28. {flock_core-0.4.532 → flock_core-0.4.533}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
  29. {flock_core-0.4.532 → flock_core-0.4.533}/.gitignore +0 -0
  30. {flock_core-0.4.532 → flock_core-0.4.533}/.gitmodules +0 -0
  31. {flock_core-0.4.532 → flock_core-0.4.533}/.vscode/launch.json +0 -0
  32. {flock_core-0.4.532 → flock_core-0.4.533}/.vscode/settings.json +0 -0
  33. {flock_core-0.4.532 → flock_core-0.4.533}/.vscode/tasks.json +0 -0
  34. {flock_core-0.4.532 → flock_core-0.4.533}/AGENTS.md +0 -0
  35. {flock_core-0.4.532 → flock_core-0.4.533}/CODE_OF_CONDUCT.md +0 -0
  36. {flock_core-0.4.532 → flock_core-0.4.533}/CONTRIBUTING.md +0 -0
  37. {flock_core-0.4.532 → flock_core-0.4.533}/LICENSE +0 -0
  38. {flock_core-0.4.532 → flock_core-0.4.533}/README.md +0 -0
  39. {flock_core-0.4.532 → flock_core-0.4.533}/SECURITY.md +0 -0
  40. {flock_core-0.4.532 → flock_core-0.4.533}/docs/about/changelog.md +0 -0
  41. {flock_core-0.4.532 → flock_core-0.4.533}/docs/about/contributing.md +0 -0
  42. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/drawio/architecture.drawio +0 -0
  43. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/cli_outputs/out.png +0 -0
  44. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/components_chart.png +0 -0
  45. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/examples/01_01.png +0 -0
  46. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/examples/01_02.png +0 -0
  47. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/examples/01_03.png +0 -0
  48. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/examples/01_04.png +0 -0
  49. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/examples/01_05.png +0 -0
  50. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/examples/01_06.png +0 -0
  51. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/flock.png +0 -0
  52. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/flock_cli.png +0 -0
  53. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/flow_chart.png +0 -0
  54. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/getting-started/first_agent_00.png +0 -0
  55. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/hummingbird.png +0 -0
  56. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/icon.png +0 -0
  57. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/icon.png~ +0 -0
  58. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/logo.png +0 -0
  59. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/magpie.png +0 -0
  60. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/memory_concepts.png +0 -0
  61. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/memory_flow.png +0 -0
  62. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/memory_flow_chart.png +0 -0
  63. {flock_core-0.4.532 → flock_core-0.4.533}/docs/assets/images/readme_output.png +0 -0
  64. {flock_core-0.4.532 → flock_core-0.4.533}/docs/components/evaluators.md +0 -0
  65. {flock_core-0.4.532 → flock_core-0.4.533}/docs/components/index.md +0 -0
  66. {flock_core-0.4.532 → flock_core-0.4.533}/docs/components/modules.md +0 -0
  67. {flock_core-0.4.532 → flock_core-0.4.533}/docs/components/tools.md +0 -0
  68. {flock_core-0.4.532 → flock_core-0.4.533}/docs/core-concepts/agents.md +0 -0
  69. {flock_core-0.4.532 → flock_core-0.4.533}/docs/core-concepts/declarative.md +0 -0
  70. {flock_core-0.4.532 → flock_core-0.4.533}/docs/core-concepts/di.md +0 -0
  71. {flock_core-0.4.532 → flock_core-0.4.533}/docs/core-concepts/index.md +0 -0
  72. {flock_core-0.4.532 → flock_core-0.4.533}/docs/core-concepts/workflows.md +0 -0
  73. {flock_core-0.4.532 → flock_core-0.4.533}/docs/create_doc_boilerplate.py +0 -0
  74. {flock_core-0.4.532 → flock_core-0.4.533}/docs/deployment/index.md +0 -0
  75. {flock_core-0.4.532 → flock_core-0.4.533}/docs/deployment/temporal.md +0 -0
  76. {flock_core-0.4.532 → flock_core-0.4.533}/docs/getting-started/concepts.md +0 -0
  77. {flock_core-0.4.532 → flock_core-0.4.533}/docs/getting-started/configuration.md +0 -0
  78. {flock_core-0.4.532 → flock_core-0.4.533}/docs/getting-started/index.md +0 -0
  79. {flock_core-0.4.532 → flock_core-0.4.533}/docs/getting-started/installation.md +0 -0
  80. {flock_core-0.4.532 → flock_core-0.4.533}/docs/getting-started/quickstart.md +0 -0
  81. {flock_core-0.4.532 → flock_core-0.4.533}/docs/guides/chaining-agents.md +0 -0
  82. {flock_core-0.4.532 → flock_core-0.4.533}/docs/guides/custom-endpoints.md +0 -0
  83. {flock_core-0.4.532 → flock_core-0.4.533}/docs/guides/index.md +0 -0
  84. {flock_core-0.4.532 → flock_core-0.4.533}/docs/guides/temporal-configuration.md +0 -0
  85. {flock_core-0.4.532 → flock_core-0.4.533}/docs/index.md +0 -0
  86. {flock_core-0.4.532 → flock_core-0.4.533}/docs/interacting-with-flock/cli-tool.md +0 -0
  87. {flock_core-0.4.532 → flock_core-0.4.533}/docs/interacting-with-flock/index.md +0 -0
  88. {flock_core-0.4.532 → flock_core-0.4.533}/docs/interacting-with-flock/interactive-cli.md +0 -0
  89. {flock_core-0.4.532 → flock_core-0.4.533}/docs/interacting-with-flock/programmatic.md +0 -0
  90. {flock_core-0.4.532 → flock_core-0.4.533}/docs/interacting-with-flock/rest-api.md +0 -0
  91. {flock_core-0.4.532 → flock_core-0.4.533}/docs/interacting-with-flock/web-ui.md +0 -0
  92. {flock_core-0.4.532 → flock_core-0.4.533}/docs/reference/flock_agent.md +0 -0
  93. {flock_core-0.4.532 → flock_core-0.4.533}/docs/reference/index.md +0 -0
  94. {flock_core-0.4.532 → flock_core-0.4.533}/docs/release-notes/magpie.md +0 -0
  95. {flock_core-0.4.532 → flock_core-0.4.533}/docs/stylesheets/extra.css +0 -0
  96. {flock_core-0.4.532 → flock_core-0.4.533}/docs/wd-di.md +0 -0
  97. {flock_core-0.4.532 → flock_core-0.4.533}/mkdocs.yml +0 -0
  98. {flock_core-0.4.532 → flock_core-0.4.533}/requirements.txt +0 -0
  99. {flock_core-0.4.532 → flock_core-0.4.533}/scripts/code_collector.py +0 -0
  100. {flock_core-0.4.532 → flock_core-0.4.533}/scripts/create_docs.py +0 -0
  101. {flock_core-0.4.532 → flock_core-0.4.533}/scripts/ensure_uv.py +0 -0
  102. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/__init__.py +0 -0
  103. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/adapter/__init__.py +0 -0
  104. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/adapter/azure_adapter.py +0 -0
  105. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/adapter/chroma_adapter.py +0 -0
  106. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/adapter/faiss_adapter.py +0 -0
  107. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/adapter/pinecone_adapter.py +0 -0
  108. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/adapter/vector_base.py +0 -0
  109. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/assets/release_notes.md +0 -0
  110. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/config.py +0 -0
  111. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/constants.py +0 -0
  112. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/create_agent.py +0 -0
  113. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/create_flock.py +0 -0
  114. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/execute_flock.py +0 -0
  115. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/load_agent.py +0 -0
  116. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/load_examples.py +0 -0
  117. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/load_flock.py +0 -0
  118. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/load_release_notes.py +0 -0
  119. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/loaded_flock_cli.py +0 -0
  120. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/manage_agents.py +0 -0
  121. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/registry_management.py +0 -0
  122. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/runner.py +0 -0
  123. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/settings.py +0 -0
  124. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/utils.py +0 -0
  125. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/view_results.py +0 -0
  126. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/cli/yaml_editor.py +0 -0
  127. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/config.py +0 -0
  128. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/__init__.py +0 -0
  129. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/api/__init__.py +0 -0
  130. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/api/custom_endpoint.py +0 -0
  131. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/api/main.py +0 -0
  132. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/api/run_store.py +0 -0
  133. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/api/runner.py +0 -0
  134. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/api/service.py +0 -0
  135. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/config/flock_agent_config.py +0 -0
  136. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/config/scheduled_agent_config.py +0 -0
  137. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/context/context.py +0 -0
  138. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/evaluation/utils.py +0 -0
  139. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/execution/batch_executor.py +0 -0
  140. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/execution/evaluation_executor.py +0 -0
  141. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/execution/local_executor.py +0 -0
  142. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/execution/opik_executor.py +0 -0
  143. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/execution/temporal_executor.py +0 -0
  144. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/flock_evaluator.py +0 -0
  145. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/flock_module.py +0 -0
  146. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/flock_registry.py +0 -0
  147. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/flock_router.py +0 -0
  148. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/flock_scheduler.py +0 -0
  149. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/flock_server_manager.py +0 -0
  150. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/interpreter/python_interpreter.py +0 -0
  151. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/logging/__init__.py +0 -0
  152. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/logging/formatters/enum_builder.py +0 -0
  153. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/logging/formatters/theme_builder.py +0 -0
  154. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
  155. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/logging/formatters/themes.py +0 -0
  156. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/logging/logging.py +0 -0
  157. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
  158. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/logging/telemetry.py +0 -0
  159. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
  160. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
  161. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
  162. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/logging/trace_and_logged.py +0 -0
  163. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/mcp/__init__.py +0 -0
  164. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/mcp/flock_mcp_server.py +0 -0
  165. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/mcp/flock_mcp_tool_base.py +0 -0
  166. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/mcp/mcp_client.py +0 -0
  167. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/mcp/mcp_client_manager.py +0 -0
  168. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/mcp/mcp_config.py +0 -0
  169. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/mcp/types/__init__.py +0 -0
  170. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/mcp/types/callbacks.py +0 -0
  171. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/mcp/types/factories.py +0 -0
  172. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/mcp/types/handlers.py +0 -0
  173. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/mcp/types/types.py +0 -0
  174. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/mcp/util/__init__.py +0 -0
  175. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/mcp/util/helpers.py +0 -0
  176. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/mixin/dspy_integration.py +0 -0
  177. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/mixin/prompt_parser.py +0 -0
  178. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/serialization/__init__.py +0 -0
  179. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/serialization/callable_registry.py +0 -0
  180. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/serialization/json_encoder.py +0 -0
  181. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/serialization/secure_serializer.py +0 -0
  182. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/serialization/serializable.py +0 -0
  183. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/serialization/serialization_utils.py +0 -0
  184. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/util/cli_helper.py +0 -0
  185. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/util/file_path_utils.py +0 -0
  186. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/util/hydrator.py +0 -0
  187. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/util/input_resolver.py +0 -0
  188. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/util/loader.py +0 -0
  189. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/core/util/splitter.py +0 -0
  190. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/di.py +0 -0
  191. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/evaluators/__init__.py +0 -0
  192. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/evaluators/declarative/__init__.py +0 -0
  193. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/evaluators/declarative/declarative_evaluator.py +0 -0
  194. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/evaluators/memory/memory_evaluator.py +0 -0
  195. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/evaluators/test/test_case_evaluator.py +0 -0
  196. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/evaluators/zep/zep_evaluator.py +0 -0
  197. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/mcp/servers/sse/__init__.py +0 -0
  198. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/mcp/servers/sse/flock_sse_server.py +0 -0
  199. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/mcp/servers/stdio/__init__.py +0 -0
  200. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/mcp/servers/stdio/flock_stdio_server.py +0 -0
  201. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/mcp/servers/streamable_http/__init__.py +0 -0
  202. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/mcp/servers/streamable_http/flock_streamable_http_server.py +0 -0
  203. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/mcp/servers/websockets/__init__.py +0 -0
  204. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/mcp/servers/websockets/flock_websocket_server.py +0 -0
  205. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/__init__.py +0 -0
  206. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/assertion/__init__.py +0 -0
  207. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/assertion/assertion_module.py +0 -0
  208. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/callback/__init__.py +0 -0
  209. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/callback/callback_module.py +0 -0
  210. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/enterprise_memory/README.md +0 -0
  211. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/enterprise_memory/enterprise_memory_module.py +0 -0
  212. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/mem0/__init__.py +0 -0
  213. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/mem0/mem0_module.py +0 -0
  214. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/mem0_async/__init__.py +0 -0
  215. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/mem0_async/async_mem0_module.py +0 -0
  216. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/memory/__init__.py +0 -0
  217. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/memory/memory_module.py +0 -0
  218. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/memory/memory_parser.py +0 -0
  219. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/memory/memory_storage.py +0 -0
  220. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/output/__init__.py +0 -0
  221. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/output/output_module.py +0 -0
  222. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/performance/__init__.py +0 -0
  223. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/performance/metrics_module.py +0 -0
  224. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/zep/__init__.py +0 -0
  225. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/modules/zep/zep_module.py +0 -0
  226. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/platform/docker_tools.py +0 -0
  227. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/platform/jaeger_install.py +0 -0
  228. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/routers/__init__.py +0 -0
  229. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/routers/agent/__init__.py +0 -0
  230. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/routers/agent/agent_router.py +0 -0
  231. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/routers/agent/handoff_agent.py +0 -0
  232. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/routers/conditional/conditional_router.py +0 -0
  233. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/routers/default/__init__.py +0 -0
  234. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/routers/default/default_router.py +0 -0
  235. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/routers/feedback/feedback_router.py +0 -0
  236. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/routers/list_generator/list_generator_router.py +0 -0
  237. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/routers/llm/__init__.py +0 -0
  238. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/routers/llm/llm_router.py +0 -0
  239. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/3024-day.toml +0 -0
  240. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/3024-night.toml +0 -0
  241. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/aardvark-blue.toml +0 -0
  242. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/abernathy.toml +0 -0
  243. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/adventure.toml +0 -0
  244. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/adventuretime.toml +0 -0
  245. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/afterglow.toml +0 -0
  246. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/alabaster.toml +0 -0
  247. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/alienblood.toml +0 -0
  248. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/andromeda.toml +0 -0
  249. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/apple-classic.toml +0 -0
  250. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/apple-system-colors.toml +0 -0
  251. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/arcoiris.toml +0 -0
  252. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/argonaut copy.toml +0 -0
  253. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/argonaut.toml +0 -0
  254. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/arthur.toml +0 -0
  255. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/ateliersulphurpool.toml +0 -0
  256. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/atom.toml +0 -0
  257. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/atom_test.toml +0 -0
  258. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/atomonelight.toml +0 -0
  259. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/aurora.toml +0 -0
  260. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/ayu copy.toml +0 -0
  261. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/ayu-light.toml +0 -0
  262. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/ayu-mirage.toml +0 -0
  263. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/ayu.toml +0 -0
  264. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/banana-blueberry.toml +0 -0
  265. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/batman.toml +0 -0
  266. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/belafonte-day.toml +0 -0
  267. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/belafonte-night.toml +0 -0
  268. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/birdsofparadise.toml +0 -0
  269. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/blazer.toml +0 -0
  270. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/blue-matrix.toml +0 -0
  271. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/blueberrypie.toml +0 -0
  272. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/bluedolphin.toml +0 -0
  273. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/blulocodark.toml +0 -0
  274. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/blulocolight.toml +0 -0
  275. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/borland.toml +0 -0
  276. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/breeze.toml +0 -0
  277. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/bright-lights.toml +0 -0
  278. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/broadcast.toml +0 -0
  279. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/brogrammer.toml +0 -0
  280. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/builtin-dark.toml +0 -0
  281. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/builtin-light.toml +0 -0
  282. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/builtin-pastel-dark.toml +0 -0
  283. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/builtin-solarized-dark.toml +0 -0
  284. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/builtin-solarized-light.toml +0 -0
  285. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/builtin-tango-dark.toml +0 -0
  286. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/builtin-tango-light.toml +0 -0
  287. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/c64.toml +0 -0
  288. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/calamity.toml +0 -0
  289. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/catppuccin-frappe.toml +0 -0
  290. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/catppuccin-latte.toml +0 -0
  291. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/catppuccin-macchiato.toml +0 -0
  292. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/catppuccin-mocha.toml +0 -0
  293. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/cga.toml +0 -0
  294. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/chalk.toml +0 -0
  295. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/chalkboard.toml +0 -0
  296. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/challengerdeep.toml +0 -0
  297. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/chester.toml +0 -0
  298. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/ciapre.toml +0 -0
  299. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/clrs.toml +0 -0
  300. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/cobalt-neon.toml +0 -0
  301. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/cobalt2.toml +0 -0
  302. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/coffee-theme.toml +0 -0
  303. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/crayonponyfish.toml +0 -0
  304. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/cutiepro.toml +0 -0
  305. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/cyberdyne.toml +0 -0
  306. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/cyberpunk.toml +0 -0
  307. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
  308. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/dark+.toml +0 -0
  309. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/dark-pastel.toml +0 -0
  310. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/darkermatrix.toml +0 -0
  311. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/darkmatrix.toml +0 -0
  312. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/darkside.toml +0 -0
  313. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/dayfox.toml +0 -0
  314. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/deep.toml +0 -0
  315. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/desert.toml +0 -0
  316. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/dimidium.toml +0 -0
  317. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/dimmedmonokai.toml +0 -0
  318. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/django.toml +0 -0
  319. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/djangorebornagain.toml +0 -0
  320. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/djangosmooth.toml +0 -0
  321. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/doom-peacock.toml +0 -0
  322. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/doomone.toml +0 -0
  323. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/dotgov.toml +0 -0
  324. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/dracula+.toml +0 -0
  325. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/dracula.toml +0 -0
  326. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/duckbones.toml +0 -0
  327. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/duotone-dark.toml +0 -0
  328. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/earthsong.toml +0 -0
  329. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/elemental.toml +0 -0
  330. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/elementary.toml +0 -0
  331. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/encom.toml +0 -0
  332. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/espresso-libre.toml +0 -0
  333. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/espresso.toml +0 -0
  334. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/everblush.toml +0 -0
  335. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/fahrenheit.toml +0 -0
  336. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/fairyfloss.toml +0 -0
  337. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/farmhouse-dark.toml +0 -0
  338. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/farmhouse-light.toml +0 -0
  339. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/fideloper.toml +0 -0
  340. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/firefly-traditional.toml +0 -0
  341. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/firefoxdev.toml +0 -0
  342. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/firewatch.toml +0 -0
  343. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/fishtank.toml +0 -0
  344. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/flat.toml +0 -0
  345. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/flatland.toml +0 -0
  346. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/flexoki-dark.toml +0 -0
  347. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/flexoki-light.toml +0 -0
  348. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/floraverse.toml +0 -0
  349. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/forestblue.toml +0 -0
  350. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/framer.toml +0 -0
  351. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/frontenddelight.toml +0 -0
  352. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/funforrest.toml +0 -0
  353. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/galaxy.toml +0 -0
  354. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/galizur.toml +0 -0
  355. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/github-dark.toml +0 -0
  356. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/github.toml +0 -0
  357. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/glacier.toml +0 -0
  358. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/grape.toml +0 -0
  359. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/grass.toml +0 -0
  360. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/grey-green.toml +0 -0
  361. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/gruber-darker.toml +0 -0
  362. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/gruvboxdark.toml +0 -0
  363. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/gruvboxdarkhard.toml +0 -0
  364. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/gruvboxlight.toml +0 -0
  365. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/guezwhoz.toml +0 -0
  366. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/hacktober.toml +0 -0
  367. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/hardcore.toml +0 -0
  368. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/harper.toml +0 -0
  369. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/hax0r-blue.toml +0 -0
  370. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/hax0r-gr33n.toml +0 -0
  371. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/hax0r-r3d.toml +0 -0
  372. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/highway.toml +0 -0
  373. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/hipster-green.toml +0 -0
  374. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/hivacruz.toml +0 -0
  375. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/homebrew.toml +0 -0
  376. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/hopscotch.256.toml +0 -0
  377. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/hopscotch.toml +0 -0
  378. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/hurtado.toml +0 -0
  379. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/hybrid.toml +0 -0
  380. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/ic-green-ppl.toml +0 -0
  381. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/ic-orange-ppl.toml +0 -0
  382. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/iceberg-dark.toml +0 -0
  383. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/iceberg-light.toml +0 -0
  384. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/idea.toml +0 -0
  385. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/idletoes.toml +0 -0
  386. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/ir-black.toml +0 -0
  387. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/iterm2-dark-background.toml +0 -0
  388. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/iterm2-default.toml +0 -0
  389. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/iterm2-light-background.toml +0 -0
  390. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
  391. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/iterm2-smoooooth.toml +0 -0
  392. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
  393. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/iterm2-solarized-light.toml +0 -0
  394. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/iterm2-tango-dark.toml +0 -0
  395. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/iterm2-tango-light.toml +0 -0
  396. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/jackie-brown.toml +0 -0
  397. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/japanesque.toml +0 -0
  398. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/jellybeans.toml +0 -0
  399. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/jetbrains-darcula.toml +0 -0
  400. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/jubi.toml +0 -0
  401. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/kanagawabones.toml +0 -0
  402. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/kibble.toml +0 -0
  403. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/kolorit.toml +0 -0
  404. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/konsolas.toml +0 -0
  405. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/kurokula.toml +0 -0
  406. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/lab-fox.toml +0 -0
  407. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/laser.toml +0 -0
  408. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/later-this-evening.toml +0 -0
  409. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/lavandula.toml +0 -0
  410. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/liquidcarbon.toml +0 -0
  411. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/liquidcarbontransparent.toml +0 -0
  412. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
  413. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/lovelace.toml +0 -0
  414. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/man-page.toml +0 -0
  415. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/mariana.toml +0 -0
  416. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/material.toml +0 -0
  417. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/materialdark.toml +0 -0
  418. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/materialdarker.toml +0 -0
  419. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/materialdesigncolors.toml +0 -0
  420. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/materialocean.toml +0 -0
  421. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/mathias.toml +0 -0
  422. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/matrix.toml +0 -0
  423. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/medallion.toml +0 -0
  424. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/mellifluous.toml +0 -0
  425. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/midnight-in-mojave.toml +0 -0
  426. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/mirage.toml +0 -0
  427. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/misterioso.toml +0 -0
  428. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/molokai.toml +0 -0
  429. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/monalisa.toml +0 -0
  430. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/monokai-remastered.toml +0 -0
  431. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/monokai-soda.toml +0 -0
  432. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/monokai-vivid.toml +0 -0
  433. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/n0tch2k.toml +0 -0
  434. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/neobones-dark.toml +0 -0
  435. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/neobones-light.toml +0 -0
  436. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/neon.toml +0 -0
  437. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/neopolitan.toml +0 -0
  438. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/neutron.toml +0 -0
  439. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/night-owlish-light.toml +0 -0
  440. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/nightfox.toml +0 -0
  441. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/nightlion-v1.toml +0 -0
  442. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/nightlion-v2.toml +0 -0
  443. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/niji.toml +0 -0
  444. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/nocturnal-winter.toml +0 -0
  445. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/nord-light.toml +0 -0
  446. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/nord.toml +0 -0
  447. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/novel.toml +0 -0
  448. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/nvimdark.toml +0 -0
  449. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/nvimlight.toml +0 -0
  450. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/obsidian.toml +0 -0
  451. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/ocean.toml +0 -0
  452. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/oceanic-next.toml +0 -0
  453. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/oceanicmaterial.toml +0 -0
  454. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/ollie.toml +0 -0
  455. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/onehalfdark.toml +0 -0
  456. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/onehalflight.toml +0 -0
  457. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/operator-mono-dark.toml +0 -0
  458. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/overnight-slumber.toml +0 -0
  459. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/oxocarbon.toml +0 -0
  460. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/palenighthc.toml +0 -0
  461. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/pandora.toml +0 -0
  462. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/paraiso-dark.toml +0 -0
  463. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/paulmillr.toml +0 -0
  464. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/pencildark.toml +0 -0
  465. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/pencillight.toml +0 -0
  466. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/peppermint.toml +0 -0
  467. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/piatto-light.toml +0 -0
  468. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/pnevma.toml +0 -0
  469. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/popping-and-locking.toml +0 -0
  470. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/primary.toml +0 -0
  471. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/pro-light.toml +0 -0
  472. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/pro.toml +0 -0
  473. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/purple-rain.toml +0 -0
  474. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/purplepeter.toml +0 -0
  475. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/rapture.toml +0 -0
  476. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/raycast-dark.toml +0 -0
  477. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/raycast-light.toml +0 -0
  478. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/rebecca.toml +0 -0
  479. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/red-alert.toml +0 -0
  480. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/red-planet.toml +0 -0
  481. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/red-sands.toml +0 -0
  482. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/relaxed.toml +0 -0
  483. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/retro.toml +0 -0
  484. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/rippedcasts.toml +0 -0
  485. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/rose-pine-dawn.toml +0 -0
  486. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/rose-pine-moon.toml +0 -0
  487. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/rose-pine.toml +0 -0
  488. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/rouge-2.toml +0 -0
  489. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/royal.toml +0 -0
  490. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/ryuuko.toml +0 -0
  491. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/sakura.toml +0 -0
  492. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/scarlet-protocol.toml +0 -0
  493. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/seafoam-pastel.toml +0 -0
  494. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/seashells.toml +0 -0
  495. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/seoulbones-dark.toml +0 -0
  496. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/seoulbones-light.toml +0 -0
  497. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/seti.toml +0 -0
  498. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/shades-of-purple.toml +0 -0
  499. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/shaman.toml +0 -0
  500. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/slate.toml +0 -0
  501. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/sleepyhollow.toml +0 -0
  502. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/smyck.toml +0 -0
  503. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/snazzy.toml +0 -0
  504. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/softserver.toml +0 -0
  505. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/solarized-darcula.toml +0 -0
  506. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/solarized-dark---patched.toml +0 -0
  507. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
  508. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/spacedust.toml +0 -0
  509. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
  510. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/spacegray-eighties.toml +0 -0
  511. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/spacegray.toml +0 -0
  512. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/spiderman.toml +0 -0
  513. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/spring.toml +0 -0
  514. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/square.toml +0 -0
  515. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/sublette.toml +0 -0
  516. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/subliminal.toml +0 -0
  517. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/sugarplum.toml +0 -0
  518. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/sundried.toml +0 -0
  519. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/symfonic.toml +0 -0
  520. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/synthwave-everything.toml +0 -0
  521. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/synthwave.toml +0 -0
  522. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/synthwavealpha.toml +0 -0
  523. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/tango-adapted.toml +0 -0
  524. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/tango-half-adapted.toml +0 -0
  525. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/teerb.toml +0 -0
  526. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/terafox.toml +0 -0
  527. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/terminal-basic.toml +0 -0
  528. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/thayer-bright.toml +0 -0
  529. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/the-hulk.toml +0 -0
  530. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/tinacious-design-(dark).toml +0 -0
  531. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/tinacious-design-(light).toml +0 -0
  532. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/tokyonight-day.toml +0 -0
  533. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/tokyonight-storm.toml +0 -0
  534. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/tokyonight.toml +0 -0
  535. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/tomorrow-night-blue.toml +0 -0
  536. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/tomorrow-night-bright.toml +0 -0
  537. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/tomorrow-night-burns.toml +0 -0
  538. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
  539. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/tomorrow-night.toml +0 -0
  540. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/tomorrow.toml +0 -0
  541. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/toychest.toml +0 -0
  542. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/treehouse.toml +0 -0
  543. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/twilight.toml +0 -0
  544. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/ubuntu.toml +0 -0
  545. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/ultradark.toml +0 -0
  546. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/ultraviolent.toml +0 -0
  547. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/underthesea.toml +0 -0
  548. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/unikitty.toml +0 -0
  549. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/urple.toml +0 -0
  550. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/vaughn.toml +0 -0
  551. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/vesper.toml +0 -0
  552. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/vibrantink.toml +0 -0
  553. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/vimbones.toml +0 -0
  554. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/violet-dark.toml +0 -0
  555. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/violet-light.toml +0 -0
  556. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/warmneon.toml +0 -0
  557. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/wez.toml +0 -0
  558. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/whimsy.toml +0 -0
  559. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/wildcherry.toml +0 -0
  560. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/wilmersdorf.toml +0 -0
  561. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/wombat.toml +0 -0
  562. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/wryan.toml +0 -0
  563. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/xcodedark.toml +0 -0
  564. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/xcodedarkhc.toml +0 -0
  565. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/xcodelight.toml +0 -0
  566. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/xcodelighthc.toml +0 -0
  567. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/xcodewwdc.toml +0 -0
  568. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/zenbones-dark.toml +0 -0
  569. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/zenbones-light.toml +0 -0
  570. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/zenbones.toml +0 -0
  571. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/zenburn.toml +0 -0
  572. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/zenburned.toml +0 -0
  573. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/zenwritten-dark.toml +0 -0
  574. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/themes/zenwritten-light.toml +0 -0
  575. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/tools/__init__.py +0 -0
  576. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/tools/azure_tools.py +0 -0
  577. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/tools/code_tools.py +0 -0
  578. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/tools/file_tools.py +0 -0
  579. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/tools/github_tools.py +0 -0
  580. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/tools/markdown_tools.py +0 -0
  581. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/tools/system_tools.py +0 -0
  582. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/tools/text_tools.py +0 -0
  583. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/tools/web_tools.py +0 -0
  584. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/tools/zendesk_tools.py +0 -0
  585. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/__init__.py +0 -0
  586. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/__init__.py +0 -0
  587. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/api/__init__.py +0 -0
  588. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/api/agent_management.py +0 -0
  589. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/api/flock_management.py +0 -0
  590. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/api/registry_viewer.py +0 -0
  591. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/chat.py +0 -0
  592. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/config.py +0 -0
  593. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/dependencies.py +0 -0
  594. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/main.py +0 -0
  595. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/middleware.py +0 -0
  596. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/models_ui.py +0 -0
  597. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/services/__init__.py +0 -0
  598. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/services/feedback_file_service.py +0 -0
  599. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/services/sharing_models.py +0 -0
  600. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/services/sharing_store.py +0 -0
  601. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/templates/theme_mapper.html +0 -0
  602. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/theme_mapper.py +0 -0
  603. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/app/utils.py +0 -0
  604. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/run.py +0 -0
  605. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/static/css/chat.css +0 -0
  606. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/static/css/components.css +0 -0
  607. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/static/css/header.css +0 -0
  608. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/static/css/layout.css +0 -0
  609. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/static/css/sidebar.css +0 -0
  610. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/static/css/two-pane.css +0 -0
  611. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/base.html +0 -0
  612. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/chat.html +0 -0
  613. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/chat_settings.html +0 -0
  614. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/flock_editor.html +0 -0
  615. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/index.html +0 -0
  616. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_agent_detail_form.html +0 -0
  617. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_agent_list.html +0 -0
  618. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_agent_manager_view.html +0 -0
  619. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_agent_tools_checklist.html +0 -0
  620. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_chat_container.html +0 -0
  621. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_chat_messages.html +0 -0
  622. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_chat_settings_form.html +0 -0
  623. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_create_flock_form.html +0 -0
  624. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_dashboard_flock_detail.html +0 -0
  625. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_dashboard_flock_file_list.html +0 -0
  626. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_dashboard_flock_properties_preview.html +0 -0
  627. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_dashboard_upload_flock_form.html +0 -0
  628. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_dynamic_input_form_content.html +0 -0
  629. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_env_vars_table.html +0 -0
  630. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_execution_view_container.html +0 -0
  631. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_flock_file_list.html +0 -0
  632. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_flock_properties_form.html +0 -0
  633. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_flock_upload_form.html +0 -0
  634. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_header_flock_status.html +0 -0
  635. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_load_manager_view.html +0 -0
  636. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_registry_table.html +0 -0
  637. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_registry_viewer_content.html +0 -0
  638. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_results_display.html +0 -0
  639. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_settings_env_content.html +0 -0
  640. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_settings_theme_content.html +0 -0
  641. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_settings_view.html +0 -0
  642. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_share_chat_link_snippet.html +0 -0
  643. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_share_link_snippet.html +0 -0
  644. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_sidebar.html +0 -0
  645. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_structured_data_view.html +0 -0
  646. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/partials/_theme_preview.html +0 -0
  647. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/registry_viewer.html +0 -0
  648. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/webapp/templates/shared_run_page.html +0 -0
  649. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/workflow/__init__.py +0 -0
  650. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/workflow/agent_activities.py +0 -0
  651. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/workflow/flock_workflow.py +0 -0
  652. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/workflow/temporal_config.py +0 -0
  653. {flock_core-0.4.532 → flock_core-0.4.533}/src/flock/workflow/temporal_setup.py +0 -0
  654. {flock_core-0.4.532 → flock_core-0.4.533}/test_store_integration.py +0 -0
  655. {flock_core-0.4.532 → flock_core-0.4.533}/tests/__init__.py +0 -0
  656. {flock_core-0.4.532 → flock_core-0.4.533}/tests/api/test_custom_endpoints.py +0 -0
  657. {flock_core-0.4.532 → flock_core-0.4.533}/tests/core/test_flock_batch.py +0 -0
  658. {flock_core-0.4.532 → flock_core-0.4.533}/tests/core/test_flock_core.py +0 -0
  659. {flock_core-0.4.532 → flock_core-0.4.533}/tests/integration/__init__.py +0 -0
  660. {flock_core-0.4.532 → flock_core-0.4.533}/tests/integration/test_shared_link_store.py +0 -0
  661. {flock_core-0.4.532 → flock_core-0.4.533}/tests/modules/test_enterprise_memory_store.py +0 -0
  662. {flock_core-0.4.532 → flock_core-0.4.533}/tests/modules/test_vector_adapters.py +0 -0
  663. {flock_core-0.4.532 → flock_core-0.4.533}/tests/serialization/__init__.py +0 -0
  664. {flock_core-0.4.532 → flock_core-0.4.533}/tests/serialization/test_enhanced_serialization.py +0 -0
  665. {flock_core-0.4.532 → flock_core-0.4.533}/tests/serialization/test_file_path_serialization.py +0 -0
  666. {flock_core-0.4.532 → flock_core-0.4.533}/tests/serialization/test_flock_serializer.py +0 -0
  667. {flock_core-0.4.532 → flock_core-0.4.533}/tests/serialization/test_nested_serialization.py +0 -0
  668. {flock_core-0.4.532 → flock_core-0.4.533}/tests/serialization/test_yaml_serialization.py +0 -0
  669. {flock_core-0.4.532 → flock_core-0.4.533}/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.532
3
+ Version: 0.4.533
4
4
  Summary: Declarative LLM Orchestration at Scale
5
5
  Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
6
6
  License-File: LICENSE
@@ -0,0 +1,67 @@
1
+ # Production Tool Set Switch Plan
2
+
3
+ ## Context
4
+ - `FlockAgent.evaluate` currently always forwards `self.tools` to the evaluator; there is no concept of alternate tool bundles.
5
+ - Orchestrated runs (`Flock.run_async` → `workflow.activities.run_agent`) do not pass per-run options beyond the initial inputs stored in `FlockContext`.
6
+ - Web execution (`htmx_run_flock` → `run_current_flock_service`) and REST (`POST /run/flock`) both end up calling `Flock.run_async` with hard-coded parameters; HTML form/templates have no affordance for toggling tool usage.
7
+ - Serialization (`FlockAgent.to_dict/from_dict` and `FlockSerializer`) only know about a single tool list, so persisted YAML/JSON would currently lose any secondary tool configuration.
8
+
9
+ ## Proposed Changes
10
+ 1. **Agent Model & Serialization**
11
+ - Introduce `production_tools: list[Callable] | None` on `FlockAgent` (excluded from serialization by default).
12
+ - Update `FlockAgent.to_dict/from_dict` plus `FlockSerializer` to persist and restore both tool collections.
13
+ - Add a helper such as `_resolve_tool_set(tool_set: Literal['dev','production'])` that returns the right list (dev list remains backward compatible default).
14
+
15
+ 2. **Execution Flow**
16
+ - Extend `FlockAgent.run/run_async/evaluate` signatures with `use_production_tools: bool = False` (keyword-only for clarity).
17
+ - Store the chosen tool set on the stack (no shared mutation) and have `evaluate` call the helper to pick the correct tool bundle when invoking the evaluator.
18
+ - Allow orchestrated runs to surface the choice via a new context variable (e.g. `FLOCK_TOOL_SET`) so that `workflow.activities.run_agent` can pass the flag when iterating agents.
19
+
20
+ 3. **Flock Orchestrator**
21
+ - Add the same boolean flag to `Flock.run/run_async` (and by extension `run_batch_async` if batch runs should support it), defaulting to dev tools.
22
+ - When initializing the context (`initialize_context`) persist the selection, and ensure both local (`run_local_workflow`) and Temporal execution paths propagate it down to each agent invocation.
23
+
24
+ 4. **API & Services**
25
+ - Extend `FlockAPIRequest` with `use_production_tools: bool = False`, update the REST handler to forward the flag into `_execute_flock_run_task`.
26
+ - Update `run_current_flock_service` and any other server-side helper that triggers `Flock.run_async` so the flag is threaded through.
27
+ - Review/adjust other entry points (CLI helpers, schedulers, shared-run flows) for calls to `Flock.run_async` or `FlockAgent.run_async` to either expose the flag or explicitly opt into dev tools.
28
+
29
+ 5. **Web UI**
30
+ - Modify `partials/_execution_form.html` to add a checkbox labelled for production tools.
31
+ - Add a confirmation modal/JS prompt before submitting when the checkbox is checked, ensuring HTMX submission includes the new form value.
32
+ - Adjust `htmx_run_flock` to parse the form flag and pass it to `run_current_flock_service`; update the rendered form state as needed.
33
+
34
+ 6. **Tool Registration Utilities**
35
+ - Update helper factories (`FlockFactory.create_default_agent`, editor service for agent CRUD) to accept and wire `production_tools` if provided so UI/editor flows can manage both sets without manual patching.
36
+
37
+ ## Validation Plan
38
+ - Unit-style exercise: new test or dummied script ensuring an agent with distinct dev/prod tool lists executes the correct callable based on the flag.
39
+ - Web layer smoke test: via HTMX form submission, confirm the checkbox toggles which tool is invoked (can be logged/printed during dev).
40
+ - REST test: `uv run flock --web` and POST to `/ui/api/run/flock` with `use_production_tools=true`, verify response indicates production tool path.
41
+ - Regression sweep: run `uv run pytest` (or a focused subset) to ensure serialization changes don’t break existing expectations.
42
+
43
+ ## Open Considerations
44
+ - Confirm whether shared-run or batch workflows must surface the flag (requirement only mentions direct runs; plan assumes batch remains dev-only unless requested otherwise).
45
+ - Decide how to handle agents lacking a production tool list when the flag is enabled (proposed behaviour: fall back to dev tools, plus warning log).
46
+ - Ensure concurrency safety if multiple runs toggle tool sets concurrently—using per-call parameters instead of mutating agent state should avoid cross-talk.
47
+
48
+ ## Implementation Summary
49
+
50
+ - **Agent Model Extensions**
51
+ - Added a `production_tools` field and runtime helper `_get_runtime_tools`, enabling evaluators to receive either the default or production list without mutating agent state (`src/flock/core/flock_agent.py#L100`, `src/flock/core/flock_agent.py#L334`).
52
+ - Serialization/deserialization updated to persist both tool collections, plus registration of production tools during flock export (`src/flock/core/flock_agent.py#L724`, `src/flock/core/flock_agent.py#L930`, `src/flock/core/serialization/flock_serializer.py#L262`).
53
+ - `FlockFactory.create_default_agent` accepts an optional production list for UI/editor flows (`src/flock/core/flock_factory.py#L398`).
54
+
55
+ - **Execution Propagation**
56
+ - `Flock.run/run_async` now accept `use_production_tools`; the flag is stored in context via `initialize_context` for downstream consumers (`src/flock/core/flock.py#L465`, `src/flock/core/context/context_manager.py#L14`).
57
+ - Local and Temporal workflows read the shared context value before invoking each agent, ensuring chained agents share the same selection (`src/flock/workflow/activities.py#L68`, `src/flock/workflow/agent_execution_activity.py#L81`).
58
+
59
+ - **API & UI Integration**
60
+ - REST model/endpoint extended with a `use_production_tools` boolean that is forwarded into flock execution (`src/flock/core/api/models.py#L17`, `src/flock/core/api/endpoints.py#L81`).
61
+ - Web execution form gains a confirmation-backed checkbox; HTMX handler and service propagate the flag to `Flock.run_async` (`src/flock/webapp/templates/partials/_execution_form.html#L37`, `src/flock/webapp/app/api/execution.py#L145`, `src/flock/webapp/app/services/flock_service.py#L249`).
62
+
63
+ - **Testing & Example**
64
+ - Added `examples/02-core-concepts/10-production-tools-toggle.py`, a compact integration script that drives the new flag through `Flock.run` and prints tool usage, validated via `uv run` with model `openai/gpt-4.1`.
65
+
66
+ - **Outcome**
67
+ - Agents default to development tools, but a run-wide toggle can switch all agents in the context to their production tool set, falling back gracefully when unspecified. The web UI and REST API surface the new control, while serialization keeps both tool bundles intact for config handoff.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "flock-core"
3
- version = "0.4.532"
3
+ version = "0.4.533"
4
4
  description = "Declarative LLM Orchestration at Scale"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -78,7 +78,9 @@ def create_api_router() -> APIRouter:
78
78
  # For this refactoring step, let's assume a helper `_execute_flock_run` exists
79
79
  # that we can call.
80
80
 
81
- async def _execute_flock_run_task(run_id_task, agent_name_task, inputs_task):
81
+ async def _execute_flock_run_task(
82
+ run_id_task, agent_name_task, inputs_task, use_production_tools_task
83
+ ):
82
84
  # This is a simplified version of what was in FlockAPI._run_flock
83
85
  try:
84
86
  if agent_name_task not in flock_instance.agents:
@@ -89,7 +91,9 @@ def create_api_router() -> APIRouter:
89
91
  typed_inputs = inputs_task # Simplified for now
90
92
 
91
93
  result = await flock_instance.run_async(
92
- start_agent=agent_name_task, input=typed_inputs
94
+ start_agent=agent_name_task,
95
+ input=typed_inputs,
96
+ use_production_tools=use_production_tools_task,
93
97
  )
94
98
  run_store.update_run_result(run_id_task, result)
95
99
  except Exception as e_task:
@@ -106,6 +110,7 @@ def create_api_router() -> APIRouter:
106
110
  run_id,
107
111
  request_model.agent_name,
108
112
  processed_inputs,
113
+ request_model.use_production_tools,
109
114
  )
110
115
  run_store.update_run_status(run_id, "running")
111
116
  response_data.status = "running"
@@ -114,7 +119,10 @@ def create_api_router() -> APIRouter:
114
119
  f"Running flock '{request_model.agent_name}' synchronously (run_id: {run_id})"
115
120
  )
116
121
  await _execute_flock_run_task(
117
- run_id, request_model.agent_name, processed_inputs
122
+ run_id,
123
+ request_model.agent_name,
124
+ processed_inputs,
125
+ request_model.use_production_tools,
118
126
  )
119
127
  response_data = run_store.get_run(run_id)
120
128
 
@@ -17,6 +17,10 @@ class FlockAPIRequest(BaseModel):
17
17
  async_run: bool = Field(
18
18
  default=False, description="Whether to run asynchronously"
19
19
  )
20
+ use_production_tools: bool = Field(
21
+ default=False,
22
+ description="If true, run agents with their production tool set where available",
23
+ )
20
24
 
21
25
 
22
26
  class FlockAPIResponse(BaseModel):
@@ -7,6 +7,7 @@ from flock.core.context.context_vars import (
7
7
  FLOCK_LOCAL_DEBUG,
8
8
  FLOCK_MODEL,
9
9
  FLOCK_RUN_ID,
10
+ FLOCK_USE_PRODUCTION_TOOLS,
10
11
  )
11
12
 
12
13
 
@@ -17,6 +18,7 @@ def initialize_context(
17
18
  run_id: str,
18
19
  local_debug: bool,
19
20
  model: str,
21
+ use_production_tools: bool,
20
22
  ) -> None:
21
23
  """Initialize the FlockContext with standard variables before running an agent.
22
24
 
@@ -35,3 +37,4 @@ def initialize_context(
35
37
  context.run_id = run_id
36
38
  context.set_variable(FLOCK_RUN_ID, run_id)
37
39
  context.set_variable(FLOCK_MODEL, model)
40
+ context.set_variable(FLOCK_USE_PRODUCTION_TOOLS, use_production_tools)
@@ -8,3 +8,4 @@ FLOCK_LAST_AGENT = "flock.last_agent"
8
8
  FLOCK_LAST_RESULT = "flock.last_result"
9
9
  FLOCK_MODEL = "flock.model"
10
10
  FLOCK_BATCH_SILENT_MODE = "flock.batch_silent"
11
+ FLOCK_USE_PRODUCTION_TOOLS = "flock.use_production_tools"
@@ -472,6 +472,8 @@ class Flock(BaseModel, Serializable):
472
472
  agents: list[FlockAgent] | None = None,
473
473
  servers: list[FlockMCPServerBase] | None = None,
474
474
  memo: dict[str, Any] | None = None,
475
+ *,
476
+ use_production_tools: bool = False,
475
477
  ) -> Box | dict:
476
478
  return self._run_sync(
477
479
  self.run_async(
@@ -483,6 +485,7 @@ class Flock(BaseModel, Serializable):
483
485
  agents=agents,
484
486
  servers=servers,
485
487
  memo=memo,
488
+ use_production_tools=use_production_tools,
486
489
  )
487
490
  )
488
491
 
@@ -496,6 +499,8 @@ class Flock(BaseModel, Serializable):
496
499
  agents: list[FlockAgent] | None = None,
497
500
  servers: list[FlockMCPServerBase] | None = None,
498
501
  memo: dict[str, Any] | None = None,
502
+ *,
503
+ use_production_tools: bool = False,
499
504
  ) -> Box | dict:
500
505
  """Entry point for running an agent system asynchronously."""
501
506
  # Import here to allow forward reference resolution
@@ -588,6 +593,7 @@ class Flock(BaseModel, Serializable):
588
593
  effective_run_id,
589
594
  not self.enable_temporal, # local_debug is inverse of enable_temporal
590
595
  self.model or resolved_start_agent.model or DEFAULT_MODEL,
596
+ use_production_tools,
591
597
  )
592
598
  # Add agent definitions to context for routing/serialization within workflow
593
599
  for agent_name_iter, agent_instance_iter in self.agents.items():
@@ -94,9 +94,13 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
94
94
  tools: list[Callable[..., Any]] | None = (
95
95
  Field( # Assume tools are always callable for serialization simplicity
96
96
  default=None,
97
- description="List of callable tools the agent can use. These must be registered.",
97
+ description="List of callable tools the agent can use for development/default runs.",
98
98
  )
99
99
  )
100
+ production_tools: list[Callable[..., Any]] | None = Field(
101
+ default=None,
102
+ description="Optional list of callable tools to use when production tool set is enabled.",
103
+ )
100
104
  servers: list[str | FlockMCPServerBase] | None = Field(
101
105
  default=None,
102
106
  description="List of MCP Servers the agent can use to enhance its capabilities. These must be registered.",
@@ -151,6 +155,7 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
151
155
  input: SignatureType = None,
152
156
  output: SignatureType = None,
153
157
  tools: list[Callable[..., Any]] | None = None,
158
+ production_tools: list[Callable[..., Any]] | None = None,
154
159
  servers: list[str | FlockMCPServerBase] | None = None,
155
160
  evaluator: "FlockEvaluator | None" = None,
156
161
  handoff_router: "FlockRouter | None" = None,
@@ -168,6 +173,7 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
168
173
  input=input, # Store the raw input spec
169
174
  output=output, # Store the raw output spec
170
175
  tools=tools,
176
+ production_tools=production_tools,
171
177
  servers=servers,
172
178
  write_to_file=write_to_file,
173
179
  wait_for_input=wait_for_input,
@@ -325,7 +331,27 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
325
331
  )
326
332
  span.record_exception(module_error)
327
333
 
328
- async def evaluate(self, inputs: dict[str, Any]) -> dict[str, Any]:
334
+ def _get_runtime_tools(self, use_production_tools: bool | None = None) -> list[Callable[..., Any]]:
335
+ """Select the tool list for the current run."""
336
+ if use_production_tools and self.production_tools:
337
+ logger.info(
338
+ "Using production tool set",
339
+ agent=self.name,
340
+ tool_count=len(self.production_tools),
341
+ )
342
+ return list(self.production_tools)
343
+
344
+ if use_production_tools and not self.production_tools:
345
+ logger.warning(
346
+ "Production tool set requested but not configured; falling back to default tools",
347
+ agent=self.name,
348
+ )
349
+
350
+ return list(self.tools or [])
351
+
352
+ async def evaluate(
353
+ self, inputs: dict[str, Any], *, use_production_tools: bool | None = None
354
+ ) -> dict[str, Any]:
329
355
  """Core evaluation logic, calling the assigned evaluator and modules."""
330
356
  if not self.evaluator:
331
357
  raise RuntimeError(
@@ -351,11 +377,7 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
351
377
  # Actual evaluation
352
378
  try:
353
379
  # Pass registered tools if the evaluator needs them
354
- registered_tools = []
355
- if self.tools:
356
- # Ensure tools are actually retrieved/validated if needed by evaluator type
357
- # For now, assume evaluator handles tool resolution if necessary
358
- registered_tools = self.tools
380
+ registered_tools = self._get_runtime_tools(use_production_tools)
359
381
 
360
382
  # Retrieve available mcp_tools if the evaluator needs them
361
383
  mcp_tools = []
@@ -415,7 +437,10 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
415
437
 
416
438
  async def _final_handler():
417
439
  return await self.evaluator.evaluate(
418
- self, current_inputs, registered_tools
440
+ self,
441
+ current_inputs,
442
+ registered_tools,
443
+ mcp_tools=mcp_tools,
419
444
  )
420
445
 
421
446
  idx = 0
@@ -434,20 +459,26 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
434
459
  else:
435
460
  # No pipeline registered, direct evaluation
436
461
  result = await self.evaluator.evaluate(
437
- self, current_inputs, registered_tools
462
+ self,
463
+ current_inputs,
464
+ registered_tools,
465
+ mcp_tools=mcp_tools,
438
466
  )
439
467
  except ImportError:
440
468
  # wd.di not installed – fall back
441
469
  result = await self.evaluator.evaluate(
442
- self, current_inputs, registered_tools
470
+ self,
471
+ current_inputs,
472
+ registered_tools,
473
+ mcp_tools=mcp_tools,
443
474
  )
444
475
  else:
445
476
  # No DI container – standard execution
446
477
  result = await self.evaluator.evaluate(
447
478
  self,
448
- current_inputs,
449
- registered_tools,
450
- mcp_tools=mcp_tools,
479
+ current_inputs,
480
+ registered_tools,
481
+ mcp_tools=mcp_tools,
451
482
  )
452
483
  except Exception as eval_error:
453
484
  logger.error(
@@ -477,7 +508,9 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
477
508
  logger.debug(f"Evaluation completed for agent '{self.name}'")
478
509
  return current_result
479
510
 
480
- def run(self, inputs: dict[str, Any]) -> dict[str, Any]:
511
+ def run(
512
+ self, inputs: dict[str, Any], *, use_production_tools: bool | None = None
513
+ ) -> dict[str, Any]:
481
514
  """Synchronous wrapper for run_async."""
482
515
  try:
483
516
  loop = asyncio.get_running_loop()
@@ -486,7 +519,9 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
486
519
  ): # 'RuntimeError: There is no current event loop...'
487
520
  loop = asyncio.new_event_loop()
488
521
  asyncio.set_event_loop(loop)
489
- return loop.run_until_complete(self.run_async(inputs))
522
+ return loop.run_until_complete(
523
+ self.run_async(inputs, use_production_tools=use_production_tools)
524
+ )
490
525
 
491
526
  def set_model(self, model: str):
492
527
  """Set the model for the agent and its evaluator."""
@@ -505,14 +540,18 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
505
540
  f"Agent '{self.name}' has no evaluator to set model for."
506
541
  )
507
542
 
508
- async def run_async(self, inputs: dict[str, Any]) -> dict[str, Any]:
543
+ async def run_async(
544
+ self, inputs: dict[str, Any], *, use_production_tools: bool | None = None
545
+ ) -> dict[str, Any]:
509
546
  """Asynchronous execution logic with lifecycle hooks."""
510
547
  with tracer.start_as_current_span("agent.run") as span:
511
548
  span.set_attribute("agent.name", self.name)
512
549
  span.set_attribute("inputs", str(inputs))
513
550
  try:
514
551
  await self.initialize(inputs)
515
- result = await self.evaluate(inputs)
552
+ result = await self.evaluate(
553
+ inputs, use_production_tools=use_production_tools
554
+ )
516
555
  await self.terminate(inputs, result)
517
556
  span.set_attribute("result", str(result))
518
557
  logger.info("Agent run completed", agent=self.name)
@@ -724,6 +763,7 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
724
763
  "modules",
725
764
  "handoff_router",
726
765
  "tools",
766
+ "production_tools",
727
767
  "servers",
728
768
  ]
729
769
 
@@ -869,6 +909,34 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
869
909
  f"Added {len(serialized_tools)} tools to agent '{self.name}'"
870
910
  )
871
911
 
912
+ if self.production_tools:
913
+ logger.debug(
914
+ f"Serializing {len(self.production_tools)} production tools for agent '{self.name}'"
915
+ )
916
+ serialized_prod_tools = []
917
+ for tool in self.production_tools:
918
+ if callable(tool) and not isinstance(tool, type):
919
+ path_str = FlockRegistry.get_callable_path_string(tool)
920
+ if path_str:
921
+ func_name = path_str.split(".")[-1]
922
+ serialized_prod_tools.append(func_name)
923
+ logger.debug(
924
+ f"Added production tool '{func_name}' (from path '{path_str}') to agent '{self.name}'"
925
+ )
926
+ else:
927
+ logger.warning(
928
+ f"Could not get path string for production tool {tool} in agent '{self.name}'. Skipping."
929
+ )
930
+ else:
931
+ logger.warning(
932
+ f"Non-callable item found in production tools list for agent '{self.name}': {tool}. Skipping."
933
+ )
934
+ if serialized_prod_tools:
935
+ data["production_tools"] = serialized_prod_tools
936
+ logger.debug(
937
+ f"Added {len(serialized_prod_tools)} production tools to agent '{self.name}'"
938
+ )
939
+
872
940
  if is_descrition_callable:
873
941
  path_str = FlockRegistry.get_callable_path_string(self.description)
874
942
  if path_str:
@@ -930,6 +998,7 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
930
998
  component_configs = {}
931
999
  callable_configs = {}
932
1000
  tool_config = []
1001
+ production_tool_config = []
933
1002
  servers_config = []
934
1003
  agent_data = {}
935
1004
 
@@ -945,6 +1014,7 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
945
1014
  "output_callable",
946
1015
  ]
947
1016
  tool_key = "tools"
1017
+ production_tool_key = "production_tools"
948
1018
 
949
1019
  servers_key = "mcp_servers"
950
1020
 
@@ -955,10 +1025,13 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
955
1025
  callable_configs[key] = value
956
1026
  elif key == tool_key and value is not None:
957
1027
  tool_config = value # Expecting a list of names
1028
+ elif key == production_tool_key and value is not None:
1029
+ production_tool_config = value
958
1030
  elif key == servers_key and value is not None:
959
1031
  servers_config = value # Expecting a list of names
960
1032
  elif key not in component_keys + callable_keys + [
961
1033
  tool_key,
1034
+ production_tool_key,
962
1035
  servers_key,
963
1036
  ]: # Avoid double adding
964
1037
  agent_data[key] = value
@@ -1075,6 +1148,33 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
1075
1148
  exc_info=True,
1076
1149
  )
1077
1150
 
1151
+ agent.production_tools = []
1152
+ if production_tool_config:
1153
+ logger.debug(
1154
+ f"Deserializing {len(production_tool_config)} production tools for '{agent.name}'"
1155
+ )
1156
+ for tool_name_or_path in production_tool_config:
1157
+ try:
1158
+ found_tool = registry.get_callable(tool_name_or_path)
1159
+ if found_tool and callable(found_tool):
1160
+ agent.production_tools.append(found_tool)
1161
+ logger.debug(
1162
+ f"Resolved and added production tool '{tool_name_or_path}' for agent '{agent.name}'"
1163
+ )
1164
+ else:
1165
+ logger.warning(
1166
+ f"Registry returned non-callable for production tool '{tool_name_or_path}' for agent '{agent.name}'. Skipping."
1167
+ )
1168
+ except (ValueError) as e:
1169
+ logger.warning(
1170
+ f"Could not resolve production tool '{tool_name_or_path}' for agent '{agent.name}': {e}. Skipping."
1171
+ )
1172
+ except Exception as e:
1173
+ logger.error(
1174
+ f"Unexpected error resolving production tool '{tool_name_or_path}' for agent '{agent.name}': {e}. Skipping.",
1175
+ exc_info=True,
1176
+ )
1177
+
1078
1178
  # --- Deserialize Servers ---
1079
1179
  agent.servers = [] # Initialize Servers list.
1080
1180
  if servers_config:
@@ -398,6 +398,7 @@ class FlockFactory:
398
398
  input: SignatureType = None,
399
399
  output: SignatureType = None,
400
400
  tools: list[Callable[..., Any] | Any] | None = None,
401
+ production_tools: list[Callable[..., Any] | Any] | None = None,
401
402
  servers: list[str | FlockMCPServerBase] | None = None,
402
403
  use_cache: bool = True,
403
404
  enable_rich_tables: bool = False,
@@ -443,6 +444,7 @@ class FlockFactory:
443
444
  input=input,
444
445
  output=output,
445
446
  tools=tools,
447
+ production_tools=production_tools,
446
448
  servers=servers,
447
449
  model=model,
448
450
  description=description,
@@ -262,6 +262,32 @@ class FlockSerializer:
262
262
  )
263
263
  )
264
264
 
265
+ production_tool_names = agent_data.get("production_tools")
266
+ if production_tool_names:
267
+ logger.debug(
268
+ f"Extracting production tool information from agent '{name}': {production_tool_names}"
269
+ )
270
+ prod_tool_objs = (
271
+ agent_instance.production_tools
272
+ if agent_instance.production_tools
273
+ else []
274
+ )
275
+ for i, tool_name in enumerate(production_tool_names):
276
+ if tool_name not in components and i < len(prod_tool_objs):
277
+ tool = prod_tool_objs[i]
278
+ if callable(tool) and not isinstance(tool, type):
279
+ path_str = (
280
+ FlockRegistry.get_callable_path_string(tool)
281
+ )
282
+ if path_str:
283
+ logger.debug(
284
+ f"Adding production tool '{tool_name}' (from path '{path_str}') to components"
285
+ )
286
+ components[tool_name] = (
287
+ FlockSerializer._get_callable_definition(
288
+ path_str, tool_name, path_type
289
+ )
290
+ )
265
291
  except Exception as e:
266
292
  logger.error(
267
293
  f"Failed to serialize agent '{name}' within Flock: {e}",
@@ -144,6 +144,9 @@ async def htmx_run_flock(
144
144
 
145
145
  form_data = await request.form()
146
146
  start_agent_name = form_data.get("start_agent_name")
147
+ use_production_flag = str(
148
+ form_data.get("use_production_tools", "")
149
+ ).lower() in {"true", "on", "1"}
147
150
 
148
151
  if not start_agent_name:
149
152
  logger.warning("HTMX Run (Regular): Starting agent not selected.")
@@ -204,7 +207,10 @@ async def htmx_run_flock(
204
207
  )
205
208
 
206
209
  result_data = await run_current_flock_service(
207
- start_agent_name, inputs, request.app.state
210
+ start_agent_name,
211
+ inputs,
212
+ request.app.state,
213
+ use_production_tools=use_production_flag,
208
214
  )
209
215
 
210
216
  raw_json_for_template = json.dumps(
@@ -250,9 +250,14 @@ async def run_current_flock_service(
250
250
  start_agent_name: str,
251
251
  inputs: dict[str, Any],
252
252
  app_state: Any,
253
+ *,
254
+ use_production_tools: bool = False,
253
255
  ) -> dict[str, Any]:
254
256
  """Runs the specified agent from the current flock instance in app_state."""
255
- logger.info(f"Attempting to run agent: {start_agent_name} using flock from app_state.")
257
+ logger.info(
258
+ f"Attempting to run agent: {start_agent_name} using flock from app_state.",
259
+ use_production_tools=use_production_tools,
260
+ )
256
261
 
257
262
  current_flock: Flock | None = getattr(app_state, "flock_instance", None)
258
263
  run_store: RunStore | None = getattr(app_state, "run_store", None)
@@ -281,7 +286,10 @@ async def run_current_flock_service(
281
286
  logger.info(f"Executing agent '{start_agent_name}' from flock '{current_flock.name}' using app_state.")
282
287
  # Direct execution using the flock from app_state
283
288
  result = await current_flock.run_async(
284
- start_agent=start_agent_name, input=inputs, box_result=False
289
+ start_agent=start_agent_name,
290
+ input=inputs,
291
+ box_result=False,
292
+ use_production_tools=use_production_tools,
285
293
  )
286
294
  # Store run details using the run_store from app_state
287
295
  if hasattr(run_store, "add_run_details"): # Check if RunStore has this method
@@ -34,6 +34,15 @@
34
34
  <progress indeterminate></progress> Loading input form...
35
35
  </div>
36
36
 
37
+ <fieldset style="margin-top: 1rem;">
38
+ <label style="display: flex; gap: 0.5rem; align-items: center;">
39
+ <input type="checkbox" name="use_production_tools" value="true"
40
+ @change="if ($event.target.checked && !confirm('Use production tool set? These calls may access live systems.')) { $event.target.checked = false; }">
41
+ <span>Use production tool set</span>
42
+ </label>
43
+ <small>Production tools may connect to live services.</small>
44
+ </fieldset>
45
+
37
46
  <button type="submit" {% if not flock.agents %}disabled{% endif %}>Run Flock</button>
38
47
  <div id="share-agent-link-container" style="margin-top: 0.5rem;">
39
48
  <a href="#" id="shareAgentHtmxLink" hx-post="{{ url_for('htmx_generate_share_link') }}"
@@ -115,4 +124,4 @@
115
124
  // If there are other unrelated JavaScript functions in this script block,
116
125
  // they would remain.
117
126
  });
118
- </script>
127
+ </script>
@@ -6,7 +6,11 @@ from opentelemetry import trace
6
6
  from temporalio import activity
7
7
 
8
8
  from flock.core.context.context import FlockContext
9
- from flock.core.context.context_vars import FLOCK_CURRENT_AGENT, FLOCK_MODEL
9
+ from flock.core.context.context_vars import (
10
+ FLOCK_CURRENT_AGENT,
11
+ FLOCK_MODEL,
12
+ FLOCK_USE_PRODUCTION_TOOLS,
13
+ )
10
14
  from flock.core.flock_agent import FlockAgent
11
15
  from flock.core.flock_registry import get_registry
12
16
  from flock.core.flock_router import HandOffRequest
@@ -64,7 +68,19 @@ async def run_agent(context: FlockContext) -> dict:
64
68
  with tracer.start_as_current_span("execute_agent") as exec_span:
65
69
  logger.info("Executing agent", agent=agent.name)
66
70
  try:
67
- result = await agent.run_async(agent_inputs)
71
+ use_prod_tools = bool(
72
+ context.get_variable(
73
+ FLOCK_USE_PRODUCTION_TOOLS, False
74
+ )
75
+ )
76
+ exec_span.set_attribute(
77
+ "tools.selection",
78
+ "production" if use_prod_tools else "dev",
79
+ )
80
+ result = await agent.run_async(
81
+ agent_inputs,
82
+ use_production_tools=use_prod_tools,
83
+ )
68
84
  exec_span.set_attribute("result", str(result))
69
85
  logger.debug(
70
86
  "Agent execution completed", agent=agent.name
@@ -10,7 +10,10 @@ from temporalio import activity
10
10
  # Third-party imports only within activity functions if needed, or pass context
11
11
  # For core flock types, import directly
12
12
  from flock.core.context.context import FlockContext
13
- from flock.core.context.context_vars import FLOCK_MODEL
13
+ from flock.core.context.context_vars import (
14
+ FLOCK_MODEL,
15
+ FLOCK_USE_PRODUCTION_TOOLS,
16
+ )
14
17
  from flock.core.flock_agent import FlockAgent # Import concrete class if needed
15
18
  from flock.core.flock_registry import get_registry
16
19
  from flock.core.flock_router import HandOffRequest
@@ -78,8 +81,17 @@ async def execute_single_agent(agent_name: str, context: FlockContext) -> dict:
78
81
  )
79
82
 
80
83
  try:
84
+ use_prod_tools = bool(
85
+ context.get_variable(FLOCK_USE_PRODUCTION_TOOLS, False)
86
+ )
87
+ span.set_attribute(
88
+ "tools.selection",
89
+ "production" if use_prod_tools else "dev",
90
+ )
81
91
  # Execute just this agent
82
- result = await agent.run_async(agent_inputs)
92
+ result = await agent.run_async(
93
+ agent_inputs, use_production_tools=use_prod_tools
94
+ )
83
95
  # Avoid logging potentially large results directly to span attributes
84
96
  result_str = str(result)
85
97
  span.set_attribute("result.type", type(result).__name__)