flock-core 0.3.1__tar.gz → 0.3.3__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of flock-core might be problematic. Click here for more details.
- {flock_core-0.3.1 → flock_core-0.3.3}/.vscode/settings.json +15 -1
- {flock_core-0.3.1 → flock_core-0.3.3}/PKG-INFO +2 -1
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/release-notes/release_notes.md +5 -4
- flock_core-0.3.3/examples/03_misc/multi_hops.py +85 -0
- flock_core-0.3.3/examples/03_misc/use_modules.py +60 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/pyproject.toml +2 -1
- flock_core-0.3.3/src/flock/evaluators/zep/zep_evaluator.py +55 -0
- flock_core-0.3.3/src/flock/modules/zep/zep_module.py +177 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/uv.lock +19 -1
- {flock_core-0.3.1 → flock_core-0.3.3}/.devcontainer/devcontainer.json +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/.env_template +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/.github/workflows/.gitkeep +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/.github/workflows/deploy-documentation.yml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/.gitignore +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/.vscode/launch.json +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/.vscode/tasks.json +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/LICENSE +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/README.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/advanced/complex-workflows.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/advanced/custom-agents.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/advanced/performance.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/advanced/testing.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/api/flock-core.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/api/flockagent.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/api/types.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/api/utilities.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/architecture/components.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/architecture/design-decisions.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/architecture/overview.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/drawio/architecture.drawio +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/cli_outputs/out.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/components_chart.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/examples/01_01.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/examples/01_02.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/examples/01_03.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/examples/01_04.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/examples/01_05.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/examples/01_06.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/flock.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/flock_cli.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/flow_chart.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/getting-started/first_agent_00.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/hummingbird.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/icon.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/icon.png~ +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/logo.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/memory_concepts.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/memory_flow.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/assets/images/memory_flow_chart.png +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/contributing/code-style.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/contributing/development.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/contributing/documentation.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/contributing/testing.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/core-concepts/agents.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/core-concepts/declarative.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/core-concepts/error-handling.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/core-concepts/memory.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/core-concepts/type-system.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/core-concepts/workflows.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/create_doc_boilerplate.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/deployment/monitoring.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/deployment/production-setup.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/deployment/scalability.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/deployment/security.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/examples/chain-gang.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/examples/hello-flock.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/examples/pydantic.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/examples/type-system.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/features/agent-chaining.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/features/agent-definition.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/features/lifecycle-hooks.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/features/pydantic.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/features/type-safety.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/getting-started/concepts.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/getting-started/configuration.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/getting-started/installation.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/getting-started/quickstart.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/index.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/integrations/dspy.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/integrations/litellm.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/integrations/tavily.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/integrations/temporal.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/stylesheets/extra.css +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/tutorials/blog-generator.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/tutorials/custom-tools.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/tutorials/error-recovery.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/docs/tutorials/multi-agent.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/01_introduction/01_simple_example.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/01_introduction/02_typed_output.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/01_introduction/03_tool_and_code_agent.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/01_introduction/04_descriptions.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/01_introduction/05_typed_output2.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/01_introduction/06_simple_hand_off.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/02_cook_book/flock_without_llms.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/02_cook_book/long_research_no_handoff.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/02_cook_book/painting_by_numbers.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/02_cook_book/project_manager.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/02_cook_book/save_and_load/load_01.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/02_cook_book/save_and_load/load_02.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/02_cook_book/save_and_load/load_03.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/02_cook_book/save_and_load/load_04.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/02_cook_book/save_and_load/save_01.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/02_cook_book/save_and_load/save_02.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/02_cook_book/save_and_load/save_03.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/02_cook_book/self_improvement_with_memory.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/README.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/documentation/getting-started/first_agent_01.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/documentation/getting-started/first_agent_02.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/documentation/getting-started/first_agent_03.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/notebooks_wip/Untitled-1.ipynb +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/examples/notebooks_wip/my_agent.json +0 -0
- {flock_core-0.3.1/examples/03_misc_wip → flock_core-0.3.3/examples/playground}/memory.py +0 -0
- {flock_core-0.3.1/examples/03_misc_wip → flock_core-0.3.3/examples/playground}/self_learner.py +0 -0
- {flock_core-0.3.1/examples/03_misc_wip → flock_core-0.3.3/examples/playground}/self_learner2.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/mkdocs.yml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/requirements.txt +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/__init__.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/cli/assets/release_notes.md +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/cli/constants.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/cli/create_agent.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/cli/create_flock.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/cli/load_agent.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/cli/load_examples.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/cli/load_flock.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/cli/load_release_notes.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/cli/settings.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/config.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/__init__.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/context/context.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/context/context_manager.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/context/context_vars.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/execution/local_executor.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/execution/temporal_executor.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/flock.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/flock_agent.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/flock_evaluator.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/flock_factory.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/flock_module.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/interpreter/python_interpreter.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/logging/__init__.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/logging/formatters/enum_builder.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/logging/formatters/theme_builder.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/logging/formatters/themes.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/logging/logging.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/logging/telemetry.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/logging/trace_and_logged.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/mixin/dspy_integration.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/mixin/prompt_parser.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/registry/agent_registry.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/tools/basic_tools.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/tools/dev_tools/github.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/util/cli_helper.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/util/hydrator.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/util/input_resolver.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/core/util/serializable.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/evaluators/declarative/declarative_evaluator.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/evaluators/natural_language/natural_language_evaluator.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/modules/callback/callback_module.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/modules/memory/memory_module.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/modules/memory/memory_parser.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/modules/memory/memory_storage.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/modules/output/output_module.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/modules/performance/metrics_module.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/platform/docker_tools.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/platform/jaeger_install.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/3024-day.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/3024-night.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/aardvark-blue.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/abernathy.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/adventure.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/adventuretime.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/afterglow.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/alabaster.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/alienblood.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/andromeda.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/apple-classic.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/apple-system-colors.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/arcoiris.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/argonaut copy.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/argonaut.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/arthur.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/ateliersulphurpool.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/atom.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/atom_test.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/atomonelight.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/aurora.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/ayu copy.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/ayu-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/ayu-mirage.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/ayu.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/banana-blueberry.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/batman.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/belafonte-day.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/belafonte-night.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/birdsofparadise.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/blazer.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/blue-matrix.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/blueberrypie.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/bluedolphin.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/blulocodark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/blulocolight.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/borland.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/breeze.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/bright-lights.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/broadcast.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/brogrammer.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/builtin-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/builtin-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/builtin-pastel-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/builtin-solarized-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/builtin-solarized-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/builtin-tango-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/builtin-tango-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/c64.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/calamity.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/catppuccin-frappe.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/catppuccin-latte.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/catppuccin-macchiato.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/catppuccin-mocha.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/cga.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/chalk.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/chalkboard.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/challengerdeep.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/chester.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/ciapre.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/clrs.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/cobalt-neon.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/cobalt2.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/coffee-theme.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/crayonponyfish.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/cutiepro.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/cyberdyne.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/cyberpunk.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/dark+.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/dark-pastel.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/darkermatrix.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/darkmatrix.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/darkside.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/dayfox.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/deep.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/desert.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/dimidium.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/dimmedmonokai.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/django.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/djangorebornagain.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/djangosmooth.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/doom-peacock.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/doomone.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/dotgov.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/dracula+.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/dracula.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/duckbones.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/duotone-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/earthsong.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/elemental.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/elementary.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/encom.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/espresso-libre.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/espresso.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/everblush.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/fahrenheit.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/fairyfloss.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/farmhouse-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/farmhouse-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/fideloper.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/firefly-traditional.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/firefoxdev.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/firewatch.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/fishtank.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/flat.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/flatland.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/flexoki-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/flexoki-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/floraverse.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/forestblue.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/framer.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/frontenddelight.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/funforrest.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/galaxy.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/galizur.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/github-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/github.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/glacier.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/grape.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/grass.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/grey-green.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/gruber-darker.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/gruvboxdark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/gruvboxdarkhard.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/gruvboxlight.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/guezwhoz.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/hacktober.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/hardcore.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/harper.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/hax0r-blue.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/hax0r-gr33n.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/hax0r-r3d.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/highway.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/hipster-green.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/hivacruz.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/homebrew.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/hopscotch.256.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/hopscotch.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/hurtado.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/hybrid.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/ic-green-ppl.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/ic-orange-ppl.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/iceberg-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/iceberg-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/idea.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/idletoes.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/ir-black.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/iterm2-dark-background.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/iterm2-default.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/iterm2-light-background.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/iterm2-smoooooth.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/iterm2-solarized-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/iterm2-tango-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/iterm2-tango-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/jackie-brown.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/japanesque.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/jellybeans.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/jetbrains-darcula.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/jubi.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/kanagawabones.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/kibble.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/kolorit.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/konsolas.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/kurokula.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/lab-fox.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/laser.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/later-this-evening.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/lavandula.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/liquidcarbon.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/liquidcarbontransparent.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/lovelace.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/man-page.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/mariana.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/material.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/materialdark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/materialdarker.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/materialdesigncolors.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/materialocean.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/mathias.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/matrix.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/medallion.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/mellifluous.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/midnight-in-mojave.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/mirage.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/misterioso.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/molokai.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/monalisa.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/monokai-remastered.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/monokai-soda.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/monokai-vivid.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/n0tch2k.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/neobones-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/neobones-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/neon.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/neopolitan.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/neutron.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/night-owlish-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/nightfox.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/nightlion-v1.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/nightlion-v2.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/niji.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/nocturnal-winter.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/nord-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/nord.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/novel.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/nvimdark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/nvimlight.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/obsidian.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/ocean.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/oceanic-next.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/oceanicmaterial.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/ollie.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/onehalfdark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/onehalflight.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/operator-mono-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/overnight-slumber.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/oxocarbon.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/palenighthc.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/pandora.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/paraiso-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/paulmillr.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/pencildark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/pencillight.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/peppermint.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/piatto-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/pnevma.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/popping-and-locking.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/primary.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/pro-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/pro.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/purple-rain.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/purplepeter.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/rapture.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/raycast-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/raycast-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/rebecca.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/red-alert.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/red-planet.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/red-sands.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/relaxed.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/retro.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/rippedcasts.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/rose-pine-dawn.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/rose-pine-moon.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/rose-pine.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/rouge-2.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/royal.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/ryuuko.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/sakura.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/scarlet-protocol.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/seafoam-pastel.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/seashells.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/seoulbones-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/seoulbones-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/seti.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/shades-of-purple.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/shaman.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/slate.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/sleepyhollow.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/smyck.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/snazzy.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/softserver.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/solarized-darcula.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/solarized-dark---patched.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/spacedust.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/spacegray-eighties.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/spacegray.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/spiderman.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/spring.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/square.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/sublette.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/subliminal.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/sugarplum.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/sundried.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/symfonic.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/synthwave-everything.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/synthwave.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/synthwavealpha.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/tango-adapted.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/tango-half-adapted.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/teerb.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/terafox.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/terminal-basic.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/thayer-bright.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/the-hulk.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/tinacious-design-(dark).toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/tinacious-design-(light).toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/tokyonight-day.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/tokyonight-storm.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/tokyonight.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/tomorrow-night-blue.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/tomorrow-night-bright.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/tomorrow-night-burns.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/tomorrow-night.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/tomorrow.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/toychest.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/treehouse.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/twilight.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/ubuntu.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/ultradark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/ultraviolent.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/underthesea.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/unikitty.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/urple.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/vaughn.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/vesper.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/vibrantink.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/vimbones.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/violet-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/violet-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/warmneon.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/wez.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/whimsy.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/wildcherry.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/wilmersdorf.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/wombat.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/wryan.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/xcodedark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/xcodedarkhc.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/xcodelight.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/xcodelighthc.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/xcodewwdc.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/zenbones-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/zenbones-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/zenbones.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/zenburn.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/zenburned.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/zenwritten-dark.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/themes/zenwritten-light.toml +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/workflow/__init__.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/workflow/activities.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/workflow/agent_activities.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/workflow/temporal_setup.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/src/flock/workflow/workflow.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/tests/integration/test_agent_integration.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/tests/unittests/test_flock.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/tests/unittests/test_flock_agent.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/tests/unittests/test_memory_operations.py +0 -0
- {flock_core-0.3.1 → flock_core-0.3.3}/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
|
-
|
|
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.
|
|
3
|
+
Version: 0.3.3
|
|
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
|
-
- **
|
|
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
|
|
|
@@ -113,7 +114,7 @@ pip install flock-core>=0.3.0
|
|
|
113
114
|
|
|
114
115
|
---
|
|
115
116
|
|
|
116
|
-
📖 **Full documentation**: [
|
|
117
|
-
💻 **GitHub**: [github.com/flock
|
|
117
|
+
📖 **Full documentation**: [https://whiteducksoftware.github.io/flock](https://whiteducksoftware.github.io/flock)
|
|
118
|
+
💻 **GitHub**: [https://github.com/whiteducksoftware/flock](https://github.com/whiteducksoftware/flock)
|
|
118
119
|
|
|
119
120
|
|
|
@@ -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.
|
|
3
|
+
version = "0.3.3"
|
|
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.
|
|
1035
|
+
version = "0.3.3"
|
|
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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|