flock-core 0.3.1__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 (520) hide show
  1. {flock_core-0.3.1 → flock_core-0.3.2}/.vscode/settings.json +15 -1
  2. {flock_core-0.3.1 → flock_core-0.3.2}/PKG-INFO +2 -1
  3. {flock_core-0.3.1 → flock_core-0.3.2}/docs/release-notes/release_notes.md +3 -2
  4. flock_core-0.3.2/examples/03_misc/multi_hops.py +85 -0
  5. flock_core-0.3.2/examples/03_misc/use_modules.py +60 -0
  6. {flock_core-0.3.1 → flock_core-0.3.2}/pyproject.toml +2 -1
  7. flock_core-0.3.2/src/flock/evaluators/zep/zep_evaluator.py +55 -0
  8. flock_core-0.3.2/src/flock/modules/zep/zep_module.py +177 -0
  9. {flock_core-0.3.1 → flock_core-0.3.2}/uv.lock +19 -1
  10. {flock_core-0.3.1 → flock_core-0.3.2}/.devcontainer/devcontainer.json +0 -0
  11. {flock_core-0.3.1 → flock_core-0.3.2}/.env_template +0 -0
  12. {flock_core-0.3.1 → flock_core-0.3.2}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  13. {flock_core-0.3.1 → flock_core-0.3.2}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  14. {flock_core-0.3.1 → flock_core-0.3.2}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
  15. {flock_core-0.3.1 → flock_core-0.3.2}/.github/workflows/.gitkeep +0 -0
  16. {flock_core-0.3.1 → flock_core-0.3.2}/.github/workflows/deploy-documentation.yml +0 -0
  17. {flock_core-0.3.1 → flock_core-0.3.2}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
  18. {flock_core-0.3.1 → flock_core-0.3.2}/.gitignore +0 -0
  19. {flock_core-0.3.1 → flock_core-0.3.2}/.vscode/launch.json +0 -0
  20. {flock_core-0.3.1 → flock_core-0.3.2}/.vscode/tasks.json +0 -0
  21. {flock_core-0.3.1 → flock_core-0.3.2}/LICENSE +0 -0
  22. {flock_core-0.3.1 → flock_core-0.3.2}/README.md +0 -0
  23. {flock_core-0.3.1 → flock_core-0.3.2}/docs/advanced/complex-workflows.md +0 -0
  24. {flock_core-0.3.1 → flock_core-0.3.2}/docs/advanced/custom-agents.md +0 -0
  25. {flock_core-0.3.1 → flock_core-0.3.2}/docs/advanced/performance.md +0 -0
  26. {flock_core-0.3.1 → flock_core-0.3.2}/docs/advanced/testing.md +0 -0
  27. {flock_core-0.3.1 → flock_core-0.3.2}/docs/api/flock-core.md +0 -0
  28. {flock_core-0.3.1 → flock_core-0.3.2}/docs/api/flockagent.md +0 -0
  29. {flock_core-0.3.1 → flock_core-0.3.2}/docs/api/types.md +0 -0
  30. {flock_core-0.3.1 → flock_core-0.3.2}/docs/api/utilities.md +0 -0
  31. {flock_core-0.3.1 → flock_core-0.3.2}/docs/architecture/components.md +0 -0
  32. {flock_core-0.3.1 → flock_core-0.3.2}/docs/architecture/design-decisions.md +0 -0
  33. {flock_core-0.3.1 → flock_core-0.3.2}/docs/architecture/overview.md +0 -0
  34. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/drawio/architecture.drawio +0 -0
  35. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/cli_outputs/out.png +0 -0
  36. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/components_chart.png +0 -0
  37. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/examples/01_01.png +0 -0
  38. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/examples/01_02.png +0 -0
  39. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/examples/01_03.png +0 -0
  40. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/examples/01_04.png +0 -0
  41. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/examples/01_05.png +0 -0
  42. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/examples/01_06.png +0 -0
  43. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/flock.png +0 -0
  44. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/flock_cli.png +0 -0
  45. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/flow_chart.png +0 -0
  46. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/getting-started/first_agent_00.png +0 -0
  47. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/hummingbird.png +0 -0
  48. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/icon.png +0 -0
  49. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/icon.png~ +0 -0
  50. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/logo.png +0 -0
  51. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/memory_concepts.png +0 -0
  52. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/memory_flow.png +0 -0
  53. {flock_core-0.3.1 → flock_core-0.3.2}/docs/assets/images/memory_flow_chart.png +0 -0
  54. {flock_core-0.3.1 → flock_core-0.3.2}/docs/contributing/code-style.md +0 -0
  55. {flock_core-0.3.1 → flock_core-0.3.2}/docs/contributing/development.md +0 -0
  56. {flock_core-0.3.1 → flock_core-0.3.2}/docs/contributing/documentation.md +0 -0
  57. {flock_core-0.3.1 → flock_core-0.3.2}/docs/contributing/testing.md +0 -0
  58. {flock_core-0.3.1 → flock_core-0.3.2}/docs/core-concepts/agents.md +0 -0
  59. {flock_core-0.3.1 → flock_core-0.3.2}/docs/core-concepts/declarative.md +0 -0
  60. {flock_core-0.3.1 → flock_core-0.3.2}/docs/core-concepts/error-handling.md +0 -0
  61. {flock_core-0.3.1 → flock_core-0.3.2}/docs/core-concepts/memory.md +0 -0
  62. {flock_core-0.3.1 → flock_core-0.3.2}/docs/core-concepts/type-system.md +0 -0
  63. {flock_core-0.3.1 → flock_core-0.3.2}/docs/core-concepts/workflows.md +0 -0
  64. {flock_core-0.3.1 → flock_core-0.3.2}/docs/create_doc_boilerplate.py +0 -0
  65. {flock_core-0.3.1 → flock_core-0.3.2}/docs/deployment/monitoring.md +0 -0
  66. {flock_core-0.3.1 → flock_core-0.3.2}/docs/deployment/production-setup.md +0 -0
  67. {flock_core-0.3.1 → flock_core-0.3.2}/docs/deployment/scalability.md +0 -0
  68. {flock_core-0.3.1 → flock_core-0.3.2}/docs/deployment/security.md +0 -0
  69. {flock_core-0.3.1 → flock_core-0.3.2}/docs/examples/chain-gang.md +0 -0
  70. {flock_core-0.3.1 → flock_core-0.3.2}/docs/examples/hello-flock.md +0 -0
  71. {flock_core-0.3.1 → flock_core-0.3.2}/docs/examples/pydantic.md +0 -0
  72. {flock_core-0.3.1 → flock_core-0.3.2}/docs/examples/type-system.md +0 -0
  73. {flock_core-0.3.1 → flock_core-0.3.2}/docs/features/agent-chaining.md +0 -0
  74. {flock_core-0.3.1 → flock_core-0.3.2}/docs/features/agent-definition.md +0 -0
  75. {flock_core-0.3.1 → flock_core-0.3.2}/docs/features/lifecycle-hooks.md +0 -0
  76. {flock_core-0.3.1 → flock_core-0.3.2}/docs/features/pydantic.md +0 -0
  77. {flock_core-0.3.1 → flock_core-0.3.2}/docs/features/type-safety.md +0 -0
  78. {flock_core-0.3.1 → flock_core-0.3.2}/docs/getting-started/concepts.md +0 -0
  79. {flock_core-0.3.1 → flock_core-0.3.2}/docs/getting-started/configuration.md +0 -0
  80. {flock_core-0.3.1 → flock_core-0.3.2}/docs/getting-started/installation.md +0 -0
  81. {flock_core-0.3.1 → flock_core-0.3.2}/docs/getting-started/quickstart.md +0 -0
  82. {flock_core-0.3.1 → flock_core-0.3.2}/docs/index.md +0 -0
  83. {flock_core-0.3.1 → flock_core-0.3.2}/docs/integrations/dspy.md +0 -0
  84. {flock_core-0.3.1 → flock_core-0.3.2}/docs/integrations/litellm.md +0 -0
  85. {flock_core-0.3.1 → flock_core-0.3.2}/docs/integrations/tavily.md +0 -0
  86. {flock_core-0.3.1 → flock_core-0.3.2}/docs/integrations/temporal.md +0 -0
  87. {flock_core-0.3.1 → flock_core-0.3.2}/docs/stylesheets/extra.css +0 -0
  88. {flock_core-0.3.1 → flock_core-0.3.2}/docs/tutorials/blog-generator.md +0 -0
  89. {flock_core-0.3.1 → flock_core-0.3.2}/docs/tutorials/custom-tools.md +0 -0
  90. {flock_core-0.3.1 → flock_core-0.3.2}/docs/tutorials/error-recovery.md +0 -0
  91. {flock_core-0.3.1 → flock_core-0.3.2}/docs/tutorials/multi-agent.md +0 -0
  92. {flock_core-0.3.1 → flock_core-0.3.2}/examples/01_introduction/01_simple_example.py +0 -0
  93. {flock_core-0.3.1 → flock_core-0.3.2}/examples/01_introduction/02_typed_output.py +0 -0
  94. {flock_core-0.3.1 → flock_core-0.3.2}/examples/01_introduction/03_tool_and_code_agent.py +0 -0
  95. {flock_core-0.3.1 → flock_core-0.3.2}/examples/01_introduction/04_descriptions.py +0 -0
  96. {flock_core-0.3.1 → flock_core-0.3.2}/examples/01_introduction/05_typed_output2.py +0 -0
  97. {flock_core-0.3.1 → flock_core-0.3.2}/examples/01_introduction/06_simple_hand_off.py +0 -0
  98. {flock_core-0.3.1 → flock_core-0.3.2}/examples/02_cook_book/flock_without_llms.py +0 -0
  99. {flock_core-0.3.1 → flock_core-0.3.2}/examples/02_cook_book/long_research_no_handoff.py +0 -0
  100. {flock_core-0.3.1 → flock_core-0.3.2}/examples/02_cook_book/painting_by_numbers.py +0 -0
  101. {flock_core-0.3.1 → flock_core-0.3.2}/examples/02_cook_book/project_manager.py +0 -0
  102. {flock_core-0.3.1 → flock_core-0.3.2}/examples/02_cook_book/save_and_load/load_01.py +0 -0
  103. {flock_core-0.3.1 → flock_core-0.3.2}/examples/02_cook_book/save_and_load/load_02.py +0 -0
  104. {flock_core-0.3.1 → flock_core-0.3.2}/examples/02_cook_book/save_and_load/load_03.py +0 -0
  105. {flock_core-0.3.1 → flock_core-0.3.2}/examples/02_cook_book/save_and_load/load_04.py +0 -0
  106. {flock_core-0.3.1 → flock_core-0.3.2}/examples/02_cook_book/save_and_load/save_01.py +0 -0
  107. {flock_core-0.3.1 → flock_core-0.3.2}/examples/02_cook_book/save_and_load/save_02.py +0 -0
  108. {flock_core-0.3.1 → flock_core-0.3.2}/examples/02_cook_book/save_and_load/save_03.py +0 -0
  109. {flock_core-0.3.1 → flock_core-0.3.2}/examples/02_cook_book/self_improvement_with_memory.py +0 -0
  110. {flock_core-0.3.1 → flock_core-0.3.2}/examples/README.md +0 -0
  111. {flock_core-0.3.1 → flock_core-0.3.2}/examples/documentation/getting-started/first_agent_01.py +0 -0
  112. {flock_core-0.3.1 → flock_core-0.3.2}/examples/documentation/getting-started/first_agent_02.py +0 -0
  113. {flock_core-0.3.1 → flock_core-0.3.2}/examples/documentation/getting-started/first_agent_03.py +0 -0
  114. {flock_core-0.3.1 → flock_core-0.3.2}/examples/notebooks_wip/Untitled-1.ipynb +0 -0
  115. {flock_core-0.3.1 → flock_core-0.3.2}/examples/notebooks_wip/my_agent.json +0 -0
  116. {flock_core-0.3.1/examples/03_misc_wip → flock_core-0.3.2/examples/playground}/memory.py +0 -0
  117. {flock_core-0.3.1/examples/03_misc_wip → flock_core-0.3.2/examples/playground}/self_learner.py +0 -0
  118. {flock_core-0.3.1/examples/03_misc_wip → flock_core-0.3.2/examples/playground}/self_learner2.py +0 -0
  119. {flock_core-0.3.1 → flock_core-0.3.2}/mkdocs.yml +0 -0
  120. {flock_core-0.3.1 → flock_core-0.3.2}/requirements.txt +0 -0
  121. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/__init__.py +0 -0
  122. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/cli/assets/release_notes.md +0 -0
  123. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/cli/constants.py +0 -0
  124. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/cli/create_agent.py +0 -0
  125. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/cli/create_flock.py +0 -0
  126. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/cli/load_agent.py +0 -0
  127. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/cli/load_examples.py +0 -0
  128. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/cli/load_flock.py +0 -0
  129. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/cli/load_release_notes.py +0 -0
  130. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/cli/settings.py +0 -0
  131. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/config.py +0 -0
  132. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/__init__.py +0 -0
  133. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/context/context.py +0 -0
  134. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/context/context_manager.py +0 -0
  135. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/context/context_vars.py +0 -0
  136. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/execution/local_executor.py +0 -0
  137. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/execution/temporal_executor.py +0 -0
  138. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/flock.py +0 -0
  139. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/flock_agent.py +0 -0
  140. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/flock_evaluator.py +0 -0
  141. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/flock_factory.py +0 -0
  142. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/flock_module.py +0 -0
  143. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/interpreter/python_interpreter.py +0 -0
  144. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/logging/__init__.py +0 -0
  145. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/logging/formatters/enum_builder.py +0 -0
  146. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/logging/formatters/theme_builder.py +0 -0
  147. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
  148. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/logging/formatters/themes.py +0 -0
  149. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/logging/logging.py +0 -0
  150. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
  151. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/logging/telemetry.py +0 -0
  152. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
  153. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
  154. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
  155. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/logging/trace_and_logged.py +0 -0
  156. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/mixin/dspy_integration.py +0 -0
  157. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/mixin/prompt_parser.py +0 -0
  158. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/registry/agent_registry.py +0 -0
  159. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/tools/basic_tools.py +0 -0
  160. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/tools/dev_tools/github.py +0 -0
  161. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/util/cli_helper.py +0 -0
  162. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/util/hydrator.py +0 -0
  163. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/util/input_resolver.py +0 -0
  164. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/core/util/serializable.py +0 -0
  165. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/evaluators/declarative/declarative_evaluator.py +0 -0
  166. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/evaluators/natural_language/natural_language_evaluator.py +0 -0
  167. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/modules/callback/callback_module.py +0 -0
  168. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/modules/memory/memory_module.py +0 -0
  169. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/modules/memory/memory_parser.py +0 -0
  170. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/modules/memory/memory_storage.py +0 -0
  171. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/modules/output/output_module.py +0 -0
  172. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/modules/performance/metrics_module.py +0 -0
  173. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/platform/docker_tools.py +0 -0
  174. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/platform/jaeger_install.py +0 -0
  175. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/3024-day.toml +0 -0
  176. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/3024-night.toml +0 -0
  177. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/aardvark-blue.toml +0 -0
  178. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/abernathy.toml +0 -0
  179. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/adventure.toml +0 -0
  180. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/adventuretime.toml +0 -0
  181. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/afterglow.toml +0 -0
  182. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/alabaster.toml +0 -0
  183. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/alienblood.toml +0 -0
  184. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/andromeda.toml +0 -0
  185. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/apple-classic.toml +0 -0
  186. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/apple-system-colors.toml +0 -0
  187. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/arcoiris.toml +0 -0
  188. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/argonaut copy.toml +0 -0
  189. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/argonaut.toml +0 -0
  190. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/arthur.toml +0 -0
  191. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/ateliersulphurpool.toml +0 -0
  192. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/atom.toml +0 -0
  193. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/atom_test.toml +0 -0
  194. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/atomonelight.toml +0 -0
  195. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/aurora.toml +0 -0
  196. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/ayu copy.toml +0 -0
  197. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/ayu-light.toml +0 -0
  198. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/ayu-mirage.toml +0 -0
  199. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/ayu.toml +0 -0
  200. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/banana-blueberry.toml +0 -0
  201. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/batman.toml +0 -0
  202. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/belafonte-day.toml +0 -0
  203. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/belafonte-night.toml +0 -0
  204. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/birdsofparadise.toml +0 -0
  205. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/blazer.toml +0 -0
  206. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/blue-matrix.toml +0 -0
  207. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/blueberrypie.toml +0 -0
  208. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/bluedolphin.toml +0 -0
  209. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/blulocodark.toml +0 -0
  210. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/blulocolight.toml +0 -0
  211. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/borland.toml +0 -0
  212. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/breeze.toml +0 -0
  213. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/bright-lights.toml +0 -0
  214. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/broadcast.toml +0 -0
  215. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/brogrammer.toml +0 -0
  216. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/builtin-dark.toml +0 -0
  217. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/builtin-light.toml +0 -0
  218. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/builtin-pastel-dark.toml +0 -0
  219. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/builtin-solarized-dark.toml +0 -0
  220. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/builtin-solarized-light.toml +0 -0
  221. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/builtin-tango-dark.toml +0 -0
  222. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/builtin-tango-light.toml +0 -0
  223. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/c64.toml +0 -0
  224. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/calamity.toml +0 -0
  225. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/catppuccin-frappe.toml +0 -0
  226. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/catppuccin-latte.toml +0 -0
  227. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/catppuccin-macchiato.toml +0 -0
  228. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/catppuccin-mocha.toml +0 -0
  229. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/cga.toml +0 -0
  230. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/chalk.toml +0 -0
  231. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/chalkboard.toml +0 -0
  232. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/challengerdeep.toml +0 -0
  233. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/chester.toml +0 -0
  234. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/ciapre.toml +0 -0
  235. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/clrs.toml +0 -0
  236. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/cobalt-neon.toml +0 -0
  237. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/cobalt2.toml +0 -0
  238. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/coffee-theme.toml +0 -0
  239. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/crayonponyfish.toml +0 -0
  240. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/cutiepro.toml +0 -0
  241. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/cyberdyne.toml +0 -0
  242. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/cyberpunk.toml +0 -0
  243. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
  244. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/dark+.toml +0 -0
  245. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/dark-pastel.toml +0 -0
  246. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/darkermatrix.toml +0 -0
  247. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/darkmatrix.toml +0 -0
  248. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/darkside.toml +0 -0
  249. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/dayfox.toml +0 -0
  250. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/deep.toml +0 -0
  251. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/desert.toml +0 -0
  252. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/dimidium.toml +0 -0
  253. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/dimmedmonokai.toml +0 -0
  254. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/django.toml +0 -0
  255. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/djangorebornagain.toml +0 -0
  256. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/djangosmooth.toml +0 -0
  257. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/doom-peacock.toml +0 -0
  258. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/doomone.toml +0 -0
  259. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/dotgov.toml +0 -0
  260. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/dracula+.toml +0 -0
  261. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/dracula.toml +0 -0
  262. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/duckbones.toml +0 -0
  263. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/duotone-dark.toml +0 -0
  264. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/earthsong.toml +0 -0
  265. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/elemental.toml +0 -0
  266. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/elementary.toml +0 -0
  267. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/encom.toml +0 -0
  268. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/espresso-libre.toml +0 -0
  269. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/espresso.toml +0 -0
  270. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/everblush.toml +0 -0
  271. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/fahrenheit.toml +0 -0
  272. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/fairyfloss.toml +0 -0
  273. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/farmhouse-dark.toml +0 -0
  274. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/farmhouse-light.toml +0 -0
  275. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/fideloper.toml +0 -0
  276. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/firefly-traditional.toml +0 -0
  277. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/firefoxdev.toml +0 -0
  278. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/firewatch.toml +0 -0
  279. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/fishtank.toml +0 -0
  280. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/flat.toml +0 -0
  281. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/flatland.toml +0 -0
  282. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/flexoki-dark.toml +0 -0
  283. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/flexoki-light.toml +0 -0
  284. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/floraverse.toml +0 -0
  285. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/forestblue.toml +0 -0
  286. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/framer.toml +0 -0
  287. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/frontenddelight.toml +0 -0
  288. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/funforrest.toml +0 -0
  289. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/galaxy.toml +0 -0
  290. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/galizur.toml +0 -0
  291. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/github-dark.toml +0 -0
  292. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/github.toml +0 -0
  293. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/glacier.toml +0 -0
  294. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/grape.toml +0 -0
  295. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/grass.toml +0 -0
  296. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/grey-green.toml +0 -0
  297. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/gruber-darker.toml +0 -0
  298. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/gruvboxdark.toml +0 -0
  299. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/gruvboxdarkhard.toml +0 -0
  300. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/gruvboxlight.toml +0 -0
  301. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/guezwhoz.toml +0 -0
  302. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/hacktober.toml +0 -0
  303. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/hardcore.toml +0 -0
  304. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/harper.toml +0 -0
  305. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/hax0r-blue.toml +0 -0
  306. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/hax0r-gr33n.toml +0 -0
  307. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/hax0r-r3d.toml +0 -0
  308. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/highway.toml +0 -0
  309. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/hipster-green.toml +0 -0
  310. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/hivacruz.toml +0 -0
  311. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/homebrew.toml +0 -0
  312. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/hopscotch.256.toml +0 -0
  313. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/hopscotch.toml +0 -0
  314. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/hurtado.toml +0 -0
  315. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/hybrid.toml +0 -0
  316. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/ic-green-ppl.toml +0 -0
  317. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/ic-orange-ppl.toml +0 -0
  318. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/iceberg-dark.toml +0 -0
  319. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/iceberg-light.toml +0 -0
  320. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/idea.toml +0 -0
  321. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/idletoes.toml +0 -0
  322. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/ir-black.toml +0 -0
  323. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/iterm2-dark-background.toml +0 -0
  324. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/iterm2-default.toml +0 -0
  325. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/iterm2-light-background.toml +0 -0
  326. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
  327. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/iterm2-smoooooth.toml +0 -0
  328. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
  329. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/iterm2-solarized-light.toml +0 -0
  330. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/iterm2-tango-dark.toml +0 -0
  331. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/iterm2-tango-light.toml +0 -0
  332. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/jackie-brown.toml +0 -0
  333. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/japanesque.toml +0 -0
  334. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/jellybeans.toml +0 -0
  335. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/jetbrains-darcula.toml +0 -0
  336. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/jubi.toml +0 -0
  337. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/kanagawabones.toml +0 -0
  338. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/kibble.toml +0 -0
  339. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/kolorit.toml +0 -0
  340. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/konsolas.toml +0 -0
  341. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/kurokula.toml +0 -0
  342. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/lab-fox.toml +0 -0
  343. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/laser.toml +0 -0
  344. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/later-this-evening.toml +0 -0
  345. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/lavandula.toml +0 -0
  346. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/liquidcarbon.toml +0 -0
  347. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/liquidcarbontransparent.toml +0 -0
  348. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
  349. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/lovelace.toml +0 -0
  350. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/man-page.toml +0 -0
  351. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/mariana.toml +0 -0
  352. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/material.toml +0 -0
  353. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/materialdark.toml +0 -0
  354. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/materialdarker.toml +0 -0
  355. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/materialdesigncolors.toml +0 -0
  356. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/materialocean.toml +0 -0
  357. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/mathias.toml +0 -0
  358. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/matrix.toml +0 -0
  359. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/medallion.toml +0 -0
  360. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/mellifluous.toml +0 -0
  361. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/midnight-in-mojave.toml +0 -0
  362. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/mirage.toml +0 -0
  363. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/misterioso.toml +0 -0
  364. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/molokai.toml +0 -0
  365. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/monalisa.toml +0 -0
  366. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/monokai-remastered.toml +0 -0
  367. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/monokai-soda.toml +0 -0
  368. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/monokai-vivid.toml +0 -0
  369. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/n0tch2k.toml +0 -0
  370. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/neobones-dark.toml +0 -0
  371. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/neobones-light.toml +0 -0
  372. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/neon.toml +0 -0
  373. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/neopolitan.toml +0 -0
  374. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/neutron.toml +0 -0
  375. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/night-owlish-light.toml +0 -0
  376. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/nightfox.toml +0 -0
  377. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/nightlion-v1.toml +0 -0
  378. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/nightlion-v2.toml +0 -0
  379. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/niji.toml +0 -0
  380. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/nocturnal-winter.toml +0 -0
  381. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/nord-light.toml +0 -0
  382. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/nord.toml +0 -0
  383. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/novel.toml +0 -0
  384. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/nvimdark.toml +0 -0
  385. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/nvimlight.toml +0 -0
  386. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/obsidian.toml +0 -0
  387. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/ocean.toml +0 -0
  388. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/oceanic-next.toml +0 -0
  389. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/oceanicmaterial.toml +0 -0
  390. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/ollie.toml +0 -0
  391. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/onehalfdark.toml +0 -0
  392. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/onehalflight.toml +0 -0
  393. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/operator-mono-dark.toml +0 -0
  394. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/overnight-slumber.toml +0 -0
  395. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/oxocarbon.toml +0 -0
  396. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/palenighthc.toml +0 -0
  397. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/pandora.toml +0 -0
  398. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/paraiso-dark.toml +0 -0
  399. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/paulmillr.toml +0 -0
  400. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/pencildark.toml +0 -0
  401. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/pencillight.toml +0 -0
  402. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/peppermint.toml +0 -0
  403. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/piatto-light.toml +0 -0
  404. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/pnevma.toml +0 -0
  405. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/popping-and-locking.toml +0 -0
  406. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/primary.toml +0 -0
  407. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/pro-light.toml +0 -0
  408. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/pro.toml +0 -0
  409. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/purple-rain.toml +0 -0
  410. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/purplepeter.toml +0 -0
  411. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/rapture.toml +0 -0
  412. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/raycast-dark.toml +0 -0
  413. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/raycast-light.toml +0 -0
  414. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/rebecca.toml +0 -0
  415. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/red-alert.toml +0 -0
  416. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/red-planet.toml +0 -0
  417. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/red-sands.toml +0 -0
  418. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/relaxed.toml +0 -0
  419. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/retro.toml +0 -0
  420. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/rippedcasts.toml +0 -0
  421. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/rose-pine-dawn.toml +0 -0
  422. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/rose-pine-moon.toml +0 -0
  423. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/rose-pine.toml +0 -0
  424. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/rouge-2.toml +0 -0
  425. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/royal.toml +0 -0
  426. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/ryuuko.toml +0 -0
  427. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/sakura.toml +0 -0
  428. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/scarlet-protocol.toml +0 -0
  429. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/seafoam-pastel.toml +0 -0
  430. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/seashells.toml +0 -0
  431. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/seoulbones-dark.toml +0 -0
  432. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/seoulbones-light.toml +0 -0
  433. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/seti.toml +0 -0
  434. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/shades-of-purple.toml +0 -0
  435. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/shaman.toml +0 -0
  436. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/slate.toml +0 -0
  437. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/sleepyhollow.toml +0 -0
  438. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/smyck.toml +0 -0
  439. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/snazzy.toml +0 -0
  440. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/softserver.toml +0 -0
  441. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/solarized-darcula.toml +0 -0
  442. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/solarized-dark---patched.toml +0 -0
  443. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
  444. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/spacedust.toml +0 -0
  445. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
  446. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/spacegray-eighties.toml +0 -0
  447. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/spacegray.toml +0 -0
  448. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/spiderman.toml +0 -0
  449. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/spring.toml +0 -0
  450. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/square.toml +0 -0
  451. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/sublette.toml +0 -0
  452. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/subliminal.toml +0 -0
  453. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/sugarplum.toml +0 -0
  454. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/sundried.toml +0 -0
  455. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/symfonic.toml +0 -0
  456. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/synthwave-everything.toml +0 -0
  457. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/synthwave.toml +0 -0
  458. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/synthwavealpha.toml +0 -0
  459. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/tango-adapted.toml +0 -0
  460. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/tango-half-adapted.toml +0 -0
  461. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/teerb.toml +0 -0
  462. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/terafox.toml +0 -0
  463. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/terminal-basic.toml +0 -0
  464. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/thayer-bright.toml +0 -0
  465. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/the-hulk.toml +0 -0
  466. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/tinacious-design-(dark).toml +0 -0
  467. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/tinacious-design-(light).toml +0 -0
  468. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/tokyonight-day.toml +0 -0
  469. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/tokyonight-storm.toml +0 -0
  470. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/tokyonight.toml +0 -0
  471. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/tomorrow-night-blue.toml +0 -0
  472. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/tomorrow-night-bright.toml +0 -0
  473. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/tomorrow-night-burns.toml +0 -0
  474. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
  475. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/tomorrow-night.toml +0 -0
  476. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/tomorrow.toml +0 -0
  477. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/toychest.toml +0 -0
  478. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/treehouse.toml +0 -0
  479. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/twilight.toml +0 -0
  480. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/ubuntu.toml +0 -0
  481. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/ultradark.toml +0 -0
  482. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/ultraviolent.toml +0 -0
  483. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/underthesea.toml +0 -0
  484. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/unikitty.toml +0 -0
  485. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/urple.toml +0 -0
  486. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/vaughn.toml +0 -0
  487. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/vesper.toml +0 -0
  488. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/vibrantink.toml +0 -0
  489. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/vimbones.toml +0 -0
  490. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/violet-dark.toml +0 -0
  491. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/violet-light.toml +0 -0
  492. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/warmneon.toml +0 -0
  493. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/wez.toml +0 -0
  494. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/whimsy.toml +0 -0
  495. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/wildcherry.toml +0 -0
  496. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/wilmersdorf.toml +0 -0
  497. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/wombat.toml +0 -0
  498. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/wryan.toml +0 -0
  499. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/xcodedark.toml +0 -0
  500. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/xcodedarkhc.toml +0 -0
  501. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/xcodelight.toml +0 -0
  502. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/xcodelighthc.toml +0 -0
  503. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/xcodewwdc.toml +0 -0
  504. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/zenbones-dark.toml +0 -0
  505. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/zenbones-light.toml +0 -0
  506. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/zenbones.toml +0 -0
  507. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/zenburn.toml +0 -0
  508. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/zenburned.toml +0 -0
  509. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/zenwritten-dark.toml +0 -0
  510. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/themes/zenwritten-light.toml +0 -0
  511. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/workflow/__init__.py +0 -0
  512. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/workflow/activities.py +0 -0
  513. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/workflow/agent_activities.py +0 -0
  514. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/workflow/temporal_setup.py +0 -0
  515. {flock_core-0.3.1 → flock_core-0.3.2}/src/flock/workflow/workflow.py +0 -0
  516. {flock_core-0.3.1 → flock_core-0.3.2}/tests/integration/test_agent_integration.py +0 -0
  517. {flock_core-0.3.1 → flock_core-0.3.2}/tests/unittests/test_flock.py +0 -0
  518. {flock_core-0.3.1 → flock_core-0.3.2}/tests/unittests/test_flock_agent.py +0 -0
  519. {flock_core-0.3.1 → flock_core-0.3.2}/tests/unittests/test_memory_operations.py +0 -0
  520. {flock_core-0.3.1 → flock_core-0.3.2}/tests/unittests/test_memory_store.py +0 -0
@@ -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.3.1
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
@@ -34,6 +34,7 @@ Requires-Dist: temporalio>=1.9.0
34
34
  Requires-Dist: tiktoken>=0.8.0
35
35
  Requires-Dist: toml>=0.10.2
36
36
  Requires-Dist: tqdm>=4.67.1
37
+ Requires-Dist: zep-python>=2.0.2
37
38
  Provides-Extra: all-tools
38
39
  Requires-Dist: docling>=2.18.0; extra == 'all-tools'
39
40
  Requires-Dist: markdownify>=0.14.1; extra == 'all-tools'
@@ -24,8 +24,7 @@ Like a hummingbird, modules are small and nimble code packages. Put enough of th
24
24
 
25
25
  ### 🎯 New Module System
26
26
 
27
- - **Complete redesign** of the module architecture
28
- - Simple yet powerful lifecycle hooks: `initialize`, `pre_evaluate`, `post_evaluate`, `terminate`
27
+ - **Pluggable modules system á la FastAPI**
29
28
  - **Easy-to-implement** module interface
30
29
  - **Configuration system** for clean parameter management
31
30
 
@@ -35,6 +34,7 @@ Like a hummingbird, modules are small and nimble code packages. Put enough of th
35
34
  - Built-in support for multiple evaluation strategies:
36
35
  - **Declarative Evaluator** – The default way Flock is designed
37
36
  - **Natural Language Evaluator** – Use "classic" prompting
37
+ - **Zep Evaluator** – Add or query data
38
38
  - **Easily extendable** with custom evaluation approaches
39
39
 
40
40
  ### 🏭 FlockFactory
@@ -46,6 +46,7 @@ Like a hummingbird, modules are small and nimble code packages. Put enough of th
46
46
  - **Memory Module** – Persistent agent memory
47
47
  - **Output Module** – Advanced output formatting and storage
48
48
  - **Metrics Module** – Detailed performance tracking
49
+ - **Zep Module** – Uses Zep for Knowledge Graphs
49
50
 
50
51
  ---
51
52
 
@@ -0,0 +1,85 @@
1
+
2
+ from flock.core import Flock, FlockFactory
3
+ from flock.core.logging.formatters.themes import OutputTheme
4
+ from flock.evaluators.zep.zep_evaluator import ZepEvaluator, ZepEvaluatorConfig
5
+ from flock.modules.zep.zep_module import ZepModule, ZepModuleConfig
6
+
7
+
8
+ def write_to_kg():
9
+ write_to_kg_agent = FlockFactory.create_default_agent(name="write_to_kg_agent",
10
+ input="data",
11
+ output_theme=OutputTheme.aardvark_blue)
12
+
13
+ # --------------------------------
14
+ # Evaluators
15
+ # --------------------------------
16
+ # Evaluators are the components that evaluate the agent's inputs and outputs.
17
+ # In this case, we're using the ZepEvaluator to interact with Zep.
18
+ # This replaces the default declarative evaluator
19
+ # The ZepEvaluator uses the ZepModule to interact with Zep.
20
+ # input with "data" will add the data to the memory
21
+ # input with "query" will search the memory for the query and return the facts
22
+ write_to_kg_agent.evaluator = ZepEvaluator(name="zep", config=ZepEvaluatorConfig())
23
+
24
+ write_to_kg_agent.run(inputs={"data": "Andre is 38 years old and author of the agent framework 'flock'"})
25
+ write_to_kg_agent.run(inputs={"data": "Andre works for white duck"})
26
+ write_to_kg_agent.run(inputs={"data": "Andre has two cats"})
27
+ write_to_kg_agent.run(inputs={"data": "White Duck is a cloud consulting company"})
28
+ write_to_kg_agent.run(inputs={"data": "Flock is an agent framework designed for scalable multi-agent systems"})
29
+ write_to_kg_agent.run(inputs={"data": "One of Andre's cats is named Luna"})
30
+ write_to_kg_agent.run(inputs={"data": "The other cat is named Lucy"})
31
+ write_to_kg_agent.run(inputs={"data": "Andre lives in Germany"})
32
+ write_to_kg_agent.run(inputs={"data": "Germany is in Europe"})
33
+
34
+ def read_from_kg():
35
+ read_from_kg_agent = FlockFactory.create_default_agent(name="read_from_kg_agent",
36
+ input="query",
37
+ output_theme=OutputTheme.aardvark_blue)
38
+
39
+ # replace the default evaluator with ZepEvaluator
40
+ read_from_kg_agent.evaluator = ZepEvaluator(name="zep", config=ZepEvaluatorConfig())
41
+
42
+
43
+ # #### **2-Hop Question:**
44
+ # **Question:** What kind of company does the employer of the author of 'flock' belong to?
45
+ # **Reasoning:**
46
+ # 1. "Andre is the author of the agent framework 'flock'."
47
+ # 2. "Andre works for White Duck."
48
+ # 3. "White Duck is a cloud consulting company."
49
+ # 4. Therefore, the employer of the author of 'flock' is a cloud consulting company.
50
+
51
+ read_from_kg_agent.run(inputs={"query": "What kind of company does the employer of the author of 'flock' belong to?"})
52
+
53
+ def read_from_kg_and_evaluate():
54
+ read_from_kg_and_evaluate_agent = FlockFactory.create_default_agent(name="read_from_kg_and_evaluate_agent",
55
+ input="query",
56
+ output="short_answer",
57
+ output_theme=OutputTheme.aardvark_blue)
58
+
59
+ read_from_kg_and_evaluate_agent.add_module(ZepModule(name="zep", config=ZepModuleConfig()))
60
+
61
+
62
+
63
+ read_from_kg_and_evaluate_agent.run(inputs={"query": "What kind of company does the employer of the author of 'flock' belong to?"})
64
+
65
+ # #### **3-Hop Question:**
66
+ # **Question:** In which continent does the creator of the agent framework 'flock' live?
67
+ # **Reasoning:**
68
+ # 1. "Andre is the author of the agent framework 'flock'."
69
+ # 2. "Andre lives in Germany."
70
+ # 3. "Germany is in Europe."
71
+ # 4. Therefore, the creator of 'flock' lives in Europe.
72
+ read_from_kg_and_evaluate_agent.run(inputs={"query": "In which continent does the creator of the agent framework 'flock' live? "})
73
+
74
+
75
+
76
+ if __name__ == "__main__":
77
+ #write_to_kg()
78
+ #read_from_kg()
79
+ #read_from_kg_and_evaluate()
80
+ pass
81
+
82
+
83
+
84
+
85
+
@@ -0,0 +1,60 @@
1
+ """
2
+ Title: Advanced Flock Agent with Caching, Type Hints, and Tool Integration
3
+
4
+ In this example, we'll show you how to build a more advanced Flock system that:
5
+ - Uses a custom output formatter (RichTables) for a polished, swaggy display.
6
+ - Defines output types using standard Python type hints (including lists and Literals) for structured results.
7
+ - Integrates external tools (like a web content scraper) so that agents can perform more complex operations.
8
+ - Leverages caching so that if an agent is called with the same input, the cached result is returned—this is particularly
9
+ useful for expensive operations such as web scraping or during debugging.
10
+
11
+ The agent in this example takes a URL as input and outputs:
12
+ - A title,
13
+ - A list of headings,
14
+ - A list of dictionaries mapping entities to metadata, and
15
+ - A type (limited to one of 'news', 'blog', 'opinion piece', or 'tweet').
16
+
17
+ After executing the agent, you can work with the result as a real Python object that respects the defined types.
18
+
19
+ Let's dive in!
20
+ """
21
+
22
+
23
+ from pprint import pprint
24
+
25
+ from flock.core import Flock, FlockFactory
26
+ from flock.core.logging.formatters.themes import OutputTheme
27
+ from flock.core.tools import basic_tools
28
+ from flock.modules.zep.zep_module import ZepModule, ZepModuleConfig
29
+
30
+
31
+ flock = Flock(enable_logging=True)
32
+
33
+ agent = FlockFactory.create_default_agent(
34
+ name="my_agent",
35
+ input="url",
36
+ output="title, headings: list[str],"
37
+ "entities_and_metadata: list[dict[str, str]],"
38
+ "type:Literal['news', 'blog', 'opinion piece', 'tweet']",
39
+ tools=[basic_tools.get_web_content_as_markdown],
40
+ enable_rich_tables=True,
41
+ output_theme=OutputTheme.aardvark_blue,
42
+ )
43
+
44
+ # --------------------------------
45
+ # Add a module to the agent
46
+ # --------------------------------
47
+ # Modules are modules (heh) that can be added to an agent to extend its capabilities.
48
+ # Modules run at certain points in the agent's lifecycle and can manipulate the inputs and outputs and the agent itself.
49
+ # In this case, we're adding the Zep module to the agent,
50
+ # which allows it to use Zep to store and retrieve information in Knowledge Graphs.
51
+ zep = ZepModule(name="zep",config=ZepModuleConfig())
52
+ agent.add_module(zep)
53
+
54
+
55
+ flock.add_agent(agent)
56
+ result = flock.run(
57
+ start_agent=agent,
58
+ input={"url": "https://lite.cnn.com/travel/alexander-the-great-macedon-persian-empire-darius/index.html"},
59
+ )
60
+
@@ -1,6 +1,6 @@
1
1
  [project]
2
2
  name = "flock-core"
3
- version = "0.3.01"
3
+ version = "0.3.2"
4
4
  description = "Declarative LLM Orchestration at Scale"
5
5
  readme = "README.md"
6
6
  authors = [
@@ -39,6 +39,7 @@ dependencies = [
39
39
  "tiktoken>=0.8.0",
40
40
  "toml>=0.10.2",
41
41
  "tqdm>=4.67.1",
42
+ "zep-python>=2.0.2",
42
43
  ]
43
44
 
44
45
  [project.optional-dependencies]
@@ -0,0 +1,55 @@
1
+ from typing import Any
2
+
3
+ from pydantic import Field
4
+
5
+ from flock.core.flock_agent import FlockAgent
6
+ from flock.core.flock_evaluator import FlockEvaluator, FlockEvaluatorConfig
7
+ from flock.core.mixin.dspy_integration import DSPyIntegrationMixin
8
+ from flock.core.mixin.prompt_parser import PromptParserMixin
9
+ from flock.modules.zep.zep_module import ZepModule, ZepModuleConfig
10
+
11
+
12
+ class ZepEvaluatorConfig(FlockEvaluatorConfig):
13
+ zep_url: str = "http://localhost:8000"
14
+ zep_api_key: str = "apikey"
15
+ min_fact_rating: float = Field(
16
+ default=0.7, description="Minimum rating for facts to be considered"
17
+ )
18
+
19
+
20
+ class ZepEvaluator(FlockEvaluator, DSPyIntegrationMixin, PromptParserMixin):
21
+ """Evaluator that uses DSPy for generation."""
22
+
23
+ config: ZepEvaluatorConfig = Field(
24
+ default_factory=ZepEvaluatorConfig,
25
+ description="Evaluator configuration",
26
+ )
27
+
28
+ async def evaluate(
29
+ self, agent: FlockAgent, inputs: dict[str, Any], tools: list[Any]
30
+ ) -> dict[str, Any]:
31
+ """Simple evaluator that uses Zep.
32
+
33
+ if inputs contain "query", it searches memory for the query and returns the facts.
34
+ if inputs contain "data", it adds the data to memory
35
+ """
36
+ result = {}
37
+ zep = ZepModule(
38
+ name=self.name,
39
+ config=ZepModuleConfig(
40
+ zep_api_key=self.config.zep_api_key,
41
+ zep_url=self.config.zep_url,
42
+ min_fact_rating=self.config.min_fact_rating,
43
+ ),
44
+ )
45
+ client = zep.get_client()
46
+ if "query" in inputs:
47
+ query = inputs["query"]
48
+ facts = zep.search_memory(query, client)
49
+ result = {"facts": facts}
50
+
51
+ if "data" in inputs:
52
+ data = inputs["data"]
53
+ zep.add_to_memory(data, client)
54
+ result = {"message": "Data added to memory"}
55
+ return result
@@ -0,0 +1,177 @@
1
+ import uuid
2
+ from typing import Any
3
+
4
+ from pydantic import Field
5
+ from zep_python.client import Zep
6
+ from zep_python.types import Message as ZepMessage, SessionSearchResult
7
+
8
+ from flock.core.flock_agent import FlockAgent
9
+ from flock.core.flock_module import FlockModule, FlockModuleConfig
10
+ from flock.core.logging.logging import get_logger
11
+
12
+ logger = get_logger("module.zep")
13
+
14
+
15
+ class ZepModuleConfig(FlockModuleConfig):
16
+ """Configuration for the Zep module."""
17
+
18
+ zep_url: str = "http://localhost:8000"
19
+ zep_api_key: str = "apikey"
20
+ min_fact_rating: float = Field(
21
+ default=0.7, description="Minimum rating for facts to be considered"
22
+ )
23
+ enable_read: bool = True
24
+ enable_write: bool = False
25
+
26
+
27
+ class ZepModule(FlockModule):
28
+ """Module that adds Zep capabilities to a Flock agent."""
29
+
30
+ name: str = "zep"
31
+ config: ZepModuleConfig = ZepModuleConfig()
32
+ session_id: str | None = None
33
+ user_id: str | None = None
34
+
35
+ def __init__(self, name, config: ZepModuleConfig) -> None:
36
+ """Initialize Zep module."""
37
+ super().__init__(name=name, config=config)
38
+ logger.debug("Initializing Zep module")
39
+ zep_client = Zep(
40
+ base_url=self.config.zep_url, api_key=self.config.zep_api_key
41
+ )
42
+ self.user_id = self.name
43
+ self._setup_user(zep_client)
44
+ self.session_id = str(uuid.uuid4())
45
+ self._setup_session(zep_client)
46
+
47
+ def _setup_user(self, zep_client: Zep) -> None:
48
+ """Set up user in Zep."""
49
+ if not zep_client or not self.user_id:
50
+ raise ValueError("Zep service or user_id not initialized")
51
+
52
+ try:
53
+ user = zep_client.user.get(user_id=self.user_id)
54
+ if not user:
55
+ zep_client.user.add(user_id=self.user_id)
56
+ except Exception:
57
+ zep_client.user.add(user_id=self.user_id)
58
+
59
+ def _setup_session(self, zep_client: Zep) -> None:
60
+ """Set up new session."""
61
+ if not zep_client or not self.user_id or not self.session_id:
62
+ raise ValueError(
63
+ "Zep service, user_id, or session_id not initialized"
64
+ )
65
+
66
+ zep_client.memory.add_session(
67
+ user_id=self.user_id,
68
+ session_id=self.session_id,
69
+ )
70
+
71
+ def get_client(self) -> Zep:
72
+ """Get Zep client."""
73
+ return Zep(
74
+ base_url=self.config.zep_url, api_key=self.config.zep_api_key
75
+ )
76
+
77
+ def get_memory(self, zep_client: Zep) -> str | None:
78
+ """Get memory for the current session."""
79
+ if not zep_client or not self.session_id:
80
+ logger.error("Zep service or session_id not initialized")
81
+ return None
82
+
83
+ try:
84
+ memory = zep_client.memory.get(
85
+ self.session_id, min_rating=self.config.min_fact_rating
86
+ )
87
+ if memory:
88
+ return f"{memory.relevant_facts}"
89
+ except Exception as e:
90
+ logger.error(f"Error fetching memory: {e}")
91
+ return None
92
+
93
+ return None
94
+
95
+ def split_text(
96
+ self, text: str | None, max_length: int = 1000
97
+ ) -> list[ZepMessage]:
98
+ """Split text into smaller chunks."""
99
+ result: list[ZepMessage] = []
100
+ if not text:
101
+ return result
102
+ if len(text) <= max_length:
103
+ return [ZepMessage(role="user", content=text, role_type="user")]
104
+ for i in range(0, len(text), max_length):
105
+ result.append(
106
+ ZepMessage(
107
+ role="user",
108
+ content=text[i : i + max_length],
109
+ role_type="user",
110
+ )
111
+ )
112
+ return result
113
+
114
+ def add_to_memory(self, text: str, zep_client: Zep) -> None:
115
+ """Add text to memory."""
116
+ if not zep_client or not self.session_id:
117
+ logger.error("Zep service or session_id not initialized")
118
+ return
119
+
120
+ messages = self.split_text(text)
121
+ zep_client.memory.add(session_id=self.session_id, messages=messages)
122
+
123
+ def search_memory(
124
+ self, query: str, zep_client: Zep
125
+ ) -> list[SessionSearchResult]:
126
+ """Search memory for a query."""
127
+ if not zep_client or not self.user_id:
128
+ logger.error("Zep service or user_id not initialized")
129
+ return []
130
+
131
+ response = zep_client.memory.search_sessions(
132
+ text=query,
133
+ user_id=self.user_id,
134
+ search_scope="facts",
135
+ min_fact_rating=self.config.min_fact_rating,
136
+ )
137
+ if not response.results:
138
+ return []
139
+ return response.results
140
+
141
+ async def post_evaluate(
142
+ self, agent: FlockAgent, inputs: dict[str, Any], result: dict[str, Any]
143
+ ) -> dict[str, Any]:
144
+ """Format and display the output."""
145
+ if not self.config.enable_write:
146
+ return result
147
+ logger.debug("Saving data to memory")
148
+ zep_client = Zep(
149
+ base_url=self.config.zep_url, api_key=self.config.zep_api_key
150
+ )
151
+ self.add_to_memory(str(result), zep_client)
152
+ return result
153
+
154
+ async def pre_evaluate(
155
+ self, agent: FlockAgent, inputs: dict[str, Any]
156
+ ) -> dict[str, Any]:
157
+ """Format and display the output."""
158
+ if not self.config.enable_read:
159
+ return inputs
160
+
161
+ zep_client = Zep(
162
+ base_url=self.config.zep_url, api_key=self.config.zep_api_key
163
+ )
164
+
165
+ logger.debug("Searching memory")
166
+ facts = self.search_memory(str(inputs), zep_client)
167
+
168
+ # Add memory to inputs
169
+ facts_str = ""
170
+ if facts:
171
+ for fact in facts:
172
+ facts_str += fact.fact.fact + "\n"
173
+ logger.debug("Found facts in memory: {}", facts_str)
174
+ agent.input = agent.input + ", memory"
175
+ inputs["memory"] = facts_str
176
+
177
+ return inputs
@@ -1,4 +1,5 @@
1
1
  version = 1
2
+ revision = 1
2
3
  requires-python = ">=3.10"
3
4
  resolution-markers = [
4
5
  "python_full_version >= '3.12' and platform_machine == 'x86_64' and sys_platform == 'darwin'",
@@ -1031,7 +1032,7 @@ wheels = [
1031
1032
 
1032
1033
  [[package]]
1033
1034
  name = "flock-core"
1034
- version = "0.3.1"
1035
+ version = "0.3.2"
1035
1036
  source = { editable = "." }
1036
1037
  dependencies = [
1037
1038
  { name = "cloudpickle" },
@@ -1060,6 +1061,7 @@ dependencies = [
1060
1061
  { name = "tiktoken" },
1061
1062
  { name = "toml" },
1062
1063
  { name = "tqdm" },
1064
+ { name = "zep-python" },
1063
1065
  ]
1064
1066
 
1065
1067
  [package.optional-dependencies]
@@ -1132,7 +1134,9 @@ requires-dist = [
1132
1134
  { name = "tiktoken", specifier = ">=0.8.0" },
1133
1135
  { name = "toml", specifier = ">=0.10.2" },
1134
1136
  { name = "tqdm", specifier = ">=4.67.1" },
1137
+ { name = "zep-python", specifier = ">=2.0.2" },
1135
1138
  ]
1139
+ provides-extras = ["all-tools", "tools"]
1136
1140
 
1137
1141
  [package.metadata.requires-dev]
1138
1142
  app = [
@@ -5590,6 +5594,20 @@ wheels = [
5590
5594
  { url = "https://files.pythonhosted.org/packages/f5/4b/a06e0ec3d155924f77835ed2d167ebd3b211a7b0853da1cf8d8414d784ef/yarl-1.18.3-py3-none-any.whl", hash = "sha256:b57f4f58099328dfb26c6a771d09fb20dbbae81d20cfb66141251ea063bd101b", size = 45109 },
5591
5595
  ]
5592
5596
 
5597
+ [[package]]
5598
+ name = "zep-python"
5599
+ version = "2.0.2"
5600
+ source = { registry = "https://pypi.org/simple" }
5601
+ dependencies = [
5602
+ { name = "httpx" },
5603
+ { name = "pydantic" },
5604
+ { name = "typing-extensions" },
5605
+ ]
5606
+ sdist = { url = "https://files.pythonhosted.org/packages/b5/64/1b0c4afa6d0e8f35e1072eacdfe8ec216871be5f2dfd569942f69232482f/zep_python-2.0.2.tar.gz", hash = "sha256:919fd635ad5801f30d9ef6da0bb99e854ed4c3cd1357dc8ada4a39b8171a41bc", size = 22273 }
5607
+ wheels = [
5608
+ { url = "https://files.pythonhosted.org/packages/1c/d4/09a6bc0c32f91b7b5b93322513d51299ca9b35bdd6b0560b39104c296f39/zep_python-2.0.2-py3-none-any.whl", hash = "sha256:d7b2cadf1eb15007825362cae5ddff9c9d0ada5b4f75cf91e5b87986459f7817", size = 40011 },
5609
+ ]
5610
+
5593
5611
  [[package]]
5594
5612
  name = "zipp"
5595
5613
  version = "3.21.0"
File without changes
File without changes
File without changes
File without changes
File without changes