flock-core 0.2.18__tar.gz → 0.3.2__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 (533) hide show
  1. {flock_core-0.2.18 → flock_core-0.3.2}/.github/workflows/deploy-documentation.yml +1 -0
  2. {flock_core-0.2.18 → flock_core-0.3.2}/.github/workflows/deploy-whiteduck-pypi.yml +2 -0
  3. {flock_core-0.2.18 → flock_core-0.3.2}/.gitignore +1 -0
  4. {flock_core-0.2.18 → flock_core-0.3.2}/.vscode/settings.json +15 -1
  5. {flock_core-0.2.18 → flock_core-0.3.2}/PKG-INFO +49 -2
  6. {flock_core-0.2.18 → flock_core-0.3.2}/README.md +41 -1
  7. flock_core-0.3.2/docs/assets/drawio/architecture.drawio +44 -0
  8. flock_core-0.3.2/docs/assets/images/getting-started/first_agent_00.png +0 -0
  9. flock_core-0.3.2/docs/assets/images/hummingbird.png +0 -0
  10. flock_core-0.3.2/docs/assets/images/memory_concepts.png +0 -0
  11. flock_core-0.3.2/docs/assets/images/memory_flow.png +0 -0
  12. flock_core-0.3.2/docs/assets/images/memory_flow_chart.png +0 -0
  13. flock_core-0.3.2/docs/core-concepts/memory.md +355 -0
  14. flock_core-0.3.2/docs/getting-started/quickstart.md +207 -0
  15. {flock_core-0.2.18 → flock_core-0.3.2}/docs/index.md +7 -3
  16. flock_core-0.3.2/docs/release-notes/release_notes.md +120 -0
  17. flock_core-0.3.2/examples/01_introduction/01_simple_example.py +63 -0
  18. flock_core-0.3.2/examples/01_introduction/02_typed_output.py +78 -0
  19. flock_core-0.3.2/examples/01_introduction/03_tool_and_code_agent.py +60 -0
  20. flock_core-0.3.2/examples/01_introduction/04_descriptions.py +39 -0
  21. flock_core-0.3.2/examples/01_introduction/05_typed_output2.py +75 -0
  22. {flock_core-0.2.18 → flock_core-0.3.2}/examples/01_introduction/06_simple_hand_off.py +33 -38
  23. {flock_core-0.2.18 → flock_core-0.3.2}/examples/02_cook_book/flock_without_llms.py +1 -1
  24. flock_core-0.3.2/examples/02_cook_book/painting_by_numbers.py +86 -0
  25. {flock_core-0.2.18 → flock_core-0.3.2}/examples/02_cook_book/self_improvement_with_memory.py +13 -32
  26. flock_core-0.3.2/examples/03_misc/multi_hops.py +85 -0
  27. flock_core-0.3.2/examples/03_misc/use_modules.py +60 -0
  28. flock_core-0.3.2/examples/README.md +24 -0
  29. flock_core-0.3.2/examples/documentation/getting-started/first_agent_01.py +26 -0
  30. flock_core-0.3.2/examples/documentation/getting-started/first_agent_02.py +32 -0
  31. flock_core-0.3.2/examples/documentation/getting-started/first_agent_03.py +31 -0
  32. flock_core-0.3.2/examples/notebooks_wip/Untitled-1.ipynb +223 -0
  33. flock_core-0.3.2/examples/playground/memory.py +261 -0
  34. {flock_core-0.2.18 → flock_core-0.3.2}/mkdocs.yml +2 -0
  35. {flock_core-0.2.18 → flock_core-0.3.2}/pyproject.toml +8 -1
  36. flock_core-0.3.2/src/flock/__init__.py +67 -0
  37. flock_core-0.3.2/src/flock/cli/assets/release_notes.md +111 -0
  38. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/cli/constants.py +1 -0
  39. flock_core-0.3.2/src/flock/cli/load_release_notes.py +23 -0
  40. flock_core-0.3.2/src/flock/core/__init__.py +17 -0
  41. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/context/context.py +10 -5
  42. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/flock.py +61 -21
  43. flock_core-0.3.2/src/flock/core/flock_agent.py +330 -0
  44. flock_core-0.3.2/src/flock/core/flock_evaluator.py +49 -0
  45. flock_core-0.3.2/src/flock/core/flock_factory.py +73 -0
  46. flock_core-0.3.2/src/flock/core/flock_module.py +77 -0
  47. {flock_core-0.2.18/src/flock → flock_core-0.3.2/src/flock/core}/interpreter/python_interpreter.py +9 -1
  48. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/logging/formatters/themes.py +1 -1
  49. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/logging/logging.py +119 -15
  50. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/mixin/dspy_integration.py +11 -8
  51. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/registry/agent_registry.py +4 -2
  52. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/tools/basic_tools.py +1 -1
  53. flock_core-0.3.2/src/flock/core/util/cli_helper.py +87 -0
  54. flock_core-0.3.2/src/flock/evaluators/declarative/declarative_evaluator.py +52 -0
  55. flock_core-0.3.2/src/flock/evaluators/natural_language/natural_language_evaluator.py +66 -0
  56. flock_core-0.3.2/src/flock/evaluators/zep/zep_evaluator.py +55 -0
  57. flock_core-0.3.2/src/flock/modules/callback/callback_module.py +86 -0
  58. flock_core-0.3.2/src/flock/modules/memory/memory_module.py +235 -0
  59. flock_core-0.3.2/src/flock/modules/memory/memory_parser.py +125 -0
  60. flock_core-0.3.2/src/flock/modules/memory/memory_storage.py +736 -0
  61. flock_core-0.3.2/src/flock/modules/output/output_module.py +194 -0
  62. flock_core-0.3.2/src/flock/modules/performance/metrics_module.py +477 -0
  63. flock_core-0.3.2/src/flock/modules/zep/zep_module.py +177 -0
  64. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/aardvark-blue.toml +1 -1
  65. {flock_core-0.2.18 → flock_core-0.3.2}/tests/unittests/test_flock.py +0 -2
  66. flock_core-0.3.2/tests/unittests/test_memory_operations.py +297 -0
  67. flock_core-0.3.2/tests/unittests/test_memory_store.py +137 -0
  68. {flock_core-0.2.18 → flock_core-0.3.2}/uv.lock +366 -1
  69. flock_core-0.2.18/docs/assets/drawio/architecture.drawio +0 -24
  70. flock_core-0.2.18/docs/getting-started/quickstart.md +0 -3
  71. flock_core-0.2.18/examples/01_introduction/01_simple_example.py +0 -70
  72. flock_core-0.2.18/examples/01_introduction/02_typed_output.py +0 -82
  73. flock_core-0.2.18/examples/01_introduction/03_tool_and_code_agent.py +0 -71
  74. flock_core-0.2.18/examples/01_introduction/04_descriptions.py +0 -47
  75. flock_core-0.2.18/examples/01_introduction/05_typed_output2.py +0 -79
  76. flock_core-0.2.18/examples/README.md +0 -23
  77. flock_core-0.2.18/examples/notebooks_wip/Untitled-1.ipynb +0 -151
  78. flock_core-0.2.18/src/flock/__init__.py +0 -57
  79. flock_core-0.2.18/src/flock/core/__init__.py +0 -6
  80. flock_core-0.2.18/src/flock/core/flock_agent.py +0 -660
  81. flock_core-0.2.18/src/flock/core/util/cli_helper.py +0 -49
  82. {flock_core-0.2.18 → flock_core-0.3.2}/.devcontainer/devcontainer.json +0 -0
  83. {flock_core-0.2.18 → flock_core-0.3.2}/.env_template +0 -0
  84. {flock_core-0.2.18 → flock_core-0.3.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  85. {flock_core-0.2.18 → flock_core-0.3.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  86. {flock_core-0.2.18 → flock_core-0.3.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  87. {flock_core-0.2.18 → flock_core-0.3.2}/.github/workflows/.gitkeep +0 -0
  88. {flock_core-0.2.18 → flock_core-0.3.2}/.vscode/launch.json +0 -0
  89. {flock_core-0.2.18 → flock_core-0.3.2}/.vscode/tasks.json +0 -0
  90. {flock_core-0.2.18 → flock_core-0.3.2}/LICENSE +0 -0
  91. {flock_core-0.2.18 → flock_core-0.3.2}/docs/advanced/complex-workflows.md +0 -0
  92. {flock_core-0.2.18 → flock_core-0.3.2}/docs/advanced/custom-agents.md +0 -0
  93. {flock_core-0.2.18 → flock_core-0.3.2}/docs/advanced/performance.md +0 -0
  94. {flock_core-0.2.18 → flock_core-0.3.2}/docs/advanced/testing.md +0 -0
  95. {flock_core-0.2.18 → flock_core-0.3.2}/docs/api/flock-core.md +0 -0
  96. {flock_core-0.2.18 → flock_core-0.3.2}/docs/api/flockagent.md +0 -0
  97. {flock_core-0.2.18 → flock_core-0.3.2}/docs/api/types.md +0 -0
  98. {flock_core-0.2.18 → flock_core-0.3.2}/docs/api/utilities.md +0 -0
  99. {flock_core-0.2.18 → flock_core-0.3.2}/docs/architecture/components.md +0 -0
  100. {flock_core-0.2.18 → flock_core-0.3.2}/docs/architecture/design-decisions.md +0 -0
  101. {flock_core-0.2.18 → flock_core-0.3.2}/docs/architecture/overview.md +0 -0
  102. {flock_core-0.2.18 → flock_core-0.3.2}/docs/assets/images/cli_outputs/out.png +0 -0
  103. {flock_core-0.2.18 → flock_core-0.3.2}/docs/assets/images/components_chart.png +0 -0
  104. {flock_core-0.2.18 → flock_core-0.3.2}/docs/assets/images/examples/01_01.png +0 -0
  105. {flock_core-0.2.18 → flock_core-0.3.2}/docs/assets/images/examples/01_02.png +0 -0
  106. {flock_core-0.2.18 → flock_core-0.3.2}/docs/assets/images/examples/01_03.png +0 -0
  107. {flock_core-0.2.18 → flock_core-0.3.2}/docs/assets/images/examples/01_04.png +0 -0
  108. {flock_core-0.2.18 → flock_core-0.3.2}/docs/assets/images/examples/01_05.png +0 -0
  109. {flock_core-0.2.18 → flock_core-0.3.2}/docs/assets/images/examples/01_06.png +0 -0
  110. {flock_core-0.2.18 → flock_core-0.3.2}/docs/assets/images/flock.png +0 -0
  111. {flock_core-0.2.18 → flock_core-0.3.2}/docs/assets/images/flock_cli.png +0 -0
  112. {flock_core-0.2.18 → flock_core-0.3.2}/docs/assets/images/flow_chart.png +0 -0
  113. {flock_core-0.2.18 → flock_core-0.3.2}/docs/assets/images/icon.png +0 -0
  114. {flock_core-0.2.18 → flock_core-0.3.2}/docs/assets/images/icon.png~ +0 -0
  115. {flock_core-0.2.18 → flock_core-0.3.2}/docs/assets/images/logo.png +0 -0
  116. {flock_core-0.2.18 → flock_core-0.3.2}/docs/contributing/code-style.md +0 -0
  117. {flock_core-0.2.18 → flock_core-0.3.2}/docs/contributing/development.md +0 -0
  118. {flock_core-0.2.18 → flock_core-0.3.2}/docs/contributing/documentation.md +0 -0
  119. {flock_core-0.2.18 → flock_core-0.3.2}/docs/contributing/testing.md +0 -0
  120. {flock_core-0.2.18 → flock_core-0.3.2}/docs/core-concepts/agents.md +0 -0
  121. {flock_core-0.2.18 → flock_core-0.3.2}/docs/core-concepts/declarative.md +0 -0
  122. {flock_core-0.2.18 → flock_core-0.3.2}/docs/core-concepts/error-handling.md +0 -0
  123. {flock_core-0.2.18 → flock_core-0.3.2}/docs/core-concepts/type-system.md +0 -0
  124. {flock_core-0.2.18 → flock_core-0.3.2}/docs/core-concepts/workflows.md +0 -0
  125. {flock_core-0.2.18 → flock_core-0.3.2}/docs/create_doc_boilerplate.py +0 -0
  126. {flock_core-0.2.18 → flock_core-0.3.2}/docs/deployment/monitoring.md +0 -0
  127. {flock_core-0.2.18 → flock_core-0.3.2}/docs/deployment/production-setup.md +0 -0
  128. {flock_core-0.2.18 → flock_core-0.3.2}/docs/deployment/scalability.md +0 -0
  129. {flock_core-0.2.18 → flock_core-0.3.2}/docs/deployment/security.md +0 -0
  130. {flock_core-0.2.18 → flock_core-0.3.2}/docs/examples/chain-gang.md +0 -0
  131. {flock_core-0.2.18 → flock_core-0.3.2}/docs/examples/hello-flock.md +0 -0
  132. {flock_core-0.2.18 → flock_core-0.3.2}/docs/examples/pydantic.md +0 -0
  133. {flock_core-0.2.18 → flock_core-0.3.2}/docs/examples/type-system.md +0 -0
  134. {flock_core-0.2.18 → flock_core-0.3.2}/docs/features/agent-chaining.md +0 -0
  135. {flock_core-0.2.18 → flock_core-0.3.2}/docs/features/agent-definition.md +0 -0
  136. {flock_core-0.2.18 → flock_core-0.3.2}/docs/features/lifecycle-hooks.md +0 -0
  137. {flock_core-0.2.18 → flock_core-0.3.2}/docs/features/pydantic.md +0 -0
  138. {flock_core-0.2.18 → flock_core-0.3.2}/docs/features/type-safety.md +0 -0
  139. {flock_core-0.2.18 → flock_core-0.3.2}/docs/getting-started/concepts.md +0 -0
  140. {flock_core-0.2.18 → flock_core-0.3.2}/docs/getting-started/configuration.md +0 -0
  141. {flock_core-0.2.18 → flock_core-0.3.2}/docs/getting-started/installation.md +0 -0
  142. {flock_core-0.2.18 → flock_core-0.3.2}/docs/integrations/dspy.md +0 -0
  143. {flock_core-0.2.18 → flock_core-0.3.2}/docs/integrations/litellm.md +0 -0
  144. {flock_core-0.2.18 → flock_core-0.3.2}/docs/integrations/tavily.md +0 -0
  145. {flock_core-0.2.18 → flock_core-0.3.2}/docs/integrations/temporal.md +0 -0
  146. {flock_core-0.2.18 → flock_core-0.3.2}/docs/stylesheets/extra.css +0 -0
  147. {flock_core-0.2.18 → flock_core-0.3.2}/docs/tutorials/blog-generator.md +0 -0
  148. {flock_core-0.2.18 → flock_core-0.3.2}/docs/tutorials/custom-tools.md +0 -0
  149. {flock_core-0.2.18 → flock_core-0.3.2}/docs/tutorials/error-recovery.md +0 -0
  150. {flock_core-0.2.18 → flock_core-0.3.2}/docs/tutorials/multi-agent.md +0 -0
  151. {flock_core-0.2.18 → flock_core-0.3.2}/examples/02_cook_book/long_research_no_handoff.py +0 -0
  152. {flock_core-0.2.18 → flock_core-0.3.2}/examples/02_cook_book/project_manager.py +0 -0
  153. {flock_core-0.2.18 → flock_core-0.3.2}/examples/02_cook_book/save_and_load/load_01.py +0 -0
  154. {flock_core-0.2.18 → flock_core-0.3.2}/examples/02_cook_book/save_and_load/load_02.py +0 -0
  155. {flock_core-0.2.18 → flock_core-0.3.2}/examples/02_cook_book/save_and_load/load_03.py +0 -0
  156. {flock_core-0.2.18 → flock_core-0.3.2}/examples/02_cook_book/save_and_load/load_04.py +0 -0
  157. {flock_core-0.2.18 → flock_core-0.3.2}/examples/02_cook_book/save_and_load/save_01.py +0 -0
  158. {flock_core-0.2.18 → flock_core-0.3.2}/examples/02_cook_book/save_and_load/save_02.py +0 -0
  159. {flock_core-0.2.18 → flock_core-0.3.2}/examples/02_cook_book/save_and_load/save_03.py +0 -0
  160. {flock_core-0.2.18 → flock_core-0.3.2}/examples/notebooks_wip/my_agent.json +0 -0
  161. {flock_core-0.2.18/examples/03_misc_wip → flock_core-0.3.2/examples/playground}/self_learner.py +0 -0
  162. {flock_core-0.2.18/examples/03_misc_wip → flock_core-0.3.2/examples/playground}/self_learner2.py +0 -0
  163. {flock_core-0.2.18 → flock_core-0.3.2}/requirements.txt +0 -0
  164. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/cli/create_agent.py +0 -0
  165. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/cli/create_flock.py +0 -0
  166. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/cli/load_agent.py +0 -0
  167. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/cli/load_examples.py +0 -0
  168. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/cli/load_flock.py +0 -0
  169. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/cli/settings.py +0 -0
  170. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/config.py +0 -0
  171. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/context/context_manager.py +0 -0
  172. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/context/context_vars.py +0 -0
  173. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/execution/local_executor.py +0 -0
  174. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/execution/temporal_executor.py +0 -0
  175. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/logging/__init__.py +0 -0
  176. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/logging/formatters/enum_builder.py +0 -0
  177. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/logging/formatters/theme_builder.py +0 -0
  178. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
  179. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
  180. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/logging/telemetry.py +0 -0
  181. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
  182. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
  183. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
  184. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/logging/trace_and_logged.py +0 -0
  185. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/mixin/prompt_parser.py +0 -0
  186. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/tools/dev_tools/github.py +0 -0
  187. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/util/hydrator.py +0 -0
  188. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/util/input_resolver.py +0 -0
  189. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/core/util/serializable.py +0 -0
  190. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/platform/docker_tools.py +0 -0
  191. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/platform/jaeger_install.py +0 -0
  192. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/3024-day.toml +0 -0
  193. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/3024-night.toml +0 -0
  194. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/abernathy.toml +0 -0
  195. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/adventure.toml +0 -0
  196. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/adventuretime.toml +0 -0
  197. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/afterglow.toml +0 -0
  198. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/alabaster.toml +0 -0
  199. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/alienblood.toml +0 -0
  200. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/andromeda.toml +0 -0
  201. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/apple-classic.toml +0 -0
  202. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/apple-system-colors.toml +0 -0
  203. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/arcoiris.toml +0 -0
  204. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/argonaut copy.toml +0 -0
  205. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/argonaut.toml +0 -0
  206. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/arthur.toml +0 -0
  207. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/ateliersulphurpool.toml +0 -0
  208. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/atom.toml +0 -0
  209. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/atom_test.toml +0 -0
  210. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/atomonelight.toml +0 -0
  211. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/aurora.toml +0 -0
  212. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/ayu copy.toml +0 -0
  213. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/ayu-light.toml +0 -0
  214. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/ayu-mirage.toml +0 -0
  215. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/ayu.toml +0 -0
  216. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/banana-blueberry.toml +0 -0
  217. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/batman.toml +0 -0
  218. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/belafonte-day.toml +0 -0
  219. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/belafonte-night.toml +0 -0
  220. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/birdsofparadise.toml +0 -0
  221. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/blazer.toml +0 -0
  222. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/blue-matrix.toml +0 -0
  223. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/blueberrypie.toml +0 -0
  224. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/bluedolphin.toml +0 -0
  225. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/blulocodark.toml +0 -0
  226. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/blulocolight.toml +0 -0
  227. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/borland.toml +0 -0
  228. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/breeze.toml +0 -0
  229. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/bright-lights.toml +0 -0
  230. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/broadcast.toml +0 -0
  231. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/brogrammer.toml +0 -0
  232. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/builtin-dark.toml +0 -0
  233. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/builtin-light.toml +0 -0
  234. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/builtin-pastel-dark.toml +0 -0
  235. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/builtin-solarized-dark.toml +0 -0
  236. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/builtin-solarized-light.toml +0 -0
  237. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/builtin-tango-dark.toml +0 -0
  238. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/builtin-tango-light.toml +0 -0
  239. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/c64.toml +0 -0
  240. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/calamity.toml +0 -0
  241. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/catppuccin-frappe.toml +0 -0
  242. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/catppuccin-latte.toml +0 -0
  243. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/catppuccin-macchiato.toml +0 -0
  244. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/catppuccin-mocha.toml +0 -0
  245. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/cga.toml +0 -0
  246. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/chalk.toml +0 -0
  247. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/chalkboard.toml +0 -0
  248. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/challengerdeep.toml +0 -0
  249. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/chester.toml +0 -0
  250. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/ciapre.toml +0 -0
  251. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/clrs.toml +0 -0
  252. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/cobalt-neon.toml +0 -0
  253. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/cobalt2.toml +0 -0
  254. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/coffee-theme.toml +0 -0
  255. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/crayonponyfish.toml +0 -0
  256. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/cutiepro.toml +0 -0
  257. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/cyberdyne.toml +0 -0
  258. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/cyberpunk.toml +0 -0
  259. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
  260. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/dark+.toml +0 -0
  261. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/dark-pastel.toml +0 -0
  262. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/darkermatrix.toml +0 -0
  263. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/darkmatrix.toml +0 -0
  264. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/darkside.toml +0 -0
  265. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/dayfox.toml +0 -0
  266. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/deep.toml +0 -0
  267. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/desert.toml +0 -0
  268. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/dimidium.toml +0 -0
  269. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/dimmedmonokai.toml +0 -0
  270. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/django.toml +0 -0
  271. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/djangorebornagain.toml +0 -0
  272. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/djangosmooth.toml +0 -0
  273. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/doom-peacock.toml +0 -0
  274. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/doomone.toml +0 -0
  275. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/dotgov.toml +0 -0
  276. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/dracula+.toml +0 -0
  277. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/dracula.toml +0 -0
  278. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/duckbones.toml +0 -0
  279. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/duotone-dark.toml +0 -0
  280. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/earthsong.toml +0 -0
  281. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/elemental.toml +0 -0
  282. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/elementary.toml +0 -0
  283. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/encom.toml +0 -0
  284. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/espresso-libre.toml +0 -0
  285. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/espresso.toml +0 -0
  286. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/everblush.toml +0 -0
  287. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/fahrenheit.toml +0 -0
  288. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/fairyfloss.toml +0 -0
  289. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/farmhouse-dark.toml +0 -0
  290. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/farmhouse-light.toml +0 -0
  291. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/fideloper.toml +0 -0
  292. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/firefly-traditional.toml +0 -0
  293. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/firefoxdev.toml +0 -0
  294. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/firewatch.toml +0 -0
  295. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/fishtank.toml +0 -0
  296. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/flat.toml +0 -0
  297. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/flatland.toml +0 -0
  298. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/flexoki-dark.toml +0 -0
  299. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/flexoki-light.toml +0 -0
  300. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/floraverse.toml +0 -0
  301. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/forestblue.toml +0 -0
  302. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/framer.toml +0 -0
  303. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/frontenddelight.toml +0 -0
  304. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/funforrest.toml +0 -0
  305. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/galaxy.toml +0 -0
  306. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/galizur.toml +0 -0
  307. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/github-dark.toml +0 -0
  308. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/github.toml +0 -0
  309. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/glacier.toml +0 -0
  310. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/grape.toml +0 -0
  311. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/grass.toml +0 -0
  312. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/grey-green.toml +0 -0
  313. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/gruber-darker.toml +0 -0
  314. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/gruvboxdark.toml +0 -0
  315. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/gruvboxdarkhard.toml +0 -0
  316. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/gruvboxlight.toml +0 -0
  317. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/guezwhoz.toml +0 -0
  318. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/hacktober.toml +0 -0
  319. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/hardcore.toml +0 -0
  320. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/harper.toml +0 -0
  321. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/hax0r-blue.toml +0 -0
  322. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/hax0r-gr33n.toml +0 -0
  323. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/hax0r-r3d.toml +0 -0
  324. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/highway.toml +0 -0
  325. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/hipster-green.toml +0 -0
  326. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/hivacruz.toml +0 -0
  327. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/homebrew.toml +0 -0
  328. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/hopscotch.256.toml +0 -0
  329. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/hopscotch.toml +0 -0
  330. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/hurtado.toml +0 -0
  331. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/hybrid.toml +0 -0
  332. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/ic-green-ppl.toml +0 -0
  333. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/ic-orange-ppl.toml +0 -0
  334. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/iceberg-dark.toml +0 -0
  335. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/iceberg-light.toml +0 -0
  336. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/idea.toml +0 -0
  337. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/idletoes.toml +0 -0
  338. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/ir-black.toml +0 -0
  339. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/iterm2-dark-background.toml +0 -0
  340. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/iterm2-default.toml +0 -0
  341. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/iterm2-light-background.toml +0 -0
  342. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
  343. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/iterm2-smoooooth.toml +0 -0
  344. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
  345. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/iterm2-solarized-light.toml +0 -0
  346. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/iterm2-tango-dark.toml +0 -0
  347. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/iterm2-tango-light.toml +0 -0
  348. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/jackie-brown.toml +0 -0
  349. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/japanesque.toml +0 -0
  350. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/jellybeans.toml +0 -0
  351. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/jetbrains-darcula.toml +0 -0
  352. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/jubi.toml +0 -0
  353. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/kanagawabones.toml +0 -0
  354. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/kibble.toml +0 -0
  355. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/kolorit.toml +0 -0
  356. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/konsolas.toml +0 -0
  357. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/kurokula.toml +0 -0
  358. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/lab-fox.toml +0 -0
  359. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/laser.toml +0 -0
  360. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/later-this-evening.toml +0 -0
  361. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/lavandula.toml +0 -0
  362. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/liquidcarbon.toml +0 -0
  363. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/liquidcarbontransparent.toml +0 -0
  364. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
  365. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/lovelace.toml +0 -0
  366. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/man-page.toml +0 -0
  367. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/mariana.toml +0 -0
  368. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/material.toml +0 -0
  369. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/materialdark.toml +0 -0
  370. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/materialdarker.toml +0 -0
  371. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/materialdesigncolors.toml +0 -0
  372. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/materialocean.toml +0 -0
  373. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/mathias.toml +0 -0
  374. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/matrix.toml +0 -0
  375. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/medallion.toml +0 -0
  376. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/mellifluous.toml +0 -0
  377. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/midnight-in-mojave.toml +0 -0
  378. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/mirage.toml +0 -0
  379. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/misterioso.toml +0 -0
  380. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/molokai.toml +0 -0
  381. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/monalisa.toml +0 -0
  382. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/monokai-remastered.toml +0 -0
  383. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/monokai-soda.toml +0 -0
  384. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/monokai-vivid.toml +0 -0
  385. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/n0tch2k.toml +0 -0
  386. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/neobones-dark.toml +0 -0
  387. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/neobones-light.toml +0 -0
  388. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/neon.toml +0 -0
  389. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/neopolitan.toml +0 -0
  390. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/neutron.toml +0 -0
  391. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/night-owlish-light.toml +0 -0
  392. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/nightfox.toml +0 -0
  393. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/nightlion-v1.toml +0 -0
  394. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/nightlion-v2.toml +0 -0
  395. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/niji.toml +0 -0
  396. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/nocturnal-winter.toml +0 -0
  397. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/nord-light.toml +0 -0
  398. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/nord.toml +0 -0
  399. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/novel.toml +0 -0
  400. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/nvimdark.toml +0 -0
  401. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/nvimlight.toml +0 -0
  402. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/obsidian.toml +0 -0
  403. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/ocean.toml +0 -0
  404. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/oceanic-next.toml +0 -0
  405. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/oceanicmaterial.toml +0 -0
  406. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/ollie.toml +0 -0
  407. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/onehalfdark.toml +0 -0
  408. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/onehalflight.toml +0 -0
  409. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/operator-mono-dark.toml +0 -0
  410. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/overnight-slumber.toml +0 -0
  411. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/oxocarbon.toml +0 -0
  412. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/palenighthc.toml +0 -0
  413. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/pandora.toml +0 -0
  414. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/paraiso-dark.toml +0 -0
  415. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/paulmillr.toml +0 -0
  416. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/pencildark.toml +0 -0
  417. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/pencillight.toml +0 -0
  418. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/peppermint.toml +0 -0
  419. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/piatto-light.toml +0 -0
  420. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/pnevma.toml +0 -0
  421. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/popping-and-locking.toml +0 -0
  422. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/primary.toml +0 -0
  423. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/pro-light.toml +0 -0
  424. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/pro.toml +0 -0
  425. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/purple-rain.toml +0 -0
  426. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/purplepeter.toml +0 -0
  427. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/rapture.toml +0 -0
  428. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/raycast-dark.toml +0 -0
  429. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/raycast-light.toml +0 -0
  430. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/rebecca.toml +0 -0
  431. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/red-alert.toml +0 -0
  432. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/red-planet.toml +0 -0
  433. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/red-sands.toml +0 -0
  434. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/relaxed.toml +0 -0
  435. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/retro.toml +0 -0
  436. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/rippedcasts.toml +0 -0
  437. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/rose-pine-dawn.toml +0 -0
  438. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/rose-pine-moon.toml +0 -0
  439. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/rose-pine.toml +0 -0
  440. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/rouge-2.toml +0 -0
  441. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/royal.toml +0 -0
  442. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/ryuuko.toml +0 -0
  443. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/sakura.toml +0 -0
  444. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/scarlet-protocol.toml +0 -0
  445. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/seafoam-pastel.toml +0 -0
  446. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/seashells.toml +0 -0
  447. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/seoulbones-dark.toml +0 -0
  448. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/seoulbones-light.toml +0 -0
  449. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/seti.toml +0 -0
  450. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/shades-of-purple.toml +0 -0
  451. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/shaman.toml +0 -0
  452. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/slate.toml +0 -0
  453. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/sleepyhollow.toml +0 -0
  454. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/smyck.toml +0 -0
  455. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/snazzy.toml +0 -0
  456. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/softserver.toml +0 -0
  457. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/solarized-darcula.toml +0 -0
  458. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/solarized-dark---patched.toml +0 -0
  459. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
  460. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/spacedust.toml +0 -0
  461. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
  462. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/spacegray-eighties.toml +0 -0
  463. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/spacegray.toml +0 -0
  464. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/spiderman.toml +0 -0
  465. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/spring.toml +0 -0
  466. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/square.toml +0 -0
  467. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/sublette.toml +0 -0
  468. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/subliminal.toml +0 -0
  469. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/sugarplum.toml +0 -0
  470. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/sundried.toml +0 -0
  471. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/symfonic.toml +0 -0
  472. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/synthwave-everything.toml +0 -0
  473. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/synthwave.toml +0 -0
  474. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/synthwavealpha.toml +0 -0
  475. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/tango-adapted.toml +0 -0
  476. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/tango-half-adapted.toml +0 -0
  477. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/teerb.toml +0 -0
  478. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/terafox.toml +0 -0
  479. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/terminal-basic.toml +0 -0
  480. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/thayer-bright.toml +0 -0
  481. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/the-hulk.toml +0 -0
  482. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/tinacious-design-(dark).toml +0 -0
  483. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/tinacious-design-(light).toml +0 -0
  484. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/tokyonight-day.toml +0 -0
  485. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/tokyonight-storm.toml +0 -0
  486. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/tokyonight.toml +0 -0
  487. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/tomorrow-night-blue.toml +0 -0
  488. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/tomorrow-night-bright.toml +0 -0
  489. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/tomorrow-night-burns.toml +0 -0
  490. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
  491. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/tomorrow-night.toml +0 -0
  492. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/tomorrow.toml +0 -0
  493. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/toychest.toml +0 -0
  494. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/treehouse.toml +0 -0
  495. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/twilight.toml +0 -0
  496. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/ubuntu.toml +0 -0
  497. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/ultradark.toml +0 -0
  498. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/ultraviolent.toml +0 -0
  499. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/underthesea.toml +0 -0
  500. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/unikitty.toml +0 -0
  501. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/urple.toml +0 -0
  502. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/vaughn.toml +0 -0
  503. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/vesper.toml +0 -0
  504. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/vibrantink.toml +0 -0
  505. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/vimbones.toml +0 -0
  506. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/violet-dark.toml +0 -0
  507. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/violet-light.toml +0 -0
  508. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/warmneon.toml +0 -0
  509. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/wez.toml +0 -0
  510. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/whimsy.toml +0 -0
  511. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/wildcherry.toml +0 -0
  512. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/wilmersdorf.toml +0 -0
  513. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/wombat.toml +0 -0
  514. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/wryan.toml +0 -0
  515. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/xcodedark.toml +0 -0
  516. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/xcodedarkhc.toml +0 -0
  517. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/xcodelight.toml +0 -0
  518. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/xcodelighthc.toml +0 -0
  519. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/xcodewwdc.toml +0 -0
  520. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/zenbones-dark.toml +0 -0
  521. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/zenbones-light.toml +0 -0
  522. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/zenbones.toml +0 -0
  523. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/zenburn.toml +0 -0
  524. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/zenburned.toml +0 -0
  525. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/zenwritten-dark.toml +0 -0
  526. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/themes/zenwritten-light.toml +0 -0
  527. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/workflow/__init__.py +0 -0
  528. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/workflow/activities.py +0 -0
  529. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/workflow/agent_activities.py +0 -0
  530. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/workflow/temporal_setup.py +0 -0
  531. {flock_core-0.2.18 → flock_core-0.3.2}/src/flock/workflow/workflow.py +0 -0
  532. {flock_core-0.2.18 → flock_core-0.3.2}/tests/integration/test_agent_integration.py +0 -0
  533. {flock_core-0.2.18 → flock_core-0.3.2}/tests/unittests/test_flock_agent.py +0 -0
@@ -3,6 +3,7 @@ on:
3
3
  push:
4
4
  branches:
5
5
  - master # or master
6
+ - docs/* # or docs/*
6
7
 
7
8
  jobs:
8
9
  deploy:
@@ -6,6 +6,8 @@ on:
6
6
  push:
7
7
  branches:
8
8
  - master # Replace with your default branch
9
+ paths:
10
+ - 'pyproject.toml' # Only trigger on changes to pyproject.toml (version number)
9
11
 
10
12
  jobs:
11
13
  build-and-publish:
@@ -26,6 +26,7 @@ share/python-wheels/
26
26
  *.egg
27
27
  MANIFEST
28
28
  logs/
29
+ metrics/
29
30
 
30
31
 
31
32
  # PyInstaller
@@ -13,8 +13,22 @@
13
13
  "source.organizeImports.ruff": "always",
14
14
  "source.fixAll.ruff": "always"
15
15
  },
16
- // we try to make semantic highlighting look good
16
+ "editor.fontFamily": "'Jetbrains Mono', 'FiraCode Nerd Font', 'Hack Nerd Font', 'monospace'",
17
+ "editor.smoothScrolling": true,
18
+ "terminal.integrated.fontFamily": "'Jetbrains Mono', 'FiraCode Nerd Font', 'Hack Nerd Font', 'monospace'",
19
+ "editor.renderIndentGuides": false,
20
+ "editor.renderWhitespace": "none",
21
+ //"terminal.integrated.lineHeight": 1.5,
22
+ "editor.fontSize": 15.5,
23
+ "editor.fontLigatures": true,
24
+ //"editor.lineHeight": 1.5,
25
+ "editor.minimap.enabled": false,
26
+ "editor.tabSize": 2,
27
+ "editor.semanticTokenColorCustomizations": {
28
+ "enabled": true
29
+ },
17
30
  "editor.semanticHighlighting.enabled": true,
31
+ // we try to make semantic highlighting look good
18
32
  // prevent VSCode from modifying the terminal colors
19
33
  "terminal.integrated.minimumContrastRatio": 0,
20
34
  "cSpell.words": [
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: flock-core
3
- Version: 0.2.18
3
+ Version: 0.3.2
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,7 @@ Requires-Dist: dspy==2.5.42
14
14
  Requires-Dist: duckduckgo-search>=7.3.2
15
15
  Requires-Dist: httpx>=0.28.1
16
16
  Requires-Dist: loguru>=0.7.3
17
+ Requires-Dist: matplotlib>=3.10.0
17
18
  Requires-Dist: msgpack>=1.1.0
18
19
  Requires-Dist: opentelemetry-api>=1.30.0
19
20
  Requires-Dist: opentelemetry-exporter-jaeger-proto-grpc>=1.21.0
@@ -21,13 +22,19 @@ Requires-Dist: opentelemetry-exporter-jaeger>=1.21.0
21
22
  Requires-Dist: opentelemetry-exporter-otlp>=1.30.0
22
23
  Requires-Dist: opentelemetry-instrumentation-logging>=0.51b0
23
24
  Requires-Dist: opentelemetry-sdk>=1.30.0
25
+ Requires-Dist: pillow>=10.4.0
26
+ Requires-Dist: prometheus-client>=0.21.1
24
27
  Requires-Dist: pydantic>=2.10.5
25
28
  Requires-Dist: python-box>=7.3.2
26
29
  Requires-Dist: python-decouple>=3.8
27
30
  Requires-Dist: questionary>=2.1.0
28
31
  Requires-Dist: rich>=13.9.4
32
+ Requires-Dist: sentence-transformers>=3.4.1
29
33
  Requires-Dist: temporalio>=1.9.0
34
+ Requires-Dist: tiktoken>=0.8.0
30
35
  Requires-Dist: toml>=0.10.2
36
+ Requires-Dist: tqdm>=4.67.1
37
+ Requires-Dist: zep-python>=2.0.2
31
38
  Provides-Extra: all-tools
32
39
  Requires-Dist: docling>=2.18.0; extra == 'all-tools'
33
40
  Requires-Dist: markdownify>=0.14.1; extra == 'all-tools'
@@ -350,9 +357,49 @@ Super simple rules to remember:
350
357
  1. Point the first agent to the next one using `hand_off`
351
358
  2. Make sure their inputs and outputs match up
352
359
 
360
+ ### Tools of the trade
361
+
362
+ Of couse no agent framework is complete without using tools.
363
+ Flock enables agents to use any python function you pass as tool or to use one of the plenty default tools
364
+
365
+ ```python
366
+ bloggy = FlockAgent(
367
+ name="bloggy",
368
+ input="blog_idea: str|The topic to blog about",
369
+ output=(
370
+ "funny_blog_title: str|A catchy title for the blog, "
371
+ "blog_headers: list[str]|List of section headers for the blog"
372
+ "analysis_results: dict[str,Any] | Result of calculated analysis if necessary"
373
+ )
374
+ tools=[basic_tools.web_search_duckduckgo, basic_tools.code_eval],
375
+ )
376
+
377
+ result = flock.run(
378
+ input={"blog_idea": "A blog about cats, with an analysis how old the oldest cat became in days"},
379
+ start_agent=bloggy
380
+ )
381
+ ```
382
+
383
+ These tools are available out of the box (needs `flock-core[tools]`):
384
+
385
+ - web_search_tavily
386
+ - web_search_duckduckgo
387
+ - get_web_content_as_markdown
388
+ - get_anything_as_markdown (uses docling and needs `flock-core[all-tools]`)
389
+ - evaluate_math
390
+ - code_eval
391
+ - get_current_time
392
+ - count_words
393
+ - extract_urls
394
+ - extract_numbers
395
+ - json_parse_safe
396
+ - save_to_file
397
+ - read_from_file
398
+
399
+
353
400
  That's all there is to it! `bloggy` comes up with amazing headers, and `content_writer` turns them into full blog sections. No more writer's block! 🎉
354
401
 
355
- And this is just the beginning - you can chain as many agents as you want. Maybe add a proofreader? Or an SEO optimizer? But let's not get ahead of ourselves! 😉
402
+ And this is just the beginning - you can chain as many agents as you want. Maybe add a proofreader? Or add memory? Or an SEO optimizer? But let's not get ahead of ourselves! 😉
356
403
 
357
404
  So far we've barely scratched the surface of what flock has to offer, and we're currently hard at work building up the documentation for all the other super cool features Flock has up its sleeve! Stay tuned! 🚀
358
405
 
@@ -311,9 +311,49 @@ Super simple rules to remember:
311
311
  1. Point the first agent to the next one using `hand_off`
312
312
  2. Make sure their inputs and outputs match up
313
313
 
314
+ ### Tools of the trade
315
+
316
+ Of couse no agent framework is complete without using tools.
317
+ Flock enables agents to use any python function you pass as tool or to use one of the plenty default tools
318
+
319
+ ```python
320
+ bloggy = FlockAgent(
321
+ name="bloggy",
322
+ input="blog_idea: str|The topic to blog about",
323
+ output=(
324
+ "funny_blog_title: str|A catchy title for the blog, "
325
+ "blog_headers: list[str]|List of section headers for the blog"
326
+ "analysis_results: dict[str,Any] | Result of calculated analysis if necessary"
327
+ )
328
+ tools=[basic_tools.web_search_duckduckgo, basic_tools.code_eval],
329
+ )
330
+
331
+ result = flock.run(
332
+ input={"blog_idea": "A blog about cats, with an analysis how old the oldest cat became in days"},
333
+ start_agent=bloggy
334
+ )
335
+ ```
336
+
337
+ These tools are available out of the box (needs `flock-core[tools]`):
338
+
339
+ - web_search_tavily
340
+ - web_search_duckduckgo
341
+ - get_web_content_as_markdown
342
+ - get_anything_as_markdown (uses docling and needs `flock-core[all-tools]`)
343
+ - evaluate_math
344
+ - code_eval
345
+ - get_current_time
346
+ - count_words
347
+ - extract_urls
348
+ - extract_numbers
349
+ - json_parse_safe
350
+ - save_to_file
351
+ - read_from_file
352
+
353
+
314
354
  That's all there is to it! `bloggy` comes up with amazing headers, and `content_writer` turns them into full blog sections. No more writer's block! 🎉
315
355
 
316
- And this is just the beginning - you can chain as many agents as you want. Maybe add a proofreader? Or an SEO optimizer? But let's not get ahead of ourselves! 😉
356
+ And this is just the beginning - you can chain as many agents as you want. Maybe add a proofreader? Or add memory? Or an SEO optimizer? But let's not get ahead of ourselves! 😉
317
357
 
318
358
  So far we've barely scratched the surface of what flock has to offer, and we're currently hard at work building up the documentation for all the other super cool features Flock has up its sleeve! Stay tuned! 🚀
319
359
 
@@ -0,0 +1,44 @@
1
+ <mxfile host="65bd71144e">
2
+ <diagram id="iQ7YuHOuaVDECIdskFDT" name="Page-1">
3
+ <mxGraphModel dx="88" dy="620" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" background="light-dark(#FFFFFF, #d8cfb1)" math="0" shadow="1">
4
+ <root>
5
+ <mxCell id="0"/>
6
+ <mxCell id="1" parent="0"/>
7
+ <mxCell id="2" value="sequenceDiagram&#xa; participant Client&#xa; participant Flock&#xa; participant FlockAgent&#xa; participant Registry&#xa; participant Context&#xa; participant LLM&#xa; &#xa; Client-&gt;&gt;Flock: run_async(agent, input)&#xa; Flock-&gt;&gt;Registry: get_agent(name)&#xa; Registry--&gt;&gt;Flock: agent instance&#xa; &#xa; Flock-&gt;&gt;Context: initialize_context(agent, input)&#xa; &#xa; Flock-&gt;&gt;FlockAgent: run(inputs)&#xa; activate FlockAgent&#xa; &#xa; FlockAgent-&gt;&gt;FlockAgent: initialize(inputs)&#xa; FlockAgent-&gt;&gt;FlockAgent: _evaluate(inputs)&#xa; &#xa; FlockAgent-&gt;&gt;LLM: process with tools/prompts&#xa; LLM--&gt;&gt;FlockAgent: response&#xa; &#xa; FlockAgent-&gt;&gt;FlockAgent: terminate(inputs, result)&#xa; FlockAgent--&gt;&gt;Flock: result&#xa; deactivate FlockAgent&#xa; &#xa; Flock--&gt;&gt;Client: final result" style="shadow=0;dashed=0;align=left;strokeWidth=1;shape=mxgraph.mermaid.abstract.mermaid;labelBackgroundColor=#ffffff;noLabel=1;theme=default;" parent="1" vertex="1">
8
+ <mxGeometry x="271" y="360" width="300" height="300" as="geometry"/>
9
+ </mxCell>
10
+ </root>
11
+ </mxGraphModel>
12
+ </diagram>
13
+ <diagram id="mQwFuZfSuTjpqv4SXbYC" name="Page-2">
14
+ <mxGraphModel dx="354" dy="259" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" background="light-dark(#FFFFFF, #ffffde)" math="0" shadow="1">
15
+ <root>
16
+ <mxCell id="0"/>
17
+ <mxCell id="1" parent="0"/>
18
+ <mxCell id="gh-ZxXSGDDD0mwRwWCxR-1" value="graph TD&#xa; subgraph Client Application&#xa; client[Client Code]&#xa; end&#xa;&#xa; subgraph Flock Framework&#xa; orchestrator[Flock Orchestrator]&#xa; registry[Agent Registry]&#xa; context[Context Manager]&#xa; &#xa; subgraph Agents&#xa; base[FlockAgent Base]&#xa;&#xa; end&#xa; &#xa; subgraph Execution&#xa; local[Local Executor]&#xa; temporal[Temporal Executor]&#xa; end&#xa; &#xa; subgraph Core Services&#xa; logging[Logging System]&#xa; tools[Tool Registry]&#xa; formatter[Output Formatters]&#xa; end&#xa; end&#xa;&#xa; subgraph External Services&#xa; llm[Language Models]&#xa; temporal_server[Temporal Server]&#xa; end&#xa;&#xa; %% Client interactions&#xa; client --&gt; orchestrator&#xa; &#xa; %% Orchestrator relations&#xa; orchestrator --&gt; registry&#xa; orchestrator --&gt; context&#xa; orchestrator --&gt; local&#xa; orchestrator --&gt; temporal&#xa; &#xa; %% Agent relations&#xa; base --&gt; tools&#xa; base --&gt; logging&#xa; base --&gt; formatter&#xa;&#xa; &#xa; %% Execution relations&#xa; local --&gt; llm&#xa; temporal --&gt; temporal_server&#xa; temporal_server --&gt; llm&#xa; &#xa; %% Registry relations&#xa; registry --&gt; base&#xa; registry --&gt; tools&#xa;&#xa; %% Style&#xa; classDef default fill:#f9f9f9,stroke:#333,stroke-width:2px;&#xa; classDef external fill:#e1f5fe,stroke:#0288d1,stroke-width:2px;&#xa; classDef core fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px;&#xa; &#xa; class llm,temporal_server external;&#xa; class orchestrator,registry,context,base,local,temporal core;" style="shadow=0;dashed=0;align=left;strokeWidth=1;shape=mxgraph.mermaid.abstract.mermaid;labelBackgroundColor=#ffffff;noLabel=1;theme=default;" vertex="1" parent="1">
19
+ <mxGeometry x="274" y="325" width="300" height="300" as="geometry"/>
20
+ </mxCell>
21
+ </root>
22
+ </mxGraphModel>
23
+ </diagram>
24
+ <diagram id="sh9ImpPZNdK_Mo0HMCRx" name="Page-3">
25
+ <mxGraphModel dx="1237" dy="800" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="850" pageHeight="1100" background="light-dark(#FFFFFF,#E8E8E8)" math="0" shadow="0">
26
+ <root>
27
+ <mxCell id="0"/>
28
+ <mxCell id="1" parent="0"/>
29
+ <mxCell id="84CqISvRR4rrSDVKXhkM-1" value="graph TD&#xa; subgraph Memory Storage&#xa; A[New Input/Output] --&gt; B[Create Embedding]&#xa; B --&gt; C[Extract Concepts]&#xa; C --&gt; D[Create Memory Entry]&#xa; D --&gt; E{Store Memory}&#xa; E --&gt;|Recent| F[Short Term Memory]&#xa; E --&gt;|Frequent Use| G[Long Term Memory]&#xa; D --&gt; H[Update Concept Graph]&#xa; end&#xa;&#xa;classDef process fill:#73B7E7,stroke:#333,stroke-width:2px;&#xa;classDef storage fill:#90EE90,stroke:#333,stroke-width:2px;&#xa;class A,B,C,D process;&#xa;class F,G,H storage;" style="shadow=0;dashed=0;align=left;strokeWidth=1;shape=mxgraph.mermaid.abstract.mermaid;labelBackgroundColor=#ffffff;noLabel=1;theme=default;" parent="1" vertex="1">
30
+ <mxGeometry x="-20" y="10" width="300" height="300" as="geometry"/>
31
+ </mxCell>
32
+ <mxCell id="84CqISvRR4rrSDVKXhkM-2" value="graph TD&#xa; subgraph Memory Retrieval&#xa; A1[Query] --&gt; B1[Create Query Embedding]&#xa; A1 --&gt; C1[Extract Query Concepts]&#xa; B1 --&gt; D1{Similarity Search}&#xa; C1 --&gt; E1{Concept Spreading}&#xa; D1 --&gt; F1[Find Similar Memories]&#xa; E1 --&gt; G1[Find Related Concepts]&#xa; F1 --&gt; H1[Score &amp; Rank Results]&#xa; G1 --&gt; H1&#xa; H1 --&gt; I1[Return Best Matches]&#xa; end&#xa;&#xa;classDef query fill:#FFB6C1,stroke:#333,stroke-width:2px;&#xa;classDef process fill:#73B7E7,stroke:#333,stroke-width:2px;&#xa;classDef result fill:#90EE90,stroke:#333,stroke-width:2px;&#xa;class A1,B1,C1 query;&#xa;class D1,E1,F1,G1 process;&#xa;class H1,I1 result;&#xa;" style="shadow=0;dashed=0;align=left;strokeWidth=1;shape=mxgraph.mermaid.abstract.mermaid;labelBackgroundColor=#ffffff;noLabel=1;theme=default;" parent="1" vertex="1">
33
+ <mxGeometry x="240" y="10" width="300" height="300" as="geometry"/>
34
+ </mxCell>
35
+ <mxCell id="84CqISvRR4rrSDVKXhkM-3" value="graph LR&#xa; subgraph Concept Graph&#xa; A2[Space] --&gt; B2[Rockets]&#xa; B2 --&gt; C2[Physics]&#xa; C2 --&gt; D2[Energy]&#xa; B2 --&gt; E2[Engineering]&#xa; A2 --&gt; F2[Astronomy]&#xa; F2 --&gt; G2[Planets]&#xa; end&#xa;&#xa;classDef concept fill:#FFE4B5,stroke:#333,stroke-width:2px;&#xa;class A2,B2,C2,D2,E2,F2,G2 concept;" style="shadow=0;dashed=0;align=left;strokeWidth=1;shape=mxgraph.mermaid.abstract.mermaid;labelBackgroundColor=#ffffff;noLabel=1;theme=default;" parent="1" vertex="1">
36
+ <mxGeometry x="520" y="-60" width="300" height="300" as="geometry"/>
37
+ </mxCell>
38
+ <mxCell id="84CqISvRR4rrSDVKXhkM-4" value="sequenceDiagram&#xa; participant Q as Query&#xa; participant M as Memory System&#xa; participant ST as Short Term&#xa; participant LT as Long Term&#xa; participant CG as Concept Graph&#xa;&#xa; Q-&gt;&gt;M: Search Request&#xa; activate M&#xa; M-&gt;&gt;ST: Check Recent Memories&#xa; M-&gt;&gt;LT: Check Important Memories&#xa; M-&gt;&gt;CG: Spread Activation&#xa; CG--&gt;&gt;M: Related Concepts&#xa; ST--&gt;&gt;M: Similar Recent Memories&#xa; LT--&gt;&gt;M: Similar Important Memories&#xa; M-&gt;&gt;M: Score &amp; Rank Results&#xa; M--&gt;&gt;Q: Return Best Matches&#xa; deactivate M" style="shadow=0;dashed=0;align=left;strokeWidth=1;shape=mxgraph.mermaid.abstract.mermaid;labelBackgroundColor=#ffffff;noLabel=1;theme=default;" parent="1" vertex="1">
39
+ <mxGeometry y="290" width="820" height="650" as="geometry"/>
40
+ </mxCell>
41
+ </root>
42
+ </mxGraphModel>
43
+ </diagram>
44
+ </mxfile>
@@ -0,0 +1,355 @@
1
+ # Flock Memory System: How It Works
2
+
3
+ Ever wondered how AI can remember and learn from past interactions? Flock's memory system works a lot like human memory, but with some cool technical tricks! Let's break it down.
4
+
5
+ ## 🧠 The Big Picture
6
+
7
+ Imagine you're organizing a huge library of experiences. This library has:
8
+
9
+ - Recent memories (short-term)
10
+ - Important, well-used memories (long-term)
11
+ - Connections between related topics
12
+ - A smart way to find relevant information
13
+
14
+ That's basically what Flock's memory system does!
15
+
16
+
17
+
18
+ ## 💭 How Memories Are Stored
19
+
20
+ ### 1. Memory Entries
21
+
22
+ Each memory is stored with:
23
+
24
+ - What went in (inputs)
25
+ - What came out (outputs)
26
+ - When it happened (timestamp)
27
+ - How often it's used (access count)
28
+ - Special "embedding" (think of it as the memory's fingerprint)
29
+ - Related concepts (like tags or keywords)
30
+
31
+ ```python
32
+ memory = {
33
+ "inputs": {"question": "How do rockets work?"},
34
+ "outputs": {"answer": "Rockets work by..."},
35
+ "timestamp": "2025-02-20",
36
+ "access_count": 3,
37
+ "concepts": ["rockets", "space", "physics"]
38
+ }
39
+ ```
40
+
41
+ ### 2. Smart Fingerprinting (Embeddings)
42
+
43
+ - Every memory gets a special "fingerprint" (a list of numbers)
44
+ - Similar memories have similar fingerprints
45
+ - This helps find related memories quickly
46
+ - Uses a smart AI model (Sentence Transformers) to create these fingerprints
47
+
48
+ ![Concept Graph](../assets/images/memory_flow.png){ width="600" }
49
+
50
+ ### 3. Concept Graph
51
+
52
+ - Maintains a network of connected concepts
53
+ - Like how your brain connects "rocket" with "space" and "physics"
54
+ - The more often concepts appear together, the stronger their connection
55
+ - Helps find related memories even if they use different words
56
+
57
+
58
+ ![Concept Graph](../assets/images/memory_concepts.png){ width="600" }
59
+
60
+ ## 🔍 How Memories Are Retrieved
61
+
62
+ ![Concept Graph](../assets/images/memory_flow_chart.png){ width="600" }
63
+
64
+ ### 1. Similarity Search
65
+
66
+ When looking for memories, the system:
67
+
68
+ 1. Creates a fingerprint of your query
69
+ 2. Compares it with stored memory fingerprints
70
+ 3. Finds the closest matches
71
+
72
+ Like finding books in a library by topic, not just exact title matches!
73
+
74
+ ### 2. Memory Scoring
75
+
76
+ Each memory gets a score based on:
77
+
78
+ ```
79
+ Final Score = Similarity × Decay × Reinforcement × Decay Factor
80
+
81
+ Where:
82
+
83
+ - Similarity: How well it matches your query (0-1)
84
+ - Decay: Newer memories score higher
85
+ - Reinforcement: Frequently used memories score higher
86
+ - Decay Factor: Adjusts based on usefulness
87
+ ```
88
+
89
+ ### 3. Memory Evolution
90
+
91
+ Memories change over time:
92
+
93
+ - Frequently used memories get stronger (higher decay factor)
94
+ - Unused memories fade (lower decay factor)
95
+ - Very frequently used memories move to long-term storage
96
+ - Just like how human memories work!
97
+
98
+ ## 🎯 Memory Operations
99
+
100
+ You can interact with memory in different ways:
101
+
102
+ ### 1. Semantic Search
103
+
104
+ ```python
105
+ "topic -> memory.semantic(threshold=0.8)"
106
+ # Finds memories that are conceptually similar
107
+ ```
108
+
109
+ ### 2. Exact Match
110
+
111
+ ```python
112
+ "topic -> memory.exact"
113
+ # Finds memories that match precisely
114
+ ```
115
+
116
+ ### 3. Combined Search
117
+
118
+ ```python
119
+ "topic -> memory.semantic | memory.exact | memory.combine"
120
+ # Uses both similarity and exact matching
121
+ ```
122
+
123
+ ## 🌟 Cool Features
124
+
125
+ ### 1. Clustering
126
+
127
+ - Similar memories are grouped together
128
+ - Makes retrieval faster
129
+ - Helps identify patterns in the knowledge
130
+
131
+ ### 2. Spreading Activation
132
+
133
+ - When finding related concepts, activation "spreads" through the concept network
134
+ - Like how thinking about "rockets" might lead to "space travel" then "astronauts"
135
+ - Helps discover relevant but not obvious connections
136
+
137
+ ### 3. Automatic Promotion
138
+
139
+ - Frequently used memories automatically move to long-term storage
140
+ - Like how you remember important things better than one-off events
141
+ - Helps maintain a balance between fresh and important memories
142
+
143
+ ## 📈 Memory Over Time
144
+
145
+ As the system is used:
146
+
147
+ 1. Short-term memory collects recent interactions
148
+ 2. Important memories move to long-term storage
149
+ 3. The concept graph grows and strengthens connections
150
+ 4. Clustering helps organize growing knowledge
151
+ 5. Search becomes smarter with more context
152
+
153
+ ## 🔧 Under The Hood Example
154
+
155
+ Let's say you ask about rockets:
156
+
157
+ 1. **Storage**
158
+ ```python
159
+ Entry(
160
+ id="mem_123",
161
+ inputs={"query": "How do rockets work?"},
162
+ embedding=[0.1, 0.2, ...], # Fingerprint
163
+ concepts={"rockets", "physics", "space"}
164
+ )
165
+ ```
166
+
167
+ 2. **Retrieval**
168
+ ```python
169
+ # When you ask about "space travel":
170
+ query_embedding = compute_embedding("space travel")
171
+ similar_memories = find_similar(query_embedding)
172
+ concept_memories = spread_activation({"space", "travel"})
173
+ results = combine_and_rank(similar_memories, concept_memories)
174
+ ```
175
+
176
+ 3. **Learning**
177
+ ```python
178
+ # After using a memory:
179
+ memory.access_count += 1
180
+ memory.decay_factor *= 1.1 # Gets stronger
181
+ if memory.access_count > 10:
182
+ promote_to_long_term(memory)
183
+ ```
184
+
185
+ ## 🎓 Why This Matters
186
+
187
+ This system gives Flock:
188
+
189
+ 1. Better context awareness
190
+ 2. More consistent responses
191
+ 3. Learning from interactions
192
+ 4. Efficient knowledge retrieval
193
+ 5. Natural knowledge evolution
194
+
195
+ Just like a human assistant would remember past conversations and learn from experience!
196
+
197
+
198
+
199
+ In addition to the memory there is a declarative memory mapping system in which you define what memory you want to extract. Let's look at it!
200
+
201
+
202
+ ## 🗺️ Memory Mapping System
203
+
204
+ ## 🔗 Basic Syntax
205
+
206
+ Memory mappings use this pattern:
207
+ ```python
208
+ "input -> operation1 | operation2 | operation3 -> output"
209
+ ```
210
+ Where:
211
+ - `->` points to where data should flow
212
+ - `|` chains operations together (like pipes in Unix)
213
+ - Operations can have parameters in parentheses
214
+
215
+ ## 🧪 Available Operations
216
+
217
+ ### 1. Semantic Search
218
+ ```python
219
+ "query -> memory.semantic(threshold=0.8)"
220
+ ```
221
+ Parameters:
222
+ - `threshold`: Similarity cutoff (0-1)
223
+ - `max_results`: Maximum number of results
224
+ - `scope`: 'local', 'global', or 'both'
225
+
226
+ ### 2. Exact Match
227
+ ```python
228
+ "topic -> memory.exact"
229
+ ```
230
+ Looks for exact matches in memory entries. Good for when you need precise matching.
231
+
232
+ ### 3. Filter
233
+ ```python
234
+ "memory.filter(recency='7d', relevance=0.5)"
235
+ ```
236
+ Parameters:
237
+ - `recency`: Time window ('24h', '7d', etc.)
238
+ - `relevance`: Minimum relevance score
239
+ - `metadata`: Custom metadata filters
240
+
241
+ ### 4. Sort
242
+ ```python
243
+ "memory.sort(by='relevance', ascending=False)"
244
+ ```
245
+ Parameters:
246
+ - `by`: 'relevance', 'recency', or 'access_count'
247
+ - `ascending`: Sort direction
248
+
249
+ ### 5. Combine
250
+ ```python
251
+ "memory.combine(weights={'semantic': 0.7, 'exact': 0.3})"
252
+ ```
253
+ Merges results from different operations.
254
+
255
+ ## Examples
256
+
257
+ ### Simple Query
258
+ ```python
259
+ "topic -> memory.semantic(threshold=0.8) -> result"
260
+ ```
261
+ Just finds semantically similar memories.
262
+
263
+ ### Complex Research
264
+ ```python
265
+ memory_mapping = """
266
+ topic -> memory.semantic(threshold=0.9) |
267
+ memory.filter(recency='7d') |
268
+ memory.sort(by='relevance')
269
+ -> research_results
270
+ """
271
+ ```
272
+ Finds recent, highly relevant memories.
273
+
274
+ ### Multi-path Search
275
+ ```python
276
+ memory_mapping = """
277
+ topic -> memory.semantic(threshold=0.8) |
278
+ style -> memory.exact |
279
+ memory.combine(weights={'semantic': 0.6, 'exact': 0.4}) |
280
+ memory.filter(recency='24h')
281
+ -> final_results
282
+ """
283
+ ```
284
+ This:
285
+ 1. Does semantic search on topic
286
+ 2. Does exact match on style
287
+ 3. Combines both results with weights
288
+ 4. Filters to last 24 hours
289
+
290
+ ### Real-world Example
291
+ ```python
292
+ researcher = FlockAgent(
293
+ name="researcher",
294
+ input="query: str | Research query",
295
+ output="findings: str | Research findings",
296
+ memory_mapping="""
297
+ query -> memory.semantic(threshold=0.9, scope='global') |
298
+ memory.filter(recency='7d') |
299
+ memory.enrich(tools=['web_search']) |
300
+ memory.sort(by='relevance') |
301
+ memory.combine
302
+ -> findings
303
+ """
304
+ )
305
+ ```
306
+
307
+ ## How It Works Internally
308
+
309
+ 1. **Parsing**:
310
+ ```python
311
+ mapping = "topic -> memory.semantic(0.8) | memory.filter(recency='7d')"
312
+ # Gets parsed into:
313
+ operations = [
314
+ SemanticOperation(threshold=0.8),
315
+ FilterOperation(recency='7d')
316
+ ]
317
+ ```
318
+
319
+ 2. **Execution**:
320
+ - Each operation is executed in sequence
321
+ - Results flow from one operation to the next
322
+ - Final results are returned
323
+
324
+ 3. **Error Handling**:
325
+ - Invalid operations are caught during parsing
326
+ - Runtime errors are caught during execution
327
+ - Clear error messages help debugging
328
+
329
+ ## Tips for Writing Mappings
330
+
331
+ 1. **Start Simple**
332
+ ```python
333
+ "query -> memory.semantic -> result"
334
+ ```
335
+
336
+ 2. **Add Refinements**
337
+ ```python
338
+ "query -> memory.semantic | memory.filter -> result"
339
+ ```
340
+
341
+ 3. **Fine-tune Parameters**
342
+ ```python
343
+ "query -> memory.semantic(threshold=0.9) | memory.filter(recency='7d') -> result"
344
+ ```
345
+
346
+ 4. **Complex Flows**
347
+ ```python
348
+ """
349
+ query -> memory.semantic |
350
+ memory.filter |
351
+ memory.sort |
352
+ memory.combine
353
+ -> result
354
+ """
355
+ ```