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