flock-core 0.2.13__tar.gz → 0.2.15__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 (463) hide show
  1. {flock_core-0.2.13 → flock_core-0.2.15}/PKG-INFO +2 -1
  2. {flock_core-0.2.13 → flock_core-0.2.15}/examples/01_introduction/01_simple_example.py +3 -1
  3. {flock_core-0.2.13 → flock_core-0.2.15}/examples/01_introduction/02_typed_output.py +9 -8
  4. {flock_core-0.2.13 → flock_core-0.2.15}/examples/01_introduction/03_tool_and_code_agent.py +7 -7
  5. {flock_core-0.2.13 → flock_core-0.2.15}/examples/01_introduction/05_typed_output2.py +0 -2
  6. {flock_core-0.2.13 → flock_core-0.2.15}/examples/01_introduction/06_simple_hand_off.py +7 -8
  7. {flock_core-0.2.13 → flock_core-0.2.15}/examples/02_cook_book/long_research_no_handoff.py +2 -2
  8. flock_core-0.2.15/examples/02_cook_book/save_and_load/load_01.py +14 -0
  9. flock_core-0.2.15/examples/02_cook_book/save_and_load/load_02.py +27 -0
  10. flock_core-0.2.15/examples/02_cook_book/save_and_load/load_03.py +10 -0
  11. flock_core-0.2.15/examples/02_cook_book/save_and_load/load_04.py +9 -0
  12. flock_core-0.2.15/examples/02_cook_book/save_and_load/save_01.py +13 -0
  13. flock_core-0.2.15/examples/02_cook_book/save_and_load/save_02.py +30 -0
  14. flock_core-0.2.15/examples/02_cook_book/save_and_load/save_03.py +40 -0
  15. {flock_core-0.2.13 → flock_core-0.2.15}/examples/02_cook_book/self_improvement.py +22 -3
  16. {flock_core-0.2.13 → flock_core-0.2.15}/examples/03_misc_wip/logging_examples/02_temporal_logging.py +2 -2
  17. {flock_core-0.2.13 → flock_core-0.2.15}/pyproject.toml +2 -1
  18. flock_core-0.2.15/src/flock/__init__.py +57 -0
  19. flock_core-0.2.15/src/flock/cli/constants.py +23 -0
  20. flock_core-0.2.15/src/flock/cli/create_agent.py +1 -0
  21. flock_core-0.2.15/src/flock/cli/create_flock.py +1 -0
  22. flock_core-0.2.15/src/flock/cli/load_agent.py +1 -0
  23. flock_core-0.2.15/src/flock/cli/load_examples.py +1 -0
  24. flock_core-0.2.15/src/flock/cli/load_flock.py +38 -0
  25. flock_core-0.2.15/src/flock/cli/settings.py +1 -0
  26. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/config.py +0 -1
  27. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/execution/local_executor.py +7 -3
  28. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/execution/temporal_executor.py +1 -8
  29. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/flock.py +197 -34
  30. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/flock_agent.py +89 -9
  31. flock_core-0.2.15/src/flock/core/logging/formatters/enum_builder.py +38 -0
  32. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/formatters/theme_builder.py +2 -6
  33. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/formatters/themed_formatter.py +127 -19
  34. flock_core-0.2.15/src/flock/core/logging/formatters/themes.py +340 -0
  35. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/telemetry.py +1 -1
  36. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/mixin/dspy_integration.py +6 -1
  37. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/workflow/activities.py +2 -19
  38. {flock_core-0.2.13 → flock_core-0.2.15}/tests/unittests/test_flock.py +1 -1
  39. {flock_core-0.2.13 → flock_core-0.2.15}/uv.lock +18 -1
  40. flock_core-0.2.13/src/flock/__init__.py +0 -1
  41. flock_core-0.2.13/src/flock/core/logging/formatters/base_formatter.py +0 -36
  42. flock_core-0.2.13/src/flock/core/logging/formatters/formatter_factory.py +0 -38
  43. flock_core-0.2.13/src/flock/core/logging/formatters/pprint_formatter.py +0 -25
  44. flock_core-0.2.13/src/flock/core/logging/formatters/rich_formatters.py +0 -132
  45. {flock_core-0.2.13 → flock_core-0.2.15}/.devcontainer/devcontainer.json +0 -0
  46. {flock_core-0.2.13 → flock_core-0.2.15}/.env_template +0 -0
  47. {flock_core-0.2.13 → flock_core-0.2.15}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  48. {flock_core-0.2.13 → flock_core-0.2.15}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  49. {flock_core-0.2.13 → flock_core-0.2.15}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  50. {flock_core-0.2.13 → flock_core-0.2.15}/.github/workflows/.gitkeep +0 -0
  51. {flock_core-0.2.13 → flock_core-0.2.15}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
  52. {flock_core-0.2.13 → flock_core-0.2.15}/.gitignore +0 -0
  53. {flock_core-0.2.13 → flock_core-0.2.15}/.vscode/launch.json +0 -0
  54. {flock_core-0.2.13 → flock_core-0.2.15}/.vscode/settings.json +0 -0
  55. {flock_core-0.2.13 → flock_core-0.2.15}/.vscode/tasks.json +0 -0
  56. {flock_core-0.2.13 → flock_core-0.2.15}/LICENSE +0 -0
  57. {flock_core-0.2.13 → flock_core-0.2.15}/README.md +0 -0
  58. {flock_core-0.2.13 → flock_core-0.2.15}/docs/agent_mechanics.md +0 -0
  59. {flock_core-0.2.13 → flock_core-0.2.15}/docs/api/flock.md +0 -0
  60. {flock_core-0.2.13 → flock_core-0.2.15}/docs/api/flock_agents.md +0 -0
  61. {flock_core-0.2.13 → flock_core-0.2.15}/docs/api.md +0 -0
  62. {flock_core-0.2.13 → flock_core-0.2.15}/docs/architecture.drawio +0 -0
  63. {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/01_introduction/01_simple_example.md +0 -0
  64. {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/01_introduction/02_typed_output.md +0 -0
  65. {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/01_introduction/03_tool_and_code_agent.md +0 -0
  66. {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/01_introduction/04_descriptions.md +0 -0
  67. {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/01_introduction/05_typed_output2.md +0 -0
  68. {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/01_introduction/06_simple_hand_off.md +0 -0
  69. {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/02_cook_book_wip/flock_without_llms.md +0 -0
  70. {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples/02_cook_book_wip/project_manager.md +0 -0
  71. {flock_core-0.2.13 → flock_core-0.2.15}/docs/examples.md +0 -0
  72. {flock_core-0.2.13 → flock_core-0.2.15}/docs/generate_examples_docs.py +0 -0
  73. {flock_core-0.2.13 → flock_core-0.2.15}/docs/generate_nav.py +0 -0
  74. {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/cli_outputs/out.png +0 -0
  75. {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/component_diagramm.png +0 -0
  76. {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/examples/01_01.png +0 -0
  77. {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/examples/01_02.png +0 -0
  78. {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/examples/01_03.png +0 -0
  79. {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/examples/01_04.png +0 -0
  80. {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/examples/01_05.png +0 -0
  81. {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/examples/01_06.png +0 -0
  82. {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/flock.png +0 -0
  83. {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/flock_cli.png +0 -0
  84. {flock_core-0.2.13 → flock_core-0.2.15}/docs/img/flow_diagramm.png +0 -0
  85. {flock_core-0.2.13 → flock_core-0.2.15}/docs/index.md +0 -0
  86. {flock_core-0.2.13 → flock_core-0.2.15}/docs/installation.md +0 -0
  87. {flock_core-0.2.13 → flock_core-0.2.15}/docs/overrides/extra.css +0 -0
  88. {flock_core-0.2.13 → flock_core-0.2.15}/docs/overrides/extra.js +0 -0
  89. {flock_core-0.2.13 → flock_core-0.2.15}/examples/01_introduction/04_descriptions.py +0 -0
  90. {flock_core-0.2.13 → flock_core-0.2.15}/examples/02_cook_book/flock_without_llms.py +0 -0
  91. {flock_core-0.2.13 → flock_core-0.2.15}/examples/02_cook_book/project_manager.py +0 -0
  92. {flock_core-0.2.13 → flock_core-0.2.15}/examples/03_misc_wip/formatting/01_pretty_print.py +0 -0
  93. {flock_core-0.2.13 → flock_core-0.2.15}/examples/03_misc_wip/formatting/02_r/303/255ch_table.py" +0 -0
  94. {flock_core-0.2.13 → flock_core-0.2.15}/examples/03_misc_wip/formatting/03_themed_table.py +0 -0
  95. {flock_core-0.2.13 → flock_core-0.2.15}/examples/03_misc_wip/logging_examples/01_basic_logging.py +0 -0
  96. {flock_core-0.2.13 → flock_core-0.2.15}/examples/README.md +0 -0
  97. {flock_core-0.2.13 → flock_core-0.2.15}/examples/notebooks_wip/Untitled-1.ipynb +0 -0
  98. {flock_core-0.2.13 → flock_core-0.2.15}/examples/notebooks_wip/my_agent.json +0 -0
  99. {flock_core-0.2.13 → flock_core-0.2.15}/mkdocs.yml +0 -0
  100. {flock_core-0.2.13 → flock_core-0.2.15}/requirements.txt +0 -0
  101. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/__init__.py +0 -0
  102. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/context/context.py +0 -0
  103. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/context/context_manager.py +0 -0
  104. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/context/context_vars.py +0 -0
  105. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/__init__.py +0 -0
  106. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/logging.py +0 -0
  107. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
  108. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
  109. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
  110. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
  111. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/logging/trace_and_logged.py +0 -0
  112. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/mixin/prompt_parser.py +0 -0
  113. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/registry/agent_registry.py +0 -0
  114. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/tools/basic_tools.py +0 -0
  115. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/tools/dev_tools/github.py +0 -0
  116. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/util/cli_helper.py +0 -0
  117. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/util/input_resolver.py +0 -0
  118. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/core/util/serializable.py +0 -0
  119. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/interpreter/python_interpreter.py +0 -0
  120. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/platform/docker_tools.py +0 -0
  121. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/platform/jaeger_install.py +0 -0
  122. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/3024-day.toml +0 -0
  123. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/3024-night.toml +0 -0
  124. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/aardvark-blue.toml +0 -0
  125. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/abernathy.toml +0 -0
  126. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/adventure.toml +0 -0
  127. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/adventuretime.toml +0 -0
  128. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/afterglow.toml +0 -0
  129. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/alabaster.toml +0 -0
  130. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/alienblood.toml +0 -0
  131. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/andromeda.toml +0 -0
  132. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/apple-classic.toml +0 -0
  133. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/apple-system-colors.toml +0 -0
  134. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/arcoiris.toml +0 -0
  135. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/argonaut copy.toml +0 -0
  136. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/argonaut.toml +0 -0
  137. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/arthur.toml +0 -0
  138. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ateliersulphurpool.toml +0 -0
  139. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/atom.toml +0 -0
  140. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/atom_test.toml +0 -0
  141. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/atomonelight.toml +0 -0
  142. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/aurora.toml +0 -0
  143. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ayu copy.toml +0 -0
  144. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ayu-light.toml +0 -0
  145. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ayu-mirage.toml +0 -0
  146. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ayu.toml +0 -0
  147. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/banana-blueberry.toml +0 -0
  148. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/batman.toml +0 -0
  149. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/belafonte-day.toml +0 -0
  150. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/belafonte-night.toml +0 -0
  151. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/birdsofparadise.toml +0 -0
  152. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/blazer.toml +0 -0
  153. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/blue-matrix.toml +0 -0
  154. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/blueberrypie.toml +0 -0
  155. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/bluedolphin.toml +0 -0
  156. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/blulocodark.toml +0 -0
  157. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/blulocolight.toml +0 -0
  158. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/borland.toml +0 -0
  159. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/breeze.toml +0 -0
  160. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/bright-lights.toml +0 -0
  161. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/broadcast.toml +0 -0
  162. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/brogrammer.toml +0 -0
  163. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/builtin-dark.toml +0 -0
  164. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/builtin-light.toml +0 -0
  165. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/builtin-pastel-dark.toml +0 -0
  166. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/builtin-solarized-dark.toml +0 -0
  167. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/builtin-solarized-light.toml +0 -0
  168. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/builtin-tango-dark.toml +0 -0
  169. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/builtin-tango-light.toml +0 -0
  170. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/c64.toml +0 -0
  171. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/calamity.toml +0 -0
  172. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/catppuccin-frappe.toml +0 -0
  173. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/catppuccin-latte.toml +0 -0
  174. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/catppuccin-macchiato.toml +0 -0
  175. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/catppuccin-mocha.toml +0 -0
  176. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/cga.toml +0 -0
  177. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/chalk.toml +0 -0
  178. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/chalkboard.toml +0 -0
  179. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/challengerdeep.toml +0 -0
  180. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/chester.toml +0 -0
  181. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ciapre.toml +0 -0
  182. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/clrs.toml +0 -0
  183. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/cobalt-neon.toml +0 -0
  184. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/cobalt2.toml +0 -0
  185. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/coffee-theme.toml +0 -0
  186. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/crayonponyfish.toml +0 -0
  187. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/cutiepro.toml +0 -0
  188. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/cyberdyne.toml +0 -0
  189. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/cyberpunk.toml +0 -0
  190. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
  191. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dark+.toml +0 -0
  192. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dark-pastel.toml +0 -0
  193. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/darkermatrix.toml +0 -0
  194. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/darkmatrix.toml +0 -0
  195. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/darkside.toml +0 -0
  196. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dayfox.toml +0 -0
  197. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/deep.toml +0 -0
  198. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/desert.toml +0 -0
  199. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dimidium.toml +0 -0
  200. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dimmedmonokai.toml +0 -0
  201. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/django.toml +0 -0
  202. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/djangorebornagain.toml +0 -0
  203. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/djangosmooth.toml +0 -0
  204. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/doom-peacock.toml +0 -0
  205. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/doomone.toml +0 -0
  206. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dotgov.toml +0 -0
  207. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dracula+.toml +0 -0
  208. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/dracula.toml +0 -0
  209. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/duckbones.toml +0 -0
  210. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/duotone-dark.toml +0 -0
  211. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/earthsong.toml +0 -0
  212. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/elemental.toml +0 -0
  213. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/elementary.toml +0 -0
  214. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/encom.toml +0 -0
  215. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/espresso-libre.toml +0 -0
  216. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/espresso.toml +0 -0
  217. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/everblush.toml +0 -0
  218. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/fahrenheit.toml +0 -0
  219. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/fairyfloss.toml +0 -0
  220. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/farmhouse-dark.toml +0 -0
  221. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/farmhouse-light.toml +0 -0
  222. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/fideloper.toml +0 -0
  223. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/firefly-traditional.toml +0 -0
  224. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/firefoxdev.toml +0 -0
  225. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/firewatch.toml +0 -0
  226. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/fishtank.toml +0 -0
  227. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/flat.toml +0 -0
  228. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/flatland.toml +0 -0
  229. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/flexoki-dark.toml +0 -0
  230. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/flexoki-light.toml +0 -0
  231. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/floraverse.toml +0 -0
  232. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/forestblue.toml +0 -0
  233. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/framer.toml +0 -0
  234. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/frontenddelight.toml +0 -0
  235. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/funforrest.toml +0 -0
  236. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/galaxy.toml +0 -0
  237. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/galizur.toml +0 -0
  238. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/github-dark.toml +0 -0
  239. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/github.toml +0 -0
  240. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/glacier.toml +0 -0
  241. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/grape.toml +0 -0
  242. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/grass.toml +0 -0
  243. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/grey-green.toml +0 -0
  244. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/gruber-darker.toml +0 -0
  245. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/gruvboxdark.toml +0 -0
  246. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/gruvboxdarkhard.toml +0 -0
  247. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/gruvboxlight.toml +0 -0
  248. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/guezwhoz.toml +0 -0
  249. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hacktober.toml +0 -0
  250. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hardcore.toml +0 -0
  251. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/harper.toml +0 -0
  252. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hax0r-blue.toml +0 -0
  253. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hax0r-gr33n.toml +0 -0
  254. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hax0r-r3d.toml +0 -0
  255. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/highway.toml +0 -0
  256. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hipster-green.toml +0 -0
  257. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hivacruz.toml +0 -0
  258. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/homebrew.toml +0 -0
  259. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hopscotch.256.toml +0 -0
  260. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hopscotch.toml +0 -0
  261. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hurtado.toml +0 -0
  262. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/hybrid.toml +0 -0
  263. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ic-green-ppl.toml +0 -0
  264. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ic-orange-ppl.toml +0 -0
  265. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iceberg-dark.toml +0 -0
  266. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iceberg-light.toml +0 -0
  267. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/idea.toml +0 -0
  268. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/idletoes.toml +0 -0
  269. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ir-black.toml +0 -0
  270. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-dark-background.toml +0 -0
  271. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-default.toml +0 -0
  272. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-light-background.toml +0 -0
  273. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
  274. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-smoooooth.toml +0 -0
  275. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
  276. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-solarized-light.toml +0 -0
  277. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-tango-dark.toml +0 -0
  278. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/iterm2-tango-light.toml +0 -0
  279. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/jackie-brown.toml +0 -0
  280. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/japanesque.toml +0 -0
  281. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/jellybeans.toml +0 -0
  282. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/jetbrains-darcula.toml +0 -0
  283. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/jubi.toml +0 -0
  284. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/kanagawabones.toml +0 -0
  285. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/kibble.toml +0 -0
  286. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/kolorit.toml +0 -0
  287. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/konsolas.toml +0 -0
  288. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/kurokula.toml +0 -0
  289. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/lab-fox.toml +0 -0
  290. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/laser.toml +0 -0
  291. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/later-this-evening.toml +0 -0
  292. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/lavandula.toml +0 -0
  293. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/liquidcarbon.toml +0 -0
  294. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/liquidcarbontransparent.toml +0 -0
  295. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
  296. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/lovelace.toml +0 -0
  297. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/man-page.toml +0 -0
  298. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/mariana.toml +0 -0
  299. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/material.toml +0 -0
  300. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/materialdark.toml +0 -0
  301. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/materialdarker.toml +0 -0
  302. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/materialdesigncolors.toml +0 -0
  303. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/materialocean.toml +0 -0
  304. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/mathias.toml +0 -0
  305. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/matrix.toml +0 -0
  306. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/medallion.toml +0 -0
  307. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/mellifluous.toml +0 -0
  308. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/midnight-in-mojave.toml +0 -0
  309. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/mirage.toml +0 -0
  310. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/misterioso.toml +0 -0
  311. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/molokai.toml +0 -0
  312. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/monalisa.toml +0 -0
  313. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/monokai-remastered.toml +0 -0
  314. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/monokai-soda.toml +0 -0
  315. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/monokai-vivid.toml +0 -0
  316. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/n0tch2k.toml +0 -0
  317. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/neobones-dark.toml +0 -0
  318. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/neobones-light.toml +0 -0
  319. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/neon.toml +0 -0
  320. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/neopolitan.toml +0 -0
  321. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/neutron.toml +0 -0
  322. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/night-owlish-light.toml +0 -0
  323. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nightfox.toml +0 -0
  324. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nightlion-v1.toml +0 -0
  325. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nightlion-v2.toml +0 -0
  326. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/niji.toml +0 -0
  327. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nocturnal-winter.toml +0 -0
  328. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nord-light.toml +0 -0
  329. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nord.toml +0 -0
  330. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/novel.toml +0 -0
  331. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nvimdark.toml +0 -0
  332. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/nvimlight.toml +0 -0
  333. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/obsidian.toml +0 -0
  334. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ocean.toml +0 -0
  335. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/oceanic-next.toml +0 -0
  336. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/oceanicmaterial.toml +0 -0
  337. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ollie.toml +0 -0
  338. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/onehalfdark.toml +0 -0
  339. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/onehalflight.toml +0 -0
  340. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/operator-mono-dark.toml +0 -0
  341. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/overnight-slumber.toml +0 -0
  342. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/oxocarbon.toml +0 -0
  343. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/palenighthc.toml +0 -0
  344. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/pandora.toml +0 -0
  345. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/paraiso-dark.toml +0 -0
  346. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/paulmillr.toml +0 -0
  347. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/pencildark.toml +0 -0
  348. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/pencillight.toml +0 -0
  349. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/peppermint.toml +0 -0
  350. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/piatto-light.toml +0 -0
  351. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/pnevma.toml +0 -0
  352. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/popping-and-locking.toml +0 -0
  353. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/primary.toml +0 -0
  354. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/pro-light.toml +0 -0
  355. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/pro.toml +0 -0
  356. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/purple-rain.toml +0 -0
  357. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/purplepeter.toml +0 -0
  358. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/rapture.toml +0 -0
  359. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/raycast-dark.toml +0 -0
  360. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/raycast-light.toml +0 -0
  361. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/rebecca.toml +0 -0
  362. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/red-alert.toml +0 -0
  363. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/red-planet.toml +0 -0
  364. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/red-sands.toml +0 -0
  365. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/relaxed.toml +0 -0
  366. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/retro.toml +0 -0
  367. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/rippedcasts.toml +0 -0
  368. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/rose-pine-dawn.toml +0 -0
  369. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/rose-pine-moon.toml +0 -0
  370. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/rose-pine.toml +0 -0
  371. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/rouge-2.toml +0 -0
  372. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/royal.toml +0 -0
  373. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ryuuko.toml +0 -0
  374. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/sakura.toml +0 -0
  375. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/scarlet-protocol.toml +0 -0
  376. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/seafoam-pastel.toml +0 -0
  377. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/seashells.toml +0 -0
  378. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/seoulbones-dark.toml +0 -0
  379. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/seoulbones-light.toml +0 -0
  380. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/seti.toml +0 -0
  381. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/shades-of-purple.toml +0 -0
  382. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/shaman.toml +0 -0
  383. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/slate.toml +0 -0
  384. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/sleepyhollow.toml +0 -0
  385. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/smyck.toml +0 -0
  386. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/snazzy.toml +0 -0
  387. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/softserver.toml +0 -0
  388. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/solarized-darcula.toml +0 -0
  389. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/solarized-dark---patched.toml +0 -0
  390. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
  391. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/spacedust.toml +0 -0
  392. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
  393. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/spacegray-eighties.toml +0 -0
  394. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/spacegray.toml +0 -0
  395. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/spiderman.toml +0 -0
  396. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/spring.toml +0 -0
  397. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/square.toml +0 -0
  398. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/sublette.toml +0 -0
  399. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/subliminal.toml +0 -0
  400. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/sugarplum.toml +0 -0
  401. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/sundried.toml +0 -0
  402. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/symfonic.toml +0 -0
  403. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/synthwave-everything.toml +0 -0
  404. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/synthwave.toml +0 -0
  405. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/synthwavealpha.toml +0 -0
  406. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tango-adapted.toml +0 -0
  407. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tango-half-adapted.toml +0 -0
  408. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/teerb.toml +0 -0
  409. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/terafox.toml +0 -0
  410. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/terminal-basic.toml +0 -0
  411. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/thayer-bright.toml +0 -0
  412. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/the-hulk.toml +0 -0
  413. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tinacious-design-(dark).toml +0 -0
  414. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tinacious-design-(light).toml +0 -0
  415. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tokyonight-day.toml +0 -0
  416. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tokyonight-storm.toml +0 -0
  417. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tokyonight.toml +0 -0
  418. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tomorrow-night-blue.toml +0 -0
  419. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tomorrow-night-bright.toml +0 -0
  420. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tomorrow-night-burns.toml +0 -0
  421. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
  422. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tomorrow-night.toml +0 -0
  423. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/tomorrow.toml +0 -0
  424. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/toychest.toml +0 -0
  425. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/treehouse.toml +0 -0
  426. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/twilight.toml +0 -0
  427. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ubuntu.toml +0 -0
  428. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ultradark.toml +0 -0
  429. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/ultraviolent.toml +0 -0
  430. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/underthesea.toml +0 -0
  431. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/unikitty.toml +0 -0
  432. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/urple.toml +0 -0
  433. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/vaughn.toml +0 -0
  434. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/vesper.toml +0 -0
  435. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/vibrantink.toml +0 -0
  436. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/vimbones.toml +0 -0
  437. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/violet-dark.toml +0 -0
  438. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/violet-light.toml +0 -0
  439. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/warmneon.toml +0 -0
  440. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/wez.toml +0 -0
  441. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/whimsy.toml +0 -0
  442. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/wildcherry.toml +0 -0
  443. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/wilmersdorf.toml +0 -0
  444. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/wombat.toml +0 -0
  445. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/wryan.toml +0 -0
  446. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/xcodedark.toml +0 -0
  447. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/xcodedarkhc.toml +0 -0
  448. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/xcodelight.toml +0 -0
  449. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/xcodelighthc.toml +0 -0
  450. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/xcodewwdc.toml +0 -0
  451. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/zenbones-dark.toml +0 -0
  452. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/zenbones-light.toml +0 -0
  453. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/zenbones.toml +0 -0
  454. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/zenburn.toml +0 -0
  455. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/zenburned.toml +0 -0
  456. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/zenwritten-dark.toml +0 -0
  457. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/themes/zenwritten-light.toml +0 -0
  458. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/workflow/__init__.py +0 -0
  459. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/workflow/agent_activities.py +0 -0
  460. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/workflow/temporal_setup.py +0 -0
  461. {flock_core-0.2.13 → flock_core-0.2.15}/src/flock/workflow/workflow.py +0 -0
  462. {flock_core-0.2.13 → flock_core-0.2.15}/tests/integration/test_agent_integration.py +0 -0
  463. {flock_core-0.2.13 → flock_core-0.2.15}/tests/unittests/test_flock_agent.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flock-core
3
- Version: 0.2.13
3
+ Version: 0.2.15
4
4
  Summary: Declarative LLM Orchestration at Scale
5
5
  Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
6
6
  License-File: LICENSE
@@ -24,6 +24,7 @@ Requires-Dist: opentelemetry-sdk>=1.30.0
24
24
  Requires-Dist: pydantic>=2.10.5
25
25
  Requires-Dist: python-box>=7.3.2
26
26
  Requires-Dist: python-decouple>=3.8
27
+ Requires-Dist: questionary>=2.1.0
27
28
  Requires-Dist: rich>=13.9.4
28
29
  Requires-Dist: temporalio>=1.9.0
29
30
  Requires-Dist: toml>=0.10.2
@@ -21,7 +21,9 @@ Let's get started!
21
21
  import asyncio
22
22
 
23
23
  from flock.core.flock import Flock
24
- from flock.core.flock_agent import FlockAgent
24
+ from flock.core.flock_agent import FlockAgent, FlockAgentOutputConfig
25
+ from flock.core.logging.formatters.themes import OutputTheme
26
+
25
27
 
26
28
 
27
29
  # --------------------------------
@@ -23,20 +23,15 @@ import asyncio
23
23
  from pprint import pprint
24
24
 
25
25
  from flock.core.flock import Flock
26
- from flock.core.flock_agent import FlockAgent
27
- from flock.core.logging.formatters.base_formatter import FormatterOptions
28
- from flock.core.logging.formatters.rich_formatters import RichTables
29
- from flock.core.logging.formatters.themed_formatter import ThemedAgentResultFormatter
26
+ from flock.core.flock_agent import FlockAgent, FlockAgentOutputConfig
27
+ from flock.core.logging.formatters.themes import OutputTheme
30
28
  from flock.core.tools import basic_tools
31
29
 
32
30
  async def main():
33
31
  # --------------------------------
34
32
  # Create the flock
35
33
  # --------------------------------
36
- # Some people need some swag in their output
37
- # See the formatting examples
38
- format_options = FormatterOptions(RichTables)
39
- flock = Flock(local_debug=True, output_formatter=format_options)
34
+ flock = Flock(local_debug=True)
40
35
 
41
36
 
42
37
  # --------------------------------
@@ -48,12 +43,18 @@ async def main():
48
43
  # - you can define if the agent should use the cache
49
44
  # results will get cached and if true and if the input is the same as before, the agent will return the cached result
50
45
  # this is useful for expensive operations like web scraping and for debugging
46
+ # Some people need some swag in their output
47
+ # Flock supports rendering the output as a table and you can choose a theme
51
48
  agent = FlockAgent(
52
49
  name="my_agent",
53
50
  input="url",
54
51
  output="title, headings: list[str], entities_and_metadata: list[dict[str, str]], type:Literal['news', 'blog', 'opinion piece', 'tweet']",
55
52
  tools=[basic_tools.get_web_content_as_markdown],
56
53
  use_cache=True,
54
+ output_config=FlockAgentOutputConfig(
55
+ render_table=True,
56
+ theme=OutputTheme.abernathy
57
+ )
57
58
  )
58
59
  flock.add_agent(agent)
59
60
 
@@ -23,10 +23,9 @@ from devtools import debug
23
23
 
24
24
 
25
25
  from flock.core.flock import Flock
26
- from flock.core.flock_agent import FlockAgent
27
- from flock.core.logging.formatters.base_formatter import FormatterOptions
28
- from flock.core.logging.formatters.rich_formatters import RichTables
26
+ from flock.core.flock_agent import FlockAgent, FlockAgentOutputConfig
29
27
  from flock.core.logging.formatters.themed_formatter import ThemedAgentResultFormatter
28
+ from flock.core.logging.formatters.themes import OutputTheme
30
29
  from flock.core.tools import basic_tools
31
30
 
32
31
  MODEL = "openai/gpt-4o"
@@ -35,10 +34,7 @@ async def main():
35
34
  # --------------------------------
36
35
  # Create the flock
37
36
  # --------------------------------
38
- # In case the table of example 02 wasn't fancy enough
39
- # The author had over 300 cli themes lying around....
40
- format_options = FormatterOptions(ThemedAgentResultFormatter, wait_for_input=False, settings={"theme": "adventuretime"})
41
- flock = Flock(local_debug=True, output_formatter=format_options)
37
+ flock = Flock(local_debug=True)
42
38
 
43
39
 
44
40
  # --------------------------------
@@ -53,6 +49,10 @@ async def main():
53
49
  input="a_person",
54
50
  output="persons_age_in_days",
55
51
  tools=[basic_tools.web_search_duckduckgo, basic_tools.code_eval],
52
+ output_config=FlockAgentOutputConfig(
53
+ render_table=True,
54
+ theme=OutputTheme.adventuretime
55
+ ),
56
56
  use_cache=True,
57
57
  )
58
58
  flock.add_agent(agent)
@@ -22,8 +22,6 @@ from typing import Literal
22
22
 
23
23
  from flock.core.flock import Flock
24
24
  from flock.core.flock_agent import FlockAgent
25
- from flock.core.logging.formatters.base_formatter import FormatterOptions
26
- from flock.core.logging.formatters.rich_formatters import RichTables
27
25
  from flock.core.logging.formatters.themed_formatter import ThemedAgentResultFormatter
28
26
  from flock.core.tools import basic_tools
29
27
 
@@ -28,23 +28,20 @@ In later examples, we will explore more advanced hand-off scenarios and fall bac
28
28
  import asyncio
29
29
 
30
30
  from flock.core.flock import Flock
31
- from flock.core.flock_agent import FlockAgent
32
- from flock.core.logging.formatters.base_formatter import FormatterOptions
33
- from flock.core.logging.formatters.rich_formatters import RichTables
31
+ from flock.core.flock_agent import FlockAgent, FlockAgentOutputConfig
32
+ from flock.core.logging.formatters.themes import OutputTheme
34
33
 
35
34
 
36
35
  async def main():
37
36
 
38
- flock = Flock(local_debug=True, output_formatter=
39
- FormatterOptions(formatter=RichTables,
40
- wait_for_input=True,
41
- settings={}),
42
- enable_logging=True)
37
+ flock = Flock(local_debug=True,enable_logging=True)
43
38
 
44
39
  idea_agent = FlockAgent(
45
40
  name="idea_agent",
46
41
  input="query",
47
42
  output="a_fun_software_project_idea",
43
+ output_config=FlockAgentOutputConfig(render_table=True,
44
+ wait_for_input=True), # wait for input to continue
48
45
  use_cache=True,
49
46
  )
50
47
 
@@ -52,6 +49,8 @@ async def main():
52
49
  name="project_plan_agent",
53
50
  input="a_fun_software_project_idea",
54
51
  output="catchy_project_name, project_pitch, techstack, project_implementation_plan",
52
+ output_config=FlockAgentOutputConfig(render_table=True,
53
+ wait_for_input=True), # wait for input to continue
55
54
  use_cache=True,
56
55
  )
57
56
 
@@ -29,7 +29,7 @@ async def main():
29
29
  description="Outline a thorough overview of a topic.",
30
30
  input="topic",
31
31
  output="title,sections: list[str],section_subheadings: dict[str, list[str]]|mapping from section headings to subheadings",
32
- tools=[basic_tools.web_search_tavily],
32
+ tools=[basic_tools.web_search_tavily, basic_tools.get_web_content_as_markdown],
33
33
  )
34
34
 
35
35
 
@@ -37,7 +37,7 @@ async def main():
37
37
  name="draft_agent",
38
38
  input="flock.topic,flock.section_heading,flock.section_subheadings: list[str]",
39
39
  output="content|markdown-formatted section",
40
- tools=[basic_tools.web_search_tavily],
40
+ tools=[basic_tools.web_search_tavily, basic_tools.get_web_content_as_markdown],
41
41
  )
42
42
 
43
43
 
@@ -0,0 +1,14 @@
1
+
2
+
3
+ from flock.core import FlockAgent
4
+ from flock.core.logging.formatters.pprint_formatter import PrettyPrintFormatter
5
+
6
+
7
+ loaded_bloggy = FlockAgent.load_from_file("examples/data/bloggy.json")
8
+
9
+ result = loaded_bloggy.run(inputs={"blog_idea": "Idea for a blog post."})
10
+ PrettyPrintFormatter().display_data(result)
11
+
12
+
13
+
14
+
@@ -0,0 +1,27 @@
1
+ from typing import Any, Dict
2
+ from flock.core import FlockAgent
3
+ from flock.core.logging.formatters.pprint_formatter import PrettyPrintFormatter
4
+
5
+ # Load agents with custom logic - Everything passed to the constructor is loaded
6
+ custom_bloggy = FlockAgent.load_from_file("examples/data/custom_bloggy.json")
7
+
8
+ result = custom_bloggy.run(inputs={"blog_idea": "Idea for a blog post."})
9
+ PrettyPrintFormatter().display_data(result)
10
+
11
+ # Inherited FlockAgents have to load from their own class
12
+ # so that the custom logic is loaded as well.
13
+ # this won't work:
14
+ inherited_agent = FlockAgent.load_from_file("examples/data/inherited_bloggy.json")
15
+
16
+ result = inherited_agent.run(inputs={"blog_idea": "This will fail"})
17
+ PrettyPrintFormatter().display_data(result)
18
+
19
+ # this will work:
20
+ class MyInheritedAgent(FlockAgent):
21
+ async def evaluate(self, inputs: Dict[str, Any]) -> Dict[str, Any]:
22
+ return {"result": "Hello, world!"}
23
+
24
+ inherited_agent = MyInheritedAgent.load_from_file("examples/data/inherited_bloggy.json")
25
+
26
+ result = inherited_agent.run(inputs={"blog_idea": "Idea for a blog post."})
27
+ PrettyPrintFormatter().display_data(result)
@@ -0,0 +1,10 @@
1
+
2
+
3
+ from flock.core import FlockAgent
4
+ from flock.core.logging.formatters.pprint_formatter import PrettyPrintFormatter
5
+
6
+ # chatty is a rather compley agent. no problem for Flock to load it.
7
+ loaded_bloggy = FlockAgent.load_from_file("examples/data/chatty.json")
8
+
9
+ result = loaded_bloggy.run(inputs={})
10
+ PrettyPrintFormatter().display_data(result)
@@ -0,0 +1,9 @@
1
+
2
+
3
+ from flock.core.flock import Flock
4
+
5
+
6
+ flock = Flock.load_from_file("flock.json")
7
+ agent = flock.agents
8
+
9
+ flock.run(start_agent=agent["bloggy"], input={"blog_idea": "A blog about cats"})
@@ -0,0 +1,13 @@
1
+
2
+
3
+ from typing import Any, Dict, Type
4
+ from flock.core import FlockAgent
5
+ from flock.core.logging.formatters.pprint_formatter import PrettyPrintFormatter
6
+
7
+
8
+ # Save and load agents
9
+
10
+ bloggy = FlockAgent(name="bloggy", input="blog_idea", output="funny_blog_title, blog_headers")
11
+ bloggy.save_to_file("examples/data/bloggy.json")
12
+
13
+
@@ -0,0 +1,30 @@
1
+
2
+
3
+ from typing import Any, Dict, Type
4
+ from flock.core import FlockAgent
5
+ from flock.core.logging.formatters.pprint_formatter import PrettyPrintFormatter
6
+
7
+
8
+ # Save and load agents with custom logic
9
+
10
+ async def evaluate(self, inputs: Dict[str, Any]) -> Dict[str, Any]:
11
+ return {"result": "Hello, world!"}
12
+
13
+ async def on_terminate(agent,input,output):
14
+ print(f"Agent {agent.name} has been terminated.")
15
+
16
+ custom_bloggy = FlockAgent(name="custom_bloggy",
17
+ input="blog_idea",
18
+ output="result",
19
+ terminate_callback=on_terminate,
20
+ evaluate_callback=evaluate)
21
+ custom_bloggy.save_to_file("examples/data/custom_bloggy.json")
22
+
23
+
24
+ class MyInheritedAgent(FlockAgent):
25
+ async def evaluate(self, inputs: Dict[str, Any]) -> Dict[str, Any]:
26
+ return {"result": "Hello, world!"}
27
+
28
+ inherited_agent = MyInheritedAgent(name="inherited_bloggy")
29
+ inherited_agent.save_to_file("examples/data/inherited_bloggy.json")
30
+
@@ -0,0 +1,40 @@
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
+ import asyncio
22
+
23
+ from flock.core.flock import Flock
24
+ from flock.core.flock_agent import FlockAgent
25
+
26
+
27
+ MODEL = "openai/gpt-4o"
28
+
29
+ flock = Flock(model=MODEL, local_debug=True)
30
+
31
+
32
+ bloggy = FlockAgent(
33
+ name="bloggy",
34
+ input="blog_idea",
35
+ output="funny_blog_title, blog_headers"
36
+ )
37
+ flock.add_agent(bloggy)
38
+
39
+ flock.save_to_file("examples/data/flock.json")
40
+
@@ -75,6 +75,14 @@ class Chat:
75
75
  if self.user_query.lower() == "goodbye":
76
76
  return None
77
77
  return HandOff(next_agent="chatty")
78
+
79
+
80
+ def optimize_memory(optimized_memory:str):
81
+ try:
82
+ with open("memory.txt", "w") as file:
83
+ file.write(optimized_memory)
84
+ except FileNotFoundError:
85
+ pass
78
86
 
79
87
 
80
88
  MODEL = "openai/gpt-4o"
@@ -87,18 +95,29 @@ async def main():
87
95
 
88
96
  chatty = FlockAgent(
89
97
  name="chatty",
90
- description=f"You are Chatty, a friendly assistant that loves to chat. Today is {datetime.now().strftime('%A, %B %d, %Y')}",
98
+ description=f"""You are Chatty, a friendly assistant that loves to chat.
99
+ Today is {datetime.now().strftime('%A, %B %d, %Y')}.
100
+ Use web_search_duckduckgo to search the web,
101
+ +get_web_content_as_markdown to get web content as markdown,
102
+ and code_eval for all tasks that require code execution.
103
+ Save knowledge to memory for future reference.
104
+ Once in a while optimize your knowledge by calling the optimize_memory tool
105
+ with the optimized memory as input.
106
+ """,
91
107
  input="user_query, memory | Memory of previous interactions, chat_history | the current chat history",
92
108
  output="answer_to_query, important_new_knowledge_to_add_to_memory | Empty string if no knowledge to add",
93
109
  initialize_callback=chat_helper.before_response,
94
110
  terminate_callback=chat_helper.after_response,
95
111
  config=FlockAgentConfig(disable_output=True),
96
- tools=[basic_tools.web_search_tavily],
112
+ tools=[basic_tools.web_search_duckduckgo,
113
+ basic_tools.get_web_content_as_markdown,
114
+ basic_tools.code_eval,optimize_memory],
97
115
  )
116
+
98
117
  flock.add_agent(chatty)
99
118
 
100
119
  chatty.hand_off = chat_helper.hand_off
101
-
120
+
102
121
  await flock.run_async(
103
122
  start_agent=chatty,
104
123
  input={"memory": "","user_query": "","chat_history": ""}
@@ -13,7 +13,7 @@ from flock.core.logging import flock_logger, live_update_handler, performance_ha
13
13
  class TemporalLoggingAgent(FlockAgent):
14
14
  """Demo agent that showcases logging with Temporal integration."""
15
15
 
16
- async def run(self, context: FlockContext) -> dict:
16
+ async def run_async(self, context: FlockContext) -> dict:
17
17
  workflow_id = context.state.get("workflow_id", "temporal-demo")
18
18
  flock_logger.set_context(workflow_id=workflow_id)
19
19
 
@@ -97,7 +97,7 @@ async def main():
97
97
  agent = TemporalLoggingAgent(name="local-demo", model="demo-model")
98
98
  context = FlockContext()
99
99
  context.state["workflow_id"] = workflow_id
100
- await agent.run(context)
100
+ await agent.run_async(context)
101
101
  else:
102
102
  # Let our error handler format other errors beautifully
103
103
  raise
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "flock-core"
3
- version = "0.2.13"
3
+ version = "0.2.15"
4
4
  description = "Declarative LLM Orchestration at Scale"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -29,6 +29,7 @@ dependencies = [
29
29
  "pydantic>=2.10.5",
30
30
  "python-box>=7.3.2",
31
31
  "python-decouple>=3.8",
32
+ "questionary>=2.1.0",
32
33
  "rich>=13.9.4",
33
34
  "temporalio>=1.9.0",
34
35
  "toml>=0.10.2",
@@ -0,0 +1,57 @@
1
+ """Flock package initialization."""
2
+
3
+ from flock.cli.constants import CLI_THEME_BUILDER
4
+ from flock.core.logging.formatters.theme_builder import theme_builder
5
+
6
+
7
+ def main():
8
+ """Main function."""
9
+ import questionary
10
+ from rich.console import Console
11
+
12
+ from flock.cli.constants import (
13
+ CLI_CREATE_AGENT,
14
+ CLI_CREATE_FLOCK,
15
+ CLI_LOAD_AGENT,
16
+ CLI_LOAD_EXAMPLE,
17
+ CLI_LOAD_FLOCK,
18
+ CLI_SETTINGS,
19
+ CLI_START_ADVANCED_MODE,
20
+ CLI_START_WEB_SERVER,
21
+ )
22
+ from flock.cli.load_flock import load_flock
23
+ from flock.core.util.cli_helper import display_banner
24
+
25
+ console = Console()
26
+
27
+ display_banner()
28
+
29
+ console.print("Flock Management Console\n", style="bold green")
30
+
31
+ result = questionary.select(
32
+ "What do you want to do?",
33
+ choices=[
34
+ questionary.Separator(line=" "),
35
+ # CLI_CREATE_AGENT,
36
+ # CLI_CREATE_FLOCK,
37
+ # CLI_LOAD_AGENT,
38
+ CLI_LOAD_FLOCK,
39
+ # CLI_LOAD_EXAMPLE,
40
+ questionary.Separator(),
41
+ CLI_THEME_BUILDER,
42
+ CLI_SETTINGS,
43
+ questionary.Separator(),
44
+ CLI_START_ADVANCED_MODE,
45
+ CLI_START_WEB_SERVER,
46
+ "Exit",
47
+ ],
48
+ ).ask()
49
+
50
+ if result == CLI_LOAD_FLOCK:
51
+ load_flock()
52
+ if result == CLI_THEME_BUILDER:
53
+ theme_builder()
54
+
55
+
56
+ if __name__ == "__main__":
57
+ main()
@@ -0,0 +1,23 @@
1
+ """Constants for the CLI module."""
2
+
3
+ CLI_CREATE_AGENT = "Create an agent"
4
+ CLI_CREATE_FLOCK = "Create a flock"
5
+ CLI_LOAD_AGENT = "Load an agent"
6
+ CLI_LOAD_FLOCK = "Load a *.flock file"
7
+ CLI_THEME_BUILDER = "Theme builder"
8
+ CLI_LOAD_EXAMPLE = "Load a example"
9
+ CLI_SETTINGS = "Settings"
10
+ CLI_START_ADVANCED_MODE = "Start advanced mode (coming soon)"
11
+ CLI_START_WEB_SERVER = "Start web server (coming soon)"
12
+ CLI_EXIT = "Exit"
13
+ CLI_CHOICES = [
14
+ CLI_CREATE_AGENT,
15
+ CLI_CREATE_FLOCK,
16
+ CLI_LOAD_AGENT,
17
+ CLI_LOAD_FLOCK,
18
+ CLI_LOAD_EXAMPLE,
19
+ CLI_SETTINGS,
20
+ CLI_START_ADVANCED_MODE,
21
+ CLI_START_WEB_SERVER,
22
+ CLI_EXIT,
23
+ ]
@@ -0,0 +1 @@
1
+ # TODO
@@ -0,0 +1 @@
1
+ # TODO
@@ -0,0 +1 @@
1
+ # TODO
@@ -0,0 +1 @@
1
+ # TODO
@@ -0,0 +1,38 @@
1
+ """Load a Flock from a file."""
2
+
3
+ from pathlib import Path
4
+
5
+ import questionary
6
+ from rich.console import Console
7
+ from rich.markdown import Markdown
8
+
9
+ from flock.core.flock import Flock
10
+
11
+
12
+ def filter(file_path) -> bool:
13
+ """Filter function for file selection."""
14
+ path = Path(file_path)
15
+ if path.is_dir():
16
+ return True
17
+ return path.is_file() and path.suffix == ".flock"
18
+
19
+
20
+ def load_flock():
21
+ """Load a Flock from a file."""
22
+ console = Console()
23
+
24
+ console.print("\nPlease select a *.flock file\n", style="bold green")
25
+
26
+ result = questionary.path("", file_filter=filter).ask()
27
+
28
+ selected_file = Path(result)
29
+ if selected_file.is_file():
30
+ console.print(f"Selected file: {selected_file}", style="bold green")
31
+
32
+ flock = Flock.load_from_file(result)
33
+
34
+ console.line()
35
+ console.print(Markdown("# Flock loaded...."), style="bold orange")
36
+ console.line()
37
+
38
+ flock.run()
@@ -0,0 +1 @@
1
+ # TODO
@@ -44,4 +44,3 @@ TELEMETRY = TelemetryConfig(
44
44
  OTEL_ENABLE_FILE,
45
45
  OTEL_ENABLE_SQL,
46
46
  )
47
- TELEMETRY.setup_tracing()
@@ -1,12 +1,16 @@
1
1
  # src/your_package/core/execution/local_executor.py
2
2
  from flock.core.context.context import FlockContext
3
3
  from flock.core.logging.logging import get_logger
4
- from flock.workflow.activities import run_agent # This should be the local activity function
4
+ from flock.workflow.activities import (
5
+ run_agent, # This should be the local activity function
6
+ )
5
7
 
6
8
  logger = get_logger("flock")
7
9
 
8
10
 
9
- async def run_local_workflow(context: FlockContext, output_formatter, box_result: bool = True) -> dict:
11
+ async def run_local_workflow(
12
+ context: FlockContext, box_result: bool = True
13
+ ) -> dict:
10
14
  """Execute the agent workflow locally (for debugging).
11
15
 
12
16
  Args:
@@ -18,7 +22,7 @@ async def run_local_workflow(context: FlockContext, output_formatter, box_result
18
22
  A dictionary containing the workflow result.
19
23
  """
20
24
  logger.info("Running local debug workflow")
21
- result = await run_agent(context, output_formatter)
25
+ result = await run_agent(context)
22
26
  if box_result:
23
27
  from box import Box
24
28
 
@@ -1,9 +1,7 @@
1
1
  # src/your_package/core/execution/temporal_executor.py
2
- from devtools import pprint
3
2
 
4
3
  from flock.core.context.context import FlockContext
5
4
  from flock.core.context.context_vars import FLOCK_RUN_ID
6
- from flock.core.logging.formatters.formatter_factory import FormatterFactory
7
5
  from flock.core.logging.logging import get_logger
8
6
  from flock.workflow.activities import (
9
7
  run_agent, # Activity function used in Temporal
@@ -16,7 +14,6 @@ logger = get_logger("flock")
16
14
 
17
15
  async def run_temporal_workflow(
18
16
  context: FlockContext,
19
- output_formatter,
20
17
  box_result: bool = True,
21
18
  ) -> dict:
22
19
  """Execute the agent workflow via Temporal for robust, distributed processing.
@@ -43,11 +40,7 @@ async def run_temporal_workflow(
43
40
 
44
41
  agent_name = context.get_variable("FLOCK_CURRENT_AGENT")
45
42
  logger.debug("Formatting Temporal result", agent=agent_name)
46
- if output_formatter:
47
- formatter = FormatterFactory.create_formatter(output_formatter)
48
- formatter.display(result, agent_name, output_formatter.wait_for_input)
49
- else:
50
- pprint(result)
43
+
51
44
  if box_result:
52
45
  from box import Box
53
46