flock-core 0.3.3__tar.gz → 0.3.4__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 (525) hide show
  1. {flock_core-0.3.3 → flock_core-0.3.4}/.vscode/settings.json +2 -4
  2. {flock_core-0.3.3 → flock_core-0.3.4}/PKG-INFO +2 -1
  3. flock_core-0.3.4/examples/01_introduction/01_simple_example.py +43 -0
  4. {flock_core-0.3.3 → flock_core-0.3.4}/examples/01_introduction/02_typed_output.py +0 -22
  5. flock_core-0.3.4/examples/01_introduction/03_tool_and_code_agent.py +40 -0
  6. flock_core-0.3.4/examples/03_misc/api/api_client.py +19 -0
  7. flock_core-0.3.4/examples/03_misc/api/api_server.py +20 -0
  8. {flock_core-0.3.3 → flock_core-0.3.4}/pyproject.toml +2 -1
  9. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/__init__.py +2 -0
  10. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/flock.py +2 -0
  11. flock_core-0.3.4/src/flock/core/flock_api.py +215 -0
  12. {flock_core-0.3.3 → flock_core-0.3.4}/uv.lock +17 -1
  13. flock_core-0.3.3/examples/01_introduction/01_simple_example.py +0 -63
  14. flock_core-0.3.3/examples/01_introduction/03_tool_and_code_agent.py +0 -60
  15. {flock_core-0.3.3 → flock_core-0.3.4}/.devcontainer/devcontainer.json +0 -0
  16. {flock_core-0.3.3 → flock_core-0.3.4}/.env_template +0 -0
  17. {flock_core-0.3.3 → flock_core-0.3.4}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  18. {flock_core-0.3.3 → flock_core-0.3.4}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  19. {flock_core-0.3.3 → flock_core-0.3.4}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  20. {flock_core-0.3.3 → flock_core-0.3.4}/.github/workflows/.gitkeep +0 -0
  21. {flock_core-0.3.3 → flock_core-0.3.4}/.github/workflows/deploy-documentation.yml +0 -0
  22. {flock_core-0.3.3 → flock_core-0.3.4}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
  23. {flock_core-0.3.3 → flock_core-0.3.4}/.gitignore +0 -0
  24. {flock_core-0.3.3 → flock_core-0.3.4}/.vscode/launch.json +0 -0
  25. {flock_core-0.3.3 → flock_core-0.3.4}/.vscode/tasks.json +0 -0
  26. {flock_core-0.3.3 → flock_core-0.3.4}/LICENSE +0 -0
  27. {flock_core-0.3.3 → flock_core-0.3.4}/README.md +0 -0
  28. {flock_core-0.3.3 → flock_core-0.3.4}/docs/advanced/complex-workflows.md +0 -0
  29. {flock_core-0.3.3 → flock_core-0.3.4}/docs/advanced/custom-agents.md +0 -0
  30. {flock_core-0.3.3 → flock_core-0.3.4}/docs/advanced/performance.md +0 -0
  31. {flock_core-0.3.3 → flock_core-0.3.4}/docs/advanced/testing.md +0 -0
  32. {flock_core-0.3.3 → flock_core-0.3.4}/docs/api/flock-core.md +0 -0
  33. {flock_core-0.3.3 → flock_core-0.3.4}/docs/api/flockagent.md +0 -0
  34. {flock_core-0.3.3 → flock_core-0.3.4}/docs/api/types.md +0 -0
  35. {flock_core-0.3.3 → flock_core-0.3.4}/docs/api/utilities.md +0 -0
  36. {flock_core-0.3.3 → flock_core-0.3.4}/docs/architecture/components.md +0 -0
  37. {flock_core-0.3.3 → flock_core-0.3.4}/docs/architecture/design-decisions.md +0 -0
  38. {flock_core-0.3.3 → flock_core-0.3.4}/docs/architecture/overview.md +0 -0
  39. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/drawio/architecture.drawio +0 -0
  40. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/cli_outputs/out.png +0 -0
  41. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/components_chart.png +0 -0
  42. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/examples/01_01.png +0 -0
  43. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/examples/01_02.png +0 -0
  44. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/examples/01_03.png +0 -0
  45. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/examples/01_04.png +0 -0
  46. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/examples/01_05.png +0 -0
  47. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/examples/01_06.png +0 -0
  48. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/flock.png +0 -0
  49. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/flock_cli.png +0 -0
  50. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/flow_chart.png +0 -0
  51. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/getting-started/first_agent_00.png +0 -0
  52. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/hummingbird.png +0 -0
  53. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/icon.png +0 -0
  54. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/icon.png~ +0 -0
  55. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/logo.png +0 -0
  56. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/memory_concepts.png +0 -0
  57. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/memory_flow.png +0 -0
  58. {flock_core-0.3.3 → flock_core-0.3.4}/docs/assets/images/memory_flow_chart.png +0 -0
  59. {flock_core-0.3.3 → flock_core-0.3.4}/docs/contributing/code-style.md +0 -0
  60. {flock_core-0.3.3 → flock_core-0.3.4}/docs/contributing/development.md +0 -0
  61. {flock_core-0.3.3 → flock_core-0.3.4}/docs/contributing/documentation.md +0 -0
  62. {flock_core-0.3.3 → flock_core-0.3.4}/docs/contributing/testing.md +0 -0
  63. {flock_core-0.3.3 → flock_core-0.3.4}/docs/core-concepts/agents.md +0 -0
  64. {flock_core-0.3.3 → flock_core-0.3.4}/docs/core-concepts/declarative.md +0 -0
  65. {flock_core-0.3.3 → flock_core-0.3.4}/docs/core-concepts/error-handling.md +0 -0
  66. {flock_core-0.3.3 → flock_core-0.3.4}/docs/core-concepts/memory.md +0 -0
  67. {flock_core-0.3.3 → flock_core-0.3.4}/docs/core-concepts/type-system.md +0 -0
  68. {flock_core-0.3.3 → flock_core-0.3.4}/docs/core-concepts/workflows.md +0 -0
  69. {flock_core-0.3.3 → flock_core-0.3.4}/docs/create_doc_boilerplate.py +0 -0
  70. {flock_core-0.3.3 → flock_core-0.3.4}/docs/deployment/monitoring.md +0 -0
  71. {flock_core-0.3.3 → flock_core-0.3.4}/docs/deployment/production-setup.md +0 -0
  72. {flock_core-0.3.3 → flock_core-0.3.4}/docs/deployment/scalability.md +0 -0
  73. {flock_core-0.3.3 → flock_core-0.3.4}/docs/deployment/security.md +0 -0
  74. {flock_core-0.3.3 → flock_core-0.3.4}/docs/examples/chain-gang.md +0 -0
  75. {flock_core-0.3.3 → flock_core-0.3.4}/docs/examples/hello-flock.md +0 -0
  76. {flock_core-0.3.3 → flock_core-0.3.4}/docs/examples/pydantic.md +0 -0
  77. {flock_core-0.3.3 → flock_core-0.3.4}/docs/examples/type-system.md +0 -0
  78. {flock_core-0.3.3 → flock_core-0.3.4}/docs/features/agent-chaining.md +0 -0
  79. {flock_core-0.3.3 → flock_core-0.3.4}/docs/features/agent-definition.md +0 -0
  80. {flock_core-0.3.3 → flock_core-0.3.4}/docs/features/lifecycle-hooks.md +0 -0
  81. {flock_core-0.3.3 → flock_core-0.3.4}/docs/features/pydantic.md +0 -0
  82. {flock_core-0.3.3 → flock_core-0.3.4}/docs/features/type-safety.md +0 -0
  83. {flock_core-0.3.3 → flock_core-0.3.4}/docs/getting-started/concepts.md +0 -0
  84. {flock_core-0.3.3 → flock_core-0.3.4}/docs/getting-started/configuration.md +0 -0
  85. {flock_core-0.3.3 → flock_core-0.3.4}/docs/getting-started/installation.md +0 -0
  86. {flock_core-0.3.3 → flock_core-0.3.4}/docs/getting-started/quickstart.md +0 -0
  87. {flock_core-0.3.3 → flock_core-0.3.4}/docs/index.md +0 -0
  88. {flock_core-0.3.3 → flock_core-0.3.4}/docs/integrations/dspy.md +0 -0
  89. {flock_core-0.3.3 → flock_core-0.3.4}/docs/integrations/litellm.md +0 -0
  90. {flock_core-0.3.3 → flock_core-0.3.4}/docs/integrations/tavily.md +0 -0
  91. {flock_core-0.3.3 → flock_core-0.3.4}/docs/integrations/temporal.md +0 -0
  92. {flock_core-0.3.3 → flock_core-0.3.4}/docs/release-notes/release_notes.md +0 -0
  93. {flock_core-0.3.3 → flock_core-0.3.4}/docs/stylesheets/extra.css +0 -0
  94. {flock_core-0.3.3 → flock_core-0.3.4}/docs/tutorials/blog-generator.md +0 -0
  95. {flock_core-0.3.3 → flock_core-0.3.4}/docs/tutorials/custom-tools.md +0 -0
  96. {flock_core-0.3.3 → flock_core-0.3.4}/docs/tutorials/error-recovery.md +0 -0
  97. {flock_core-0.3.3 → flock_core-0.3.4}/docs/tutorials/multi-agent.md +0 -0
  98. {flock_core-0.3.3 → flock_core-0.3.4}/examples/01_introduction/04_descriptions.py +0 -0
  99. {flock_core-0.3.3 → flock_core-0.3.4}/examples/01_introduction/05_typed_output2.py +0 -0
  100. {flock_core-0.3.3 → flock_core-0.3.4}/examples/01_introduction/06_simple_hand_off.py +0 -0
  101. {flock_core-0.3.3 → flock_core-0.3.4}/examples/02_cook_book/flock_without_llms.py +0 -0
  102. {flock_core-0.3.3 → flock_core-0.3.4}/examples/02_cook_book/long_research_no_handoff.py +0 -0
  103. {flock_core-0.3.3 → flock_core-0.3.4}/examples/02_cook_book/painting_by_numbers.py +0 -0
  104. {flock_core-0.3.3 → flock_core-0.3.4}/examples/02_cook_book/project_manager.py +0 -0
  105. {flock_core-0.3.3 → flock_core-0.3.4}/examples/02_cook_book/save_and_load/load_01.py +0 -0
  106. {flock_core-0.3.3 → flock_core-0.3.4}/examples/02_cook_book/save_and_load/load_02.py +0 -0
  107. {flock_core-0.3.3 → flock_core-0.3.4}/examples/02_cook_book/save_and_load/load_03.py +0 -0
  108. {flock_core-0.3.3 → flock_core-0.3.4}/examples/02_cook_book/save_and_load/load_04.py +0 -0
  109. {flock_core-0.3.3 → flock_core-0.3.4}/examples/02_cook_book/save_and_load/save_01.py +0 -0
  110. {flock_core-0.3.3 → flock_core-0.3.4}/examples/02_cook_book/save_and_load/save_02.py +0 -0
  111. {flock_core-0.3.3 → flock_core-0.3.4}/examples/02_cook_book/save_and_load/save_03.py +0 -0
  112. {flock_core-0.3.3 → flock_core-0.3.4}/examples/02_cook_book/self_improvement_with_memory.py +0 -0
  113. {flock_core-0.3.3 → flock_core-0.3.4}/examples/03_misc/multi_hops.py +0 -0
  114. {flock_core-0.3.3 → flock_core-0.3.4}/examples/03_misc/use_modules.py +0 -0
  115. {flock_core-0.3.3 → flock_core-0.3.4}/examples/README.md +0 -0
  116. {flock_core-0.3.3 → flock_core-0.3.4}/examples/documentation/getting-started/first_agent_01.py +0 -0
  117. {flock_core-0.3.3 → flock_core-0.3.4}/examples/documentation/getting-started/first_agent_02.py +0 -0
  118. {flock_core-0.3.3 → flock_core-0.3.4}/examples/documentation/getting-started/first_agent_03.py +0 -0
  119. {flock_core-0.3.3 → flock_core-0.3.4}/examples/notebooks_wip/Untitled-1.ipynb +0 -0
  120. {flock_core-0.3.3 → flock_core-0.3.4}/examples/notebooks_wip/my_agent.json +0 -0
  121. {flock_core-0.3.3 → flock_core-0.3.4}/examples/playground/memory.py +0 -0
  122. {flock_core-0.3.3 → flock_core-0.3.4}/examples/playground/self_learner.py +0 -0
  123. {flock_core-0.3.3 → flock_core-0.3.4}/examples/playground/self_learner2.py +0 -0
  124. {flock_core-0.3.3 → flock_core-0.3.4}/mkdocs.yml +0 -0
  125. {flock_core-0.3.3 → flock_core-0.3.4}/requirements.txt +0 -0
  126. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/__init__.py +0 -0
  127. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/cli/assets/release_notes.md +0 -0
  128. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/cli/constants.py +0 -0
  129. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/cli/create_agent.py +0 -0
  130. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/cli/create_flock.py +0 -0
  131. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/cli/load_agent.py +0 -0
  132. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/cli/load_examples.py +0 -0
  133. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/cli/load_flock.py +0 -0
  134. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/cli/load_release_notes.py +0 -0
  135. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/cli/settings.py +0 -0
  136. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/config.py +0 -0
  137. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/context/context.py +0 -0
  138. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/context/context_manager.py +0 -0
  139. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/context/context_vars.py +0 -0
  140. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/execution/local_executor.py +0 -0
  141. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/execution/temporal_executor.py +0 -0
  142. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/flock_agent.py +0 -0
  143. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/flock_evaluator.py +0 -0
  144. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/flock_factory.py +0 -0
  145. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/flock_module.py +0 -0
  146. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/interpreter/python_interpreter.py +0 -0
  147. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/logging/__init__.py +0 -0
  148. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/logging/formatters/enum_builder.py +0 -0
  149. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/logging/formatters/theme_builder.py +0 -0
  150. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
  151. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/logging/formatters/themes.py +0 -0
  152. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/logging/logging.py +0 -0
  153. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
  154. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/logging/telemetry.py +0 -0
  155. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
  156. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
  157. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
  158. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/logging/trace_and_logged.py +0 -0
  159. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/mixin/dspy_integration.py +0 -0
  160. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/mixin/prompt_parser.py +0 -0
  161. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/registry/agent_registry.py +0 -0
  162. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/tools/basic_tools.py +0 -0
  163. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/tools/dev_tools/github.py +0 -0
  164. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/util/cli_helper.py +0 -0
  165. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/util/hydrator.py +0 -0
  166. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/util/input_resolver.py +0 -0
  167. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/core/util/serializable.py +0 -0
  168. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/evaluators/declarative/declarative_evaluator.py +0 -0
  169. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/evaluators/natural_language/natural_language_evaluator.py +0 -0
  170. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/evaluators/zep/zep_evaluator.py +0 -0
  171. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/modules/callback/callback_module.py +0 -0
  172. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/modules/memory/memory_module.py +0 -0
  173. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/modules/memory/memory_parser.py +0 -0
  174. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/modules/memory/memory_storage.py +0 -0
  175. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/modules/output/output_module.py +0 -0
  176. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/modules/performance/metrics_module.py +0 -0
  177. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/modules/zep/zep_module.py +0 -0
  178. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/platform/docker_tools.py +0 -0
  179. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/platform/jaeger_install.py +0 -0
  180. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/3024-day.toml +0 -0
  181. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/3024-night.toml +0 -0
  182. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/aardvark-blue.toml +0 -0
  183. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/abernathy.toml +0 -0
  184. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/adventure.toml +0 -0
  185. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/adventuretime.toml +0 -0
  186. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/afterglow.toml +0 -0
  187. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/alabaster.toml +0 -0
  188. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/alienblood.toml +0 -0
  189. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/andromeda.toml +0 -0
  190. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/apple-classic.toml +0 -0
  191. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/apple-system-colors.toml +0 -0
  192. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/arcoiris.toml +0 -0
  193. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/argonaut copy.toml +0 -0
  194. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/argonaut.toml +0 -0
  195. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/arthur.toml +0 -0
  196. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/ateliersulphurpool.toml +0 -0
  197. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/atom.toml +0 -0
  198. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/atom_test.toml +0 -0
  199. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/atomonelight.toml +0 -0
  200. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/aurora.toml +0 -0
  201. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/ayu copy.toml +0 -0
  202. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/ayu-light.toml +0 -0
  203. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/ayu-mirage.toml +0 -0
  204. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/ayu.toml +0 -0
  205. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/banana-blueberry.toml +0 -0
  206. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/batman.toml +0 -0
  207. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/belafonte-day.toml +0 -0
  208. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/belafonte-night.toml +0 -0
  209. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/birdsofparadise.toml +0 -0
  210. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/blazer.toml +0 -0
  211. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/blue-matrix.toml +0 -0
  212. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/blueberrypie.toml +0 -0
  213. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/bluedolphin.toml +0 -0
  214. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/blulocodark.toml +0 -0
  215. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/blulocolight.toml +0 -0
  216. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/borland.toml +0 -0
  217. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/breeze.toml +0 -0
  218. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/bright-lights.toml +0 -0
  219. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/broadcast.toml +0 -0
  220. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/brogrammer.toml +0 -0
  221. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/builtin-dark.toml +0 -0
  222. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/builtin-light.toml +0 -0
  223. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/builtin-pastel-dark.toml +0 -0
  224. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/builtin-solarized-dark.toml +0 -0
  225. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/builtin-solarized-light.toml +0 -0
  226. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/builtin-tango-dark.toml +0 -0
  227. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/builtin-tango-light.toml +0 -0
  228. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/c64.toml +0 -0
  229. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/calamity.toml +0 -0
  230. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/catppuccin-frappe.toml +0 -0
  231. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/catppuccin-latte.toml +0 -0
  232. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/catppuccin-macchiato.toml +0 -0
  233. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/catppuccin-mocha.toml +0 -0
  234. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/cga.toml +0 -0
  235. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/chalk.toml +0 -0
  236. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/chalkboard.toml +0 -0
  237. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/challengerdeep.toml +0 -0
  238. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/chester.toml +0 -0
  239. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/ciapre.toml +0 -0
  240. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/clrs.toml +0 -0
  241. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/cobalt-neon.toml +0 -0
  242. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/cobalt2.toml +0 -0
  243. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/coffee-theme.toml +0 -0
  244. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/crayonponyfish.toml +0 -0
  245. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/cutiepro.toml +0 -0
  246. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/cyberdyne.toml +0 -0
  247. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/cyberpunk.toml +0 -0
  248. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
  249. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/dark+.toml +0 -0
  250. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/dark-pastel.toml +0 -0
  251. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/darkermatrix.toml +0 -0
  252. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/darkmatrix.toml +0 -0
  253. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/darkside.toml +0 -0
  254. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/dayfox.toml +0 -0
  255. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/deep.toml +0 -0
  256. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/desert.toml +0 -0
  257. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/dimidium.toml +0 -0
  258. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/dimmedmonokai.toml +0 -0
  259. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/django.toml +0 -0
  260. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/djangorebornagain.toml +0 -0
  261. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/djangosmooth.toml +0 -0
  262. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/doom-peacock.toml +0 -0
  263. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/doomone.toml +0 -0
  264. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/dotgov.toml +0 -0
  265. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/dracula+.toml +0 -0
  266. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/dracula.toml +0 -0
  267. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/duckbones.toml +0 -0
  268. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/duotone-dark.toml +0 -0
  269. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/earthsong.toml +0 -0
  270. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/elemental.toml +0 -0
  271. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/elementary.toml +0 -0
  272. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/encom.toml +0 -0
  273. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/espresso-libre.toml +0 -0
  274. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/espresso.toml +0 -0
  275. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/everblush.toml +0 -0
  276. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/fahrenheit.toml +0 -0
  277. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/fairyfloss.toml +0 -0
  278. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/farmhouse-dark.toml +0 -0
  279. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/farmhouse-light.toml +0 -0
  280. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/fideloper.toml +0 -0
  281. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/firefly-traditional.toml +0 -0
  282. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/firefoxdev.toml +0 -0
  283. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/firewatch.toml +0 -0
  284. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/fishtank.toml +0 -0
  285. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/flat.toml +0 -0
  286. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/flatland.toml +0 -0
  287. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/flexoki-dark.toml +0 -0
  288. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/flexoki-light.toml +0 -0
  289. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/floraverse.toml +0 -0
  290. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/forestblue.toml +0 -0
  291. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/framer.toml +0 -0
  292. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/frontenddelight.toml +0 -0
  293. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/funforrest.toml +0 -0
  294. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/galaxy.toml +0 -0
  295. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/galizur.toml +0 -0
  296. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/github-dark.toml +0 -0
  297. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/github.toml +0 -0
  298. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/glacier.toml +0 -0
  299. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/grape.toml +0 -0
  300. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/grass.toml +0 -0
  301. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/grey-green.toml +0 -0
  302. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/gruber-darker.toml +0 -0
  303. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/gruvboxdark.toml +0 -0
  304. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/gruvboxdarkhard.toml +0 -0
  305. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/gruvboxlight.toml +0 -0
  306. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/guezwhoz.toml +0 -0
  307. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/hacktober.toml +0 -0
  308. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/hardcore.toml +0 -0
  309. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/harper.toml +0 -0
  310. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/hax0r-blue.toml +0 -0
  311. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/hax0r-gr33n.toml +0 -0
  312. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/hax0r-r3d.toml +0 -0
  313. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/highway.toml +0 -0
  314. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/hipster-green.toml +0 -0
  315. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/hivacruz.toml +0 -0
  316. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/homebrew.toml +0 -0
  317. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/hopscotch.256.toml +0 -0
  318. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/hopscotch.toml +0 -0
  319. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/hurtado.toml +0 -0
  320. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/hybrid.toml +0 -0
  321. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/ic-green-ppl.toml +0 -0
  322. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/ic-orange-ppl.toml +0 -0
  323. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/iceberg-dark.toml +0 -0
  324. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/iceberg-light.toml +0 -0
  325. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/idea.toml +0 -0
  326. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/idletoes.toml +0 -0
  327. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/ir-black.toml +0 -0
  328. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/iterm2-dark-background.toml +0 -0
  329. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/iterm2-default.toml +0 -0
  330. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/iterm2-light-background.toml +0 -0
  331. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
  332. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/iterm2-smoooooth.toml +0 -0
  333. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
  334. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/iterm2-solarized-light.toml +0 -0
  335. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/iterm2-tango-dark.toml +0 -0
  336. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/iterm2-tango-light.toml +0 -0
  337. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/jackie-brown.toml +0 -0
  338. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/japanesque.toml +0 -0
  339. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/jellybeans.toml +0 -0
  340. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/jetbrains-darcula.toml +0 -0
  341. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/jubi.toml +0 -0
  342. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/kanagawabones.toml +0 -0
  343. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/kibble.toml +0 -0
  344. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/kolorit.toml +0 -0
  345. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/konsolas.toml +0 -0
  346. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/kurokula.toml +0 -0
  347. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/lab-fox.toml +0 -0
  348. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/laser.toml +0 -0
  349. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/later-this-evening.toml +0 -0
  350. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/lavandula.toml +0 -0
  351. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/liquidcarbon.toml +0 -0
  352. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/liquidcarbontransparent.toml +0 -0
  353. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
  354. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/lovelace.toml +0 -0
  355. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/man-page.toml +0 -0
  356. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/mariana.toml +0 -0
  357. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/material.toml +0 -0
  358. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/materialdark.toml +0 -0
  359. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/materialdarker.toml +0 -0
  360. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/materialdesigncolors.toml +0 -0
  361. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/materialocean.toml +0 -0
  362. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/mathias.toml +0 -0
  363. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/matrix.toml +0 -0
  364. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/medallion.toml +0 -0
  365. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/mellifluous.toml +0 -0
  366. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/midnight-in-mojave.toml +0 -0
  367. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/mirage.toml +0 -0
  368. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/misterioso.toml +0 -0
  369. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/molokai.toml +0 -0
  370. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/monalisa.toml +0 -0
  371. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/monokai-remastered.toml +0 -0
  372. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/monokai-soda.toml +0 -0
  373. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/monokai-vivid.toml +0 -0
  374. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/n0tch2k.toml +0 -0
  375. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/neobones-dark.toml +0 -0
  376. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/neobones-light.toml +0 -0
  377. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/neon.toml +0 -0
  378. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/neopolitan.toml +0 -0
  379. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/neutron.toml +0 -0
  380. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/night-owlish-light.toml +0 -0
  381. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/nightfox.toml +0 -0
  382. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/nightlion-v1.toml +0 -0
  383. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/nightlion-v2.toml +0 -0
  384. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/niji.toml +0 -0
  385. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/nocturnal-winter.toml +0 -0
  386. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/nord-light.toml +0 -0
  387. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/nord.toml +0 -0
  388. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/novel.toml +0 -0
  389. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/nvimdark.toml +0 -0
  390. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/nvimlight.toml +0 -0
  391. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/obsidian.toml +0 -0
  392. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/ocean.toml +0 -0
  393. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/oceanic-next.toml +0 -0
  394. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/oceanicmaterial.toml +0 -0
  395. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/ollie.toml +0 -0
  396. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/onehalfdark.toml +0 -0
  397. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/onehalflight.toml +0 -0
  398. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/operator-mono-dark.toml +0 -0
  399. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/overnight-slumber.toml +0 -0
  400. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/oxocarbon.toml +0 -0
  401. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/palenighthc.toml +0 -0
  402. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/pandora.toml +0 -0
  403. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/paraiso-dark.toml +0 -0
  404. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/paulmillr.toml +0 -0
  405. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/pencildark.toml +0 -0
  406. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/pencillight.toml +0 -0
  407. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/peppermint.toml +0 -0
  408. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/piatto-light.toml +0 -0
  409. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/pnevma.toml +0 -0
  410. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/popping-and-locking.toml +0 -0
  411. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/primary.toml +0 -0
  412. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/pro-light.toml +0 -0
  413. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/pro.toml +0 -0
  414. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/purple-rain.toml +0 -0
  415. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/purplepeter.toml +0 -0
  416. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/rapture.toml +0 -0
  417. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/raycast-dark.toml +0 -0
  418. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/raycast-light.toml +0 -0
  419. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/rebecca.toml +0 -0
  420. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/red-alert.toml +0 -0
  421. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/red-planet.toml +0 -0
  422. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/red-sands.toml +0 -0
  423. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/relaxed.toml +0 -0
  424. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/retro.toml +0 -0
  425. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/rippedcasts.toml +0 -0
  426. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/rose-pine-dawn.toml +0 -0
  427. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/rose-pine-moon.toml +0 -0
  428. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/rose-pine.toml +0 -0
  429. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/rouge-2.toml +0 -0
  430. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/royal.toml +0 -0
  431. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/ryuuko.toml +0 -0
  432. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/sakura.toml +0 -0
  433. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/scarlet-protocol.toml +0 -0
  434. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/seafoam-pastel.toml +0 -0
  435. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/seashells.toml +0 -0
  436. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/seoulbones-dark.toml +0 -0
  437. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/seoulbones-light.toml +0 -0
  438. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/seti.toml +0 -0
  439. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/shades-of-purple.toml +0 -0
  440. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/shaman.toml +0 -0
  441. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/slate.toml +0 -0
  442. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/sleepyhollow.toml +0 -0
  443. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/smyck.toml +0 -0
  444. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/snazzy.toml +0 -0
  445. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/softserver.toml +0 -0
  446. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/solarized-darcula.toml +0 -0
  447. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/solarized-dark---patched.toml +0 -0
  448. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
  449. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/spacedust.toml +0 -0
  450. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
  451. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/spacegray-eighties.toml +0 -0
  452. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/spacegray.toml +0 -0
  453. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/spiderman.toml +0 -0
  454. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/spring.toml +0 -0
  455. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/square.toml +0 -0
  456. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/sublette.toml +0 -0
  457. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/subliminal.toml +0 -0
  458. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/sugarplum.toml +0 -0
  459. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/sundried.toml +0 -0
  460. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/symfonic.toml +0 -0
  461. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/synthwave-everything.toml +0 -0
  462. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/synthwave.toml +0 -0
  463. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/synthwavealpha.toml +0 -0
  464. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/tango-adapted.toml +0 -0
  465. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/tango-half-adapted.toml +0 -0
  466. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/teerb.toml +0 -0
  467. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/terafox.toml +0 -0
  468. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/terminal-basic.toml +0 -0
  469. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/thayer-bright.toml +0 -0
  470. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/the-hulk.toml +0 -0
  471. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/tinacious-design-(dark).toml +0 -0
  472. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/tinacious-design-(light).toml +0 -0
  473. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/tokyonight-day.toml +0 -0
  474. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/tokyonight-storm.toml +0 -0
  475. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/tokyonight.toml +0 -0
  476. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/tomorrow-night-blue.toml +0 -0
  477. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/tomorrow-night-bright.toml +0 -0
  478. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/tomorrow-night-burns.toml +0 -0
  479. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
  480. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/tomorrow-night.toml +0 -0
  481. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/tomorrow.toml +0 -0
  482. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/toychest.toml +0 -0
  483. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/treehouse.toml +0 -0
  484. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/twilight.toml +0 -0
  485. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/ubuntu.toml +0 -0
  486. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/ultradark.toml +0 -0
  487. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/ultraviolent.toml +0 -0
  488. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/underthesea.toml +0 -0
  489. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/unikitty.toml +0 -0
  490. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/urple.toml +0 -0
  491. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/vaughn.toml +0 -0
  492. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/vesper.toml +0 -0
  493. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/vibrantink.toml +0 -0
  494. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/vimbones.toml +0 -0
  495. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/violet-dark.toml +0 -0
  496. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/violet-light.toml +0 -0
  497. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/warmneon.toml +0 -0
  498. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/wez.toml +0 -0
  499. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/whimsy.toml +0 -0
  500. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/wildcherry.toml +0 -0
  501. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/wilmersdorf.toml +0 -0
  502. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/wombat.toml +0 -0
  503. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/wryan.toml +0 -0
  504. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/xcodedark.toml +0 -0
  505. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/xcodedarkhc.toml +0 -0
  506. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/xcodelight.toml +0 -0
  507. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/xcodelighthc.toml +0 -0
  508. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/xcodewwdc.toml +0 -0
  509. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/zenbones-dark.toml +0 -0
  510. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/zenbones-light.toml +0 -0
  511. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/zenbones.toml +0 -0
  512. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/zenburn.toml +0 -0
  513. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/zenburned.toml +0 -0
  514. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/zenwritten-dark.toml +0 -0
  515. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/themes/zenwritten-light.toml +0 -0
  516. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/workflow/__init__.py +0 -0
  517. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/workflow/activities.py +0 -0
  518. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/workflow/agent_activities.py +0 -0
  519. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/workflow/temporal_setup.py +0 -0
  520. {flock_core-0.3.3 → flock_core-0.3.4}/src/flock/workflow/workflow.py +0 -0
  521. {flock_core-0.3.3 → flock_core-0.3.4}/tests/integration/test_agent_integration.py +0 -0
  522. {flock_core-0.3.3 → flock_core-0.3.4}/tests/unittests/test_flock.py +0 -0
  523. {flock_core-0.3.3 → flock_core-0.3.4}/tests/unittests/test_flock_agent.py +0 -0
  524. {flock_core-0.3.3 → flock_core-0.3.4}/tests/unittests/test_memory_operations.py +0 -0
  525. {flock_core-0.3.3 → flock_core-0.3.4}/tests/unittests/test_memory_store.py +0 -0
@@ -3,11 +3,9 @@
3
3
  "tests"
4
4
  ],
5
5
  "python.envFile": "${workspaceFolder}/.env",
6
- "python.terminal.run_asyncEnvInCurrentTerminal": true,
7
6
  "python.testing.unittestEnabled": false,
8
7
  "python.testing.pytestEnabled": true,
9
8
  "python.testing.autoTestDiscoverOnSaveEnabled": true,
10
- "shiny.python.debugJustMyCode": false,
11
9
  "editor.formatOnSave": true,
12
10
  "editor.codeActionsOnSave": {
13
11
  "source.organizeImports.ruff": "always",
@@ -22,7 +20,7 @@
22
20
  "editor.fontSize": 15.5,
23
21
  "editor.fontLigatures": true,
24
22
  //"editor.lineHeight": 1.5,
25
- "editor.minimap.enabled": false,
23
+ "editor.minimap.enabled": true,
26
24
  "editor.tabSize": 2,
27
25
  "editor.semanticTokenColorCustomizations": {
28
26
  "enabled": true
@@ -30,7 +28,7 @@
30
28
  "editor.semanticHighlighting.enabled": true,
31
29
  // we try to make semantic highlighting look good
32
30
  // prevent VSCode from modifying the terminal colors
33
- "terminal.integrated.minimumContrastRatio": 0,
31
+ "terminal.integrated.minimumContrastRatio": 1,
34
32
  "cSpell.words": [
35
33
  "deptry",
36
34
  "gradio",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flock-core
3
- Version: 0.3.3
3
+ Version: 0.3.4
4
4
  Summary: Declarative LLM Orchestration at Scale
5
5
  Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
6
6
  License-File: LICENSE
@@ -12,6 +12,7 @@ Requires-Dist: cloudpickle>=3.1.1
12
12
  Requires-Dist: devtools>=0.12.2
13
13
  Requires-Dist: dspy==2.5.42
14
14
  Requires-Dist: duckduckgo-search>=7.3.2
15
+ Requires-Dist: fastapi>=0.115.8
15
16
  Requires-Dist: httpx>=0.28.1
16
17
  Requires-Dist: loguru>=0.7.3
17
18
  Requires-Dist: matplotlib>=3.10.0
@@ -0,0 +1,43 @@
1
+ from flock.core import Flock, FlockFactory
2
+ from flock.core.flock_api import FlockAPI
3
+
4
+
5
+ # --------------------------------
6
+ # Define the model
7
+ # --------------------------------
8
+ # Flock uses litellm to talk to LLMs
9
+ # Please consult the litellm documentation for valid IDs:
10
+ # https://docs.litellm.ai/docs/providers
11
+ MODEL = "openai/gpt-4o"
12
+
13
+
14
+ # --------------------------------
15
+ # Create the flock and context
16
+ # --------------------------------
17
+ # The flock is the place where all the agents are at home
18
+ flock = Flock(model=MODEL)
19
+
20
+ # --------------------------------
21
+ # Create an agent
22
+ # --------------------------------
23
+ # The Flock doesn't believe in prompts (see the docs for more info)
24
+ # The Flock just declares what agents get in and what agents produce
25
+ # bloggy takes in a blog_idea and outputs a funny_blog_title
26
+ # and blog_headers
27
+ bloggy = FlockFactory.create_default_agent(
28
+ name="bloggy",
29
+ input="blog_idea",
30
+ output="funny_blog_title, blog_headers",
31
+ )
32
+ flock.add_agent(bloggy)
33
+
34
+
35
+ # --------------------------------
36
+ # Run the flock
37
+ # --------------------------------
38
+ # Tell the flock who is the starting and what input to give it
39
+ flock.run(
40
+ start_agent=bloggy,
41
+ input={"blog_idea": "A blog about cats"}
42
+ )
43
+
@@ -1,25 +1,3 @@
1
- """
2
- Title: Advanced Flock Agent with Caching, Type Hints, and Tool Integration
3
-
4
- In this example, we'll show you how to build a more advanced Flock system that:
5
- - Uses a custom output formatter (RichTables) for a polished, swaggy display.
6
- - Defines output types using standard Python type hints (including lists and Literals) for structured results.
7
- - Integrates external tools (like a web content scraper) so that agents can perform more complex operations.
8
- - Leverages caching so that if an agent is called with the same input, the cached result is returned—this is particularly
9
- useful for expensive operations such as web scraping or during debugging.
10
-
11
- The agent in this example takes a URL as input and outputs:
12
- - A title,
13
- - A list of headings,
14
- - A list of dictionaries mapping entities to metadata, and
15
- - A type (limited to one of 'news', 'blog', 'opinion piece', or 'tweet').
16
-
17
- After executing the agent, you can work with the result as a real Python object that respects the defined types.
18
-
19
- Let's dive in!
20
- """
21
-
22
-
23
1
  from pprint import pprint
24
2
 
25
3
  from flock.core import Flock, FlockFactory
@@ -0,0 +1,40 @@
1
+ from flock.core import Flock, FlockFactory
2
+
3
+ from flock.core.logging.formatters.themes import OutputTheme
4
+ from flock.core.tools import basic_tools
5
+
6
+
7
+ # --------------------------------
8
+ # Create the flock
9
+ # --------------------------------
10
+ flock = Flock()
11
+
12
+
13
+ # --------------------------------
14
+ # Tools
15
+ # --------------------------------
16
+ # Let's talk about tools
17
+ # A FlockAgent has a tools argument that takes in ANY callable
18
+ # like the ones in flock.core.tools.basic_tools
19
+ # or your own custom tools
20
+ agent = FlockFactory.create_default_agent(
21
+ name="my_celebrity_age_agent",
22
+ input="a_person",
23
+ output="persons_age_in_days",
24
+ tools=[basic_tools.web_search_duckduckgo, basic_tools.code_eval],
25
+ enable_rich_tables=True,
26
+ output_theme=OutputTheme.adventuretime,
27
+ use_cache=True,
28
+ )
29
+ flock.add_agent(agent)
30
+
31
+ # --------------------------------
32
+ # Run the agent
33
+ # --------------------------------
34
+ # Let's calculate Johnny Depp's age in days
35
+ flock.run(
36
+ start_agent=agent,
37
+ input={"a_person": "Johnny Depp"},
38
+ )
39
+
40
+
@@ -0,0 +1,19 @@
1
+ import httpx
2
+
3
+ from flock.core.flock_api import FlockAPIRequest
4
+ from rich.console import Console
5
+ from rich.pretty import Pretty
6
+
7
+
8
+ console = Console()
9
+
10
+ payload = FlockAPIRequest(agent_name="bloggy", inputs={"blog_idea": "A blog about cats"})
11
+
12
+ response = httpx.post("http://127.0.0.1:8344/run/flock",content=payload.model_dump_json())
13
+ response.raise_for_status()
14
+
15
+ pretty = Pretty(response.json())
16
+ console.print(pretty)
17
+
18
+
19
+
@@ -0,0 +1,20 @@
1
+ from flock.core import Flock,FlockFactory,FlockAPI
2
+
3
+
4
+
5
+ MODEL = "openai/gpt-4o"
6
+
7
+ flock = Flock(model=MODEL,enable_logging=True)
8
+
9
+ bloggy = FlockFactory.create_default_agent(
10
+ name="bloggy",
11
+ input="blog_idea",
12
+ output="funny_blog_title, blog_headers",
13
+ )
14
+ flock.add_agent(bloggy)
15
+
16
+ # Swagger: http://127.0.0.1:8344/docs
17
+ # Redoc: http://127.0.0.1:8344/redoc
18
+ # POST: http://127.0.0.1:8344/run
19
+ api = FlockAPI(flock)
20
+ api.start()
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "flock-core"
3
- version = "0.3.3"
3
+ version = "0.3.4"
4
4
  description = "Declarative LLM Orchestration at Scale"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -17,6 +17,7 @@ dependencies = [
17
17
  "devtools>=0.12.2",
18
18
  "dspy==2.5.42",
19
19
  "duckduckgo-search>=7.3.2",
20
+ "fastapi>=0.115.8",
20
21
  "httpx>=0.28.1",
21
22
  "loguru>=0.7.3",
22
23
  "matplotlib>=3.10.0",
@@ -2,12 +2,14 @@
2
2
 
3
3
  from flock.core.flock import Flock
4
4
  from flock.core.flock_agent import FlockAgent
5
+ from flock.core.flock_api import FlockAPI
5
6
  from flock.core.flock_evaluator import FlockEvaluator, FlockEvaluatorConfig
6
7
  from flock.core.flock_factory import FlockFactory
7
8
  from flock.core.flock_module import FlockModule, FlockModuleConfig
8
9
 
9
10
  __all__ = [
10
11
  "Flock",
12
+ "FlockAPI",
11
13
  "FlockAgent",
12
14
  "FlockEvaluator",
13
15
  "FlockEvaluatorConfig",
@@ -379,6 +379,8 @@ class Flock:
379
379
  Exception: For any other errors encountered during execution.
380
380
  """
381
381
  with tracer.start_as_current_span("run_async") as span:
382
+ if isinstance(start_agent, str):
383
+ start_agent = self.registry.get_agent(start_agent)
382
384
  span.set_attribute(
383
385
  "start_agent",
384
386
  start_agent.name
@@ -0,0 +1,215 @@
1
+ """REST API server for Flock."""
2
+
3
+ import uuid
4
+ from datetime import datetime
5
+ from typing import Any
6
+
7
+ import uvicorn
8
+ from fastapi import BackgroundTasks, FastAPI, HTTPException
9
+ from pydantic import BaseModel, Field
10
+
11
+ from flock.core.flock import Flock
12
+ from flock.core.logging.logging import get_logger
13
+
14
+ logger = get_logger("api")
15
+
16
+
17
+ class FlockAPIRequest(BaseModel):
18
+ """Request model for running an agent."""
19
+
20
+ agent_name: str = Field(..., description="Name of the agent to run")
21
+ inputs: dict[str, Any] = Field(
22
+ default_factory=dict, description="Input data for the agent"
23
+ )
24
+ async_run: bool = Field(
25
+ default=False, description="Whether to run asynchronously"
26
+ )
27
+
28
+
29
+ class FlockAPIResponse(BaseModel):
30
+ """Response model for run requests."""
31
+
32
+ run_id: str = Field(..., description="Unique ID for this run")
33
+ status: str = Field(..., description="Status of the run")
34
+ result: dict[str, Any] | None = Field(
35
+ None, description="Run result if completed"
36
+ )
37
+ started_at: datetime = Field(..., description="When the run started")
38
+ completed_at: datetime | None = Field(
39
+ None, description="When the run completed"
40
+ )
41
+ error: str | None = Field(None, description="Error message if failed")
42
+
43
+
44
+ class FlockAPI:
45
+ """REST API server for Flock.
46
+
47
+ Provides HTTP endpoints for:
48
+ - Running agents
49
+ - Checking run status
50
+ - Getting run results
51
+ """
52
+
53
+ def __init__(self, flock: Flock):
54
+ self.flock = flock
55
+ self.app = FastAPI(title="Flock API")
56
+ self.runs: dict[str, FlockAPIResponse] = {}
57
+
58
+ # Register routes
59
+ self._setup_routes()
60
+
61
+ def _setup_routes(self):
62
+ """Set up API routes."""
63
+
64
+ @self.app.post("/run/flock", response_model=FlockAPIResponse)
65
+ async def run_flock(
66
+ request: FlockAPIRequest, background_tasks: BackgroundTasks
67
+ ):
68
+ """Run an agent with the provided inputs."""
69
+ try:
70
+ # Generate run ID
71
+ run_id = str(uuid.uuid4())
72
+
73
+ # Create initial response
74
+ response = FlockAPIResponse(
75
+ run_id=run_id, status="starting", started_at=datetime.now()
76
+ )
77
+ self.runs[run_id] = response
78
+
79
+ if request.async_run:
80
+ # Start run in background
81
+ background_tasks.add_task(
82
+ self._run_flock,
83
+ run_id,
84
+ request.agent_name,
85
+ request.inputs,
86
+ )
87
+ response.status = "running"
88
+ else:
89
+ # Run synchronously
90
+ await self._run_flock(
91
+ run_id, request.agent_name, request.inputs
92
+ )
93
+
94
+ return self.runs[run_id]
95
+
96
+ except Exception as e:
97
+ logger.error(f"Error starting run: {e!s}")
98
+ raise HTTPException(status_code=500, detail=str(e))
99
+
100
+ @self.app.post("/run/agent", response_model=FlockAPIResponse)
101
+ async def run_agent(
102
+ request: FlockAPIRequest, background_tasks: BackgroundTasks
103
+ ):
104
+ """Run an agent with the provided inputs."""
105
+ try:
106
+ # Generate run ID
107
+ run_id = str(uuid.uuid4())
108
+
109
+ # Create initial response
110
+ response = FlockAPIResponse(
111
+ run_id=run_id, status="starting", started_at=datetime.now()
112
+ )
113
+ self.runs[run_id] = response
114
+
115
+ if request.async_run:
116
+ # Start run in background
117
+ background_tasks.add_task(
118
+ self._run_agent,
119
+ run_id,
120
+ request.agent_name,
121
+ request.inputs,
122
+ )
123
+ response.status = "running"
124
+ else:
125
+ # Run synchronously
126
+ await self._run_agent(
127
+ run_id, request.agent_name, request.inputs
128
+ )
129
+
130
+ return self.runs[run_id]
131
+
132
+ except Exception as e:
133
+ logger.error(f"Error starting run: {e!s}")
134
+ raise HTTPException(status_code=500, detail=str(e))
135
+
136
+ @self.app.get("/run/{run_id}", response_model=FlockAPIResponse)
137
+ async def get_run_status(run_id: str):
138
+ """Get the status of a run."""
139
+ if run_id not in self.runs:
140
+ raise HTTPException(status_code=404, detail="Run not found")
141
+ return self.runs[run_id]
142
+
143
+ @self.app.get("/agents")
144
+ async def list_agents():
145
+ """List all available agents."""
146
+ return {
147
+ "agents": [
148
+ {
149
+ "name": agent.name,
150
+ "description": agent.description,
151
+ "input_schema": agent.input,
152
+ "output_schema": agent.output,
153
+ "hand_off": agent.hand_off,
154
+ }
155
+ for agent in self.flock.agents.values()
156
+ ]
157
+ }
158
+
159
+ async def _run_agent(
160
+ self, run_id: str, agent_name: str, inputs: dict[str, Any]
161
+ ):
162
+ """Execute an agent run."""
163
+ try:
164
+ # Get the agent
165
+ if agent_name not in self.flock.agents:
166
+ raise ValueError(f"Agent '{agent_name}' not found")
167
+
168
+ agent = self.flock.agents[agent_name]
169
+
170
+ # Run the agent
171
+ result = await agent.run_async(inputs)
172
+
173
+ # Update run status
174
+ self.runs[run_id].status = "completed"
175
+ self.runs[run_id].result = result
176
+ self.runs[run_id].completed_at = datetime.now()
177
+
178
+ except Exception as e:
179
+ logger.error(f"Error in run {run_id}: {e!s}")
180
+ self.runs[run_id].status = "failed"
181
+ self.runs[run_id].error = str(e)
182
+ self.runs[run_id].completed_at = datetime.now()
183
+
184
+ async def _run_flock(
185
+ self, run_id: str, agent_name: str, inputs: dict[str, Any]
186
+ ):
187
+ """Execute an agent run."""
188
+ try:
189
+ # Get the agent
190
+ if agent_name not in self.flock.agents:
191
+ raise ValueError(f"Agent '{agent_name}' not found")
192
+
193
+ result = await self.flock.run_async(
194
+ start_agent=agent_name, input=inputs
195
+ )
196
+
197
+ # Update run status
198
+ self.runs[run_id].status = "completed"
199
+ self.runs[run_id].result = result
200
+ self.runs[run_id].completed_at = datetime.now()
201
+
202
+ except Exception as e:
203
+ logger.error(f"Error in run {run_id}: {e!s}")
204
+ self.runs[run_id].status = "failed"
205
+ self.runs[run_id].error = str(e)
206
+ self.runs[run_id].completed_at = datetime.now()
207
+
208
+ def start(self, host: str = "0.0.0.0", port: int = 8344):
209
+ """Start the API server."""
210
+ uvicorn.run(self.app, host=host, port=port)
211
+
212
+ async def stop(self):
213
+ """Stop the API server."""
214
+ # Cleanup if needed
215
+ pass
@@ -987,6 +987,20 @@ wheels = [
987
987
  { url = "https://files.pythonhosted.org/packages/7b/8f/c4d9bafc34ad7ad5d8dc16dd1347ee0e507a52c3adb6bfa8887e1c6a26ba/executing-2.2.0-py2.py3-none-any.whl", hash = "sha256:11387150cad388d62750327a53d3339fad4888b39a6fe233c3afbb54ecffd3aa", size = 26702 },
988
988
  ]
989
989
 
990
+ [[package]]
991
+ name = "fastapi"
992
+ version = "0.115.8"
993
+ source = { registry = "https://pypi.org/simple" }
994
+ dependencies = [
995
+ { name = "pydantic" },
996
+ { name = "starlette" },
997
+ { name = "typing-extensions" },
998
+ ]
999
+ sdist = { url = "https://files.pythonhosted.org/packages/a2/b2/5a5dc4affdb6661dea100324e19a7721d5dc524b464fe8e366c093fd7d87/fastapi-0.115.8.tar.gz", hash = "sha256:0ce9111231720190473e222cdf0f07f7206ad7e53ea02beb1d2dc36e2f0741e9", size = 295403 }
1000
+ wheels = [
1001
+ { url = "https://files.pythonhosted.org/packages/8f/7d/2d6ce181d7a5f51dedb8c06206cbf0ec026a99bf145edd309f9e17c3282f/fastapi-0.115.8-py3-none-any.whl", hash = "sha256:753a96dd7e036b34eeef8babdfcfe3f28ff79648f86551eb36bfc1b0bf4a8cbf", size = 94814 },
1002
+ ]
1003
+
990
1004
  [[package]]
991
1005
  name = "fastcore"
992
1006
  version = "1.7.29"
@@ -1032,13 +1046,14 @@ wheels = [
1032
1046
 
1033
1047
  [[package]]
1034
1048
  name = "flock-core"
1035
- version = "0.3.3"
1049
+ version = "0.3.4"
1036
1050
  source = { editable = "." }
1037
1051
  dependencies = [
1038
1052
  { name = "cloudpickle" },
1039
1053
  { name = "devtools" },
1040
1054
  { name = "dspy" },
1041
1055
  { name = "duckduckgo-search" },
1056
+ { name = "fastapi" },
1042
1057
  { name = "httpx" },
1043
1058
  { name = "loguru" },
1044
1059
  { name = "matplotlib" },
@@ -1108,6 +1123,7 @@ requires-dist = [
1108
1123
  { name = "docling", marker = "extra == 'all-tools'", specifier = ">=2.18.0" },
1109
1124
  { name = "dspy", specifier = "==2.5.42" },
1110
1125
  { name = "duckduckgo-search", specifier = ">=7.3.2" },
1126
+ { name = "fastapi", specifier = ">=0.115.8" },
1111
1127
  { name = "httpx", specifier = ">=0.28.1" },
1112
1128
  { name = "loguru", specifier = ">=0.7.3" },
1113
1129
  { name = "markdownify", marker = "extra == 'all-tools'", specifier = ">=0.14.1" },
@@ -1,63 +0,0 @@
1
- """
2
- Title: Building Your First Flock Agent
3
-
4
- In this example, we'll walk you through creating and running a simple Flock system with a single agent.
5
- Flock enables you to build LLM-powered agents by simply declaring what data each agent receives and what it
6
- produces—no more tedious prompt engineering!
7
-
8
- What you'll learn:
9
- - How to set up the Flock model (using litellm; check out https://docs.litellm.ai/docs/providers for valid model IDs).
10
- - How to create a Flock instance that serves as the central orchestrator and context holder.
11
- - How to define a simple agent (named "bloggy") by declaring its input and output.
12
- - How to add the agent to your Flock.
13
- - How to run the agent workflow asynchronously in local debug mode (without needing Temporal).
14
-
15
- The "bloggy" agent in this example is designed to take a blog idea as input and generate a funny blog title
16
- along with a list of blog headers as output.
17
-
18
- Let's get started!
19
- """
20
-
21
- from flock.core import Flock, FlockFactory
22
-
23
-
24
- # --------------------------------
25
- # Define the model
26
- # --------------------------------
27
- # Flock uses litellm to talk to LLMs
28
- # Please consult the litellm documentation for valid IDs:
29
- # https://docs.litellm.ai/docs/providers
30
- MODEL = "openai/gpt-4o"
31
-
32
-
33
- # --------------------------------
34
- # Create the flock and context
35
- # --------------------------------
36
- # The flock is the place where all the agents are at home
37
- # set local_debug to True to run the flock without Temporal
38
- # Check out the examples in /temporal to learn about Temporal
39
- flock = Flock(model=MODEL)
40
-
41
- # --------------------------------
42
- # Create an agent
43
- # --------------------------------
44
- # The Flock doesn't believe in prompts (see the readme for more info)
45
- # The Flock just declares what agents get in and what agents produce
46
- # bloggy takes in a blog_idea and outputs a funny_blog_title
47
- # and blog_headers
48
- bloggy = FlockFactory.create_default_agent(
49
- name="bloggy",
50
- input="blog_idea",
51
- output="funny_blog_title, blog_headers",
52
- )
53
- flock.add_agent(bloggy)
54
-
55
-
56
- # --------------------------------
57
- # Run the flock
58
- # --------------------------------
59
- # Tell the flock who is the starting and what input to give it
60
- flock.run(
61
- start_agent=bloggy,
62
- input={"blog_idea": "A blog about cats"}
63
- )
@@ -1,60 +0,0 @@
1
- """
2
- Title: Celebrity Age Calculator with Themed Output and Tool Integration
3
-
4
- In this example, you'll see an advanced Flock agent in action. This agent demonstrates several cool features:
5
- - **Themed Output:** We use ThemedAgentResultFormatter with a custom theme (e.g. "adventuretime")
6
- to spice up the CLI output.
7
- - **Tool Integration:** The agent is configured with multiple tools, so it can, for example,
8
- use web search and code evaluation to calculate some advanced maths.
9
- - **Caching:** Enabled caching ensures that if you run the agent with the same input,
10
- it will return a cached result—ideal for expensive operations or rapid testing.
11
- - **Simple Declaration:** Just like all Flock agents, this one declares what it needs ("a_person")
12
- and what it produces ("persons_age_in_days"), without the hassle of prompt engineering.
13
-
14
- In this scenario, our agent ("my_celebrity_age_agent") takes a person's name as input and returns
15
- that person's age in days. We then use it to calculate Johnny Depp's age in days. Very advanced maths!
16
-
17
- Let's see how it's done!
18
- """
19
-
20
-
21
- from flock.core import Flock, FlockFactory
22
-
23
- from flock.core.logging.formatters.themes import OutputTheme
24
- from flock.core.tools import basic_tools
25
-
26
-
27
- # --------------------------------
28
- # Create the flock
29
- # --------------------------------
30
- flock = Flock()
31
-
32
-
33
- # --------------------------------
34
- # Tools
35
- # --------------------------------
36
- # Let's talk about tools
37
- # A FlockAgent has a tools argument that takes in ANY callable
38
- # like the ones in flock.core.tools.basic_tools
39
- # or your own custom tools
40
- agent = FlockFactory.create_default_agent(
41
- name="my_celebrity_age_agent",
42
- input="a_person",
43
- output="persons_age_in_days",
44
- tools=[basic_tools.web_search_duckduckgo, basic_tools.code_eval],
45
- enable_rich_tables=True,
46
- output_theme=OutputTheme.adventuretime,
47
- use_cache=True,
48
- )
49
- flock.add_agent(agent)
50
-
51
- # --------------------------------
52
- # Run the agent
53
- # --------------------------------
54
- # Let's calculate Johnny Depp's age in days
55
- flock.run(
56
- start_agent=agent,
57
- input={"a_person": "Johnny Depp"},
58
- )
59
-
60
-
File without changes
File without changes
File without changes
File without changes
File without changes