flock-core 0.4.0b48__tar.gz → 0.4.0b49__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 (623) hide show
  1. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/PKG-INFO +4 -2
  2. flock_core-0.4.0b49/main.md +54 -0
  3. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/pyproject.toml +4 -2
  4. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/__init__.py +45 -3
  5. flock_core-0.4.0b49/src/flock/modules/mem0/mem0_module.py +63 -0
  6. flock_core-0.4.0b49/src/flock/modules/mem0graph/mem0_graph_module.py +63 -0
  7. flock_core-0.4.0b49/src/flock/modules/performance/__init__.py +1 -0
  8. flock_core-0.4.0b49/src/flock/webapp/app/api/execution.py +264 -0
  9. flock_core-0.4.0b49/src/flock/webapp/app/chat.py +520 -0
  10. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/app/config.py +14 -0
  11. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/app/dependencies.py +22 -0
  12. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/app/main.py +400 -2
  13. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/app/services/flock_service.py +38 -13
  14. flock_core-0.4.0b49/src/flock/webapp/app/services/sharing_models.py +43 -0
  15. flock_core-0.4.0b49/src/flock/webapp/app/services/sharing_store.py +156 -0
  16. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/static/css/chat.css +57 -0
  17. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/chat.html +29 -4
  18. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_chat_messages.html +1 -1
  19. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_chat_settings_form.html +22 -0
  20. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_execution_form.html +28 -1
  21. flock_core-0.4.0b49/src/flock/webapp/templates/partials/_share_chat_link_snippet.html +11 -0
  22. flock_core-0.4.0b49/src/flock/webapp/templates/partials/_share_link_snippet.html +35 -0
  23. flock_core-0.4.0b49/src/flock/webapp/templates/shared_run_page.html +116 -0
  24. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/tests/tools/test_zendesk_tools.py +4 -4
  25. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/uv.lock +472 -35
  26. flock_core-0.4.0b48/src/flock/modules/zep/zep_module.py +0 -187
  27. flock_core-0.4.0b48/src/flock/webapp/app/api/execution.py +0 -164
  28. flock_core-0.4.0b48/src/flock/webapp/app/chat.py +0 -233
  29. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/.devcontainer/devcontainer.json +0 -0
  30. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/.env_template +0 -0
  31. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
  32. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
  33. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/.github/ISSUE_TEMPLATE/vulnerability_report.md +0 -0
  34. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/.github/PULL_REQUEST_TEMPLATE.yaml +0 -0
  35. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/.github/workflows/.gitkeep +0 -0
  36. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/.github/workflows/deploy-documentation.yml +0 -0
  37. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
  38. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/.gitignore +0 -0
  39. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/.gitmodules +0 -0
  40. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/.vscode/launch.json +0 -0
  41. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/.vscode/settings.json +0 -0
  42. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/.vscode/tasks.json +0 -0
  43. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/CODE_OF_CONDUCT.md +0 -0
  44. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/CONTRIBUTING.md +0 -0
  45. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/LICENSE +0 -0
  46. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/README.md +0 -0
  47. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/SECURITY.md +0 -0
  48. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/about/changelog.md +0 -0
  49. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/about/contributing.md +0 -0
  50. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/drawio/architecture.drawio +0 -0
  51. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/cli_outputs/out.png +0 -0
  52. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/components_chart.png +0 -0
  53. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/examples/01_01.png +0 -0
  54. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/examples/01_02.png +0 -0
  55. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/examples/01_03.png +0 -0
  56. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/examples/01_04.png +0 -0
  57. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/examples/01_05.png +0 -0
  58. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/examples/01_06.png +0 -0
  59. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/flock.png +0 -0
  60. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/flock_cli.png +0 -0
  61. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/flow_chart.png +0 -0
  62. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/getting-started/first_agent_00.png +0 -0
  63. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/hummingbird.png +0 -0
  64. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/icon.png +0 -0
  65. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/icon.png~ +0 -0
  66. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/logo.png +0 -0
  67. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/memory_concepts.png +0 -0
  68. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/memory_flow.png +0 -0
  69. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/assets/images/memory_flow_chart.png +0 -0
  70. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/components/evaluators.md +0 -0
  71. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/components/index.md +0 -0
  72. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/components/modules.md +0 -0
  73. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/components/tools.md +0 -0
  74. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/core-concepts/agents.md +0 -0
  75. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/core-concepts/declarative.md +0 -0
  76. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/core-concepts/index.md +0 -0
  77. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/core-concepts/workflows.md +0 -0
  78. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/create_doc_boilerplate.py +0 -0
  79. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/deployment/index.md +0 -0
  80. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/deployment/temporal.md +0 -0
  81. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/getting-started/concepts.md +0 -0
  82. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/getting-started/configuration.md +0 -0
  83. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/getting-started/index.md +0 -0
  84. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/getting-started/installation.md +0 -0
  85. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/getting-started/quickstart.md +0 -0
  86. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/guides/chaining-agents.md +0 -0
  87. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/guides/custom-endpoints.md +0 -0
  88. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/guides/index.md +0 -0
  89. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/guides/temporal-configuration.md +0 -0
  90. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/index.md +0 -0
  91. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/interacting-with-flock/cli-tool.md +0 -0
  92. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/interacting-with-flock/index.md +0 -0
  93. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/interacting-with-flock/interactive-cli.md +0 -0
  94. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/interacting-with-flock/programmatic.md +0 -0
  95. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/interacting-with-flock/rest-api.md +0 -0
  96. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/interacting-with-flock/web-ui.md +0 -0
  97. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/reference/flock_agent.md +0 -0
  98. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/reference/index.md +0 -0
  99. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/release-notes/magpie.md +0 -0
  100. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/docs/stylesheets/extra.css +0 -0
  101. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/mkdocs.yml +0 -0
  102. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/requirements.txt +0 -0
  103. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/scripts/code_collector.py +0 -0
  104. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/scripts/create_docs.py +0 -0
  105. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/scripts/ensure_uv.py +0 -0
  106. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/assets/release_notes.md +0 -0
  107. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/config.py +0 -0
  108. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/constants.py +0 -0
  109. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/create_agent.py +0 -0
  110. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/create_flock.py +0 -0
  111. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/execute_flock.py +0 -0
  112. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/load_agent.py +0 -0
  113. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/load_examples.py +0 -0
  114. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/load_flock.py +0 -0
  115. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/load_release_notes.py +0 -0
  116. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/loaded_flock_cli.py +0 -0
  117. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/manage_agents.py +0 -0
  118. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/registry_management.py +0 -0
  119. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/runner.py +0 -0
  120. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/settings.py +0 -0
  121. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/utils.py +0 -0
  122. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/view_results.py +0 -0
  123. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/cli/yaml_editor.py +0 -0
  124. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/config.py +0 -0
  125. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/__init__.py +0 -0
  126. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/api/__init__.py +0 -0
  127. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/api/custom_endpoint.py +0 -0
  128. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/api/endpoints.py +0 -0
  129. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/api/main.py +0 -0
  130. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/api/models.py +0 -0
  131. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/api/run_store.py +0 -0
  132. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/api/runner.py +0 -0
  133. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/api/service.py +0 -0
  134. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/api/ui/__init__.py +0 -0
  135. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/api/ui/routes.py +0 -0
  136. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/api/ui/utils.py +0 -0
  137. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/context/context.py +0 -0
  138. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/context/context_manager.py +0 -0
  139. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/context/context_vars.py +0 -0
  140. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/evaluation/utils.py +0 -0
  141. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/execution/batch_executor.py +0 -0
  142. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/execution/evaluation_executor.py +0 -0
  143. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/execution/local_executor.py +0 -0
  144. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/execution/temporal_executor.py +0 -0
  145. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/flock.py +0 -0
  146. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/flock_agent.py +0 -0
  147. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/flock_evaluator.py +0 -0
  148. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/flock_factory.py +0 -0
  149. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/flock_module.py +0 -0
  150. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/flock_registry.py +0 -0
  151. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/flock_router.py +0 -0
  152. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/interpreter/python_interpreter.py +0 -0
  153. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/logging/__init__.py +0 -0
  154. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/logging/formatters/enum_builder.py +0 -0
  155. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/logging/formatters/theme_builder.py +0 -0
  156. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
  157. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/logging/formatters/themes.py +0 -0
  158. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/logging/logging.py +0 -0
  159. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
  160. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/logging/telemetry.py +0 -0
  161. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
  162. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
  163. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
  164. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/logging/trace_and_logged.py +0 -0
  165. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/mixin/dspy_integration.py +0 -0
  166. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/mixin/prompt_parser.py +0 -0
  167. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/serialization/__init__.py +0 -0
  168. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/serialization/callable_registry.py +0 -0
  169. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/serialization/flock_serializer.py +0 -0
  170. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/serialization/json_encoder.py +0 -0
  171. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/serialization/secure_serializer.py +0 -0
  172. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/serialization/serializable.py +0 -0
  173. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/serialization/serialization_utils.py +0 -0
  174. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/util/cli_helper.py +0 -0
  175. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/util/file_path_utils.py +0 -0
  176. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/util/hydrator.py +0 -0
  177. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/util/input_resolver.py +0 -0
  178. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/util/loader.py +0 -0
  179. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/core/util/spliter.py +0 -0
  180. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/evaluators/__init__.py +0 -0
  181. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/evaluators/declarative/__init__.py +0 -0
  182. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/evaluators/declarative/declarative_evaluator.py +0 -0
  183. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/evaluators/memory/memory_evaluator.py +0 -0
  184. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/evaluators/test/test_case_evaluator.py +0 -0
  185. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/evaluators/zep/zep_evaluator.py +0 -0
  186. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/modules/__init__.py +0 -0
  187. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/modules/assertion/__init__.py +0 -0
  188. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/modules/assertion/assertion_module.py +0 -0
  189. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/modules/callback/__init__.py +0 -0
  190. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/modules/callback/callback_module.py +0 -0
  191. {flock_core-0.4.0b48/src/flock/modules/memory → flock_core-0.4.0b49/src/flock/modules/mem0}/__init__.py +0 -0
  192. {flock_core-0.4.0b48/src/flock/modules/output → flock_core-0.4.0b49/src/flock/modules/mem0graph}/__init__.py +0 -0
  193. {flock_core-0.4.0b48/src/flock/modules/performance → flock_core-0.4.0b49/src/flock/modules/memory}/__init__.py +0 -0
  194. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/modules/memory/memory_module.py +0 -0
  195. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/modules/memory/memory_parser.py +0 -0
  196. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/modules/memory/memory_storage.py +0 -0
  197. {flock_core-0.4.0b48/src/flock/modules/zep → flock_core-0.4.0b49/src/flock/modules/output}/__init__.py +0 -0
  198. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/modules/output/output_module.py +0 -0
  199. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/modules/performance/metrics_module.py +0 -0
  200. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/platform/docker_tools.py +0 -0
  201. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/platform/jaeger_install.py +0 -0
  202. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/routers/__init__.py +0 -0
  203. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/routers/agent/__init__.py +0 -0
  204. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/routers/agent/agent_router.py +0 -0
  205. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/routers/agent/handoff_agent.py +0 -0
  206. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/routers/conditional/conditional_router.py +0 -0
  207. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/routers/default/__init__.py +0 -0
  208. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/routers/default/default_router.py +0 -0
  209. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/routers/feedback/feedback_router.py +0 -0
  210. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/routers/list_generator/list_generator_router.py +0 -0
  211. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/routers/llm/__init__.py +0 -0
  212. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/routers/llm/llm_router.py +0 -0
  213. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/3024-day.toml +0 -0
  214. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/3024-night.toml +0 -0
  215. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/aardvark-blue.toml +0 -0
  216. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/abernathy.toml +0 -0
  217. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/adventure.toml +0 -0
  218. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/adventuretime.toml +0 -0
  219. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/afterglow.toml +0 -0
  220. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/alabaster.toml +0 -0
  221. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/alienblood.toml +0 -0
  222. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/andromeda.toml +0 -0
  223. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/apple-classic.toml +0 -0
  224. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/apple-system-colors.toml +0 -0
  225. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/arcoiris.toml +0 -0
  226. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/argonaut copy.toml +0 -0
  227. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/argonaut.toml +0 -0
  228. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/arthur.toml +0 -0
  229. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/ateliersulphurpool.toml +0 -0
  230. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/atom.toml +0 -0
  231. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/atom_test.toml +0 -0
  232. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/atomonelight.toml +0 -0
  233. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/aurora.toml +0 -0
  234. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/ayu copy.toml +0 -0
  235. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/ayu-light.toml +0 -0
  236. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/ayu-mirage.toml +0 -0
  237. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/ayu.toml +0 -0
  238. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/banana-blueberry.toml +0 -0
  239. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/batman.toml +0 -0
  240. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/belafonte-day.toml +0 -0
  241. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/belafonte-night.toml +0 -0
  242. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/birdsofparadise.toml +0 -0
  243. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/blazer.toml +0 -0
  244. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/blue-matrix.toml +0 -0
  245. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/blueberrypie.toml +0 -0
  246. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/bluedolphin.toml +0 -0
  247. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/blulocodark.toml +0 -0
  248. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/blulocolight.toml +0 -0
  249. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/borland.toml +0 -0
  250. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/breeze.toml +0 -0
  251. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/bright-lights.toml +0 -0
  252. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/broadcast.toml +0 -0
  253. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/brogrammer.toml +0 -0
  254. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/builtin-dark.toml +0 -0
  255. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/builtin-light.toml +0 -0
  256. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/builtin-pastel-dark.toml +0 -0
  257. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/builtin-solarized-dark.toml +0 -0
  258. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/builtin-solarized-light.toml +0 -0
  259. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/builtin-tango-dark.toml +0 -0
  260. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/builtin-tango-light.toml +0 -0
  261. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/c64.toml +0 -0
  262. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/calamity.toml +0 -0
  263. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/catppuccin-frappe.toml +0 -0
  264. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/catppuccin-latte.toml +0 -0
  265. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/catppuccin-macchiato.toml +0 -0
  266. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/catppuccin-mocha.toml +0 -0
  267. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/cga.toml +0 -0
  268. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/chalk.toml +0 -0
  269. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/chalkboard.toml +0 -0
  270. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/challengerdeep.toml +0 -0
  271. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/chester.toml +0 -0
  272. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/ciapre.toml +0 -0
  273. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/clrs.toml +0 -0
  274. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/cobalt-neon.toml +0 -0
  275. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/cobalt2.toml +0 -0
  276. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/coffee-theme.toml +0 -0
  277. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/crayonponyfish.toml +0 -0
  278. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/cutiepro.toml +0 -0
  279. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/cyberdyne.toml +0 -0
  280. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/cyberpunk.toml +0 -0
  281. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
  282. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/dark+.toml +0 -0
  283. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/dark-pastel.toml +0 -0
  284. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/darkermatrix.toml +0 -0
  285. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/darkmatrix.toml +0 -0
  286. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/darkside.toml +0 -0
  287. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/dayfox.toml +0 -0
  288. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/deep.toml +0 -0
  289. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/desert.toml +0 -0
  290. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/dimidium.toml +0 -0
  291. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/dimmedmonokai.toml +0 -0
  292. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/django.toml +0 -0
  293. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/djangorebornagain.toml +0 -0
  294. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/djangosmooth.toml +0 -0
  295. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/doom-peacock.toml +0 -0
  296. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/doomone.toml +0 -0
  297. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/dotgov.toml +0 -0
  298. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/dracula+.toml +0 -0
  299. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/dracula.toml +0 -0
  300. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/duckbones.toml +0 -0
  301. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/duotone-dark.toml +0 -0
  302. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/earthsong.toml +0 -0
  303. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/elemental.toml +0 -0
  304. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/elementary.toml +0 -0
  305. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/encom.toml +0 -0
  306. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/espresso-libre.toml +0 -0
  307. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/espresso.toml +0 -0
  308. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/everblush.toml +0 -0
  309. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/fahrenheit.toml +0 -0
  310. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/fairyfloss.toml +0 -0
  311. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/farmhouse-dark.toml +0 -0
  312. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/farmhouse-light.toml +0 -0
  313. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/fideloper.toml +0 -0
  314. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/firefly-traditional.toml +0 -0
  315. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/firefoxdev.toml +0 -0
  316. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/firewatch.toml +0 -0
  317. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/fishtank.toml +0 -0
  318. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/flat.toml +0 -0
  319. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/flatland.toml +0 -0
  320. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/flexoki-dark.toml +0 -0
  321. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/flexoki-light.toml +0 -0
  322. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/floraverse.toml +0 -0
  323. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/forestblue.toml +0 -0
  324. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/framer.toml +0 -0
  325. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/frontenddelight.toml +0 -0
  326. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/funforrest.toml +0 -0
  327. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/galaxy.toml +0 -0
  328. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/galizur.toml +0 -0
  329. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/github-dark.toml +0 -0
  330. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/github.toml +0 -0
  331. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/glacier.toml +0 -0
  332. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/grape.toml +0 -0
  333. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/grass.toml +0 -0
  334. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/grey-green.toml +0 -0
  335. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/gruber-darker.toml +0 -0
  336. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/gruvboxdark.toml +0 -0
  337. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/gruvboxdarkhard.toml +0 -0
  338. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/gruvboxlight.toml +0 -0
  339. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/guezwhoz.toml +0 -0
  340. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/hacktober.toml +0 -0
  341. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/hardcore.toml +0 -0
  342. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/harper.toml +0 -0
  343. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/hax0r-blue.toml +0 -0
  344. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/hax0r-gr33n.toml +0 -0
  345. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/hax0r-r3d.toml +0 -0
  346. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/highway.toml +0 -0
  347. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/hipster-green.toml +0 -0
  348. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/hivacruz.toml +0 -0
  349. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/homebrew.toml +0 -0
  350. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/hopscotch.256.toml +0 -0
  351. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/hopscotch.toml +0 -0
  352. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/hurtado.toml +0 -0
  353. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/hybrid.toml +0 -0
  354. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/ic-green-ppl.toml +0 -0
  355. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/ic-orange-ppl.toml +0 -0
  356. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/iceberg-dark.toml +0 -0
  357. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/iceberg-light.toml +0 -0
  358. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/idea.toml +0 -0
  359. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/idletoes.toml +0 -0
  360. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/ir-black.toml +0 -0
  361. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/iterm2-dark-background.toml +0 -0
  362. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/iterm2-default.toml +0 -0
  363. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/iterm2-light-background.toml +0 -0
  364. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
  365. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/iterm2-smoooooth.toml +0 -0
  366. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
  367. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/iterm2-solarized-light.toml +0 -0
  368. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/iterm2-tango-dark.toml +0 -0
  369. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/iterm2-tango-light.toml +0 -0
  370. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/jackie-brown.toml +0 -0
  371. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/japanesque.toml +0 -0
  372. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/jellybeans.toml +0 -0
  373. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/jetbrains-darcula.toml +0 -0
  374. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/jubi.toml +0 -0
  375. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/kanagawabones.toml +0 -0
  376. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/kibble.toml +0 -0
  377. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/kolorit.toml +0 -0
  378. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/konsolas.toml +0 -0
  379. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/kurokula.toml +0 -0
  380. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/lab-fox.toml +0 -0
  381. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/laser.toml +0 -0
  382. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/later-this-evening.toml +0 -0
  383. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/lavandula.toml +0 -0
  384. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/liquidcarbon.toml +0 -0
  385. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/liquidcarbontransparent.toml +0 -0
  386. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
  387. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/lovelace.toml +0 -0
  388. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/man-page.toml +0 -0
  389. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/mariana.toml +0 -0
  390. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/material.toml +0 -0
  391. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/materialdark.toml +0 -0
  392. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/materialdarker.toml +0 -0
  393. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/materialdesigncolors.toml +0 -0
  394. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/materialocean.toml +0 -0
  395. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/mathias.toml +0 -0
  396. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/matrix.toml +0 -0
  397. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/medallion.toml +0 -0
  398. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/mellifluous.toml +0 -0
  399. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/midnight-in-mojave.toml +0 -0
  400. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/mirage.toml +0 -0
  401. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/misterioso.toml +0 -0
  402. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/molokai.toml +0 -0
  403. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/monalisa.toml +0 -0
  404. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/monokai-remastered.toml +0 -0
  405. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/monokai-soda.toml +0 -0
  406. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/monokai-vivid.toml +0 -0
  407. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/n0tch2k.toml +0 -0
  408. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/neobones-dark.toml +0 -0
  409. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/neobones-light.toml +0 -0
  410. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/neon.toml +0 -0
  411. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/neopolitan.toml +0 -0
  412. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/neutron.toml +0 -0
  413. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/night-owlish-light.toml +0 -0
  414. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/nightfox.toml +0 -0
  415. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/nightlion-v1.toml +0 -0
  416. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/nightlion-v2.toml +0 -0
  417. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/niji.toml +0 -0
  418. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/nocturnal-winter.toml +0 -0
  419. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/nord-light.toml +0 -0
  420. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/nord.toml +0 -0
  421. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/novel.toml +0 -0
  422. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/nvimdark.toml +0 -0
  423. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/nvimlight.toml +0 -0
  424. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/obsidian.toml +0 -0
  425. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/ocean.toml +0 -0
  426. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/oceanic-next.toml +0 -0
  427. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/oceanicmaterial.toml +0 -0
  428. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/ollie.toml +0 -0
  429. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/onehalfdark.toml +0 -0
  430. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/onehalflight.toml +0 -0
  431. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/operator-mono-dark.toml +0 -0
  432. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/overnight-slumber.toml +0 -0
  433. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/oxocarbon.toml +0 -0
  434. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/palenighthc.toml +0 -0
  435. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/pandora.toml +0 -0
  436. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/paraiso-dark.toml +0 -0
  437. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/paulmillr.toml +0 -0
  438. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/pencildark.toml +0 -0
  439. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/pencillight.toml +0 -0
  440. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/peppermint.toml +0 -0
  441. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/piatto-light.toml +0 -0
  442. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/pnevma.toml +0 -0
  443. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/popping-and-locking.toml +0 -0
  444. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/primary.toml +0 -0
  445. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/pro-light.toml +0 -0
  446. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/pro.toml +0 -0
  447. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/purple-rain.toml +0 -0
  448. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/purplepeter.toml +0 -0
  449. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/rapture.toml +0 -0
  450. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/raycast-dark.toml +0 -0
  451. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/raycast-light.toml +0 -0
  452. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/rebecca.toml +0 -0
  453. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/red-alert.toml +0 -0
  454. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/red-planet.toml +0 -0
  455. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/red-sands.toml +0 -0
  456. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/relaxed.toml +0 -0
  457. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/retro.toml +0 -0
  458. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/rippedcasts.toml +0 -0
  459. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/rose-pine-dawn.toml +0 -0
  460. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/rose-pine-moon.toml +0 -0
  461. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/rose-pine.toml +0 -0
  462. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/rouge-2.toml +0 -0
  463. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/royal.toml +0 -0
  464. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/ryuuko.toml +0 -0
  465. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/sakura.toml +0 -0
  466. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/scarlet-protocol.toml +0 -0
  467. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/seafoam-pastel.toml +0 -0
  468. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/seashells.toml +0 -0
  469. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/seoulbones-dark.toml +0 -0
  470. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/seoulbones-light.toml +0 -0
  471. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/seti.toml +0 -0
  472. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/shades-of-purple.toml +0 -0
  473. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/shaman.toml +0 -0
  474. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/slate.toml +0 -0
  475. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/sleepyhollow.toml +0 -0
  476. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/smyck.toml +0 -0
  477. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/snazzy.toml +0 -0
  478. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/softserver.toml +0 -0
  479. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/solarized-darcula.toml +0 -0
  480. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/solarized-dark---patched.toml +0 -0
  481. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
  482. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/spacedust.toml +0 -0
  483. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
  484. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/spacegray-eighties.toml +0 -0
  485. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/spacegray.toml +0 -0
  486. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/spiderman.toml +0 -0
  487. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/spring.toml +0 -0
  488. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/square.toml +0 -0
  489. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/sublette.toml +0 -0
  490. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/subliminal.toml +0 -0
  491. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/sugarplum.toml +0 -0
  492. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/sundried.toml +0 -0
  493. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/symfonic.toml +0 -0
  494. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/synthwave-everything.toml +0 -0
  495. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/synthwave.toml +0 -0
  496. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/synthwavealpha.toml +0 -0
  497. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/tango-adapted.toml +0 -0
  498. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/tango-half-adapted.toml +0 -0
  499. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/teerb.toml +0 -0
  500. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/terafox.toml +0 -0
  501. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/terminal-basic.toml +0 -0
  502. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/thayer-bright.toml +0 -0
  503. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/the-hulk.toml +0 -0
  504. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/tinacious-design-(dark).toml +0 -0
  505. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/tinacious-design-(light).toml +0 -0
  506. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/tokyonight-day.toml +0 -0
  507. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/tokyonight-storm.toml +0 -0
  508. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/tokyonight.toml +0 -0
  509. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/tomorrow-night-blue.toml +0 -0
  510. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/tomorrow-night-bright.toml +0 -0
  511. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/tomorrow-night-burns.toml +0 -0
  512. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
  513. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/tomorrow-night.toml +0 -0
  514. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/tomorrow.toml +0 -0
  515. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/toychest.toml +0 -0
  516. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/treehouse.toml +0 -0
  517. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/twilight.toml +0 -0
  518. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/ubuntu.toml +0 -0
  519. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/ultradark.toml +0 -0
  520. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/ultraviolent.toml +0 -0
  521. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/underthesea.toml +0 -0
  522. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/unikitty.toml +0 -0
  523. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/urple.toml +0 -0
  524. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/vaughn.toml +0 -0
  525. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/vesper.toml +0 -0
  526. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/vibrantink.toml +0 -0
  527. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/vimbones.toml +0 -0
  528. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/violet-dark.toml +0 -0
  529. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/violet-light.toml +0 -0
  530. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/warmneon.toml +0 -0
  531. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/wez.toml +0 -0
  532. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/whimsy.toml +0 -0
  533. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/wildcherry.toml +0 -0
  534. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/wilmersdorf.toml +0 -0
  535. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/wombat.toml +0 -0
  536. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/wryan.toml +0 -0
  537. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/xcodedark.toml +0 -0
  538. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/xcodedarkhc.toml +0 -0
  539. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/xcodelight.toml +0 -0
  540. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/xcodelighthc.toml +0 -0
  541. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/xcodewwdc.toml +0 -0
  542. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/zenbones-dark.toml +0 -0
  543. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/zenbones-light.toml +0 -0
  544. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/zenbones.toml +0 -0
  545. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/zenburn.toml +0 -0
  546. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/zenburned.toml +0 -0
  547. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/zenwritten-dark.toml +0 -0
  548. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/themes/zenwritten-light.toml +0 -0
  549. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/tools/__init__.py +0 -0
  550. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/tools/azure_tools.py +0 -0
  551. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/tools/code_tools.py +0 -0
  552. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/tools/file_tools.py +0 -0
  553. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/tools/github_tools.py +0 -0
  554. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/tools/markdown_tools.py +0 -0
  555. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/tools/system_tools.py +0 -0
  556. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/tools/text_tools.py +0 -0
  557. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/tools/web_tools.py +0 -0
  558. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/tools/zendesk_tools.py +0 -0
  559. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/__init__.py +0 -0
  560. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/app/__init__.py +0 -0
  561. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/app/api/__init__.py +0 -0
  562. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/app/api/agent_management.py +0 -0
  563. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/app/api/flock_management.py +0 -0
  564. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/app/api/registry_viewer.py +0 -0
  565. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/app/models_ui.py +0 -0
  566. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/app/services/__init__.py +0 -0
  567. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/app/templates/theme_mapper.html +0 -0
  568. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/app/theme_mapper.py +0 -0
  569. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/app/utils.py +0 -0
  570. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/run.py +0 -0
  571. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/static/css/components.css +0 -0
  572. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/static/css/header.css +0 -0
  573. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/static/css/layout.css +0 -0
  574. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/static/css/sidebar.css +0 -0
  575. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/base.html +0 -0
  576. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/chat_settings.html +0 -0
  577. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/flock_editor.html +0 -0
  578. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/index.html +0 -0
  579. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_agent_detail_form.html +0 -0
  580. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_agent_list.html +0 -0
  581. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_agent_manager_view.html +0 -0
  582. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_agent_tools_checklist.html +0 -0
  583. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_chat_container.html +0 -0
  584. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_create_flock_form.html +0 -0
  585. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_dashboard_flock_detail.html +0 -0
  586. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_dashboard_flock_file_list.html +0 -0
  587. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_dashboard_flock_properties_preview.html +0 -0
  588. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_dashboard_upload_flock_form.html +0 -0
  589. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_dynamic_input_form_content.html +0 -0
  590. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_env_vars_table.html +0 -0
  591. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_execution_view_container.html +0 -0
  592. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_flock_file_list.html +0 -0
  593. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_flock_properties_form.html +0 -0
  594. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_flock_upload_form.html +0 -0
  595. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_header_flock_status.html +0 -0
  596. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_load_manager_view.html +0 -0
  597. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_registry_table.html +0 -0
  598. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_registry_viewer_content.html +0 -0
  599. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_results_display.html +0 -0
  600. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_settings_env_content.html +0 -0
  601. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_settings_theme_content.html +0 -0
  602. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_settings_view.html +0 -0
  603. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_sidebar.html +0 -0
  604. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_structured_data_view.html +0 -0
  605. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/partials/_theme_preview.html +0 -0
  606. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/webapp/templates/registry_viewer.html +0 -0
  607. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/workflow/__init__.py +0 -0
  608. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/workflow/activities.py +0 -0
  609. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/workflow/agent_activities.py +0 -0
  610. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/workflow/agent_execution_activity.py +0 -0
  611. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/workflow/flock_workflow.py +0 -0
  612. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/workflow/temporal_config.py +0 -0
  613. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/src/flock/workflow/temporal_setup.py +0 -0
  614. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/tests/__init__.py +0 -0
  615. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/tests/api/test_custom_endpoints.py +0 -0
  616. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/tests/core/test_flock_batch.py +0 -0
  617. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/tests/core/test_flock_core.py +0 -0
  618. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/tests/serialization/__init__.py +0 -0
  619. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/tests/serialization/test_enhanced_serialization.py +0 -0
  620. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/tests/serialization/test_file_path_serialization.py +0 -0
  621. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/tests/serialization/test_flock_serializer.py +0 -0
  622. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/tests/serialization/test_nested_serialization.py +0 -0
  623. {flock_core-0.4.0b48 → flock_core-0.4.0b49}/tests/serialization/test_yaml_serialization.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flock-core
3
- Version: 0.4.0b48
3
+ Version: 0.4.0b49
4
4
  Summary: Declarative LLM Orchestration at Scale
5
5
  Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
6
6
  License-File: LICENSE
@@ -8,6 +8,7 @@ Classifier: License :: OSI Approved :: MIT License
8
8
  Classifier: Operating System :: OS Independent
9
9
  Classifier: Programming Language :: Python :: 3
10
10
  Requires-Python: >=3.10
11
+ Requires-Dist: aiosqlite>=0.21.0
11
12
  Requires-Dist: chromadb>=0.6.3
12
13
  Requires-Dist: cloudpickle>=3.1.1
13
14
  Requires-Dist: datasets>=3.2.0
@@ -18,7 +19,9 @@ Requires-Dist: httpx>=0.28.1
18
19
  Requires-Dist: inspect-ai>=0.3.88
19
20
  Requires-Dist: litellm==1.69.3
20
21
  Requires-Dist: loguru>=0.7.3
22
+ Requires-Dist: markdown2>=2.5.3
21
23
  Requires-Dist: matplotlib>=3.10.0
24
+ Requires-Dist: mem0ai[graph]>=0.1.100
22
25
  Requires-Dist: msgpack>=1.1.0
23
26
  Requires-Dist: notion-client>=2.3.0
24
27
  Requires-Dist: openai==1.75.0
@@ -47,7 +50,6 @@ Requires-Dist: tiktoken>=0.8.0
47
50
  Requires-Dist: toml>=0.10.2
48
51
  Requires-Dist: tqdm>=4.67.1
49
52
  Requires-Dist: uvicorn>=0.34.0
50
- Requires-Dist: zep-python>=2.0.2
51
53
  Provides-Extra: all-tools
52
54
  Requires-Dist: azure-identity>=1.23.0; extra == 'all-tools'
53
55
  Requires-Dist: azure-search-documents>=11.5.2; extra == 'all-tools'
@@ -0,0 +1,54 @@
1
+ \
2
+ ```python
3
+ # Add these imports to the appropriate sections of src/flock/webapp/app/main.py
4
+
5
+ # Standard library imports (if not already present)
6
+ import uuid
7
+
8
+ # Pydantic and FastAPI imports (ensure these are grouped with similar imports)
9
+ from pydantic import BaseModel
10
+ from fastapi import Depends, HTTPException
11
+
12
+ # Imports from your project for the sharing feature
13
+ from flock.webapp.app.services.sharing_models import SharedLinkConfig
14
+ from flock.webapp.app.services.sharing_store import SharedLinkStoreInterface
15
+ from flock.webapp.app.dependencies import get_shared_link_store
16
+ ```
17
+
18
+ ```python
19
+ # Add this code block in src/flock/webapp/app/main.py
20
+ # A good place is after the app.include_router(...) lines
21
+ # and before other utility function definitions or page route definitions.
22
+
23
+ # --- Share Link API Models and Endpoint ---
24
+ class CreateShareLinkRequest(BaseModel):
25
+ agent_name: str
26
+
27
+ class CreateShareLinkResponse(BaseModel):
28
+ share_url: str
29
+
30
+ @app.post("/api/v1/share/link", response_model=CreateShareLinkResponse, tags=["UI Sharing"])
31
+ async def create_share_link(
32
+ request_data: CreateShareLinkRequest,
33
+ store: SharedLinkStoreInterface = Depends(get_shared_link_store)
34
+ ):
35
+ \"\"\"Creates a new shareable link for an agent.\"\"\"
36
+ share_id = uuid.uuid4().hex
37
+ agent_name = request_data.agent_name
38
+
39
+ if not agent_name: # Basic validation
40
+ raise HTTPException(status_code=400, detail="Agent name cannot be empty.")
41
+
42
+ config = SharedLinkConfig(share_id=share_id, agent_name=agent_name)
43
+ try:
44
+ await store.save_config(config)
45
+ share_url = f"/ui/shared-run/{share_id}\" # Relative URL
46
+ # Ensure 'logger' is available in this scope, e.g., defined globally in main.py
47
+ logger.info(f"Created share link for agent \'{agent_name}\' with ID \'{share_id}\'. URL: {share_url}")
48
+ return CreateShareLinkResponse(share_url=share_url)
49
+ except Exception as e:
50
+ logger.error(f"Failed to create share link for agent \'{agent_name}\': {e}", exc_info=True)
51
+ # The f-string formatting for the exception detail was corrected here.
52
+ raise HTTPException(status_code=500, detail=f"Failed to create share link: {str(e)}")
53
+
54
+ # --- End Share Link API ---
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "flock-core"
3
- version = "0.4.0b-48"
3
+ version = "0.4.0b-49"
4
4
  description = "Declarative LLM Orchestration at Scale"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -52,7 +52,9 @@ dependencies = [
52
52
  "toml>=0.10.2",
53
53
  "tqdm>=4.67.1",
54
54
  "uvicorn>=0.34.0",
55
- "zep-python>=2.0.2",
55
+ "mem0ai[graph]>=0.1.100",
56
+ "aiosqlite>=0.21.0",
57
+ "markdown2>=2.5.3",
56
58
  ]
57
59
 
58
60
  [project.optional-dependencies]
@@ -16,6 +16,11 @@ def main():
16
16
  action="store_true",
17
17
  help="Start the web interface instead of the CLI",
18
18
  )
19
+ parser.add_argument(
20
+ "--chat",
21
+ action="store_true",
22
+ help="Start a chat interface. If --web is also used, enables chat within the web app; otherwise, starts standalone chat.",
23
+ )
19
24
  parser.add_argument(
20
25
  "--theme",
21
26
  type=str,
@@ -30,7 +35,7 @@ def main():
30
35
  # Set environment variable for theme if provided
31
36
  if args.theme:
32
37
  print(
33
- f"Setting FLOCK_WEB_THEME environment variable to: {args.theme}"
38
+ f"INFO: Setting FLOCK_WEB_THEME environment variable to: {args.theme}"
34
39
  )
35
40
  os.environ["FLOCK_WEB_THEME"] = args.theme
36
41
  else:
@@ -38,10 +43,20 @@ def main():
38
43
  if "FLOCK_WEB_THEME" in os.environ:
39
44
  del os.environ["FLOCK_WEB_THEME"]
40
45
 
46
+ if args.chat: # --web --chat
47
+ print("INFO: Starting web application with chat feature enabled.")
48
+ os.environ["FLOCK_CHAT_ENABLED"] = "true"
49
+ else: # Just --web
50
+ print("INFO: Starting web application.")
51
+ if "FLOCK_CHAT_ENABLED" in os.environ:
52
+ del os.environ["FLOCK_CHAT_ENABLED"]
53
+
54
+ # Ensure standalone chat mode is not active
55
+ if "FLOCK_START_MODE" in os.environ:
56
+ del os.environ["FLOCK_START_MODE"]
57
+
41
58
  # Import and run the standalone webapp main function
42
- # It will now read the theme from the environment variable
43
59
  from flock.webapp.run import main as run_webapp_main
44
-
45
60
  run_webapp_main()
46
61
 
47
62
  except ImportError:
@@ -55,6 +70,33 @@ def main():
55
70
  sys.exit(1)
56
71
  return
57
72
 
73
+ elif args.chat: # Standalone chat mode (args.web is false)
74
+ try:
75
+ print("INFO: Starting standalone chat application.")
76
+ os.environ["FLOCK_START_MODE"] = "chat"
77
+
78
+ # Clear web-specific env vars that might conflict or not apply
79
+ if "FLOCK_WEB_THEME" in os.environ:
80
+ del os.environ["FLOCK_WEB_THEME"]
81
+ if "FLOCK_CHAT_ENABLED" in os.environ:
82
+ del os.environ["FLOCK_CHAT_ENABLED"]
83
+
84
+ # Handle --theme if passed with --chat only
85
+ if args.theme:
86
+ print(f"INFO: Standalone chat mode started with --theme '{args.theme}'. FLOCK_WEB_THEME will be set.")
87
+ os.environ["FLOCK_WEB_THEME"] = args.theme
88
+
89
+ from flock.webapp.run import main as run_webapp_main
90
+ run_webapp_main() # The webapp main needs to interpret FLOCK_START_MODE="chat"
91
+
92
+ except ImportError:
93
+ print("Error: Could not import webapp components for chat. Ensure web dependencies are installed.", file=sys.stderr)
94
+ sys.exit(1)
95
+ except Exception as e:
96
+ print(f"Error starting standalone chat application: {e}", file=sys.stderr)
97
+ sys.exit(1)
98
+ return
99
+
58
100
  # Otherwise, run the CLI interface
59
101
  import questionary
60
102
  from rich.console import Console
@@ -0,0 +1,63 @@
1
+ from typing import Any
2
+
3
+ from pydantic import Field
4
+
5
+ from flock.core.context.context import FlockContext
6
+ from flock.core.flock_agent import FlockAgent
7
+ from flock.core.flock_module import FlockModule, FlockModuleConfig
8
+ from flock.core.flock_registry import flock_component
9
+ from flock.core.logging.logging import get_logger
10
+
11
+ logger = get_logger("module.mem0")
12
+
13
+
14
+ class Mem0ModuleConfig(FlockModuleConfig):
15
+ qdrant_host: str = Field(default="localhost", description="Qdrant hostname")
16
+ qdrant_port: int = Field(default=6333, description="Qdrant port")
17
+ collection: str = Field(default="flock_memories", description="Vector collection")
18
+ embedder_provider: str = Field(default="openai", description="'openai' or 'local'")
19
+ embedder_model: str = Field(default="text-embedding-ada-002",
20
+ description="Model name for embeddings")
21
+ # Optional: allow separate LLM for reflection/summarisation
22
+ llm_provider: str | None = Field(default=None)
23
+ llm_model: str | None = Field(default=None)
24
+ top_k: int = Field(default=5, description="Number of memories to retrieve")
25
+
26
+
27
+
28
+ @flock_component(config_class=Mem0ModuleConfig)
29
+ class Mem0Module(FlockModule):
30
+ """Module that adds Zep capabilities to a Flock agent."""
31
+
32
+ name: str = "mem0"
33
+ config: Mem0ModuleConfig = Mem0ModuleConfig()
34
+ session_id: str | None = None
35
+ user_id: str | None = None
36
+
37
+ def __init__(self, name, config: Mem0ModuleConfig) -> None:
38
+ """Initialize Mem0 module."""
39
+ super().__init__(name=name, config=config)
40
+ logger.debug("Initializing Mem0 module")
41
+
42
+
43
+ async def on_post_evaluate(
44
+ self,
45
+ agent: FlockAgent,
46
+ inputs: dict[str, Any],
47
+ context: FlockContext | None = None,
48
+ result: dict[str, Any] | None = None,
49
+ ) -> dict[str, Any]:
50
+
51
+ return result
52
+
53
+ async def on_pre_evaluate(
54
+ self,
55
+ agent: FlockAgent,
56
+ inputs: dict[str, Any],
57
+ context: FlockContext | None = None,
58
+ ) -> dict[str, Any]:
59
+
60
+
61
+
62
+
63
+ return inputs
@@ -0,0 +1,63 @@
1
+ from typing import Any
2
+
3
+ from pydantic import Field
4
+
5
+ from flock.core.context.context import FlockContext
6
+ from flock.core.flock_agent import FlockAgent
7
+ from flock.core.flock_module import FlockModule, FlockModuleConfig
8
+ from flock.core.flock_registry import flock_component
9
+ from flock.core.logging.logging import get_logger
10
+
11
+ logger = get_logger("module.mem0")
12
+
13
+
14
+ class Mem0GraphModuleConfig(FlockModuleConfig):
15
+ qdrant_host: str = Field(default="localhost", description="Qdrant hostname")
16
+ qdrant_port: int = Field(default=6333, description="Qdrant port")
17
+ collection: str = Field(default="flock_memories", description="Vector collection")
18
+ embedder_provider: str = Field(default="openai", description="'openai' or 'local'")
19
+ embedder_model: str = Field(default="text-embedding-ada-002",
20
+ description="Model name for embeddings")
21
+ # Optional: allow separate LLM for reflection/summarisation
22
+ llm_provider: str | None = Field(default=None)
23
+ llm_model: str | None = Field(default=None)
24
+ top_k: int = Field(default=5, description="Number of memories to retrieve")
25
+
26
+
27
+
28
+ @flock_component(config_class=Mem0GraphModuleConfig)
29
+ class Mem0GraphModule(FlockModule):
30
+
31
+
32
+ name: str = "mem0"
33
+ config: Mem0GraphModuleConfig = Mem0GraphModuleConfig()
34
+ session_id: str | None = None
35
+ user_id: str | None = None
36
+
37
+ def __init__(self, name, config: Mem0GraphModuleConfig) -> None:
38
+ """Initialize Mem0 module."""
39
+ super().__init__(name=name, config=config)
40
+ logger.debug("Initializing Mem0 module")
41
+
42
+
43
+ async def on_post_evaluate(
44
+ self,
45
+ agent: FlockAgent,
46
+ inputs: dict[str, Any],
47
+ context: FlockContext | None = None,
48
+ result: dict[str, Any] | None = None,
49
+ ) -> dict[str, Any]:
50
+
51
+ return result
52
+
53
+ async def on_pre_evaluate(
54
+ self,
55
+ agent: FlockAgent,
56
+ inputs: dict[str, Any],
57
+ context: FlockContext | None = None,
58
+ ) -> dict[str, Any]:
59
+
60
+
61
+
62
+
63
+ return inputs
@@ -0,0 +1 @@
1
+ # Package for modules
@@ -0,0 +1,264 @@
1
+ # src/flock/webapp/app/api/execution.py
2
+ import json
3
+ from pathlib import Path
4
+ from typing import TYPE_CHECKING, Any
5
+
6
+ from fastapi import ( # Ensure Form and HTTPException are imported
7
+ APIRouter,
8
+ Depends,
9
+ Form,
10
+ Request,
11
+ )
12
+ from fastapi.responses import HTMLResponse
13
+ from fastapi.templating import Jinja2Templates
14
+
15
+ if TYPE_CHECKING:
16
+ from flock.core.flock import Flock
17
+
18
+
19
+ from flock.core.flock import (
20
+ Flock as ConcreteFlock, # For creating Flock instance
21
+ )
22
+ from flock.core.logging.logging import (
23
+ get_logger as get_flock_logger, # For logging within the new endpoint
24
+ )
25
+ from flock.core.util.spliter import parse_schema
26
+
27
+ # Import the dependency to get the current Flock instance
28
+ from flock.webapp.app.dependencies import (
29
+ get_flock_instance,
30
+ get_optional_flock_instance,
31
+ )
32
+
33
+ # Service function now takes app_state
34
+ from flock.webapp.app.services.flock_service import (
35
+ run_current_flock_service,
36
+ # get_current_flock_instance IS NO LONGER IMPORTED
37
+ )
38
+ from flock.webapp.app.utils import pydantic_to_dict
39
+
40
+ router = APIRouter()
41
+ BASE_DIR = Path(__file__).resolve().parent.parent.parent
42
+ templates = Jinja2Templates(directory=str(BASE_DIR / "templates"))
43
+
44
+
45
+ @router.get("/htmx/execution-form-content", response_class=HTMLResponse)
46
+ async def htmx_get_execution_form_content(
47
+ request: Request,
48
+ current_flock: "Flock | None" = Depends(get_optional_flock_instance) # Use optional if form can show 'no flock'
49
+ ):
50
+ # flock instance is injected
51
+ return templates.TemplateResponse(
52
+ "partials/_execution_form.html",
53
+ {
54
+ "request": request,
55
+ "flock": current_flock, # Pass the injected flock instance
56
+ "input_fields": [],
57
+ "selected_agent_name": None, # Form starts with no agent selected
58
+ },
59
+ )
60
+
61
+
62
+ @router.get("/htmx/agents/{agent_name}/input-form", response_class=HTMLResponse)
63
+ async def htmx_get_agent_input_form(
64
+ request: Request,
65
+ agent_name: str,
66
+ current_flock: "Flock" = Depends(get_flock_instance) # Expect flock to be loaded
67
+ ):
68
+ # flock instance is injected
69
+ agent = current_flock.agents.get(agent_name)
70
+ if not agent:
71
+ return HTMLResponse(
72
+ f"<p class='error'>Agent '{agent_name}' not found in the current Flock.</p>"
73
+ )
74
+
75
+ input_fields = []
76
+ if agent.input and isinstance(agent.input, str):
77
+ try:
78
+ parsed_spec = parse_schema(agent.input)
79
+ for name, type_str, description in parsed_spec:
80
+ field_info = {
81
+ "name": name,
82
+ "type": type_str.lower(),
83
+ "description": description or "",
84
+ }
85
+ if "bool" in field_info["type"]: field_info["html_type"] = "checkbox"
86
+ elif "int" in field_info["type"] or "float" in field_info["type"]: field_info["html_type"] = "number"
87
+ elif "list" in field_info["type"] or "dict" in field_info["type"]:
88
+ field_info["html_type"] = "textarea"
89
+ field_info["placeholder"] = f"Enter JSON for {field_info['type']}"
90
+ else: field_info["html_type"] = "text"
91
+ input_fields.append(field_info)
92
+ except Exception as e:
93
+ return HTMLResponse(
94
+ f"<p class='error'>Error parsing input signature for {agent_name}: {e}</p>"
95
+ )
96
+ return templates.TemplateResponse(
97
+ "partials/_dynamic_input_form_content.html",
98
+ {"request": request, "input_fields": input_fields},
99
+ )
100
+
101
+
102
+ @router.post("/htmx/run", response_class=HTMLResponse)
103
+ async def htmx_run_flock(
104
+ request: Request,
105
+ # current_flock: Flock = Depends(get_flock_instance) # Service will use app_state
106
+ ):
107
+ # The service function run_current_flock_service now takes app_state
108
+ # We retrieve current_flock from app_state inside the service or before calling if needed for validation here
109
+
110
+ # It's better to get flock from app_state here to validate before calling service
111
+ current_flock_from_state: Flock | None = getattr(request.app.state, 'flock_instance', None)
112
+ logger = get_flock_logger("webapp.execution.regular_run") # Standard logger
113
+
114
+ if not current_flock_from_state:
115
+ logger.error("HTMX Run (Regular): No Flock loaded in app_state.")
116
+ return HTMLResponse("<p class='error'>No Flock loaded to run.</p>")
117
+
118
+ form_data = await request.form()
119
+ start_agent_name = form_data.get("start_agent_name")
120
+
121
+ if not start_agent_name:
122
+ logger.warning("HTMX Run (Regular): Starting agent not selected.")
123
+ return HTMLResponse("<p class='error'>Starting agent not selected.</p>")
124
+
125
+ agent = current_flock_from_state.agents.get(start_agent_name)
126
+ if not agent:
127
+ logger.error(f"HTMX Run (Regular): Agent '{start_agent_name}' not found in Flock '{current_flock_from_state.name}'.")
128
+ return HTMLResponse(
129
+ f"<p class='error'>Agent '{start_agent_name}' not found in the current Flock.</p>"
130
+ )
131
+
132
+ inputs = {}
133
+ if agent.input and isinstance(agent.input, str):
134
+ try:
135
+ parsed_spec = parse_schema(agent.input)
136
+ for name, type_str, _ in parsed_spec:
137
+ form_field_name = f"agent_input_{name}"
138
+ raw_value = form_data.get(form_field_name)
139
+ if raw_value is None and "bool" in type_str.lower(): inputs[name] = False; continue
140
+ if raw_value is None: inputs[name] = None; continue
141
+ if "int" in type_str.lower(): inputs[name] = int(raw_value)
142
+ elif "float" in type_str.lower(): inputs[name] = float(raw_value)
143
+ elif "bool" in type_str.lower(): inputs[name] = raw_value.lower() in ["true", "on", "1", "yes"]
144
+ elif "list" in type_str.lower() or "dict" in type_str.lower(): inputs[name] = json.loads(raw_value)
145
+ else: inputs[name] = raw_value
146
+ except ValueError as ve:
147
+ logger.error(f"HTMX Run (Regular): Input parsing error for agent '{start_agent_name}': {ve}", exc_info=True)
148
+ return HTMLResponse(f"<p class='error'>Invalid input format: {ve!s}</p>")
149
+ except Exception as e_parse:
150
+ logger.error(f"HTMX Run (Regular): Error processing inputs for '{start_agent_name}': {e_parse}", exc_info=True)
151
+ return HTMLResponse(f"<p class='error'>Error processing inputs for {start_agent_name}: {e_parse}</p>")
152
+
153
+ try:
154
+ logger.info(f"HTMX Run (Regular): Executing agent '{start_agent_name}' from Flock '{current_flock_from_state.name}' via service.")
155
+ result_data = await run_current_flock_service(start_agent_name, inputs, request.app.state)
156
+ except Exception as e_run:
157
+ logger.error(f"HTMX Run (Regular): Error during service execution for '{start_agent_name}': {e_run}", exc_info=True)
158
+ return templates.TemplateResponse(
159
+ "partials/_results_display.html",
160
+ {"request": request, "result_data": {"error": f"Error during execution: {e_run!s}"}},
161
+ )
162
+
163
+ # Process and serialize result for template
164
+ try:
165
+ processed_result = pydantic_to_dict(result_data)
166
+ try: json.dumps(processed_result)
167
+ except (TypeError, ValueError) as ser_e:
168
+ processed_result = f"Error: Result contains non-serializable data: {ser_e!s}\nOriginal result preview: {str(result_data)[:500]}..."
169
+ logger.warning(f"HTMX Run (Regular): Serialization issue: {processed_result}")
170
+ except Exception as proc_e:
171
+ processed_result = f"Error: Failed to process result data: {proc_e!s}"
172
+ logger.error(f"HTMX Run (Regular): Result processing error: {processed_result}", exc_info=True)
173
+
174
+ return templates.TemplateResponse(
175
+ "partials/_results_display.html",
176
+ {"request": request, "result_data": processed_result},
177
+ )
178
+
179
+
180
+ # --- NEW ENDPOINT FOR SHARED RUNS ---
181
+ @router.post("/htmx/run-shared", response_class=HTMLResponse)
182
+ async def htmx_run_shared_flock(
183
+ request: Request,
184
+ share_id: str = Form(...), # Expect share_id from the form
185
+ # flock_definition_str: str = Form(...), # No longer needed
186
+ # start_agent_name from form is still required implicitly via form_data.get()
187
+ # No DI for current_flock, as we are using the one from app.state via share_id
188
+ ):
189
+ shared_logger = get_flock_logger("webapp.execution.shared_run_stateful")
190
+ form_data = await request.form()
191
+ start_agent_name = form_data.get("start_agent_name")
192
+
193
+ if not start_agent_name:
194
+ shared_logger.warning("HTMX Run Shared (Stateful): Starting agent name not provided in form.")
195
+ return HTMLResponse("<p class='error'>Critical error: Starting agent name missing from shared run form.</p>")
196
+
197
+ shared_logger.info(f"HTMX Run Shared (Stateful): Attempting to execute agent '{start_agent_name}' using pre-loaded Flock for share_id '{share_id}'.")
198
+
199
+ inputs = {}
200
+ result_data: Any = None
201
+ temp_flock: ConcreteFlock | None = None
202
+
203
+ try:
204
+ # Retrieve the pre-loaded Flock instance from app.state
205
+ shared_flocks_store = getattr(request.app.state, 'shared_flocks', {})
206
+ temp_flock = shared_flocks_store.get(share_id)
207
+
208
+ if not temp_flock:
209
+ shared_logger.error(f"HTMX Run Shared: Flock instance for share_id '{share_id}' not found in app.state.")
210
+ return HTMLResponse(f"<p class='error'>Shared session not found or expired. Please try accessing the shared link again.</p>")
211
+
212
+ shared_logger.info(f"HTMX Run Shared: Successfully retrieved pre-loaded Flock '{temp_flock.name}' for agent '{start_agent_name}' (share_id: {share_id}).")
213
+
214
+ agent = temp_flock.agents.get(start_agent_name)
215
+ if not agent:
216
+ shared_logger.error(f"HTMX Run Shared: Agent '{start_agent_name}' not found in shared Flock '{temp_flock.name}'.")
217
+ return HTMLResponse(f"<p class='error'>Agent '{start_agent_name}' not found in the provided shared Flock definition.</p>")
218
+
219
+ # Parse inputs for the agent from the temporary flock
220
+ if agent.input and isinstance(agent.input, str):
221
+ parsed_spec = parse_schema(agent.input)
222
+ for name, type_str, _ in parsed_spec:
223
+ form_field_name = f"agent_input_{name}" # Name used in shared_run_page.html
224
+ raw_value = form_data.get(form_field_name)
225
+
226
+ # Input type conversion (consistent with the other endpoint)
227
+ if raw_value is None and "bool" in type_str.lower(): inputs[name] = False; continue
228
+ if raw_value is None: inputs[name] = None; continue
229
+ if "int" in type_str.lower(): inputs[name] = int(raw_value)
230
+ elif "float" in type_str.lower(): inputs[name] = float(raw_value)
231
+ elif "bool" in type_str.lower(): inputs[name] = raw_value.lower() in ["true", "on", "1", "yes"]
232
+ elif "list" in type_str.lower() or "dict" in type_str.lower(): inputs[name] = json.loads(raw_value)
233
+ else: inputs[name] = raw_value
234
+
235
+ shared_logger.info(f"HTMX Run Shared: Executing agent '{start_agent_name}' in pre-loaded Flock '{temp_flock.name}'. Inputs: {list(inputs.keys())}")
236
+ result_data = await temp_flock.run_async(start_agent=start_agent_name, input=inputs, box_result=False)
237
+ shared_logger.info(f"HTMX Run Shared: Agent '{start_agent_name}' executed. Result keys: {list(result_data.keys()) if isinstance(result_data, dict) else 'N/A'}")
238
+
239
+ # Process and serialize result for template (same logic as other endpoint)
240
+ try:
241
+ processed_result = pydantic_to_dict(result_data)
242
+ try: json.dumps(processed_result)
243
+ except (TypeError, ValueError) as ser_e:
244
+ processed_result = f"Error: Result contains non-serializable data: {ser_e!s}\nOriginal result preview: {str(result_data)[:500]}..."
245
+ shared_logger.warning(f"HTMX Run Shared: Serialization issue: {processed_result}")
246
+ except Exception as proc_e:
247
+ processed_result = f"Error: Failed to process result data: {proc_e!s}"
248
+ shared_logger.error(f"HTMX Run Shared: Result processing error: {processed_result}", exc_info=True)
249
+
250
+ return templates.TemplateResponse(
251
+ "partials/_results_display.html",
252
+ {"request": request, "result_data": processed_result},
253
+ )
254
+
255
+ except ValueError as ve: # Catch specific input parsing errors
256
+ shared_logger.error(f"HTMX Run Shared: Input parsing error for agent '{start_agent_name}': {ve}", exc_info=True)
257
+ return HTMLResponse(f"<p class='error'>Invalid input format: {ve!s}</p>")
258
+ except Exception as e_general:
259
+ error_message = f"An unexpected error occurred during shared execution: {e_general!s}"
260
+ shared_logger.error(f"HTMX Run Shared: General error for agent '{start_agent_name}': {e_general}", exc_info=True)
261
+ return templates.TemplateResponse(
262
+ "partials/_results_display.html",
263
+ {"request": request, "result_data": {"error": error_message } },
264
+ )