flock-core 0.4.528__tar.gz → 0.4.529__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.528 → flock_core-0.4.529}/CONTRIBUTING.md +8 -8
  2. {flock_core-0.4.528 → flock_core-0.4.529}/PKG-INFO +3 -1
  3. {flock_core-0.4.528 → flock_core-0.4.529}/SECURITY.md +1 -1
  4. flock_core-0.4.529/docs/about/changelog.md +133 -0
  5. {flock_core-0.4.528 → flock_core-0.4.529}/docs/about/contributing.md +1 -5
  6. {flock_core-0.4.528 → flock_core-0.4.529}/docs/getting-started/installation.md +2 -2
  7. {flock_core-0.4.528 → flock_core-0.4.529}/docs/getting-started/quickstart.md +4 -4
  8. {flock_core-0.4.528 → flock_core-0.4.529}/pyproject.toml +3 -1
  9. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/api/execution.py +57 -146
  10. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/chat.py +44 -123
  11. flock_core-0.4.529/src/flock/webapp/app/services/feedback_file_service.py +363 -0
  12. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/services/sharing_store.py +44 -30
  13. flock_core-0.4.529/src/flock/webapp/templates/partials/_execution_form.html +118 -0
  14. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_registry_viewer_content.html +12 -3
  15. {flock_core-0.4.528 → flock_core-0.4.529}/uv.lock +5 -1
  16. flock_core-0.4.528/docs/about/changelog.md +0 -37
  17. flock_core-0.4.528/src/flock/webapp/templates/partials/_execution_form.html +0 -106
  18. {flock_core-0.4.528 → flock_core-0.4.529}/.devcontainer/devcontainer.json +0 -0
  19. {flock_core-0.4.528 → flock_core-0.4.529}/.env_template +0 -0
  20. {flock_core-0.4.528 → flock_core-0.4.529}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  21. {flock_core-0.4.528 → flock_core-0.4.529}/.github/ISSUE_TEMPLATE/documentation_improvement.yaml +0 -0
  22. {flock_core-0.4.528 → flock_core-0.4.529}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  23. {flock_core-0.4.528 → flock_core-0.4.529}/.github/ISSUE_TEMPLATE/question_support_request.yaml +0 -0
  24. {flock_core-0.4.528 → flock_core-0.4.529}/.github/ISSUE_TEMPLATE/vulnerability_report.md +0 -0
  25. {flock_core-0.4.528 → flock_core-0.4.529}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  26. {flock_core-0.4.528 → flock_core-0.4.529}/.github/workflows/.gitkeep +0 -0
  27. {flock_core-0.4.528 → flock_core-0.4.529}/.github/workflows/deploy-documentation.yml +0 -0
  28. {flock_core-0.4.528 → flock_core-0.4.529}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
  29. {flock_core-0.4.528 → flock_core-0.4.529}/.gitignore +0 -0
  30. {flock_core-0.4.528 → flock_core-0.4.529}/.gitmodules +0 -0
  31. {flock_core-0.4.528 → flock_core-0.4.529}/.vscode/launch.json +0 -0
  32. {flock_core-0.4.528 → flock_core-0.4.529}/.vscode/settings.json +0 -0
  33. {flock_core-0.4.528 → flock_core-0.4.529}/.vscode/tasks.json +0 -0
  34. {flock_core-0.4.528 → flock_core-0.4.529}/CODE_OF_CONDUCT.md +0 -0
  35. {flock_core-0.4.528 → flock_core-0.4.529}/LICENSE +0 -0
  36. {flock_core-0.4.528 → flock_core-0.4.529}/README.md +0 -0
  37. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/drawio/architecture.drawio +0 -0
  38. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/cli_outputs/out.png +0 -0
  39. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/components_chart.png +0 -0
  40. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/examples/01_01.png +0 -0
  41. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/examples/01_02.png +0 -0
  42. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/examples/01_03.png +0 -0
  43. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/examples/01_04.png +0 -0
  44. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/examples/01_05.png +0 -0
  45. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/examples/01_06.png +0 -0
  46. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/flock.png +0 -0
  47. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/flock_cli.png +0 -0
  48. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/flow_chart.png +0 -0
  49. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/getting-started/first_agent_00.png +0 -0
  50. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/hummingbird.png +0 -0
  51. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/icon.png +0 -0
  52. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/icon.png~ +0 -0
  53. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/logo.png +0 -0
  54. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/magpie.png +0 -0
  55. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/memory_concepts.png +0 -0
  56. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/memory_flow.png +0 -0
  57. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/memory_flow_chart.png +0 -0
  58. {flock_core-0.4.528 → flock_core-0.4.529}/docs/assets/images/readme_output.png +0 -0
  59. {flock_core-0.4.528 → flock_core-0.4.529}/docs/components/evaluators.md +0 -0
  60. {flock_core-0.4.528 → flock_core-0.4.529}/docs/components/index.md +0 -0
  61. {flock_core-0.4.528 → flock_core-0.4.529}/docs/components/modules.md +0 -0
  62. {flock_core-0.4.528 → flock_core-0.4.529}/docs/components/tools.md +0 -0
  63. {flock_core-0.4.528 → flock_core-0.4.529}/docs/core-concepts/agents.md +0 -0
  64. {flock_core-0.4.528 → flock_core-0.4.529}/docs/core-concepts/declarative.md +0 -0
  65. {flock_core-0.4.528 → flock_core-0.4.529}/docs/core-concepts/di.md +0 -0
  66. {flock_core-0.4.528 → flock_core-0.4.529}/docs/core-concepts/index.md +0 -0
  67. {flock_core-0.4.528 → flock_core-0.4.529}/docs/core-concepts/workflows.md +0 -0
  68. {flock_core-0.4.528 → flock_core-0.4.529}/docs/create_doc_boilerplate.py +0 -0
  69. {flock_core-0.4.528 → flock_core-0.4.529}/docs/deployment/index.md +0 -0
  70. {flock_core-0.4.528 → flock_core-0.4.529}/docs/deployment/temporal.md +0 -0
  71. {flock_core-0.4.528 → flock_core-0.4.529}/docs/getting-started/concepts.md +0 -0
  72. {flock_core-0.4.528 → flock_core-0.4.529}/docs/getting-started/configuration.md +0 -0
  73. {flock_core-0.4.528 → flock_core-0.4.529}/docs/getting-started/index.md +0 -0
  74. {flock_core-0.4.528 → flock_core-0.4.529}/docs/guides/chaining-agents.md +0 -0
  75. {flock_core-0.4.528 → flock_core-0.4.529}/docs/guides/custom-endpoints.md +0 -0
  76. {flock_core-0.4.528 → flock_core-0.4.529}/docs/guides/index.md +0 -0
  77. {flock_core-0.4.528 → flock_core-0.4.529}/docs/guides/temporal-configuration.md +0 -0
  78. {flock_core-0.4.528 → flock_core-0.4.529}/docs/index.md +0 -0
  79. {flock_core-0.4.528 → flock_core-0.4.529}/docs/interacting-with-flock/cli-tool.md +0 -0
  80. {flock_core-0.4.528 → flock_core-0.4.529}/docs/interacting-with-flock/index.md +0 -0
  81. {flock_core-0.4.528 → flock_core-0.4.529}/docs/interacting-with-flock/interactive-cli.md +0 -0
  82. {flock_core-0.4.528 → flock_core-0.4.529}/docs/interacting-with-flock/programmatic.md +0 -0
  83. {flock_core-0.4.528 → flock_core-0.4.529}/docs/interacting-with-flock/rest-api.md +0 -0
  84. {flock_core-0.4.528 → flock_core-0.4.529}/docs/interacting-with-flock/web-ui.md +0 -0
  85. {flock_core-0.4.528 → flock_core-0.4.529}/docs/reference/flock_agent.md +0 -0
  86. {flock_core-0.4.528 → flock_core-0.4.529}/docs/reference/index.md +0 -0
  87. {flock_core-0.4.528 → flock_core-0.4.529}/docs/release-notes/magpie.md +0 -0
  88. {flock_core-0.4.528 → flock_core-0.4.529}/docs/stylesheets/extra.css +0 -0
  89. {flock_core-0.4.528 → flock_core-0.4.529}/docs/wd-di.md +0 -0
  90. {flock_core-0.4.528 → flock_core-0.4.529}/mkdocs.yml +0 -0
  91. {flock_core-0.4.528 → flock_core-0.4.529}/requirements.txt +0 -0
  92. {flock_core-0.4.528 → flock_core-0.4.529}/scripts/code_collector.py +0 -0
  93. {flock_core-0.4.528 → flock_core-0.4.529}/scripts/create_docs.py +0 -0
  94. {flock_core-0.4.528 → flock_core-0.4.529}/scripts/ensure_uv.py +0 -0
  95. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/__init__.py +0 -0
  96. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/adapter/__init__.py +0 -0
  97. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/adapter/azure_adapter.py +0 -0
  98. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/adapter/chroma_adapter.py +0 -0
  99. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/adapter/faiss_adapter.py +0 -0
  100. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/adapter/pinecone_adapter.py +0 -0
  101. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/adapter/vector_base.py +0 -0
  102. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/assets/release_notes.md +0 -0
  103. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/config.py +0 -0
  104. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/constants.py +0 -0
  105. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/create_agent.py +0 -0
  106. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/create_flock.py +0 -0
  107. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/execute_flock.py +0 -0
  108. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/load_agent.py +0 -0
  109. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/load_examples.py +0 -0
  110. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/load_flock.py +0 -0
  111. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/load_release_notes.py +0 -0
  112. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/loaded_flock_cli.py +0 -0
  113. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/manage_agents.py +0 -0
  114. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/registry_management.py +0 -0
  115. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/runner.py +0 -0
  116. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/settings.py +0 -0
  117. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/utils.py +0 -0
  118. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/view_results.py +0 -0
  119. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/cli/yaml_editor.py +0 -0
  120. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/config.py +0 -0
  121. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/__init__.py +0 -0
  122. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/api/__init__.py +0 -0
  123. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/api/custom_endpoint.py +0 -0
  124. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/api/endpoints.py +0 -0
  125. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/api/main.py +0 -0
  126. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/api/models.py +0 -0
  127. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/api/run_store.py +0 -0
  128. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/api/runner.py +0 -0
  129. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/api/service.py +0 -0
  130. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/config/flock_agent_config.py +0 -0
  131. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/config/scheduled_agent_config.py +0 -0
  132. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/context/context.py +0 -0
  133. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/context/context_manager.py +0 -0
  134. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/context/context_vars.py +0 -0
  135. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/evaluation/utils.py +0 -0
  136. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/execution/batch_executor.py +0 -0
  137. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/execution/evaluation_executor.py +0 -0
  138. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/execution/local_executor.py +0 -0
  139. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/execution/opik_executor.py +0 -0
  140. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/execution/temporal_executor.py +0 -0
  141. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/flock.py +0 -0
  142. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/flock_agent.py +0 -0
  143. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/flock_evaluator.py +0 -0
  144. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/flock_factory.py +0 -0
  145. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/flock_module.py +0 -0
  146. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/flock_registry.py +0 -0
  147. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/flock_router.py +0 -0
  148. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/flock_scheduler.py +0 -0
  149. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/flock_server_manager.py +0 -0
  150. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/interpreter/python_interpreter.py +0 -0
  151. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/logging/__init__.py +0 -0
  152. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/logging/formatters/enum_builder.py +0 -0
  153. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/logging/formatters/theme_builder.py +0 -0
  154. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
  155. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/logging/formatters/themes.py +0 -0
  156. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/logging/logging.py +0 -0
  157. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
  158. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/logging/telemetry.py +0 -0
  159. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
  160. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
  161. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
  162. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/logging/trace_and_logged.py +0 -0
  163. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/mcp/__init__.py +0 -0
  164. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/mcp/flock_mcp_server.py +0 -0
  165. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/mcp/flock_mcp_tool_base.py +0 -0
  166. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/mcp/mcp_client.py +0 -0
  167. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/mcp/mcp_client_manager.py +0 -0
  168. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/mcp/mcp_config.py +0 -0
  169. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/mcp/types/__init__.py +0 -0
  170. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/mcp/types/callbacks.py +0 -0
  171. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/mcp/types/factories.py +0 -0
  172. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/mcp/types/handlers.py +0 -0
  173. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/mcp/types/types.py +0 -0
  174. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/mcp/util/__init__.py +0 -0
  175. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/mcp/util/helpers.py +0 -0
  176. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/mixin/dspy_integration.py +0 -0
  177. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/mixin/prompt_parser.py +0 -0
  178. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/serialization/__init__.py +0 -0
  179. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/serialization/callable_registry.py +0 -0
  180. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/serialization/flock_serializer.py +0 -0
  181. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/serialization/json_encoder.py +0 -0
  182. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/serialization/secure_serializer.py +0 -0
  183. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/serialization/serializable.py +0 -0
  184. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/serialization/serialization_utils.py +0 -0
  185. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/util/cli_helper.py +0 -0
  186. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/util/file_path_utils.py +0 -0
  187. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/util/hydrator.py +0 -0
  188. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/util/input_resolver.py +0 -0
  189. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/util/loader.py +0 -0
  190. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/core/util/splitter.py +0 -0
  191. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/di.py +0 -0
  192. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/evaluators/__init__.py +0 -0
  193. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/evaluators/declarative/__init__.py +0 -0
  194. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/evaluators/declarative/declarative_evaluator.py +0 -0
  195. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/evaluators/memory/memory_evaluator.py +0 -0
  196. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/evaluators/test/test_case_evaluator.py +0 -0
  197. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/evaluators/zep/zep_evaluator.py +0 -0
  198. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/mcp/servers/sse/__init__.py +0 -0
  199. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/mcp/servers/sse/flock_sse_server.py +0 -0
  200. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/mcp/servers/stdio/__init__.py +0 -0
  201. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/mcp/servers/stdio/flock_stdio_server.py +0 -0
  202. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/mcp/servers/streamable_http/__init__.py +0 -0
  203. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/mcp/servers/streamable_http/flock_streamable_http_server.py +0 -0
  204. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/mcp/servers/websockets/__init__.py +0 -0
  205. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/mcp/servers/websockets/flock_websocket_server.py +0 -0
  206. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/__init__.py +0 -0
  207. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/assertion/__init__.py +0 -0
  208. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/assertion/assertion_module.py +0 -0
  209. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/callback/__init__.py +0 -0
  210. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/callback/callback_module.py +0 -0
  211. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/enterprise_memory/README.md +0 -0
  212. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/enterprise_memory/enterprise_memory_module.py +0 -0
  213. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/mem0/__init__.py +0 -0
  214. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/mem0/mem0_module.py +0 -0
  215. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/mem0_async/__init__.py +0 -0
  216. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/mem0_async/async_mem0_module.py +0 -0
  217. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/memory/__init__.py +0 -0
  218. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/memory/memory_module.py +0 -0
  219. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/memory/memory_parser.py +0 -0
  220. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/memory/memory_storage.py +0 -0
  221. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/output/__init__.py +0 -0
  222. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/output/output_module.py +0 -0
  223. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/performance/__init__.py +0 -0
  224. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/performance/metrics_module.py +0 -0
  225. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/zep/__init__.py +0 -0
  226. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/modules/zep/zep_module.py +0 -0
  227. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/platform/docker_tools.py +0 -0
  228. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/platform/jaeger_install.py +0 -0
  229. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/routers/__init__.py +0 -0
  230. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/routers/agent/__init__.py +0 -0
  231. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/routers/agent/agent_router.py +0 -0
  232. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/routers/agent/handoff_agent.py +0 -0
  233. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/routers/conditional/conditional_router.py +0 -0
  234. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/routers/default/__init__.py +0 -0
  235. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/routers/default/default_router.py +0 -0
  236. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/routers/feedback/feedback_router.py +0 -0
  237. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/routers/list_generator/list_generator_router.py +0 -0
  238. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/routers/llm/__init__.py +0 -0
  239. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/routers/llm/llm_router.py +0 -0
  240. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/3024-day.toml +0 -0
  241. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/3024-night.toml +0 -0
  242. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/aardvark-blue.toml +0 -0
  243. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/abernathy.toml +0 -0
  244. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/adventure.toml +0 -0
  245. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/adventuretime.toml +0 -0
  246. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/afterglow.toml +0 -0
  247. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/alabaster.toml +0 -0
  248. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/alienblood.toml +0 -0
  249. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/andromeda.toml +0 -0
  250. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/apple-classic.toml +0 -0
  251. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/apple-system-colors.toml +0 -0
  252. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/arcoiris.toml +0 -0
  253. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/argonaut copy.toml +0 -0
  254. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/argonaut.toml +0 -0
  255. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/arthur.toml +0 -0
  256. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/ateliersulphurpool.toml +0 -0
  257. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/atom.toml +0 -0
  258. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/atom_test.toml +0 -0
  259. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/atomonelight.toml +0 -0
  260. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/aurora.toml +0 -0
  261. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/ayu copy.toml +0 -0
  262. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/ayu-light.toml +0 -0
  263. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/ayu-mirage.toml +0 -0
  264. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/ayu.toml +0 -0
  265. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/banana-blueberry.toml +0 -0
  266. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/batman.toml +0 -0
  267. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/belafonte-day.toml +0 -0
  268. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/belafonte-night.toml +0 -0
  269. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/birdsofparadise.toml +0 -0
  270. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/blazer.toml +0 -0
  271. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/blue-matrix.toml +0 -0
  272. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/blueberrypie.toml +0 -0
  273. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/bluedolphin.toml +0 -0
  274. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/blulocodark.toml +0 -0
  275. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/blulocolight.toml +0 -0
  276. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/borland.toml +0 -0
  277. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/breeze.toml +0 -0
  278. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/bright-lights.toml +0 -0
  279. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/broadcast.toml +0 -0
  280. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/brogrammer.toml +0 -0
  281. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/builtin-dark.toml +0 -0
  282. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/builtin-light.toml +0 -0
  283. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/builtin-pastel-dark.toml +0 -0
  284. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/builtin-solarized-dark.toml +0 -0
  285. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/builtin-solarized-light.toml +0 -0
  286. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/builtin-tango-dark.toml +0 -0
  287. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/builtin-tango-light.toml +0 -0
  288. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/c64.toml +0 -0
  289. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/calamity.toml +0 -0
  290. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/catppuccin-frappe.toml +0 -0
  291. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/catppuccin-latte.toml +0 -0
  292. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/catppuccin-macchiato.toml +0 -0
  293. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/catppuccin-mocha.toml +0 -0
  294. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/cga.toml +0 -0
  295. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/chalk.toml +0 -0
  296. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/chalkboard.toml +0 -0
  297. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/challengerdeep.toml +0 -0
  298. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/chester.toml +0 -0
  299. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/ciapre.toml +0 -0
  300. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/clrs.toml +0 -0
  301. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/cobalt-neon.toml +0 -0
  302. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/cobalt2.toml +0 -0
  303. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/coffee-theme.toml +0 -0
  304. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/crayonponyfish.toml +0 -0
  305. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/cutiepro.toml +0 -0
  306. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/cyberdyne.toml +0 -0
  307. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/cyberpunk.toml +0 -0
  308. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
  309. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/dark+.toml +0 -0
  310. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/dark-pastel.toml +0 -0
  311. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/darkermatrix.toml +0 -0
  312. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/darkmatrix.toml +0 -0
  313. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/darkside.toml +0 -0
  314. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/dayfox.toml +0 -0
  315. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/deep.toml +0 -0
  316. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/desert.toml +0 -0
  317. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/dimidium.toml +0 -0
  318. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/dimmedmonokai.toml +0 -0
  319. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/django.toml +0 -0
  320. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/djangorebornagain.toml +0 -0
  321. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/djangosmooth.toml +0 -0
  322. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/doom-peacock.toml +0 -0
  323. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/doomone.toml +0 -0
  324. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/dotgov.toml +0 -0
  325. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/dracula+.toml +0 -0
  326. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/dracula.toml +0 -0
  327. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/duckbones.toml +0 -0
  328. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/duotone-dark.toml +0 -0
  329. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/earthsong.toml +0 -0
  330. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/elemental.toml +0 -0
  331. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/elementary.toml +0 -0
  332. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/encom.toml +0 -0
  333. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/espresso-libre.toml +0 -0
  334. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/espresso.toml +0 -0
  335. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/everblush.toml +0 -0
  336. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/fahrenheit.toml +0 -0
  337. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/fairyfloss.toml +0 -0
  338. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/farmhouse-dark.toml +0 -0
  339. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/farmhouse-light.toml +0 -0
  340. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/fideloper.toml +0 -0
  341. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/firefly-traditional.toml +0 -0
  342. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/firefoxdev.toml +0 -0
  343. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/firewatch.toml +0 -0
  344. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/fishtank.toml +0 -0
  345. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/flat.toml +0 -0
  346. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/flatland.toml +0 -0
  347. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/flexoki-dark.toml +0 -0
  348. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/flexoki-light.toml +0 -0
  349. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/floraverse.toml +0 -0
  350. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/forestblue.toml +0 -0
  351. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/framer.toml +0 -0
  352. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/frontenddelight.toml +0 -0
  353. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/funforrest.toml +0 -0
  354. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/galaxy.toml +0 -0
  355. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/galizur.toml +0 -0
  356. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/github-dark.toml +0 -0
  357. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/github.toml +0 -0
  358. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/glacier.toml +0 -0
  359. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/grape.toml +0 -0
  360. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/grass.toml +0 -0
  361. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/grey-green.toml +0 -0
  362. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/gruber-darker.toml +0 -0
  363. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/gruvboxdark.toml +0 -0
  364. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/gruvboxdarkhard.toml +0 -0
  365. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/gruvboxlight.toml +0 -0
  366. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/guezwhoz.toml +0 -0
  367. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/hacktober.toml +0 -0
  368. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/hardcore.toml +0 -0
  369. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/harper.toml +0 -0
  370. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/hax0r-blue.toml +0 -0
  371. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/hax0r-gr33n.toml +0 -0
  372. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/hax0r-r3d.toml +0 -0
  373. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/highway.toml +0 -0
  374. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/hipster-green.toml +0 -0
  375. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/hivacruz.toml +0 -0
  376. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/homebrew.toml +0 -0
  377. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/hopscotch.256.toml +0 -0
  378. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/hopscotch.toml +0 -0
  379. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/hurtado.toml +0 -0
  380. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/hybrid.toml +0 -0
  381. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/ic-green-ppl.toml +0 -0
  382. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/ic-orange-ppl.toml +0 -0
  383. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/iceberg-dark.toml +0 -0
  384. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/iceberg-light.toml +0 -0
  385. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/idea.toml +0 -0
  386. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/idletoes.toml +0 -0
  387. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/ir-black.toml +0 -0
  388. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/iterm2-dark-background.toml +0 -0
  389. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/iterm2-default.toml +0 -0
  390. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/iterm2-light-background.toml +0 -0
  391. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
  392. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/iterm2-smoooooth.toml +0 -0
  393. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
  394. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/iterm2-solarized-light.toml +0 -0
  395. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/iterm2-tango-dark.toml +0 -0
  396. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/iterm2-tango-light.toml +0 -0
  397. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/jackie-brown.toml +0 -0
  398. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/japanesque.toml +0 -0
  399. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/jellybeans.toml +0 -0
  400. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/jetbrains-darcula.toml +0 -0
  401. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/jubi.toml +0 -0
  402. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/kanagawabones.toml +0 -0
  403. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/kibble.toml +0 -0
  404. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/kolorit.toml +0 -0
  405. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/konsolas.toml +0 -0
  406. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/kurokula.toml +0 -0
  407. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/lab-fox.toml +0 -0
  408. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/laser.toml +0 -0
  409. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/later-this-evening.toml +0 -0
  410. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/lavandula.toml +0 -0
  411. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/liquidcarbon.toml +0 -0
  412. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/liquidcarbontransparent.toml +0 -0
  413. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
  414. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/lovelace.toml +0 -0
  415. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/man-page.toml +0 -0
  416. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/mariana.toml +0 -0
  417. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/material.toml +0 -0
  418. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/materialdark.toml +0 -0
  419. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/materialdarker.toml +0 -0
  420. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/materialdesigncolors.toml +0 -0
  421. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/materialocean.toml +0 -0
  422. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/mathias.toml +0 -0
  423. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/matrix.toml +0 -0
  424. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/medallion.toml +0 -0
  425. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/mellifluous.toml +0 -0
  426. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/midnight-in-mojave.toml +0 -0
  427. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/mirage.toml +0 -0
  428. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/misterioso.toml +0 -0
  429. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/molokai.toml +0 -0
  430. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/monalisa.toml +0 -0
  431. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/monokai-remastered.toml +0 -0
  432. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/monokai-soda.toml +0 -0
  433. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/monokai-vivid.toml +0 -0
  434. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/n0tch2k.toml +0 -0
  435. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/neobones-dark.toml +0 -0
  436. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/neobones-light.toml +0 -0
  437. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/neon.toml +0 -0
  438. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/neopolitan.toml +0 -0
  439. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/neutron.toml +0 -0
  440. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/night-owlish-light.toml +0 -0
  441. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/nightfox.toml +0 -0
  442. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/nightlion-v1.toml +0 -0
  443. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/nightlion-v2.toml +0 -0
  444. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/niji.toml +0 -0
  445. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/nocturnal-winter.toml +0 -0
  446. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/nord-light.toml +0 -0
  447. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/nord.toml +0 -0
  448. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/novel.toml +0 -0
  449. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/nvimdark.toml +0 -0
  450. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/nvimlight.toml +0 -0
  451. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/obsidian.toml +0 -0
  452. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/ocean.toml +0 -0
  453. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/oceanic-next.toml +0 -0
  454. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/oceanicmaterial.toml +0 -0
  455. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/ollie.toml +0 -0
  456. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/onehalfdark.toml +0 -0
  457. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/onehalflight.toml +0 -0
  458. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/operator-mono-dark.toml +0 -0
  459. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/overnight-slumber.toml +0 -0
  460. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/oxocarbon.toml +0 -0
  461. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/palenighthc.toml +0 -0
  462. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/pandora.toml +0 -0
  463. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/paraiso-dark.toml +0 -0
  464. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/paulmillr.toml +0 -0
  465. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/pencildark.toml +0 -0
  466. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/pencillight.toml +0 -0
  467. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/peppermint.toml +0 -0
  468. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/piatto-light.toml +0 -0
  469. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/pnevma.toml +0 -0
  470. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/popping-and-locking.toml +0 -0
  471. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/primary.toml +0 -0
  472. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/pro-light.toml +0 -0
  473. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/pro.toml +0 -0
  474. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/purple-rain.toml +0 -0
  475. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/purplepeter.toml +0 -0
  476. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/rapture.toml +0 -0
  477. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/raycast-dark.toml +0 -0
  478. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/raycast-light.toml +0 -0
  479. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/rebecca.toml +0 -0
  480. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/red-alert.toml +0 -0
  481. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/red-planet.toml +0 -0
  482. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/red-sands.toml +0 -0
  483. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/relaxed.toml +0 -0
  484. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/retro.toml +0 -0
  485. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/rippedcasts.toml +0 -0
  486. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/rose-pine-dawn.toml +0 -0
  487. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/rose-pine-moon.toml +0 -0
  488. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/rose-pine.toml +0 -0
  489. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/rouge-2.toml +0 -0
  490. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/royal.toml +0 -0
  491. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/ryuuko.toml +0 -0
  492. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/sakura.toml +0 -0
  493. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/scarlet-protocol.toml +0 -0
  494. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/seafoam-pastel.toml +0 -0
  495. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/seashells.toml +0 -0
  496. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/seoulbones-dark.toml +0 -0
  497. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/seoulbones-light.toml +0 -0
  498. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/seti.toml +0 -0
  499. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/shades-of-purple.toml +0 -0
  500. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/shaman.toml +0 -0
  501. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/slate.toml +0 -0
  502. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/sleepyhollow.toml +0 -0
  503. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/smyck.toml +0 -0
  504. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/snazzy.toml +0 -0
  505. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/softserver.toml +0 -0
  506. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/solarized-darcula.toml +0 -0
  507. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/solarized-dark---patched.toml +0 -0
  508. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
  509. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/spacedust.toml +0 -0
  510. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
  511. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/spacegray-eighties.toml +0 -0
  512. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/spacegray.toml +0 -0
  513. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/spiderman.toml +0 -0
  514. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/spring.toml +0 -0
  515. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/square.toml +0 -0
  516. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/sublette.toml +0 -0
  517. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/subliminal.toml +0 -0
  518. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/sugarplum.toml +0 -0
  519. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/sundried.toml +0 -0
  520. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/symfonic.toml +0 -0
  521. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/synthwave-everything.toml +0 -0
  522. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/synthwave.toml +0 -0
  523. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/synthwavealpha.toml +0 -0
  524. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/tango-adapted.toml +0 -0
  525. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/tango-half-adapted.toml +0 -0
  526. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/teerb.toml +0 -0
  527. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/terafox.toml +0 -0
  528. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/terminal-basic.toml +0 -0
  529. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/thayer-bright.toml +0 -0
  530. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/the-hulk.toml +0 -0
  531. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/tinacious-design-(dark).toml +0 -0
  532. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/tinacious-design-(light).toml +0 -0
  533. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/tokyonight-day.toml +0 -0
  534. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/tokyonight-storm.toml +0 -0
  535. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/tokyonight.toml +0 -0
  536. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/tomorrow-night-blue.toml +0 -0
  537. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/tomorrow-night-bright.toml +0 -0
  538. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/tomorrow-night-burns.toml +0 -0
  539. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
  540. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/tomorrow-night.toml +0 -0
  541. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/tomorrow.toml +0 -0
  542. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/toychest.toml +0 -0
  543. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/treehouse.toml +0 -0
  544. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/twilight.toml +0 -0
  545. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/ubuntu.toml +0 -0
  546. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/ultradark.toml +0 -0
  547. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/ultraviolent.toml +0 -0
  548. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/underthesea.toml +0 -0
  549. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/unikitty.toml +0 -0
  550. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/urple.toml +0 -0
  551. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/vaughn.toml +0 -0
  552. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/vesper.toml +0 -0
  553. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/vibrantink.toml +0 -0
  554. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/vimbones.toml +0 -0
  555. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/violet-dark.toml +0 -0
  556. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/violet-light.toml +0 -0
  557. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/warmneon.toml +0 -0
  558. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/wez.toml +0 -0
  559. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/whimsy.toml +0 -0
  560. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/wildcherry.toml +0 -0
  561. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/wilmersdorf.toml +0 -0
  562. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/wombat.toml +0 -0
  563. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/wryan.toml +0 -0
  564. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/xcodedark.toml +0 -0
  565. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/xcodedarkhc.toml +0 -0
  566. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/xcodelight.toml +0 -0
  567. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/xcodelighthc.toml +0 -0
  568. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/xcodewwdc.toml +0 -0
  569. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/zenbones-dark.toml +0 -0
  570. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/zenbones-light.toml +0 -0
  571. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/zenbones.toml +0 -0
  572. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/zenburn.toml +0 -0
  573. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/zenburned.toml +0 -0
  574. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/zenwritten-dark.toml +0 -0
  575. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/themes/zenwritten-light.toml +0 -0
  576. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/tools/__init__.py +0 -0
  577. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/tools/azure_tools.py +0 -0
  578. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/tools/code_tools.py +0 -0
  579. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/tools/file_tools.py +0 -0
  580. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/tools/github_tools.py +0 -0
  581. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/tools/markdown_tools.py +0 -0
  582. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/tools/system_tools.py +0 -0
  583. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/tools/text_tools.py +0 -0
  584. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/tools/web_tools.py +0 -0
  585. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/tools/zendesk_tools.py +0 -0
  586. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/__init__.py +0 -0
  587. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/__init__.py +0 -0
  588. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/api/__init__.py +0 -0
  589. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/api/agent_management.py +0 -0
  590. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/api/flock_management.py +0 -0
  591. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/api/registry_viewer.py +0 -0
  592. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/config.py +0 -0
  593. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/dependencies.py +0 -0
  594. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/main.py +0 -0
  595. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/middleware.py +0 -0
  596. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/models_ui.py +0 -0
  597. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/services/__init__.py +0 -0
  598. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/services/flock_service.py +0 -0
  599. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/services/sharing_models.py +0 -0
  600. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/templates/theme_mapper.html +0 -0
  601. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/theme_mapper.py +0 -0
  602. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/app/utils.py +0 -0
  603. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/run.py +0 -0
  604. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/static/css/chat.css +0 -0
  605. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/static/css/components.css +0 -0
  606. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/static/css/header.css +0 -0
  607. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/static/css/layout.css +0 -0
  608. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/static/css/sidebar.css +0 -0
  609. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/static/css/two-pane.css +0 -0
  610. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/base.html +0 -0
  611. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/chat.html +0 -0
  612. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/chat_settings.html +0 -0
  613. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/flock_editor.html +0 -0
  614. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/index.html +0 -0
  615. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_agent_detail_form.html +0 -0
  616. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_agent_list.html +0 -0
  617. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_agent_manager_view.html +0 -0
  618. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_agent_tools_checklist.html +0 -0
  619. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_chat_container.html +0 -0
  620. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_chat_messages.html +0 -0
  621. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_chat_settings_form.html +0 -0
  622. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_create_flock_form.html +0 -0
  623. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_dashboard_flock_detail.html +0 -0
  624. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_dashboard_flock_file_list.html +0 -0
  625. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_dashboard_flock_properties_preview.html +0 -0
  626. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_dashboard_upload_flock_form.html +0 -0
  627. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_dynamic_input_form_content.html +0 -0
  628. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_env_vars_table.html +0 -0
  629. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_execution_view_container.html +0 -0
  630. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_flock_file_list.html +0 -0
  631. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_flock_properties_form.html +0 -0
  632. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_flock_upload_form.html +0 -0
  633. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_header_flock_status.html +0 -0
  634. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_load_manager_view.html +0 -0
  635. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_registry_table.html +0 -0
  636. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_results_display.html +0 -0
  637. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_settings_env_content.html +0 -0
  638. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_settings_theme_content.html +0 -0
  639. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_settings_view.html +0 -0
  640. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_share_chat_link_snippet.html +0 -0
  641. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_share_link_snippet.html +0 -0
  642. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_sidebar.html +0 -0
  643. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_structured_data_view.html +0 -0
  644. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/partials/_theme_preview.html +0 -0
  645. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/registry_viewer.html +0 -0
  646. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/webapp/templates/shared_run_page.html +0 -0
  647. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/workflow/__init__.py +0 -0
  648. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/workflow/activities.py +0 -0
  649. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/workflow/agent_activities.py +0 -0
  650. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/workflow/agent_execution_activity.py +0 -0
  651. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/workflow/flock_workflow.py +0 -0
  652. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/workflow/temporal_config.py +0 -0
  653. {flock_core-0.4.528 → flock_core-0.4.529}/src/flock/workflow/temporal_setup.py +0 -0
  654. {flock_core-0.4.528 → flock_core-0.4.529}/test_store_integration.py +0 -0
  655. {flock_core-0.4.528 → flock_core-0.4.529}/tests/__init__.py +0 -0
  656. {flock_core-0.4.528 → flock_core-0.4.529}/tests/api/test_custom_endpoints.py +0 -0
  657. {flock_core-0.4.528 → flock_core-0.4.529}/tests/core/test_flock_batch.py +0 -0
  658. {flock_core-0.4.528 → flock_core-0.4.529}/tests/core/test_flock_core.py +0 -0
  659. {flock_core-0.4.528 → flock_core-0.4.529}/tests/integration/__init__.py +0 -0
  660. {flock_core-0.4.528 → flock_core-0.4.529}/tests/integration/test_shared_link_store.py +0 -0
  661. {flock_core-0.4.528 → flock_core-0.4.529}/tests/modules/test_enterprise_memory_store.py +0 -0
  662. {flock_core-0.4.528 → flock_core-0.4.529}/tests/modules/test_vector_adapters.py +0 -0
  663. {flock_core-0.4.528 → flock_core-0.4.529}/tests/serialization/__init__.py +0 -0
  664. {flock_core-0.4.528 → flock_core-0.4.529}/tests/serialization/test_enhanced_serialization.py +0 -0
  665. {flock_core-0.4.528 → flock_core-0.4.529}/tests/serialization/test_file_path_serialization.py +0 -0
  666. {flock_core-0.4.528 → flock_core-0.4.529}/tests/serialization/test_flock_serializer.py +0 -0
  667. {flock_core-0.4.528 → flock_core-0.4.529}/tests/serialization/test_nested_serialization.py +0 -0
  668. {flock_core-0.4.528 → flock_core-0.4.529}/tests/serialization/test_yaml_serialization.py +0 -0
  669. {flock_core-0.4.528 → flock_core-0.4.529}/tests/tools/test_zendesk_tools.py +0 -0
@@ -40,7 +40,7 @@ We follow the [Contributor Covenant](https://www.contributor-covenant.org/) code
40
40
 
41
41
  <!-- TOC --><a name="-reporting-issues"></a>
42
42
  ## ❗ Reporting Issues:
43
- - Before submitting a new issue, pleas check [existing issues](https://github.com/whiteducksoftware/flock/issues) if it has already been reported.
43
+ - Before submitting a new issue, please check [existing issues](https://github.com/whiteducksoftware/flock/issues) if it has already been reported.
44
44
  - To submit a new issue, please use the provided **Issue Templates** and provide a clear and descriptive title along with a detailed description of the problem or feature request, including steps to reproduce if it's a bug.
45
45
 
46
46
  <!-- TOC --><a name="-pull-requests"></a>
@@ -104,15 +104,15 @@ We follow the [Contributor Covenant](https://www.contributor-covenant.org/) code
104
104
  <!-- TOC --><a name="a-few-best-practices-for-writing-good-documentation"></a>
105
105
  ### A few best practices for writing good documentation:
106
106
  1. Document the **Why**, not just the how:
107
- - Documentation should explain the rational behind your decisions, rather than just describing the "how".
108
- - This helps other developers understand the context and reasoning for the implementation, making the code more maintainable and modifyiable.
107
+ - Documentation should explain the rationale behind your decisions, rather than just describing the "how".
108
+ - This helps other developers understand the context and reasoning for the implementation, making the code more maintainable and modifiable.
109
109
  2. Keep it Up to Date:
110
110
  - Your documentation should evolve alongside the code. If you change the behavior of an existing component of Flock, please also take care to make sure the documentation reflects this fact.
111
111
  3. Write for the Reader:
112
112
  - Consider the audience for your documentation.
113
113
  - It should be accessible and understandable for developers who are not intimately familiar with the code.
114
114
  4. Document Intent and Design:
115
- - Refering to Point 1, Document your decisions of **why** you chose to implement a new component or code change the way you did, if it is not immediately obvious.
115
+ - Referring to Point 1, Document your decisions of **why** you chose to implement a new component or code change the way you did, if it is not immediately obvious.
116
116
  5. Code as Documentation:
117
117
  - Well-written code can serve as it's own documentation.
118
118
  - Code should be clear, expressive and self-explanatory where possible.
@@ -120,19 +120,19 @@ We follow the [Contributor Covenant](https://www.contributor-covenant.org/) code
120
120
  6. Provide Examples:
121
121
  - Examples can help other developers understand your changes and are therefore encouraged.
122
122
  7. Use Comments Wisely:
123
- - Aviod redundant comments that merely restate what the code does, which can clutter the codebase and detract from its readability.
123
+ - Avoid redundant comments that merely restate what the code does, which can clutter the codebase and detract from its readability.
124
124
  8. Be Pragmatic:
125
125
  - There is no need for you to excessively comment every line of code you provide.
126
126
  - Add documentation where necessary and focus on keeping documentation on a high level.
127
127
 
128
128
  <!-- TOC --><a name="-testing-and-reliability"></a>
129
129
  ## 🔭 Testing and Reliability:
130
- Flock aims to provide a easy and reliable way to implement agentic applications. Therefore, well tested code is crucial.
130
+ Flock aims to provide an easy and reliable way to implement agentic applications. Therefore, well tested code is crucial.
131
131
 
132
132
  - Test your changes thoroughly! Ensure that existing tests pass and add **new tests** for any new functionality.
133
133
  - Follow Flock's testing conventions and use the provided testing framework.
134
134
  - Run the tests before submitting your pull request to confirm that nothing is broken.
135
- - Test can be run locally with `pytest -q`
135
+ - Tests can be run locally with `pytest -q`
136
136
  - Place new tests in `tests/` mirroring the package path.
137
137
  - Use [`pytest`](https://docs.pytest.org/en/stable/) fixtures instead of duplicating setup code.
138
138
  - For Temporal code, rely on the *Temporal Test Server* fixture.
@@ -140,7 +140,7 @@ Flock aims to provide a easy and reliable way to implement agentic applications.
140
140
 
141
141
  <!-- TOC --><a name="release-process"></a>
142
142
  ## Release Process:
143
- 1. Maintainer bumps versiion in `pyproject.toml` following **SemVer**.
143
+ 1. Maintainer bumps version in `pyproject.toml` following **SemVer**.
144
144
  2. Changelog entry added in `docs/about/changelog.md`.
145
145
  3. `uv pip install -e .[all] && pytest`
146
146
  4. `git tag v.X.Y.Z && git push --tags`
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flock-core
3
- Version: 0.4.528
3
+ Version: 0.4.529
4
4
  Summary: Declarative LLM Orchestration at Scale
5
5
  Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
6
6
  License-File: LICENSE
@@ -10,6 +10,7 @@ Classifier: Programming Language :: Python :: 3
10
10
  Requires-Python: >=3.10
11
11
  Requires-Dist: aiosqlite>=0.21.0
12
12
  Requires-Dist: azure-data-tables>=12.7.0
13
+ Requires-Dist: azure-storage-blob>=12.25.1
13
14
  Requires-Dist: cloudpickle>=3.1.1
14
15
  Requires-Dist: croniter>=6.0.0
15
16
  Requires-Dist: devtools>=0.12.2
@@ -50,6 +51,7 @@ Requires-Dist: uvicorn>=0.34.0
50
51
  Requires-Dist: wd-di>=0.2.14
51
52
  Requires-Dist: websockets>=15.0.1
52
53
  Requires-Dist: werkzeug>=3.1.3
54
+ Requires-Dist: xlsxwriter>=3.2.3
53
55
  Provides-Extra: all
54
56
  Requires-Dist: azure-identity>=1.23.0; extra == 'all'
55
57
  Requires-Dist: azure-search-documents>=11.5.2; extra == 'all'
@@ -15,7 +15,7 @@ and actively encourage our community-members to report
15
15
  any issues with the Flock framework as soon as possible
16
16
  in order to mitigate any potential risks.
17
17
 
18
- To report a vulnerability, you have serveral options available:
18
+ To report a vulnerability, you have several options available:
19
19
 
20
20
  ### 1. Creating a Vulnerability Report (preferred):
21
21
 
@@ -0,0 +1,133 @@
1
+ ---
2
+ hide: # Optional: Hide table of contents on simple pages
3
+ - toc
4
+ ---
5
+
6
+ # Changelog 📝
7
+
8
+ All notable changes to **Flock** will be documented in this file.
9
+
10
+ The format loosely follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/) and adheres to [Semantic Versioning](https://semver.org/).
11
+
12
+ ## [Unreleased]
13
+
14
+ ### Added
15
+ - Core concepts & component documentation.
16
+ - Placeholder replacement across docs.
17
+ - Documentation improvements and typo fixes.
18
+
19
+ ---
20
+
21
+ ## [0.4.52] – 2025-05-30
22
+
23
+ ### Added
24
+ - Package versioning updates and dependency improvements.
25
+
26
+ ### Fixed
27
+ - Various bug fixes and stability improvements.
28
+
29
+ ---
30
+
31
+ ## [0.4.51] – 2025-05-24
32
+
33
+ ### Added
34
+ - Enhanced error logging as default log level.
35
+ - Zendesk article count feature.
36
+ - Zendesk tools as MCP server.
37
+ - Configurable protocol support.
38
+
39
+ ### Fixed
40
+ - Removed init definitions for tools to avoid requiring all tool dependencies.
41
+ - Chat in sidebar functionality.
42
+
43
+ ---
44
+
45
+ ## [0.4.5] – 2025-05-21 "MCP Integration"
46
+
47
+ ### Added
48
+ - **Model Context Protocol (MCP) Support**: Declaratively connect to thousands of different tools.
49
+ - MCP server creation with `FlockFactory.create_mcp_server()`.
50
+ - Support for WebSocket, SSE, and STDIO transport protocols.
51
+ - Tool discovery and integration through MCP servers.
52
+ - Enhanced server management and client handling.
53
+
54
+ ### Fixed
55
+ - OTLPSpanExporter crash issues.
56
+ - Literal data type handling in Flock agents.
57
+ - Various serialization and deserialization improvements.
58
+
59
+ ---
60
+
61
+ ## [0.4.3] – 2025-05-21
62
+
63
+ ### Added
64
+ - High-level changelog documentation in README.
65
+ - Enhanced REST API deployment features.
66
+
67
+ ### Changed
68
+ - Updated documentation structure and content.
69
+
70
+ ---
71
+
72
+ ## [0.4.1] – 2025-05-21 "Magpie"
73
+
74
+ ### Added
75
+ - **Magpie** release branding and logo.
76
+ - Enhanced CLI messaging with release information.
77
+
78
+ ### Changed
79
+ - Updated version display in CLI helper.
80
+ - Improved UI design elements.
81
+
82
+ ---
83
+
84
+ ## [0.4.0] – 2025-04-30 "Magpie" 🐤
85
+
86
+ ### Added
87
+ - **REST API Deployment**: Deploy Flock agents as scalable REST API endpoints with `flock.serve()`.
88
+ - **Web UI**: Test and interact with Flock agents directly in browser with integrated web interface.
89
+ - **CLI Tool**: Manage configurations, run agents, and inspect results from terminal.
90
+ - **Enhanced Serialization**: Share, deploy, and run Flocks from YAML files with complete portability.
91
+ - **Batch and Evaluation Modes**: Process multiple inputs and benchmark agents against Q/A pairs.
92
+ - **First-Class Temporal Integration**: Production-grade workflows with retry policies and timeout control.
93
+ - **@flockclass Hydrator**: Turn any Pydantic model into a self-hydrating agent.
94
+ - Custom endpoint support with `FlockEndpoint` for business logic integration.
95
+ - Chat functionality and UI modes (standalone chat, agent execution).
96
+ - Shareable links with frozen agent configurations.
97
+ - Direct feedback system for issue reproduction.
98
+
99
+ ### Changed
100
+ - Major architecture improvements for production deployment.
101
+ - Enhanced documentation with comprehensive guides and examples.
102
+ - Improved serialization system with type safety.
103
+
104
+ ---
105
+
106
+ ## [0.3.0] – 2025-02-24 "Hummingbird"
107
+
108
+ ### Added
109
+ - **Redesigned Core Architecture**: Modular and flexible design with Modules and Evaluators.
110
+ - **FlockFactory**: Pre-configured agents for rapid development.
111
+ - **Module System**: Lifecycle hooks (`initialize`, `pre_evaluate`, `post_evaluate`, `terminate`).
112
+ - **Evaluator System**: `DeclarativeEvaluator` and `NaturalLanguageEvaluator`.
113
+ - **Built-in Modules**: `MemoryModule`, `OutputModule`, and `MetricsModule`.
114
+ - **CLI Interface**: Load flocks, theme builder, settings, advanced mode, and web server.
115
+ - Release notes system with CLI integration.
116
+
117
+ ### Changed
118
+ - `Flock` class initialization updated to include `init_console`.
119
+ - Improved modularity and extensibility throughout the framework.
120
+
121
+ ---
122
+
123
+ ## [0.2.1] – 2025-01-15
124
+
125
+ ### Added
126
+ - Initial public release to PyPI.
127
+ - Declarative agent framework foundation.
128
+ - Basic Temporal execution support.
129
+ - Core tools: `get_web_content_as_markdown`, Azure Blob helper, markdown utilities.
130
+
131
+ ---
132
+
133
+ *Older history prior to open-source release is maintained internally.*
@@ -23,7 +23,7 @@ First off, thanks for taking the time to contribute! Flock is still early but w
23
23
 
24
24
 
25
25
  ## 2. Reporting Issues:
26
- * Before submitting a new issue, pleas check [existing issues](https://github.com/whiteducksoftware/flock/issues) if it has already been reported.
26
+ * Before submitting a new issue, please check [existing issues](https://github.com/whiteducksoftware/flock/issues) if it has already been reported.
27
27
  * To submit a new issue, please use the provided **Issue Templates** and provide a clear and descriptive title along with a detailed description of the problem or feature request, including steps to reproduce if it's a bug.
28
28
 
29
29
  ---
@@ -84,8 +84,4 @@ mkdocs serve # live-reload at http://localhost:8000
84
84
 
85
85
  ---
86
86
 
87
-
88
-
89
-
90
-
91
87
  Happy hacking! 🐦
@@ -98,6 +98,6 @@ print("Flock imported successfully!")
98
98
 
99
99
  If this runs without errors, you're all set!
100
100
 
101
- Next Steps
101
+ ## Next Steps
102
102
 
103
- With Flock installed, you're ready for the Quick Start guide to build and run your first agent!
103
+ With Flock installed, you're ready for the Quick Start guide to build and run your first agent!
@@ -102,14 +102,14 @@ Let's break down the magic:
102
102
 
103
103
  **Define Your Agent Declaratively**: This is the core of Flock! Instead of writing a long prompt, you used FlockFactory.create_default_agent and simply declared:
104
104
 
105
- input="topic: str": The agent needs one input called topic, which should be a string.
105
+ `input="topic: str"`: The agent needs one input called topic, which should be a string.
106
106
 
107
- output="fun_title: str, fun_slide_headers: list[str]": The agent should produce two outputs: fun_title (a string) and fun_slide_headers (a list of strings).
107
+ `output="fun_title: str, fun_slide_headers: list[str]"`: The agent should produce two outputs: fun_title (a string) and fun_slide_headers (a list of strings).
108
108
  Flock's default evaluator takes care of constructing the necessary instructions for the LLM based on these declarations and the agent's description.
109
109
 
110
110
  **Add the Agent**: You registered your presentation_agent with the flock.
111
111
 
112
- **Run the Flock**: flock.run() kicked off the process, starting with your specified agent and input.
112
+ **Run the Flock**: `flock.run()` kicked off the process, starting with your specified agent and input.
113
113
 
114
114
  **Admire the Results**: Flock executed the agent (calling the LLM behind the scenes) and returned the output as a convenient Box object, allowing you to access the results using dot notation (like result.fun_title).
115
115
 
@@ -121,4 +121,4 @@ Explore adding Tools to give your agents superpowers (like web search or code ex
121
121
 
122
122
  Learn how to Chain Agents together for more complex workflows.
123
123
 
124
- Dive deeper into the Core Concepts that make Flock tick.
124
+ Dive deeper into the Core Concepts that make Flock tick.
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "flock-core"
3
- version = "0.4.528"
3
+ version = "0.4.529"
4
4
  description = "Declarative LLM Orchestration at Scale"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -55,6 +55,8 @@ dependencies = [
55
55
  "azure-data-tables>=12.7.0",
56
56
  "croniter>=6.0.0",
57
57
  "werkzeug>=3.1.3",
58
+ "azure-storage-blob>=12.25.1",
59
+ "xlsxwriter>=3.2.3",
58
60
  ]
59
61
 
60
62
  [project.optional-dependencies]
@@ -1,10 +1,9 @@
1
1
  # src/flock/webapp/app/api/execution.py
2
+ import html
2
3
  import json
3
- from datetime import datetime
4
4
  from pathlib import Path
5
- from typing import TYPE_CHECKING, Any
5
+ from typing import TYPE_CHECKING, Any, Literal
6
6
 
7
- import html
8
7
  import markdown2 # Import markdown2
9
8
  from fastapi import ( # Ensure Form and HTTPException are imported
10
9
  APIRouter,
@@ -15,6 +14,14 @@ from fastapi import ( # Ensure Form and HTTPException are imported
15
14
  from fastapi.encoders import jsonable_encoder
16
15
  from fastapi.responses import FileResponse, HTMLResponse
17
16
  from fastapi.templating import Jinja2Templates
17
+ from werkzeug.utils import secure_filename
18
+
19
+ from flock.webapp.app.services.feedback_file_service import (
20
+ create_csv_feedback_file,
21
+ create_csv_feedback_file_for_agent,
22
+ create_xlsx_feedback_file,
23
+ create_xlsx_feedback_file_for_agent,
24
+ )
18
25
 
19
26
  if TYPE_CHECKING:
20
27
  from flock.core.flock import Flock
@@ -385,6 +392,8 @@ async def htmx_submit_feedback_shared(
385
392
  expected_response: str | None = Form(None),
386
393
  actual_response: str | None = Form(None),
387
394
  flock_definition: str | None = Form(None),
395
+ flock_name: str | None = Form(None),
396
+ agent_name: str | None = Form(None),
388
397
  store: SharedLinkStoreInterface = Depends(get_shared_link_store),
389
398
  ):
390
399
  from uuid import uuid4
@@ -399,6 +408,8 @@ async def htmx_submit_feedback_shared(
399
408
  expected_response=expected_response,
400
409
  actual_response=actual_response,
401
410
  flock_definition=flock_definition,
411
+ agent_name=agent_name,
412
+ flock_name=flock_name,
402
413
  )
403
414
  await store.save_feedback(record)
404
415
  return HTMLResponse(
@@ -406,9 +417,10 @@ async def htmx_submit_feedback_shared(
406
417
  )
407
418
 
408
419
 
409
- @router.get("/htmx/feedback-download/", response_class=FileResponse)
420
+ @router.get("/htmx/feedback-download/{format}", response_class=FileResponse)
410
421
  async def chat_feedback_download_all(
411
422
  request: Request,
423
+ format: Literal["csv", "xlsx"] = "csv",
412
424
  store: SharedLinkStoreInterface = Depends(get_shared_link_store),
413
425
  ):
414
426
  """Download all feedback records for all agents in the current flock as a CSV file.
@@ -421,170 +433,69 @@ async def chat_feedback_download_all(
421
433
  store: The shared link store interface dependency
422
434
 
423
435
  Returns:
424
- FileResponse: CSV file containing all feedback records for all agents
436
+ FileResponse: CSV/XLSX file containing all feedback records for all agents
425
437
 
426
438
  Raises:
427
439
  HTTPException: If no flock is loaded or no agents are found in the flock
428
440
  """
429
- import csv
430
- import tempfile
431
- from pathlib import Path
432
-
433
- # Get the current flock instance to retrieve all agent names
434
- from flock.core.flock import Flock
435
-
436
- current_flock_instance: Flock | None = getattr(
437
- request.app.state, "flock_instance", None
438
- )
439
-
440
- if not current_flock_instance:
441
- # If no flock is loaded, return an error response
442
- from fastapi import HTTPException
443
-
444
- raise HTTPException(
445
- status_code=400, detail="No Flock loaded to download feedback for"
441
+ safe_format = secure_filename(format)
442
+ if safe_format == "csv":
443
+ return await create_csv_feedback_file(
444
+ request=request,
445
+ store=store,
446
+ separator=","
446
447
  )
447
-
448
- # Get all agent names from the current flock
449
- all_agent_names = list(current_flock_instance.agents.keys())
450
-
451
- if not all_agent_names:
452
- # If no agents in the flock, return an error response
448
+ elif safe_format == "xlsx":
449
+ return await create_xlsx_feedback_file(
450
+ request=request,
451
+ store=store,
452
+ )
453
+ else:
453
454
  from fastapi import HTTPException
454
455
 
455
456
  raise HTTPException(
456
- status_code=400, detail="No agents found in the current Flock"
457
+ status_code=400,
458
+ detail="Invalid file-format specified. Valid formats are: 'csv', 'xlsx'"
457
459
  )
458
460
 
459
- # Collect all feedback records from all agents
460
- all_records = []
461
- for agent_name in all_agent_names:
462
- records = await store.get_all_feedback_records_for_agent(
463
- agent_name=agent_name
464
- )
465
- all_records.extend(records)
466
-
467
- # Create a temporary CSV file
468
- temp_dir = tempfile.gettempdir()
469
- timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
470
- csv_filename = f"flock_feedback_all_agents_{timestamp}.csv"
471
- csv_path = Path(temp_dir) / csv_filename
472
-
473
- # Define CSV headers based on FeedbackRecord fields
474
- headers = [
475
- "feedback_id",
476
- "share_id",
477
- "context_type",
478
- "reason",
479
- "expected_response",
480
- "actual_response",
481
- "created_at",
482
- "flock_name",
483
- "agent_name",
484
- "flock_definition",
485
- ]
486
-
487
- # Write records to CSV
488
- with open(csv_path, "w", newline="", encoding="utf-8") as csvfile:
489
- writer = csv.DictWriter(csvfile, fieldnames=headers)
490
- writer.writeheader()
491
-
492
- for record in all_records:
493
- # Convert the Pydantic model to dict and ensure all fields are present
494
- row_data = {}
495
- for header in headers:
496
- value = getattr(record, header, None)
497
- # Convert datetime to ISO string for CSV
498
- if header == "created_at" and value:
499
- row_data[header] = (
500
- value.isoformat()
501
- if isinstance(value, datetime)
502
- else str(value)
503
- )
504
- else:
505
- row_data[header] = str(value) if value is not None else ""
506
- writer.writerow(row_data)
507
-
508
- # Return FileResponse with the CSV file
509
- return FileResponse(
510
- path=str(csv_path),
511
- filename=csv_filename,
512
- media_type="text/csv",
513
- headers={"Content-Disposition": f"attachment; filename={csv_filename}"},
514
- )
515
461
 
516
-
517
- @router.get("/htmx/feedback-download/{agent_name}", response_class=FileResponse)
462
+ @router.get("/htmx/feedback-download/{agent_name}/{format}", response_class=FileResponse)
518
463
  async def chat_feedback_download(
519
464
  request: Request,
520
465
  agent_name: str,
466
+ format: Literal["csv", "xlsx"] = "csv",
521
467
  store: SharedLinkStoreInterface = Depends(get_shared_link_store),
522
468
  ):
523
- """Download all feedback records for a specific agent as a CSV file.
469
+ """Download all feedback records for a specific agent as a file.
524
470
 
525
471
  Args:
526
472
  request: The FastAPI request object
527
473
  agent_name: Name of the agent to download feedback for
528
474
  store: The shared link store interface dependency
475
+ format: Either 'csv' or 'xlsx' the file format to use
529
476
 
530
477
  Returns:
531
- FileResponse: CSV file containing all feedback records for the specified agent
478
+ FileResponse: CSV/XLSX file containing all feedback records for the specified agent
532
479
  """
533
- import csv
534
- import tempfile
535
- from pathlib import Path
536
- from werkzeug.utils import secure_filename
537
-
538
- records = await store.get_all_feedback_records_for_agent(
539
- agent_name=agent_name
540
- )
541
-
542
- # Create a temporary CSV file
543
- temp_dir = tempfile.gettempdir()
544
- timestamp = datetime.now().strftime("%Y%m%d_%H%M%S")
480
+ safe_format = secure_filename(format)
545
481
  safe_agent_name = secure_filename(agent_name)
546
- csv_filename = f"flock_feedback_{safe_agent_name}_{timestamp}.csv"
547
- csv_path = Path(temp_dir) / csv_filename
548
-
549
- # Define CSV headers based on FeedbackRecord fields
550
- headers = [
551
- "feedback_id",
552
- "share_id",
553
- "context_type",
554
- "reason",
555
- "expected_response",
556
- "actual_response",
557
- "created_at",
558
- "flock_name",
559
- "agent_name",
560
- "flock_definition",
561
- ]
562
-
563
- # Write records to CSV
564
- with open(csv_path, "w", newline="", encoding="utf-8") as csvfile:
565
- writer = csv.DictWriter(csvfile, fieldnames=headers)
566
- writer.writeheader()
567
-
568
- for record in records:
569
- # Convert the Pydantic model to dict and ensure all fields are present
570
- row_data = {}
571
- for header in headers:
572
- value = getattr(record, header, None)
573
- # Convert datetime to ISO string for CSV
574
- if header == "created_at" and value:
575
- row_data[header] = (
576
- value.isoformat()
577
- if isinstance(value, datetime)
578
- else str(value)
579
- )
580
- else:
581
- row_data[header] = str(value) if value is not None else ""
582
- writer.writerow(row_data)
583
-
584
- # Return FileResponse with the CSV file
585
- return FileResponse(
586
- path=str(csv_path),
587
- filename=csv_filename,
588
- media_type="text/csv",
589
- headers={"Content-Disposition": f"attachment; filename={csv_filename}"},
590
- )
482
+ if safe_format == "csv":
483
+ return await create_csv_feedback_file_for_agent(
484
+ request=request,
485
+ store=store,
486
+ separator=",",
487
+ agent_name=safe_agent_name,
488
+ )
489
+ elif safe_format == "xlsx":
490
+ return await create_xlsx_feedback_file_for_agent(
491
+ request=request,
492
+ store=store,
493
+ agent_name=safe_agent_name,
494
+ )
495
+ else:
496
+ from fastapi import HTTPException
497
+
498
+ raise HTTPException(
499
+ status_code=400,
500
+ detail="Invalid file-format specified. Valid formats are: 'csv', 'xlsx'"
501
+ )