flock-core 0.2.1__tar.gz → 0.2.3__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 (457) hide show
  1. {flock_core-0.2.1 → flock_core-0.2.3}/PKG-INFO +36 -2
  2. {flock_core-0.2.1 → flock_core-0.2.3}/README.md +29 -1
  3. flock_core-0.2.3/docs/agent_mechanics.md +48 -0
  4. flock_core-0.2.3/docs/img/flock_cli.png +0 -0
  5. {flock_core-0.2.1 → flock_core-0.2.3}/examples/01_introduction/01_simple_example.py +1 -1
  6. {flock_core-0.2.1 → flock_core-0.2.3}/examples/02_cook_book_wip/project_manager.py +23 -6
  7. flock_core-0.2.3/examples/02_cook_book_wip/self_improvement.py +109 -0
  8. {flock_core-0.2.1 → flock_core-0.2.3}/pyproject.toml +7 -1
  9. flock_core-0.2.3/review/analysis.md +134 -0
  10. flock_core-0.2.3/src/flock/__init__.py +5 -0
  11. flock_core-0.2.3/src/flock/config.py +29 -0
  12. flock_core-0.2.3/src/flock/core/__init__.py +6 -0
  13. flock_core-0.2.3/src/flock/core/context/context.py +182 -0
  14. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/execution/temporal_executor.py +22 -6
  15. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/flock.py +94 -62
  16. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/flock_agent.py +150 -68
  17. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/logging/logging.py +22 -4
  18. flock_core-0.2.3/src/flock/core/logging/telemetry.py +109 -0
  19. flock_core-0.2.3/src/flock/core/logging/telemetry_exporter/file_span.py +37 -0
  20. flock_core-0.2.3/src/flock/core/logging/telemetry_exporter/sqllite_span.py +68 -0
  21. flock_core-0.2.3/src/flock/core/logging/trace_and_logged.py +55 -0
  22. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/mixin/dspy_integration.py +40 -14
  23. flock_core-0.2.3/src/flock/core/registry/agent_registry.py +118 -0
  24. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/tools/basic_tools.py +27 -4
  25. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/tools/dev_tools/github.py +37 -8
  26. flock_core-0.2.3/src/flock/core/util/cli_helper.py +25 -0
  27. flock_core-0.2.3/src/flock/workflow/activities.py +175 -0
  28. flock_core-0.2.3/tests/integration/test_agent_integration.py +49 -0
  29. flock_core-0.2.3/tests/unittests/test_flock.py +229 -0
  30. flock_core-0.2.3/tests/unittests/test_flock_agent.py +147 -0
  31. {flock_core-0.2.1 → flock_core-0.2.3}/uv.lock +340 -4
  32. flock_core-0.2.1/examples/02_cook_book_wip/04_hand_off_1.py +0 -68
  33. flock_core-0.2.1/examples/02_cook_book_wip/05_a_chat.py +0 -56
  34. flock_core-0.2.1/examples/02_cook_book_wip/05_b_rag.py +0 -56
  35. flock_core-0.2.1/src/flock/__init__.py +0 -1
  36. flock_core-0.2.1/src/flock/agents/batch_agent.py +0 -140
  37. flock_core-0.2.1/src/flock/agents/loop_agent.py +0 -117
  38. flock_core-0.2.1/src/flock/agents/trigger_agent.py +0 -113
  39. flock_core-0.2.1/src/flock/agents/user_agent.py +0 -145
  40. flock_core-0.2.1/src/flock/core/__init__.py +0 -1
  41. flock_core-0.2.1/src/flock/core/context/context.py +0 -211
  42. flock_core-0.2.1/src/flock/core/registry/agent_registry.py +0 -103
  43. flock_core-0.2.1/src/flock/core/util/cli_helper.py +0 -21
  44. flock_core-0.2.1/src/flock/workflow/__init__.py +0 -0
  45. flock_core-0.2.1/src/flock/workflow/activities.py +0 -117
  46. flock_core-0.2.1/tests/integration/test_agent_integration.py +0 -25
  47. flock_core-0.2.1/tests/test_agent.py +0 -197
  48. flock_core-0.2.1/tests/test_basic.py +0 -50
  49. flock_core-0.2.1/tests/test_formatter.py +0 -43
  50. {flock_core-0.2.1 → flock_core-0.2.3}/.devcontainer/devcontainer.json +0 -0
  51. {flock_core-0.2.1 → flock_core-0.2.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  52. {flock_core-0.2.1 → flock_core-0.2.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  53. {flock_core-0.2.1 → flock_core-0.2.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  54. {flock_core-0.2.1 → flock_core-0.2.3}/.github/workflows/.gitkeep +0 -0
  55. {flock_core-0.2.1 → flock_core-0.2.3}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
  56. {flock_core-0.2.1 → flock_core-0.2.3}/.gitignore +0 -0
  57. {flock_core-0.2.1 → flock_core-0.2.3}/.vscode/launch.json +0 -0
  58. {flock_core-0.2.1 → flock_core-0.2.3}/.vscode/settings.json +0 -0
  59. {flock_core-0.2.1 → flock_core-0.2.3}/.vscode/tasks.json +0 -0
  60. {flock_core-0.2.1 → flock_core-0.2.3}/LICENSE +0 -0
  61. {flock_core-0.2.1 → flock_core-0.2.3}/docs/api/flock.md +0 -0
  62. {flock_core-0.2.1 → flock_core-0.2.3}/docs/api/flock_agents.md +0 -0
  63. {flock_core-0.2.1 → flock_core-0.2.3}/docs/api.md +0 -0
  64. {flock_core-0.2.1 → flock_core-0.2.3}/docs/architecture.md +0 -0
  65. {flock_core-0.2.1 → flock_core-0.2.3}/docs/examples/01_introduction/01_simple_example.md +0 -0
  66. {flock_core-0.2.1 → flock_core-0.2.3}/docs/examples/01_introduction/02_typed_output.md +0 -0
  67. {flock_core-0.2.1 → flock_core-0.2.3}/docs/examples/01_introduction/03_tool_and_code_agent.md +0 -0
  68. {flock_core-0.2.1 → flock_core-0.2.3}/docs/examples/01_introduction/04_descriptions.md +0 -0
  69. {flock_core-0.2.1 → flock_core-0.2.3}/docs/examples/01_introduction/05_typed_output2.md +0 -0
  70. {flock_core-0.2.1 → flock_core-0.2.3}/docs/examples/01_introduction/06_simple_hand_off.md +0 -0
  71. {flock_core-0.2.1 → flock_core-0.2.3}/docs/examples/02_cook_book_wip/flock_without_llms.md +0 -0
  72. {flock_core-0.2.1 → flock_core-0.2.3}/docs/examples/02_cook_book_wip/project_manager.md +0 -0
  73. {flock_core-0.2.1 → flock_core-0.2.3}/docs/examples.md +0 -0
  74. {flock_core-0.2.1 → flock_core-0.2.3}/docs/generate_examples_docs.py +0 -0
  75. {flock_core-0.2.1 → flock_core-0.2.3}/docs/generate_nav.py +0 -0
  76. {flock_core-0.2.1 → flock_core-0.2.3}/docs/img/cli_outputs/out.png +0 -0
  77. {flock_core-0.2.1 → flock_core-0.2.3}/docs/img/examples/01_01.png +0 -0
  78. {flock_core-0.2.1 → flock_core-0.2.3}/docs/img/examples/01_02.png +0 -0
  79. {flock_core-0.2.1 → flock_core-0.2.3}/docs/img/examples/01_03.png +0 -0
  80. {flock_core-0.2.1 → flock_core-0.2.3}/docs/img/examples/01_04.png +0 -0
  81. {flock_core-0.2.1 → flock_core-0.2.3}/docs/img/examples/01_05.png +0 -0
  82. {flock_core-0.2.1 → flock_core-0.2.3}/docs/img/examples/01_06.png +0 -0
  83. {flock_core-0.2.1 → flock_core-0.2.3}/docs/img/flock.png +0 -0
  84. {flock_core-0.2.1 → flock_core-0.2.3}/docs/index.md +0 -0
  85. {flock_core-0.2.1 → flock_core-0.2.3}/docs/installation.md +0 -0
  86. {flock_core-0.2.1 → flock_core-0.2.3}/docs/overrides/extra.css +0 -0
  87. {flock_core-0.2.1 → flock_core-0.2.3}/docs/overrides/extra.js +0 -0
  88. {flock_core-0.2.1 → flock_core-0.2.3}/examples/01_introduction/02_typed_output.py +0 -0
  89. {flock_core-0.2.1 → flock_core-0.2.3}/examples/01_introduction/03_tool_and_code_agent.py +0 -0
  90. {flock_core-0.2.1 → flock_core-0.2.3}/examples/01_introduction/04_descriptions.py +0 -0
  91. {flock_core-0.2.1 → flock_core-0.2.3}/examples/01_introduction/05_typed_output2.py +0 -0
  92. {flock_core-0.2.1 → flock_core-0.2.3}/examples/01_introduction/06_simple_hand_off.py +0 -0
  93. {flock_core-0.2.1 → flock_core-0.2.3}/examples/02_cook_book_wip/flock_without_llms.py +0 -0
  94. {flock_core-0.2.1 → flock_core-0.2.3}/examples/02_cook_book_wip/long_research_no_handoff.py +0 -0
  95. {flock_core-0.2.1 → flock_core-0.2.3}/examples/03_misc_wip/formatting/01_pretty_print.py +0 -0
  96. {flock_core-0.2.1 → flock_core-0.2.3}/examples/03_misc_wip/formatting/02_r/303/255ch_table.py" +0 -0
  97. {flock_core-0.2.1 → flock_core-0.2.3}/examples/03_misc_wip/formatting/03_themed_table.py +0 -0
  98. {flock_core-0.2.1 → flock_core-0.2.3}/examples/03_misc_wip/logging_examples/01_basic_logging.py +0 -0
  99. {flock_core-0.2.1 → flock_core-0.2.3}/examples/03_misc_wip/logging_examples/02_temporal_logging.py +0 -0
  100. {flock_core-0.2.1 → flock_core-0.2.3}/examples/README.md +0 -0
  101. {flock_core-0.2.1 → flock_core-0.2.3}/examples/notebooks_wip/Untitled-1.ipynb +0 -0
  102. {flock_core-0.2.1 → flock_core-0.2.3}/examples/notebooks_wip/my_agent.json +0 -0
  103. {flock_core-0.2.1 → flock_core-0.2.3}/mkdocs.yml +0 -0
  104. {flock_core-0.2.1 → flock_core-0.2.3}/requirements.txt +0 -0
  105. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/context/context_manager.py +0 -0
  106. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/context/context_vars.py +0 -0
  107. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/execution/local_executor.py +0 -0
  108. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/logging/__init__.py +0 -0
  109. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/logging/formatters/base_formatter.py +0 -0
  110. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/logging/formatters/formatter_factory.py +0 -0
  111. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/logging/formatters/pprint_formatter.py +0 -0
  112. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/logging/formatters/rich_formatters.py +0 -0
  113. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/logging/formatters/theme_builder.py +0 -0
  114. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
  115. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/mixin/prompt_parser.py +0 -0
  116. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/util/input_resolver.py +0 -0
  117. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/core/util/serializable.py +0 -0
  118. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/3024-day.toml +0 -0
  119. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/3024-night.toml +0 -0
  120. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/aardvark-blue.toml +0 -0
  121. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/abernathy.toml +0 -0
  122. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/adventure.toml +0 -0
  123. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/adventuretime.toml +0 -0
  124. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/afterglow.toml +0 -0
  125. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/alabaster.toml +0 -0
  126. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/alienblood.toml +0 -0
  127. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/andromeda.toml +0 -0
  128. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/apple-classic.toml +0 -0
  129. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/apple-system-colors.toml +0 -0
  130. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/arcoiris.toml +0 -0
  131. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/argonaut copy.toml +0 -0
  132. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/argonaut.toml +0 -0
  133. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/arthur.toml +0 -0
  134. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/ateliersulphurpool.toml +0 -0
  135. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/atom.toml +0 -0
  136. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/atom_test.toml +0 -0
  137. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/atomonelight.toml +0 -0
  138. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/aurora.toml +0 -0
  139. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/ayu copy.toml +0 -0
  140. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/ayu-light.toml +0 -0
  141. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/ayu-mirage.toml +0 -0
  142. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/ayu.toml +0 -0
  143. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/banana-blueberry.toml +0 -0
  144. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/batman.toml +0 -0
  145. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/belafonte-day.toml +0 -0
  146. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/belafonte-night.toml +0 -0
  147. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/birdsofparadise.toml +0 -0
  148. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/blazer.toml +0 -0
  149. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/blue-matrix.toml +0 -0
  150. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/blueberrypie.toml +0 -0
  151. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/bluedolphin.toml +0 -0
  152. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/blulocodark.toml +0 -0
  153. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/blulocolight.toml +0 -0
  154. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/borland.toml +0 -0
  155. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/breeze.toml +0 -0
  156. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/bright-lights.toml +0 -0
  157. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/broadcast.toml +0 -0
  158. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/brogrammer.toml +0 -0
  159. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/builtin-dark.toml +0 -0
  160. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/builtin-light.toml +0 -0
  161. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/builtin-pastel-dark.toml +0 -0
  162. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/builtin-solarized-dark.toml +0 -0
  163. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/builtin-solarized-light.toml +0 -0
  164. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/builtin-tango-dark.toml +0 -0
  165. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/builtin-tango-light.toml +0 -0
  166. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/c64.toml +0 -0
  167. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/calamity.toml +0 -0
  168. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/catppuccin-frappe.toml +0 -0
  169. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/catppuccin-latte.toml +0 -0
  170. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/catppuccin-macchiato.toml +0 -0
  171. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/catppuccin-mocha.toml +0 -0
  172. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/cga.toml +0 -0
  173. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/chalk.toml +0 -0
  174. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/chalkboard.toml +0 -0
  175. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/challengerdeep.toml +0 -0
  176. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/chester.toml +0 -0
  177. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/ciapre.toml +0 -0
  178. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/clrs.toml +0 -0
  179. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/cobalt-neon.toml +0 -0
  180. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/cobalt2.toml +0 -0
  181. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/coffee-theme.toml +0 -0
  182. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/crayonponyfish.toml +0 -0
  183. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/cutiepro.toml +0 -0
  184. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/cyberdyne.toml +0 -0
  185. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/cyberpunk.toml +0 -0
  186. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
  187. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/dark+.toml +0 -0
  188. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/dark-pastel.toml +0 -0
  189. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/darkermatrix.toml +0 -0
  190. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/darkmatrix.toml +0 -0
  191. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/darkside.toml +0 -0
  192. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/dayfox.toml +0 -0
  193. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/deep.toml +0 -0
  194. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/desert.toml +0 -0
  195. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/dimidium.toml +0 -0
  196. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/dimmedmonokai.toml +0 -0
  197. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/django.toml +0 -0
  198. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/djangorebornagain.toml +0 -0
  199. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/djangosmooth.toml +0 -0
  200. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/doom-peacock.toml +0 -0
  201. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/doomone.toml +0 -0
  202. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/dotgov.toml +0 -0
  203. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/dracula+.toml +0 -0
  204. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/dracula.toml +0 -0
  205. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/duckbones.toml +0 -0
  206. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/duotone-dark.toml +0 -0
  207. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/earthsong.toml +0 -0
  208. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/elemental.toml +0 -0
  209. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/elementary.toml +0 -0
  210. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/encom.toml +0 -0
  211. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/espresso-libre.toml +0 -0
  212. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/espresso.toml +0 -0
  213. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/everblush.toml +0 -0
  214. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/fahrenheit.toml +0 -0
  215. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/fairyfloss.toml +0 -0
  216. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/farmhouse-dark.toml +0 -0
  217. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/farmhouse-light.toml +0 -0
  218. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/fideloper.toml +0 -0
  219. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/firefly-traditional.toml +0 -0
  220. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/firefoxdev.toml +0 -0
  221. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/firewatch.toml +0 -0
  222. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/fishtank.toml +0 -0
  223. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/flat.toml +0 -0
  224. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/flatland.toml +0 -0
  225. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/flexoki-dark.toml +0 -0
  226. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/flexoki-light.toml +0 -0
  227. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/floraverse.toml +0 -0
  228. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/forestblue.toml +0 -0
  229. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/framer.toml +0 -0
  230. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/frontenddelight.toml +0 -0
  231. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/funforrest.toml +0 -0
  232. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/galaxy.toml +0 -0
  233. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/galizur.toml +0 -0
  234. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/github-dark.toml +0 -0
  235. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/github.toml +0 -0
  236. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/glacier.toml +0 -0
  237. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/grape.toml +0 -0
  238. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/grass.toml +0 -0
  239. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/grey-green.toml +0 -0
  240. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/gruber-darker.toml +0 -0
  241. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/gruvboxdark.toml +0 -0
  242. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/gruvboxdarkhard.toml +0 -0
  243. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/gruvboxlight.toml +0 -0
  244. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/guezwhoz.toml +0 -0
  245. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/hacktober.toml +0 -0
  246. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/hardcore.toml +0 -0
  247. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/harper.toml +0 -0
  248. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/hax0r-blue.toml +0 -0
  249. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/hax0r-gr33n.toml +0 -0
  250. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/hax0r-r3d.toml +0 -0
  251. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/highway.toml +0 -0
  252. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/hipster-green.toml +0 -0
  253. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/hivacruz.toml +0 -0
  254. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/homebrew.toml +0 -0
  255. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/hopscotch.256.toml +0 -0
  256. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/hopscotch.toml +0 -0
  257. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/hurtado.toml +0 -0
  258. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/hybrid.toml +0 -0
  259. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/ic-green-ppl.toml +0 -0
  260. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/ic-orange-ppl.toml +0 -0
  261. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/iceberg-dark.toml +0 -0
  262. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/iceberg-light.toml +0 -0
  263. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/idea.toml +0 -0
  264. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/idletoes.toml +0 -0
  265. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/ir-black.toml +0 -0
  266. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/iterm2-dark-background.toml +0 -0
  267. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/iterm2-default.toml +0 -0
  268. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/iterm2-light-background.toml +0 -0
  269. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
  270. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/iterm2-smoooooth.toml +0 -0
  271. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
  272. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/iterm2-solarized-light.toml +0 -0
  273. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/iterm2-tango-dark.toml +0 -0
  274. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/iterm2-tango-light.toml +0 -0
  275. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/jackie-brown.toml +0 -0
  276. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/japanesque.toml +0 -0
  277. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/jellybeans.toml +0 -0
  278. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/jetbrains-darcula.toml +0 -0
  279. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/jubi.toml +0 -0
  280. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/kanagawabones.toml +0 -0
  281. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/kibble.toml +0 -0
  282. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/kolorit.toml +0 -0
  283. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/konsolas.toml +0 -0
  284. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/kurokula.toml +0 -0
  285. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/lab-fox.toml +0 -0
  286. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/laser.toml +0 -0
  287. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/later-this-evening.toml +0 -0
  288. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/lavandula.toml +0 -0
  289. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/liquidcarbon.toml +0 -0
  290. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/liquidcarbontransparent.toml +0 -0
  291. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
  292. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/lovelace.toml +0 -0
  293. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/man-page.toml +0 -0
  294. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/mariana.toml +0 -0
  295. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/material.toml +0 -0
  296. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/materialdark.toml +0 -0
  297. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/materialdarker.toml +0 -0
  298. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/materialdesigncolors.toml +0 -0
  299. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/materialocean.toml +0 -0
  300. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/mathias.toml +0 -0
  301. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/matrix.toml +0 -0
  302. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/medallion.toml +0 -0
  303. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/mellifluous.toml +0 -0
  304. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/midnight-in-mojave.toml +0 -0
  305. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/mirage.toml +0 -0
  306. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/misterioso.toml +0 -0
  307. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/molokai.toml +0 -0
  308. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/monalisa.toml +0 -0
  309. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/monokai-remastered.toml +0 -0
  310. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/monokai-soda.toml +0 -0
  311. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/monokai-vivid.toml +0 -0
  312. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/n0tch2k.toml +0 -0
  313. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/neobones-dark.toml +0 -0
  314. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/neobones-light.toml +0 -0
  315. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/neon.toml +0 -0
  316. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/neopolitan.toml +0 -0
  317. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/neutron.toml +0 -0
  318. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/night-owlish-light.toml +0 -0
  319. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/nightfox.toml +0 -0
  320. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/nightlion-v1.toml +0 -0
  321. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/nightlion-v2.toml +0 -0
  322. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/niji.toml +0 -0
  323. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/nocturnal-winter.toml +0 -0
  324. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/nord-light.toml +0 -0
  325. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/nord.toml +0 -0
  326. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/novel.toml +0 -0
  327. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/nvimdark.toml +0 -0
  328. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/nvimlight.toml +0 -0
  329. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/obsidian.toml +0 -0
  330. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/ocean.toml +0 -0
  331. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/oceanic-next.toml +0 -0
  332. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/oceanicmaterial.toml +0 -0
  333. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/ollie.toml +0 -0
  334. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/onehalfdark.toml +0 -0
  335. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/onehalflight.toml +0 -0
  336. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/operator-mono-dark.toml +0 -0
  337. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/overnight-slumber.toml +0 -0
  338. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/oxocarbon.toml +0 -0
  339. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/palenighthc.toml +0 -0
  340. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/pandora.toml +0 -0
  341. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/paraiso-dark.toml +0 -0
  342. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/paulmillr.toml +0 -0
  343. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/pencildark.toml +0 -0
  344. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/pencillight.toml +0 -0
  345. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/peppermint.toml +0 -0
  346. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/piatto-light.toml +0 -0
  347. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/pnevma.toml +0 -0
  348. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/popping-and-locking.toml +0 -0
  349. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/primary.toml +0 -0
  350. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/pro-light.toml +0 -0
  351. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/pro.toml +0 -0
  352. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/purple-rain.toml +0 -0
  353. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/purplepeter.toml +0 -0
  354. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/rapture.toml +0 -0
  355. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/raycast-dark.toml +0 -0
  356. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/raycast-light.toml +0 -0
  357. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/rebecca.toml +0 -0
  358. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/red-alert.toml +0 -0
  359. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/red-planet.toml +0 -0
  360. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/red-sands.toml +0 -0
  361. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/relaxed.toml +0 -0
  362. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/retro.toml +0 -0
  363. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/rippedcasts.toml +0 -0
  364. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/rose-pine-dawn.toml +0 -0
  365. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/rose-pine-moon.toml +0 -0
  366. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/rose-pine.toml +0 -0
  367. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/rouge-2.toml +0 -0
  368. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/royal.toml +0 -0
  369. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/ryuuko.toml +0 -0
  370. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/sakura.toml +0 -0
  371. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/scarlet-protocol.toml +0 -0
  372. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/seafoam-pastel.toml +0 -0
  373. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/seashells.toml +0 -0
  374. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/seoulbones-dark.toml +0 -0
  375. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/seoulbones-light.toml +0 -0
  376. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/seti.toml +0 -0
  377. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/shades-of-purple.toml +0 -0
  378. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/shaman.toml +0 -0
  379. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/slate.toml +0 -0
  380. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/sleepyhollow.toml +0 -0
  381. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/smyck.toml +0 -0
  382. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/snazzy.toml +0 -0
  383. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/softserver.toml +0 -0
  384. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/solarized-darcula.toml +0 -0
  385. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/solarized-dark---patched.toml +0 -0
  386. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
  387. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/spacedust.toml +0 -0
  388. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
  389. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/spacegray-eighties.toml +0 -0
  390. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/spacegray.toml +0 -0
  391. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/spiderman.toml +0 -0
  392. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/spring.toml +0 -0
  393. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/square.toml +0 -0
  394. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/sublette.toml +0 -0
  395. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/subliminal.toml +0 -0
  396. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/sugarplum.toml +0 -0
  397. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/sundried.toml +0 -0
  398. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/symfonic.toml +0 -0
  399. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/synthwave-everything.toml +0 -0
  400. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/synthwave.toml +0 -0
  401. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/synthwavealpha.toml +0 -0
  402. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/tango-adapted.toml +0 -0
  403. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/tango-half-adapted.toml +0 -0
  404. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/teerb.toml +0 -0
  405. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/terafox.toml +0 -0
  406. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/terminal-basic.toml +0 -0
  407. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/thayer-bright.toml +0 -0
  408. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/the-hulk.toml +0 -0
  409. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/tinacious-design-(dark).toml +0 -0
  410. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/tinacious-design-(light).toml +0 -0
  411. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/tokyonight-day.toml +0 -0
  412. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/tokyonight-storm.toml +0 -0
  413. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/tokyonight.toml +0 -0
  414. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/tomorrow-night-blue.toml +0 -0
  415. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/tomorrow-night-bright.toml +0 -0
  416. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/tomorrow-night-burns.toml +0 -0
  417. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
  418. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/tomorrow-night.toml +0 -0
  419. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/tomorrow.toml +0 -0
  420. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/toychest.toml +0 -0
  421. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/treehouse.toml +0 -0
  422. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/twilight.toml +0 -0
  423. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/ubuntu.toml +0 -0
  424. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/ultradark.toml +0 -0
  425. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/ultraviolent.toml +0 -0
  426. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/underthesea.toml +0 -0
  427. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/unikitty.toml +0 -0
  428. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/urple.toml +0 -0
  429. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/vaughn.toml +0 -0
  430. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/vesper.toml +0 -0
  431. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/vibrantink.toml +0 -0
  432. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/vimbones.toml +0 -0
  433. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/violet-dark.toml +0 -0
  434. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/violet-light.toml +0 -0
  435. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/warmneon.toml +0 -0
  436. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/wez.toml +0 -0
  437. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/whimsy.toml +0 -0
  438. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/wildcherry.toml +0 -0
  439. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/wilmersdorf.toml +0 -0
  440. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/wombat.toml +0 -0
  441. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/wryan.toml +0 -0
  442. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/xcodedark.toml +0 -0
  443. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/xcodedarkhc.toml +0 -0
  444. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/xcodelight.toml +0 -0
  445. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/xcodelighthc.toml +0 -0
  446. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/xcodewwdc.toml +0 -0
  447. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/zenbones-dark.toml +0 -0
  448. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/zenbones-light.toml +0 -0
  449. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/zenbones.toml +0 -0
  450. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/zenburn.toml +0 -0
  451. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/zenburned.toml +0 -0
  452. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/zenwritten-dark.toml +0 -0
  453. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/themes/zenwritten-light.toml +0 -0
  454. {flock_core-0.2.1/src/flock/agents → flock_core-0.2.3/src/flock/workflow}/__init__.py +0 -0
  455. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/workflow/agent_activities.py +0 -0
  456. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/workflow/temporal_setup.py +0 -0
  457. {flock_core-0.2.1 → flock_core-0.2.3}/src/flock/workflow/workflow.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flock-core
3
- Version: 0.2.1
3
+ Version: 0.2.3
4
4
  Summary: Declarative LLM Orchestration at Scale
5
5
  Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
6
6
  License-File: LICENSE
@@ -14,6 +14,12 @@ Requires-Dist: dspy==2.5.42
14
14
  Requires-Dist: httpx>=0.28.1
15
15
  Requires-Dist: loguru>=0.7.3
16
16
  Requires-Dist: msgpack>=1.1.0
17
+ Requires-Dist: opentelemetry-api>=1.30.0
18
+ Requires-Dist: opentelemetry-exporter-jaeger-proto-grpc>=1.21.0
19
+ Requires-Dist: opentelemetry-exporter-jaeger>=1.21.0
20
+ Requires-Dist: opentelemetry-exporter-otlp>=1.30.0
21
+ Requires-Dist: opentelemetry-instrumentation-logging>=0.51b0
22
+ Requires-Dist: opentelemetry-sdk>=1.30.0
17
23
  Requires-Dist: pydantic>=2.10.5
18
24
  Requires-Dist: python-box>=7.3.2
19
25
  Requires-Dist: rich>=13.9.4
@@ -30,7 +36,7 @@ Description-Content-Type: text/markdown
30
36
 
31
37
  <p align="center">
32
38
  <img src="docs/img/flock.png" width="600"><br>
33
- <h1 align="center">Flock</h1><br>
39
+ <h1 align="center">Flock<br></h1><br>
34
40
 
35
41
 
36
42
  ## Overview
@@ -83,6 +89,10 @@ Flock is a framework for orchestrating LLM-powered agents. It leverages a **decl
83
89
  - **DSPy Integration:**
84
90
  Flock leverages DSPy for managing LLM interactions. The framework constructs clean signature strings and updates field metadata so that DSPy can include detailed instructions and context for each agent call.
85
91
 
92
+
93
+ <p align="center">
94
+ <img src="docs/img/flock_cli.png" width="200"><br>
95
+
86
96
  ## Quick Start
87
97
 
88
98
  Below is a simple example of how to create and run an agent with Flock:
@@ -238,6 +248,30 @@ pip install flock-core[all-tools]
238
248
  uv build && uv pip install -e .
239
249
  ```
240
250
 
251
+ Install Jaeger for telemetry
252
+ ```
253
+
254
+ docker run -d --name jaeger \
255
+ -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
256
+ -p 5775:5775/udp \
257
+ -p 6831:6831/udp \
258
+ -p 6832:6832/udp \
259
+ -p 5778:5778 \
260
+ -p 16686:16686 \
261
+ -p 14268:14268 \
262
+ -p 14250:14250 \
263
+ -p 9411:9411 \
264
+ jaegertracing/all-in-one:1.41
265
+
266
+
267
+ ```
268
+
269
+ or zipkin
270
+
271
+ ```
272
+ docker run -d -p 9411:9411 openzipkin/zipkin
273
+
274
+ ```
241
275
 
242
276
  ## Contributing
243
277
 
@@ -1,6 +1,6 @@
1
1
  <p align="center">
2
2
  <img src="docs/img/flock.png" width="600"><br>
3
- <h1 align="center">Flock</h1><br>
3
+ <h1 align="center">Flock<br></h1><br>
4
4
 
5
5
 
6
6
  ## Overview
@@ -53,6 +53,10 @@ Flock is a framework for orchestrating LLM-powered agents. It leverages a **decl
53
53
  - **DSPy Integration:**
54
54
  Flock leverages DSPy for managing LLM interactions. The framework constructs clean signature strings and updates field metadata so that DSPy can include detailed instructions and context for each agent call.
55
55
 
56
+
57
+ <p align="center">
58
+ <img src="docs/img/flock_cli.png" width="200"><br>
59
+
56
60
  ## Quick Start
57
61
 
58
62
  Below is a simple example of how to create and run an agent with Flock:
@@ -208,6 +212,30 @@ pip install flock-core[all-tools]
208
212
  uv build && uv pip install -e .
209
213
  ```
210
214
 
215
+ Install Jaeger for telemetry
216
+ ```
217
+
218
+ docker run -d --name jaeger \
219
+ -e COLLECTOR_ZIPKIN_HTTP_PORT=9411 \
220
+ -p 5775:5775/udp \
221
+ -p 6831:6831/udp \
222
+ -p 6832:6832/udp \
223
+ -p 5778:5778 \
224
+ -p 16686:16686 \
225
+ -p 14268:14268 \
226
+ -p 14250:14250 \
227
+ -p 9411:9411 \
228
+ jaegertracing/all-in-one:1.41
229
+
230
+
231
+ ```
232
+
233
+ or zipkin
234
+
235
+ ```
236
+ docker run -d -p 9411:9411 openzipkin/zipkin
237
+
238
+ ```
211
239
 
212
240
  ## Contributing
213
241
 
@@ -0,0 +1,48 @@
1
+ # The FlockAgent: Embracing AI's Nature
2
+
3
+ You've seen them all - those LLM frameworks trying to tame the beast. 300-line prompts, complex state machines, and endless guardrails. But here's the thing: LLMs are fuzzy by nature. Their responses are "statistically likely but non-deterministic" - a developer's nightmare. Yet we keep trying to force them into our deterministic world, don't we?
4
+
5
+ That's where Flock comes in with a radically different philosophy: Instead of fighting the fuzziness, let's work with it.
6
+
7
+ Think about the current landscape. Graph-based frameworks that turn your "AI agents" into glorified state machines. So much guardrailing that by the time you're done, there's barely any AI left. You wanted agent-based architecture but what is left after all the hard work is something that basically amounts to a classic static service. Ironic, isn't it?
8
+
9
+ Here's our take: Let AI be AI. But give it a proper framework to thrive in.
10
+
11
+ You're the Q to your AI agents. You don't control James Bond's every move - you equip him with the right tools for the mission. That's exactly how Flock works. We're talking full-spectrum support here: From the agent-level tools that make your AI shine, all the way to battle-tested platform capabilities that keep your system running when things get rough.
12
+
13
+ No stones in your path, just pure flexibility.
14
+
15
+ **Why Callables Change Everything**
16
+
17
+ Every aspect of a FlockAgent - inputs, outputs, lifecycle hooks - can be a callable. This isn't just some feature checkbox. It means:
18
+ - Your agent adapts to context on the fly
19
+ - Edge cases? Handle them at runtime
20
+ - Complex logic? No problem - go beyond static configs
21
+
22
+ **The Lifecycle Revolution**
23
+
24
+ We give you hooks where they matter:
25
+ - `initialize`: Set the stage (resources, validation, whatever you need)
26
+ - `evaluate`: Where the magic happens
27
+ - `terminate`: Clean up your act
28
+ - `on_error`: Because stuff happens
29
+
30
+ Now, I know what you're thinking: "This sounds complex." But here's the twist - this complexity is your friend. Clear contracts beat fuzzy prompts any day. Want to switch input parameters? One hook, clearly visible. Want to handle an edge case? Good luck finding it in that 1,500-word prompt you wrote last month.
31
+
32
+ **The Beautiful Basics**
33
+
34
+ At its core, a FlockAgent is beautifully simple:
35
+ - Give it a name
36
+ - Tell it what it needs (input)
37
+ - Tell it what it should produce (output)
38
+
39
+ That's it. The rest is up to you.
40
+
41
+ The result? A framework that's actually ready for production. Your agents are:
42
+ - Modular enough to chain like LEGO bricks
43
+ - Reusable thanks to Pydantic's typing magic
44
+ - Customizable down to their core
45
+
46
+ You get to build real, scalable AI systems without the prompt engineering headaches. No more fighting the AI - just harnessing its power in a way that actually makes sense for production.
47
+
48
+ This isn't just another agent framework. It's a fundamental rethinking of how we work with LLMs in production environments. Because sometimes, the best way to control chaos is to embrace it - with the right tools in hand.
Binary file
@@ -39,7 +39,7 @@ async def main():
39
39
  # The flock is the place where all the agents are at home
40
40
  # set local_debug to True to run the flock without Temporal
41
41
  # Check out the examples in /temporal to learn about Temporal
42
- flock = Flock(model=MODEL, local_debug=True)
42
+ flock = Flock(model=MODEL, local_debug=True, enable_logging=True)
43
43
 
44
44
  # --------------------------------
45
45
  # Create an agent
@@ -29,6 +29,7 @@ Let's see how it all comes together!
29
29
 
30
30
 
31
31
  import asyncio
32
+ from dataclasses import dataclass
32
33
 
33
34
 
34
35
  from flock.core.flock import Flock
@@ -39,14 +40,21 @@ from flock.core.tools import basic_tools
39
40
  from flock.core.tools.dev_tools import github
40
41
 
41
42
 
43
+ @dataclass
44
+ class Features:
45
+ title: str
46
+ description: str
47
+ acceptance_criteria: str
48
+
49
+
42
50
  async def main():
43
51
 
44
- flock = Flock(local_debug=True, output_formatter=FormatterOptions(formatter=RichTables, wait_for_input=True, settings={}),enable_logging=True)
52
+ flock = Flock(local_debug=True, output_formatter=FormatterOptions(formatter=RichTables, wait_for_input=False, settings={}),enable_logging=True)
45
53
 
46
54
  idea_agent = FlockAgent(
47
55
  name="idea_agent",
48
56
  input="query",
49
- output="a_fun_software_project_idea",
57
+ output="software_project_idea",
50
58
  tools=[basic_tools.web_search_tavily],
51
59
  use_cache=True,
52
60
  )
@@ -67,9 +75,17 @@ async def main():
67
75
  use_cache=True,
68
76
  )
69
77
 
78
+ feature_agent = FlockAgent(
79
+ name="feature_agent",
80
+ input="readme, catchy_project_name, project_pitch, techstack, project_implementation_plan",
81
+ output="features : list[Features]",
82
+ tools=[github.create_user_stories_as_github_issue, github.create_files],
83
+ use_cache=True,
84
+ )
85
+
70
86
  issue_agent = FlockAgent(
71
87
  name="issue_agent",
72
- input="readme, catchy_project_name, project_pitch, techstack, project_implementation_plan",
88
+ input="current_feature, readme, techstack, project_implementation_plan, all_feature_titles",
73
89
  output="user_stories_on_github, files_on_github",
74
90
  tools=[github.create_user_stories_as_github_issue, github.create_files],
75
91
  use_cache=True,
@@ -77,15 +93,16 @@ async def main():
77
93
 
78
94
  idea_agent.hand_off = project_plan_agent
79
95
  project_plan_agent.hand_off = readme_agent
80
- readme_agent.hand_off = issue_agent
96
+ readme_agent.hand_off = feature_agent
97
+
81
98
 
82
99
  flock.add_agent(idea_agent)
83
100
  flock.add_agent(project_plan_agent)
84
101
  flock.add_agent(readme_agent)
102
+ flock.add_agent(feature_agent)
85
103
  flock.add_agent(issue_agent)
86
104
 
87
- await flock.run_async(
88
- input={"query": "fun software project idea"},
105
+ features : Features = await flock.run_async(
89
106
  start_agent=idea_agent,
90
107
  )
91
108
 
@@ -0,0 +1,109 @@
1
+ """
2
+ Title: Reasoning assistant with self managed memory
3
+ """
4
+
5
+ from datetime import datetime
6
+ import warnings
7
+
8
+ from flock.core.tools import basic_tools
9
+ warnings.simplefilter("error", UserWarning)
10
+ import asyncio
11
+ from dataclasses import dataclass, field
12
+
13
+ from flock.core.flock import Flock
14
+ from flock.core.flock_agent import FlockAgent, FlockAgentConfig, HandOff
15
+
16
+ from rich.prompt import Prompt
17
+ from rich.panel import Panel
18
+ from rich.console import Console
19
+
20
+
21
+ @dataclass
22
+ class Chat:
23
+ chat_history: list[str] = field(default_factory=list)
24
+ user_query: str = ""
25
+ answer_to_query: str = ""
26
+ memory: str = ""
27
+
28
+ async def before_response(self, agent, inputs):
29
+ console = Console()
30
+ # Load the memory from file (if it exists)
31
+ try:
32
+ with open("memory.txt", "r") as file:
33
+ self.memory = file.read()
34
+ except FileNotFoundError:
35
+ self.memory = ""
36
+
37
+ # Use a Rich-styled prompt to get user input
38
+ self.user_query = Prompt.ask("[bold cyan]User[/bold cyan]")
39
+ inputs["user_query"] = self.user_query
40
+ inputs["chat_history"] = self.chat_history
41
+ inputs["memory"] = self.memory
42
+
43
+ # Triggers after the agent responds to the user query
44
+ async def after_response(self, agent, inputs, outputs):
45
+ # Update answer and history based on the agent's outputs
46
+ console = Console()
47
+ self.answer_to_query = outputs["answer_to_query"]
48
+ self.chat_history.append({"user": self.user_query, "assistant": self.answer_to_query})
49
+ self.memory += outputs.get("important_new_knowledge_to_add_to_memory", "") + "\n"
50
+
51
+ # Save updated memory to file
52
+ with open("memory.txt", "w") as file:
53
+ file.write(self.memory)
54
+
55
+ # Display the assistant's reasoning (if available) in a styled panel
56
+ reasoning = outputs.get("reasoning", "")
57
+ if reasoning:
58
+ reasoning_panel = Panel(
59
+ reasoning,
60
+ title="[bold blue]Assistant Reasoning[/bold blue]",
61
+ border_style="blue",
62
+ )
63
+ console.print(reasoning_panel)
64
+
65
+ # Display the assistant's answer in a styled panel
66
+ answer_panel = Panel(
67
+ self.answer_to_query,
68
+ title="[bold green]Assistant Answer[/bold green]",
69
+ border_style="green",
70
+ )
71
+ console.print(answer_panel)
72
+
73
+ # Triggers at handoff to the next agent
74
+ def hand_off(self, context, result):
75
+ if self.user_query.lower() == "goodbye":
76
+ return None
77
+ return HandOff(next_agent="chatty")
78
+
79
+
80
+ MODEL = "openai/gpt-4o"
81
+
82
+ async def main():
83
+
84
+ chat_helper = Chat()
85
+ flock = Flock(model=MODEL, local_debug=True)
86
+
87
+
88
+ chatty = FlockAgent(
89
+ name="chatty",
90
+ description=f"You are Chatty, a friendly assistant that loves to chat. Today is {datetime.now().strftime('%A, %B %d, %Y')}",
91
+ input="user_query, memory | Memory of previous interactions, chat_history | the current chat history",
92
+ output="answer_to_query, important_new_knowledge_to_add_to_memory | Empty string if no knowledge to add",
93
+ initialize_callback=chat_helper.before_response,
94
+ terminate_callback=chat_helper.after_response,
95
+ config=FlockAgentConfig(disable_output=True),
96
+ tools=[basic_tools.web_search_tavily],
97
+ )
98
+ flock.add_agent(chatty)
99
+
100
+ chatty.hand_off = chat_helper.hand_off
101
+
102
+ await flock.run_async(
103
+ start_agent=chatty,
104
+ input={"memory": "","user_query": "","chat_history": ""}
105
+ )
106
+
107
+
108
+ if __name__ == "__main__":
109
+ asyncio.run(main())
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "flock-core"
3
- version = "0.2.1"
3
+ version = "0.2.3"
4
4
  description = "Declarative LLM Orchestration at Scale"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -19,6 +19,12 @@ dependencies = [
19
19
  "httpx>=0.28.1",
20
20
  "loguru>=0.7.3",
21
21
  "msgpack>=1.1.0",
22
+ "opentelemetry-api>=1.30.0",
23
+ "opentelemetry-exporter-jaeger>=1.21.0",
24
+ "opentelemetry-exporter-jaeger-proto-grpc>=1.21.0",
25
+ "opentelemetry-exporter-otlp>=1.30.0",
26
+ "opentelemetry-instrumentation-logging>=0.51b0",
27
+ "opentelemetry-sdk>=1.30.0",
22
28
  "pydantic>=2.10.5",
23
29
  "python-box>=7.3.2",
24
30
  "rich>=13.9.4",
@@ -0,0 +1,134 @@
1
+ # Flock Framework Analysis
2
+
3
+ ## Overview
4
+
5
+ Flock is a sophisticated Python framework for building and orchestrating LLM-powered agents with a unique declarative approach. The framework emphasizes simplicity and clarity by moving away from traditional prompt engineering in favor of a more structured, type-driven architecture.
6
+
7
+ ## Core Architecture
8
+
9
+ ### 1. Flock Orchestrator (`flock.py`)
10
+
11
+ The `Flock` class serves as the central orchestrator with several key responsibilities:
12
+
13
+ - Agent and tool registration management
14
+ - Context initialization and management
15
+ - Workflow execution (both local and distributed via Temporal)
16
+ - Configuration of logging and output formatting
17
+
18
+ Key features:
19
+ - Support for both local debugging and production (Temporal) execution modes
20
+ - Integrated telemetry and tracing
21
+ - Flexible output formatting
22
+ - Dynamic agent registration and tool management
23
+
24
+ ### 2. Agent System (`flock_agent.py`)
25
+
26
+ The `FlockAgent` class is the cornerstone of the framework, implementing a declarative pattern for agent definition. Notable aspects include:
27
+
28
+ #### Declarative Design
29
+ Instead of manual prompt engineering, agents are defined by declaring:
30
+ - Input specifications (with types and descriptions)
31
+ - Output specifications (with types and descriptions)
32
+ - Optional tools for extended functionality
33
+
34
+ #### Agent Lifecycle
35
+ The framework implements a comprehensive lifecycle management system:
36
+ 1. Initialization phase (`initialize`)
37
+ 2. Evaluation phase (`evaluate`)
38
+ 3. Termination phase (`terminate`)
39
+ 4. Error handling (`on_error`)
40
+
41
+ #### Serialization Support
42
+ Built-in capabilities for agent serialization and deserialization:
43
+ - `to_dict()`: Converts agent instances to dictionaries
44
+ - `from_dict()`: Reconstructs agents from dictionary representations
45
+ - Support for cloudpickle serialization of callable objects
46
+
47
+ ## Key Features
48
+
49
+ ### 1. Declarative Programming Model
50
+ - Agents are defined by their input/output specifications rather than prompt templates
51
+ - Type hints and descriptions are used to generate appropriate prompts automatically
52
+ - Reduces boilerplate and improves maintainability
53
+
54
+ ### 2. Tool Integration
55
+ - Flexible tool registration system
56
+ - Support for both synchronous and asynchronous tools
57
+ - Tools can be shared across agents
58
+
59
+ ### 3. Workflow Management
60
+ - Support for agent chaining through handoffs
61
+ - Built-in context management
62
+ - Integrated with Temporal for production-grade workflow orchestration
63
+
64
+ ### 4. Development Experience
65
+ - Local debugging mode for rapid development
66
+ - Rich logging and telemetry integration
67
+ - Comprehensive error handling
68
+
69
+ ## Technical Implementation
70
+
71
+ ### Context Management
72
+ - Uses a `FlockContext` system for managing state
73
+ - Supports both global and agent-specific contexts
74
+ - Implements context initialization and validation
75
+
76
+ ### Execution Models
77
+ 1. Local Execution (`run_local_workflow`)
78
+ - Simplified execution for development and debugging
79
+ - Direct agent interaction
80
+
81
+ 2. Temporal Execution (`run_temporal_workflow`)
82
+ - Production-grade workflow execution
83
+ - Fault tolerance and scalability
84
+ - Distributed execution support
85
+
86
+ ### Integration Features
87
+ - OpenTelemetry integration for tracing and monitoring
88
+ - Rich logging system with customizable formatters
89
+ - DSPy integration for LLM interactions
90
+
91
+ ## Strengths
92
+
93
+ 1. **Simplicity**
94
+ - Clear separation of concerns
95
+ - Minimal boilerplate code
96
+ - Intuitive agent definition syntax
97
+
98
+ 2. **Flexibility**
99
+ - Support for multiple execution modes
100
+ - Extensible tool system
101
+ - Customizable output formatting
102
+
103
+ 3. **Production Readiness**
104
+ - Temporal integration for robust workflow execution
105
+ - Comprehensive error handling
106
+ - Built-in monitoring and tracing
107
+
108
+ 4. **Developer Experience**
109
+ - Clear documentation and examples
110
+ - Local debugging support
111
+ - Rich logging and error feedback
112
+
113
+ ## Areas for Potential Enhancement
114
+
115
+ 1. **Documentation**
116
+ - More comprehensive API documentation
117
+ - Additional usage examples
118
+ - Best practices guide
119
+
120
+ 2. **Testing Infrastructure**
121
+ - Expanded test coverage
122
+ - Testing utilities for agent development
123
+ - Performance benchmarking tools
124
+
125
+ 3. **Tool Ecosystem**
126
+ - Pre-built tool collections
127
+ - Tool documentation and examples
128
+ - Tool validation system
129
+
130
+ ## Conclusion
131
+
132
+ Flock represents a sophisticated approach to agent-based LLM development, offering a powerful balance between simplicity and functionality. Its declarative model and robust architecture make it well-suited for both development and production environments. The framework's integration with Temporal and comprehensive feature set position it as a valuable tool for building complex LLM-powered applications.
133
+
134
+ The framework's design choices, particularly its move away from traditional prompt engineering, demonstrate a forward-thinking approach to LLM application development. While there are areas for potential enhancement, the core architecture provides a solid foundation for future development and expansion.
@@ -0,0 +1,5 @@
1
+ """Flock package initialization."""
2
+
3
+ from flock.config import TELEMETRY
4
+
5
+ tracer = TELEMETRY.setup_tracing()
@@ -0,0 +1,29 @@
1
+ # flock/config.py
2
+ import os
3
+
4
+ from flock.core.logging.telemetry import TelemetryConfig
5
+
6
+ # -- Connection and External Service Configurations --
7
+ TEMPORAL_SERVER_URL = os.getenv("TEMPORAL_SERVER_URL", "localhost:7233")
8
+ DEFAULT_MODEL = os.getenv("DEFAULT_MODEL", "openai/gpt-4o")
9
+
10
+ # API Keys and related settings
11
+ TAVILY_API_KEY = os.getenv("TAVILY_API_KEY", "")
12
+ GITHUB_PAT = os.getenv("GITHUB_PAT", "")
13
+ GITHUB_REPO = os.getenv("GITHUB_REPO", "")
14
+ GITHUB_USERNAME = os.getenv("GITHUB_USERNAME", "")
15
+
16
+ # -- Debugging and Logging Configurations --
17
+ LOCAL_DEBUG = os.getenv("LOCAL_DEBUG", "0") == "1"
18
+ LOG_LEVEL = os.getenv("LOG_LEVEL", "DEBUG")
19
+
20
+ OTL_SERVICE_NAME = os.getenv("OTL_SERVICE_NAME", "otel-flock")
21
+ JAEGER_ENDPOINT = os.getenv(
22
+ "JAEGER_ENDPOINT", "http://localhost:14268/api/traces"
23
+ ) # Default gRPC endpoint for Jaeger
24
+ JAEGER_TRANSPORT = os.getenv(
25
+ "JAEGER_TRANSPORT", "http"
26
+ ).lower() # Options: "grpc" or "http"
27
+
28
+
29
+ TELEMETRY = TelemetryConfig(OTL_SERVICE_NAME, JAEGER_ENDPOINT, JAEGER_TRANSPORT)
@@ -0,0 +1,6 @@
1
+ """This module contains the core classes of the flock package."""
2
+
3
+ from flock.core.flock import Flock
4
+ from flock.core.flock_agent import FlockAgent
5
+
6
+ __all__ = ["Flock", "FlockAgent"]