flock-core 0.2.17__tar.gz → 0.3.1__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/.github/workflows/deploy-documentation.yml +17 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/.github/workflows/deploy-whiteduck-pypi.yml +2 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/.gitignore +1 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/PKG-INFO +112 -4
- {flock_core-0.2.17 → flock_core-0.3.1}/README.md +105 -3
- flock_core-0.3.1/docs/advanced/complex-workflows.md +3 -0
- flock_core-0.3.1/docs/advanced/custom-agents.md +3 -0
- flock_core-0.3.1/docs/advanced/performance.md +3 -0
- flock_core-0.3.1/docs/advanced/testing.md +3 -0
- flock_core-0.3.1/docs/api/flock-core.md +3 -0
- flock_core-0.3.1/docs/api/flockagent.md +3 -0
- flock_core-0.3.1/docs/api/types.md +3 -0
- flock_core-0.3.1/docs/api/utilities.md +3 -0
- flock_core-0.3.1/docs/architecture/components.md +3 -0
- flock_core-0.3.1/docs/architecture/design-decisions.md +3 -0
- flock_core-0.3.1/docs/architecture/overview.md +3 -0
- flock_core-0.3.1/docs/assets/drawio/architecture.drawio +44 -0
- flock_core-0.3.1/docs/assets/images/getting-started/first_agent_00.png +0 -0
- flock_core-0.3.1/docs/assets/images/hummingbird.png +0 -0
- flock_core-0.3.1/docs/assets/images/icon.png +0 -0
- flock_core-0.3.1/docs/assets/images/icon.png~ +0 -0
- flock_core-0.3.1/docs/assets/images/logo.png +0 -0
- flock_core-0.3.1/docs/assets/images/memory_concepts.png +0 -0
- flock_core-0.3.1/docs/assets/images/memory_flow.png +0 -0
- flock_core-0.3.1/docs/assets/images/memory_flow_chart.png +0 -0
- flock_core-0.3.1/docs/contributing/code-style.md +3 -0
- flock_core-0.3.1/docs/contributing/development.md +3 -0
- flock_core-0.3.1/docs/contributing/documentation.md +3 -0
- flock_core-0.3.1/docs/contributing/testing.md +3 -0
- flock_core-0.3.1/docs/core-concepts/agents.md +3 -0
- flock_core-0.3.1/docs/core-concepts/declarative.md +3 -0
- flock_core-0.3.1/docs/core-concepts/error-handling.md +3 -0
- flock_core-0.3.1/docs/core-concepts/memory.md +355 -0
- flock_core-0.3.1/docs/core-concepts/type-system.md +3 -0
- flock_core-0.3.1/docs/core-concepts/workflows.md +3 -0
- flock_core-0.3.1/docs/create_doc_boilerplate.py +131 -0
- flock_core-0.3.1/docs/deployment/monitoring.md +3 -0
- flock_core-0.3.1/docs/deployment/production-setup.md +3 -0
- flock_core-0.3.1/docs/deployment/scalability.md +3 -0
- flock_core-0.3.1/docs/deployment/security.md +3 -0
- flock_core-0.3.1/docs/examples/chain-gang.md +3 -0
- flock_core-0.3.1/docs/examples/hello-flock.md +3 -0
- flock_core-0.3.1/docs/examples/pydantic.md +3 -0
- flock_core-0.3.1/docs/examples/type-system.md +3 -0
- flock_core-0.3.1/docs/features/agent-chaining.md +3 -0
- flock_core-0.3.1/docs/features/agent-definition.md +3 -0
- flock_core-0.3.1/docs/features/lifecycle-hooks.md +3 -0
- flock_core-0.3.1/docs/features/pydantic.md +3 -0
- flock_core-0.3.1/docs/features/type-safety.md +3 -0
- flock_core-0.3.1/docs/getting-started/concepts.md +3 -0
- flock_core-0.3.1/docs/getting-started/configuration.md +3 -0
- flock_core-0.3.1/docs/getting-started/installation.md +3 -0
- flock_core-0.3.1/docs/getting-started/quickstart.md +207 -0
- flock_core-0.3.1/docs/index.md +96 -0
- flock_core-0.3.1/docs/integrations/dspy.md +3 -0
- flock_core-0.3.1/docs/integrations/litellm.md +3 -0
- flock_core-0.3.1/docs/integrations/tavily.md +3 -0
- flock_core-0.3.1/docs/integrations/temporal.md +3 -0
- flock_core-0.3.1/docs/release-notes/release_notes.md +119 -0
- flock_core-0.3.1/docs/stylesheets/extra.css +23 -0
- flock_core-0.3.1/docs/tutorials/blog-generator.md +3 -0
- flock_core-0.3.1/docs/tutorials/custom-tools.md +3 -0
- flock_core-0.3.1/docs/tutorials/error-recovery.md +3 -0
- flock_core-0.3.1/docs/tutorials/multi-agent.md +3 -0
- flock_core-0.3.1/examples/01_introduction/01_simple_example.py +63 -0
- flock_core-0.3.1/examples/01_introduction/02_typed_output.py +78 -0
- flock_core-0.3.1/examples/01_introduction/03_tool_and_code_agent.py +60 -0
- flock_core-0.3.1/examples/01_introduction/04_descriptions.py +39 -0
- flock_core-0.3.1/examples/01_introduction/05_typed_output2.py +75 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/examples/01_introduction/06_simple_hand_off.py +33 -38
- {flock_core-0.2.17 → flock_core-0.3.1}/examples/02_cook_book/flock_without_llms.py +1 -1
- flock_core-0.3.1/examples/02_cook_book/painting_by_numbers.py +86 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/examples/02_cook_book/self_improvement_with_memory.py +13 -32
- flock_core-0.3.1/examples/03_misc_wip/memory.py +261 -0
- flock_core-0.3.1/examples/README.md +24 -0
- flock_core-0.3.1/examples/documentation/getting-started/first_agent_01.py +26 -0
- flock_core-0.3.1/examples/documentation/getting-started/first_agent_02.py +32 -0
- flock_core-0.3.1/examples/documentation/getting-started/first_agent_03.py +31 -0
- flock_core-0.3.1/examples/notebooks_wip/Untitled-1.ipynb +223 -0
- flock_core-0.3.1/mkdocs.yml +137 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/pyproject.toml +7 -2
- flock_core-0.3.1/src/flock/__init__.py +67 -0
- flock_core-0.3.1/src/flock/cli/assets/release_notes.md +111 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/cli/constants.py +1 -0
- flock_core-0.3.1/src/flock/cli/load_release_notes.py +23 -0
- flock_core-0.3.1/src/flock/core/__init__.py +17 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/context/context.py +10 -5
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/flock.py +61 -21
- flock_core-0.3.1/src/flock/core/flock_agent.py +330 -0
- flock_core-0.3.1/src/flock/core/flock_evaluator.py +49 -0
- flock_core-0.3.1/src/flock/core/flock_factory.py +73 -0
- flock_core-0.3.1/src/flock/core/flock_module.py +77 -0
- {flock_core-0.2.17/src/flock → flock_core-0.3.1/src/flock/core}/interpreter/python_interpreter.py +9 -1
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/logging/formatters/themes.py +1 -1
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/logging/logging.py +119 -15
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/mixin/dspy_integration.py +11 -8
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/registry/agent_registry.py +4 -2
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/tools/basic_tools.py +1 -1
- flock_core-0.3.1/src/flock/core/util/cli_helper.py +87 -0
- flock_core-0.3.1/src/flock/evaluators/declarative/declarative_evaluator.py +52 -0
- flock_core-0.3.1/src/flock/evaluators/natural_language/natural_language_evaluator.py +66 -0
- flock_core-0.3.1/src/flock/modules/callback/callback_module.py +86 -0
- flock_core-0.3.1/src/flock/modules/memory/memory_module.py +235 -0
- flock_core-0.3.1/src/flock/modules/memory/memory_parser.py +125 -0
- flock_core-0.3.1/src/flock/modules/memory/memory_storage.py +736 -0
- flock_core-0.3.1/src/flock/modules/output/output_module.py +194 -0
- flock_core-0.3.1/src/flock/modules/performance/metrics_module.py +477 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/aardvark-blue.toml +1 -1
- {flock_core-0.2.17 → flock_core-0.3.1}/tests/unittests/test_flock.py +0 -2
- flock_core-0.3.1/tests/unittests/test_memory_operations.py +297 -0
- flock_core-0.3.1/tests/unittests/test_memory_store.py +137 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/uv.lock +349 -29
- flock_core-0.2.17/docs/agent_mechanics.md +0 -48
- flock_core-0.2.17/docs/api/flock.md +0 -3
- flock_core-0.2.17/docs/api/flock_agents.md +0 -3
- flock_core-0.2.17/docs/api.md +0 -3
- flock_core-0.2.17/docs/architecture.drawio +0 -24
- flock_core-0.2.17/docs/examples/01_introduction/01_simple_example.md +0 -83
- flock_core-0.2.17/docs/examples/01_introduction/02_typed_output.md +0 -97
- flock_core-0.2.17/docs/examples/01_introduction/03_tool_and_code_agent.md +0 -75
- flock_core-0.2.17/docs/examples/01_introduction/04_descriptions.md +0 -58
- flock_core-0.2.17/docs/examples/01_introduction/05_typed_output2.md +0 -93
- flock_core-0.2.17/docs/examples/01_introduction/06_simple_hand_off.md +0 -91
- flock_core-0.2.17/docs/examples/02_cook_book_wip/flock_without_llms.md +0 -119
- flock_core-0.2.17/docs/examples/02_cook_book_wip/project_manager.md +0 -93
- flock_core-0.2.17/docs/examples.md +0 -0
- flock_core-0.2.17/docs/generate_examples_docs.py +0 -166
- flock_core-0.2.17/docs/generate_nav.py +0 -122
- flock_core-0.2.17/docs/index.md +0 -159
- flock_core-0.2.17/docs/installation.md +0 -51
- flock_core-0.2.17/docs/overrides/extra.css +0 -30
- flock_core-0.2.17/docs/overrides/extra.js +0 -86
- flock_core-0.2.17/examples/01_introduction/01_simple_example.py +0 -70
- flock_core-0.2.17/examples/01_introduction/02_typed_output.py +0 -82
- flock_core-0.2.17/examples/01_introduction/03_tool_and_code_agent.py +0 -71
- flock_core-0.2.17/examples/01_introduction/04_descriptions.py +0 -47
- flock_core-0.2.17/examples/01_introduction/05_typed_output2.py +0 -79
- flock_core-0.2.17/examples/README.md +0 -23
- flock_core-0.2.17/examples/notebooks_wip/Untitled-1.ipynb +0 -151
- flock_core-0.2.17/mkdocs.yml +0 -76
- flock_core-0.2.17/src/flock/__init__.py +0 -57
- flock_core-0.2.17/src/flock/core/__init__.py +0 -6
- flock_core-0.2.17/src/flock/core/flock_agent.py +0 -660
- flock_core-0.2.17/src/flock/core/util/cli_helper.py +0 -30
- {flock_core-0.2.17 → flock_core-0.3.1}/.devcontainer/devcontainer.json +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/.env_template +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/.github/workflows/.gitkeep +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/.vscode/launch.json +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/.vscode/settings.json +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/.vscode/tasks.json +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/LICENSE +0 -0
- {flock_core-0.2.17/docs/img → flock_core-0.3.1/docs/assets/images}/cli_outputs/out.png +0 -0
- /flock_core-0.2.17/docs/img/component_diagramm.png → /flock_core-0.3.1/docs/assets/images/components_chart.png +0 -0
- {flock_core-0.2.17/docs/img → flock_core-0.3.1/docs/assets/images}/examples/01_01.png +0 -0
- {flock_core-0.2.17/docs/img → flock_core-0.3.1/docs/assets/images}/examples/01_02.png +0 -0
- {flock_core-0.2.17/docs/img → flock_core-0.3.1/docs/assets/images}/examples/01_03.png +0 -0
- {flock_core-0.2.17/docs/img → flock_core-0.3.1/docs/assets/images}/examples/01_04.png +0 -0
- {flock_core-0.2.17/docs/img → flock_core-0.3.1/docs/assets/images}/examples/01_05.png +0 -0
- {flock_core-0.2.17/docs/img → flock_core-0.3.1/docs/assets/images}/examples/01_06.png +0 -0
- {flock_core-0.2.17/docs/img → flock_core-0.3.1/docs/assets/images}/flock.png +0 -0
- {flock_core-0.2.17/docs/img → flock_core-0.3.1/docs/assets/images}/flock_cli.png +0 -0
- /flock_core-0.2.17/docs/img/flow_diagramm.png → /flock_core-0.3.1/docs/assets/images/flow_chart.png +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/examples/02_cook_book/long_research_no_handoff.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/examples/02_cook_book/project_manager.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/examples/02_cook_book/save_and_load/load_01.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/examples/02_cook_book/save_and_load/load_02.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/examples/02_cook_book/save_and_load/load_03.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/examples/02_cook_book/save_and_load/load_04.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/examples/02_cook_book/save_and_load/save_01.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/examples/02_cook_book/save_and_load/save_02.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/examples/02_cook_book/save_and_load/save_03.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/examples/03_misc_wip/self_learner.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/examples/03_misc_wip/self_learner2.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/examples/notebooks_wip/my_agent.json +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/requirements.txt +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/cli/create_agent.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/cli/create_flock.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/cli/load_agent.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/cli/load_examples.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/cli/load_flock.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/cli/settings.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/config.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/context/context_manager.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/context/context_vars.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/execution/local_executor.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/execution/temporal_executor.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/logging/__init__.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/logging/formatters/enum_builder.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/logging/formatters/theme_builder.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/logging/telemetry.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/logging/trace_and_logged.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/mixin/prompt_parser.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/tools/dev_tools/github.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/util/hydrator.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/util/input_resolver.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/core/util/serializable.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/platform/docker_tools.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/platform/jaeger_install.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/3024-day.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/3024-night.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/abernathy.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/adventure.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/adventuretime.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/afterglow.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/alabaster.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/alienblood.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/andromeda.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/apple-classic.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/apple-system-colors.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/arcoiris.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/argonaut copy.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/argonaut.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/arthur.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/ateliersulphurpool.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/atom.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/atom_test.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/atomonelight.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/aurora.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/ayu copy.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/ayu-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/ayu-mirage.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/ayu.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/banana-blueberry.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/batman.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/belafonte-day.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/belafonte-night.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/birdsofparadise.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/blazer.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/blue-matrix.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/blueberrypie.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/bluedolphin.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/blulocodark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/blulocolight.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/borland.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/breeze.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/bright-lights.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/broadcast.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/brogrammer.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/builtin-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/builtin-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/builtin-pastel-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/builtin-solarized-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/builtin-solarized-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/builtin-tango-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/builtin-tango-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/c64.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/calamity.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/catppuccin-frappe.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/catppuccin-latte.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/catppuccin-macchiato.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/catppuccin-mocha.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/cga.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/chalk.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/chalkboard.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/challengerdeep.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/chester.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/ciapre.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/clrs.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/cobalt-neon.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/cobalt2.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/coffee-theme.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/crayonponyfish.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/cutiepro.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/cyberdyne.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/cyberpunk.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/dark+.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/dark-pastel.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/darkermatrix.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/darkmatrix.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/darkside.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/dayfox.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/deep.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/desert.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/dimidium.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/dimmedmonokai.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/django.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/djangorebornagain.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/djangosmooth.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/doom-peacock.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/doomone.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/dotgov.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/dracula+.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/dracula.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/duckbones.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/duotone-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/earthsong.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/elemental.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/elementary.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/encom.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/espresso-libre.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/espresso.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/everblush.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/fahrenheit.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/fairyfloss.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/farmhouse-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/farmhouse-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/fideloper.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/firefly-traditional.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/firefoxdev.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/firewatch.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/fishtank.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/flat.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/flatland.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/flexoki-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/flexoki-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/floraverse.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/forestblue.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/framer.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/frontenddelight.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/funforrest.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/galaxy.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/galizur.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/github-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/github.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/glacier.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/grape.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/grass.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/grey-green.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/gruber-darker.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/gruvboxdark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/gruvboxdarkhard.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/gruvboxlight.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/guezwhoz.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/hacktober.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/hardcore.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/harper.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/hax0r-blue.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/hax0r-gr33n.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/hax0r-r3d.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/highway.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/hipster-green.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/hivacruz.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/homebrew.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/hopscotch.256.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/hopscotch.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/hurtado.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/hybrid.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/ic-green-ppl.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/ic-orange-ppl.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/iceberg-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/iceberg-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/idea.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/idletoes.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/ir-black.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/iterm2-dark-background.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/iterm2-default.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/iterm2-light-background.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/iterm2-smoooooth.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/iterm2-solarized-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/iterm2-tango-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/iterm2-tango-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/jackie-brown.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/japanesque.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/jellybeans.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/jetbrains-darcula.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/jubi.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/kanagawabones.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/kibble.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/kolorit.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/konsolas.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/kurokula.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/lab-fox.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/laser.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/later-this-evening.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/lavandula.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/liquidcarbon.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/liquidcarbontransparent.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/lovelace.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/man-page.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/mariana.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/material.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/materialdark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/materialdarker.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/materialdesigncolors.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/materialocean.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/mathias.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/matrix.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/medallion.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/mellifluous.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/midnight-in-mojave.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/mirage.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/misterioso.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/molokai.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/monalisa.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/monokai-remastered.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/monokai-soda.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/monokai-vivid.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/n0tch2k.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/neobones-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/neobones-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/neon.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/neopolitan.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/neutron.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/night-owlish-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/nightfox.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/nightlion-v1.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/nightlion-v2.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/niji.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/nocturnal-winter.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/nord-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/nord.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/novel.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/nvimdark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/nvimlight.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/obsidian.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/ocean.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/oceanic-next.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/oceanicmaterial.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/ollie.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/onehalfdark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/onehalflight.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/operator-mono-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/overnight-slumber.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/oxocarbon.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/palenighthc.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/pandora.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/paraiso-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/paulmillr.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/pencildark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/pencillight.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/peppermint.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/piatto-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/pnevma.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/popping-and-locking.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/primary.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/pro-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/pro.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/purple-rain.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/purplepeter.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/rapture.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/raycast-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/raycast-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/rebecca.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/red-alert.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/red-planet.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/red-sands.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/relaxed.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/retro.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/rippedcasts.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/rose-pine-dawn.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/rose-pine-moon.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/rose-pine.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/rouge-2.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/royal.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/ryuuko.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/sakura.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/scarlet-protocol.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/seafoam-pastel.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/seashells.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/seoulbones-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/seoulbones-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/seti.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/shades-of-purple.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/shaman.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/slate.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/sleepyhollow.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/smyck.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/snazzy.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/softserver.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/solarized-darcula.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/solarized-dark---patched.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/spacedust.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/spacegray-eighties.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/spacegray.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/spiderman.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/spring.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/square.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/sublette.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/subliminal.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/sugarplum.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/sundried.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/symfonic.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/synthwave-everything.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/synthwave.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/synthwavealpha.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/tango-adapted.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/tango-half-adapted.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/teerb.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/terafox.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/terminal-basic.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/thayer-bright.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/the-hulk.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/tinacious-design-(dark).toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/tinacious-design-(light).toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/tokyonight-day.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/tokyonight-storm.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/tokyonight.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/tomorrow-night-blue.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/tomorrow-night-bright.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/tomorrow-night-burns.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/tomorrow-night.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/tomorrow.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/toychest.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/treehouse.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/twilight.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/ubuntu.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/ultradark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/ultraviolent.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/underthesea.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/unikitty.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/urple.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/vaughn.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/vesper.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/vibrantink.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/vimbones.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/violet-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/violet-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/warmneon.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/wez.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/whimsy.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/wildcherry.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/wilmersdorf.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/wombat.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/wryan.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/xcodedark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/xcodedarkhc.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/xcodelight.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/xcodelighthc.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/xcodewwdc.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/zenbones-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/zenbones-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/zenbones.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/zenburn.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/zenburned.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/zenwritten-dark.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/themes/zenwritten-light.toml +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/workflow/__init__.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/workflow/activities.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/workflow/agent_activities.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/workflow/temporal_setup.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/src/flock/workflow/workflow.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/tests/integration/test_agent_integration.py +0 -0
- {flock_core-0.2.17 → flock_core-0.3.1}/tests/unittests/test_flock_agent.py +0 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
name: Deploy MkDocs
|
|
2
|
+
on:
|
|
3
|
+
push:
|
|
4
|
+
branches:
|
|
5
|
+
- master # or master
|
|
6
|
+
- docs/* # or docs/*
|
|
7
|
+
|
|
8
|
+
jobs:
|
|
9
|
+
deploy:
|
|
10
|
+
runs-on: ubuntu-latest
|
|
11
|
+
steps:
|
|
12
|
+
- uses: actions/checkout@v4
|
|
13
|
+
- uses: actions/setup-python@v5
|
|
14
|
+
with:
|
|
15
|
+
python-version: '3.x'
|
|
16
|
+
- run: pip install mkdocs-material mkdocs mkdocstrings[python]
|
|
17
|
+
- run: mkdocs gh-deploy --force
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flock-core
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.1
|
|
4
4
|
Summary: Declarative LLM Orchestration at Scale
|
|
5
5
|
Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -14,6 +14,7 @@ Requires-Dist: dspy==2.5.42
|
|
|
14
14
|
Requires-Dist: duckduckgo-search>=7.3.2
|
|
15
15
|
Requires-Dist: httpx>=0.28.1
|
|
16
16
|
Requires-Dist: loguru>=0.7.3
|
|
17
|
+
Requires-Dist: matplotlib>=3.10.0
|
|
17
18
|
Requires-Dist: msgpack>=1.1.0
|
|
18
19
|
Requires-Dist: opentelemetry-api>=1.30.0
|
|
19
20
|
Requires-Dist: opentelemetry-exporter-jaeger-proto-grpc>=1.21.0
|
|
@@ -21,13 +22,18 @@ Requires-Dist: opentelemetry-exporter-jaeger>=1.21.0
|
|
|
21
22
|
Requires-Dist: opentelemetry-exporter-otlp>=1.30.0
|
|
22
23
|
Requires-Dist: opentelemetry-instrumentation-logging>=0.51b0
|
|
23
24
|
Requires-Dist: opentelemetry-sdk>=1.30.0
|
|
25
|
+
Requires-Dist: pillow>=10.4.0
|
|
26
|
+
Requires-Dist: prometheus-client>=0.21.1
|
|
24
27
|
Requires-Dist: pydantic>=2.10.5
|
|
25
28
|
Requires-Dist: python-box>=7.3.2
|
|
26
29
|
Requires-Dist: python-decouple>=3.8
|
|
27
30
|
Requires-Dist: questionary>=2.1.0
|
|
28
31
|
Requires-Dist: rich>=13.9.4
|
|
32
|
+
Requires-Dist: sentence-transformers>=3.4.1
|
|
29
33
|
Requires-Dist: temporalio>=1.9.0
|
|
34
|
+
Requires-Dist: tiktoken>=0.8.0
|
|
30
35
|
Requires-Dist: toml>=0.10.2
|
|
36
|
+
Requires-Dist: tqdm>=4.67.1
|
|
31
37
|
Provides-Extra: all-tools
|
|
32
38
|
Requires-Dist: docling>=2.18.0; extra == 'all-tools'
|
|
33
39
|
Requires-Dist: markdownify>=0.14.1; extra == 'all-tools'
|
|
@@ -38,7 +44,7 @@ Requires-Dist: tavily-python>=0.5.0; extra == 'tools'
|
|
|
38
44
|
Description-Content-Type: text/markdown
|
|
39
45
|
|
|
40
46
|
<p align="center">
|
|
41
|
-
<img src="docs/
|
|
47
|
+
<img src="docs/assets/images/flock.png" width="600"><br>
|
|
42
48
|
<img alt="Dynamic TOML Badge" src="https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fwhiteducksoftware%2Fflock%2Frefs%2Fheads%2Fmaster%2Fpyproject.toml&query=%24.project.version&style=for-the-badge&logo=pypi&label=pip%20version">
|
|
43
49
|
<a href="https://www.linkedin.com/company/whiteduck" target="_blank"><img alt="LinkedIn" src="https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge&logo=linkedin&logoColor=white&label=whiteduck"></a>
|
|
44
50
|
<a href="https://bsky.app/profile/whiteduck-gmbh.bsky.social" target="_blank"><img alt="Bluesky" src="https://img.shields.io/badge/bluesky-Follow-blue?style=for-the-badge&logo=bluesky&logoColor=%23fff&color=%23333&labelColor=%230285FF&label=whiteduck-gmbh"></a>
|
|
@@ -69,7 +75,15 @@ Flock is a framework for orchestrating LLM-powered agents. It leverages a **decl
|
|
|
69
75
|
|
|
70
76
|
https://github.com/user-attachments/assets/bdab4786-d532-459f-806a-024727164dcc
|
|
71
77
|
|
|
78
|
+
## Table of Contents
|
|
72
79
|
|
|
80
|
+
- [Key Innovations](#key-innovations)
|
|
81
|
+
- [Examples](#examples)
|
|
82
|
+
- [Hello Flock!](#hello-flock)
|
|
83
|
+
- [It's not my type](#its-not-my-type)
|
|
84
|
+
- [Being pydantic](#being-pydantic)
|
|
85
|
+
- [Building a chain gang!](#building-a-chain-gang)
|
|
86
|
+
- [Installation](#installation)
|
|
73
87
|
|
|
74
88
|
|
|
75
89
|
## Key Innovations
|
|
@@ -96,7 +110,7 @@ https://github.com/user-attachments/assets/bdab4786-d532-459f-806a-024727164dcc
|
|
|
96
110
|
|
|
97
111
|
|
|
98
112
|
<p align="center">
|
|
99
|
-
<img src="docs/
|
|
113
|
+
<img src="docs/assets/images//flock_cli.png" width="200"><br>
|
|
100
114
|
|
|
101
115
|
## Examples
|
|
102
116
|
|
|
@@ -294,6 +308,98 @@ And BAM! Your finished data model filled up to the brim with data! 🎊
|
|
|
294
308
|
}
|
|
295
309
|
```
|
|
296
310
|
|
|
311
|
+
### Building a chain gang
|
|
312
|
+
|
|
313
|
+
Our `bloggy` is great, but what if we want to turn those amazing headers into full blog posts? Time to bring in a friend! 🤝
|
|
314
|
+
Let's see how easy it is to make agents work together 🔗
|
|
315
|
+
|
|
316
|
+
```python
|
|
317
|
+
from flock.core import Flock, FlockAgent
|
|
318
|
+
|
|
319
|
+
flock = Flock(model="openai/gpt-4o")
|
|
320
|
+
|
|
321
|
+
# First agent: Our trusty bloggy generates titles and headers! 📝
|
|
322
|
+
bloggy = FlockAgent(
|
|
323
|
+
name="bloggy",
|
|
324
|
+
input="blog_idea: str|The topic to blog about",
|
|
325
|
+
output=(
|
|
326
|
+
"funny_blog_title: str|A catchy title for the blog, "
|
|
327
|
+
"blog_headers: list[str]|List of section headers for the blog"
|
|
328
|
+
)
|
|
329
|
+
)
|
|
330
|
+
|
|
331
|
+
# Second agent: The content wizard that brings headers to life! ✨
|
|
332
|
+
content_writer = FlockAgent(
|
|
333
|
+
name="content_writer",
|
|
334
|
+
input=(
|
|
335
|
+
"funny_blog_title: str|The blog title to work with, "
|
|
336
|
+
"blog_headers: list[str]|The headers to expand into content"
|
|
337
|
+
),
|
|
338
|
+
output="blog_sections: list[BlogSection]|The fully written blog sections"
|
|
339
|
+
)
|
|
340
|
+
|
|
341
|
+
# Make them besties! 🤝
|
|
342
|
+
bloggy.hand_off = content_writer
|
|
343
|
+
|
|
344
|
+
# Add your dynamic duo to the flock
|
|
345
|
+
flock.add_agent(bloggy)
|
|
346
|
+
flock.add_agent(content_writer)
|
|
347
|
+
|
|
348
|
+
# Let them create some magic! 🎨
|
|
349
|
+
result = flock.run(
|
|
350
|
+
input={"blog_idea": "A blog about cats"},
|
|
351
|
+
start_agent=bloggy
|
|
352
|
+
)
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
Super simple rules to remember:
|
|
356
|
+
1. Point the first agent to the next one using `hand_off`
|
|
357
|
+
2. Make sure their inputs and outputs match up
|
|
358
|
+
|
|
359
|
+
### Tools of the trade
|
|
360
|
+
|
|
361
|
+
Of couse no agent framework is complete without using tools.
|
|
362
|
+
Flock enables agents to use any python function you pass as tool or to use one of the plenty default tools
|
|
363
|
+
|
|
364
|
+
```python
|
|
365
|
+
bloggy = FlockAgent(
|
|
366
|
+
name="bloggy",
|
|
367
|
+
input="blog_idea: str|The topic to blog about",
|
|
368
|
+
output=(
|
|
369
|
+
"funny_blog_title: str|A catchy title for the blog, "
|
|
370
|
+
"blog_headers: list[str]|List of section headers for the blog"
|
|
371
|
+
"analysis_results: dict[str,Any] | Result of calculated analysis if necessary"
|
|
372
|
+
)
|
|
373
|
+
tools=[basic_tools.web_search_duckduckgo, basic_tools.code_eval],
|
|
374
|
+
)
|
|
375
|
+
|
|
376
|
+
result = flock.run(
|
|
377
|
+
input={"blog_idea": "A blog about cats, with an analysis how old the oldest cat became in days"},
|
|
378
|
+
start_agent=bloggy
|
|
379
|
+
)
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
These tools are available out of the box (needs `flock-core[tools]`):
|
|
383
|
+
|
|
384
|
+
- web_search_tavily
|
|
385
|
+
- web_search_duckduckgo
|
|
386
|
+
- get_web_content_as_markdown
|
|
387
|
+
- get_anything_as_markdown (uses docling and needs `flock-core[all-tools]`)
|
|
388
|
+
- evaluate_math
|
|
389
|
+
- code_eval
|
|
390
|
+
- get_current_time
|
|
391
|
+
- count_words
|
|
392
|
+
- extract_urls
|
|
393
|
+
- extract_numbers
|
|
394
|
+
- json_parse_safe
|
|
395
|
+
- save_to_file
|
|
396
|
+
- read_from_file
|
|
397
|
+
|
|
398
|
+
|
|
399
|
+
That's all there is to it! `bloggy` comes up with amazing headers, and `content_writer` turns them into full blog sections. No more writer's block! 🎉
|
|
400
|
+
|
|
401
|
+
And this is just the beginning - you can chain as many agents as you want. Maybe add a proofreader? Or add memory? Or an SEO optimizer? But let's not get ahead of ourselves! 😉
|
|
402
|
+
|
|
297
403
|
So far we've barely scratched the surface of what flock has to offer, and we're currently hard at work building up the documentation for all the other super cool features Flock has up its sleeve! Stay tuned! 🚀
|
|
298
404
|
|
|
299
405
|
## Temporal Workflow Integration
|
|
@@ -308,7 +414,9 @@ Documentation in progress!
|
|
|
308
414
|
|
|
309
415
|
## Architecture
|
|
310
416
|
|
|
311
|
-
|
|
417
|
+
<img src="docs/assets/images/components_chart.png" width="800"><br>
|
|
418
|
+
|
|
419
|
+
<img src="docs/assets/images/flow_chart.png" width="800"><br>
|
|
312
420
|
|
|
313
421
|
|
|
314
422
|
## Requirements
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
<p align="center">
|
|
2
|
-
<img src="docs/
|
|
2
|
+
<img src="docs/assets/images/flock.png" width="600"><br>
|
|
3
3
|
<img alt="Dynamic TOML Badge" src="https://img.shields.io/badge/dynamic/toml?url=https%3A%2F%2Fraw.githubusercontent.com%2Fwhiteducksoftware%2Fflock%2Frefs%2Fheads%2Fmaster%2Fpyproject.toml&query=%24.project.version&style=for-the-badge&logo=pypi&label=pip%20version">
|
|
4
4
|
<a href="https://www.linkedin.com/company/whiteduck" target="_blank"><img alt="LinkedIn" src="https://img.shields.io/badge/linkedin-%230077B5.svg?style=for-the-badge&logo=linkedin&logoColor=white&label=whiteduck"></a>
|
|
5
5
|
<a href="https://bsky.app/profile/whiteduck-gmbh.bsky.social" target="_blank"><img alt="Bluesky" src="https://img.shields.io/badge/bluesky-Follow-blue?style=for-the-badge&logo=bluesky&logoColor=%23fff&color=%23333&labelColor=%230285FF&label=whiteduck-gmbh"></a>
|
|
@@ -30,7 +30,15 @@ Flock is a framework for orchestrating LLM-powered agents. It leverages a **decl
|
|
|
30
30
|
|
|
31
31
|
https://github.com/user-attachments/assets/bdab4786-d532-459f-806a-024727164dcc
|
|
32
32
|
|
|
33
|
+
## Table of Contents
|
|
33
34
|
|
|
35
|
+
- [Key Innovations](#key-innovations)
|
|
36
|
+
- [Examples](#examples)
|
|
37
|
+
- [Hello Flock!](#hello-flock)
|
|
38
|
+
- [It's not my type](#its-not-my-type)
|
|
39
|
+
- [Being pydantic](#being-pydantic)
|
|
40
|
+
- [Building a chain gang!](#building-a-chain-gang)
|
|
41
|
+
- [Installation](#installation)
|
|
34
42
|
|
|
35
43
|
|
|
36
44
|
## Key Innovations
|
|
@@ -57,7 +65,7 @@ https://github.com/user-attachments/assets/bdab4786-d532-459f-806a-024727164dcc
|
|
|
57
65
|
|
|
58
66
|
|
|
59
67
|
<p align="center">
|
|
60
|
-
<img src="docs/
|
|
68
|
+
<img src="docs/assets/images//flock_cli.png" width="200"><br>
|
|
61
69
|
|
|
62
70
|
## Examples
|
|
63
71
|
|
|
@@ -255,6 +263,98 @@ And BAM! Your finished data model filled up to the brim with data! 🎊
|
|
|
255
263
|
}
|
|
256
264
|
```
|
|
257
265
|
|
|
266
|
+
### Building a chain gang
|
|
267
|
+
|
|
268
|
+
Our `bloggy` is great, but what if we want to turn those amazing headers into full blog posts? Time to bring in a friend! 🤝
|
|
269
|
+
Let's see how easy it is to make agents work together 🔗
|
|
270
|
+
|
|
271
|
+
```python
|
|
272
|
+
from flock.core import Flock, FlockAgent
|
|
273
|
+
|
|
274
|
+
flock = Flock(model="openai/gpt-4o")
|
|
275
|
+
|
|
276
|
+
# First agent: Our trusty bloggy generates titles and headers! 📝
|
|
277
|
+
bloggy = FlockAgent(
|
|
278
|
+
name="bloggy",
|
|
279
|
+
input="blog_idea: str|The topic to blog about",
|
|
280
|
+
output=(
|
|
281
|
+
"funny_blog_title: str|A catchy title for the blog, "
|
|
282
|
+
"blog_headers: list[str]|List of section headers for the blog"
|
|
283
|
+
)
|
|
284
|
+
)
|
|
285
|
+
|
|
286
|
+
# Second agent: The content wizard that brings headers to life! ✨
|
|
287
|
+
content_writer = FlockAgent(
|
|
288
|
+
name="content_writer",
|
|
289
|
+
input=(
|
|
290
|
+
"funny_blog_title: str|The blog title to work with, "
|
|
291
|
+
"blog_headers: list[str]|The headers to expand into content"
|
|
292
|
+
),
|
|
293
|
+
output="blog_sections: list[BlogSection]|The fully written blog sections"
|
|
294
|
+
)
|
|
295
|
+
|
|
296
|
+
# Make them besties! 🤝
|
|
297
|
+
bloggy.hand_off = content_writer
|
|
298
|
+
|
|
299
|
+
# Add your dynamic duo to the flock
|
|
300
|
+
flock.add_agent(bloggy)
|
|
301
|
+
flock.add_agent(content_writer)
|
|
302
|
+
|
|
303
|
+
# Let them create some magic! 🎨
|
|
304
|
+
result = flock.run(
|
|
305
|
+
input={"blog_idea": "A blog about cats"},
|
|
306
|
+
start_agent=bloggy
|
|
307
|
+
)
|
|
308
|
+
```
|
|
309
|
+
|
|
310
|
+
Super simple rules to remember:
|
|
311
|
+
1. Point the first agent to the next one using `hand_off`
|
|
312
|
+
2. Make sure their inputs and outputs match up
|
|
313
|
+
|
|
314
|
+
### Tools of the trade
|
|
315
|
+
|
|
316
|
+
Of couse no agent framework is complete without using tools.
|
|
317
|
+
Flock enables agents to use any python function you pass as tool or to use one of the plenty default tools
|
|
318
|
+
|
|
319
|
+
```python
|
|
320
|
+
bloggy = FlockAgent(
|
|
321
|
+
name="bloggy",
|
|
322
|
+
input="blog_idea: str|The topic to blog about",
|
|
323
|
+
output=(
|
|
324
|
+
"funny_blog_title: str|A catchy title for the blog, "
|
|
325
|
+
"blog_headers: list[str]|List of section headers for the blog"
|
|
326
|
+
"analysis_results: dict[str,Any] | Result of calculated analysis if necessary"
|
|
327
|
+
)
|
|
328
|
+
tools=[basic_tools.web_search_duckduckgo, basic_tools.code_eval],
|
|
329
|
+
)
|
|
330
|
+
|
|
331
|
+
result = flock.run(
|
|
332
|
+
input={"blog_idea": "A blog about cats, with an analysis how old the oldest cat became in days"},
|
|
333
|
+
start_agent=bloggy
|
|
334
|
+
)
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
These tools are available out of the box (needs `flock-core[tools]`):
|
|
338
|
+
|
|
339
|
+
- web_search_tavily
|
|
340
|
+
- web_search_duckduckgo
|
|
341
|
+
- get_web_content_as_markdown
|
|
342
|
+
- get_anything_as_markdown (uses docling and needs `flock-core[all-tools]`)
|
|
343
|
+
- evaluate_math
|
|
344
|
+
- code_eval
|
|
345
|
+
- get_current_time
|
|
346
|
+
- count_words
|
|
347
|
+
- extract_urls
|
|
348
|
+
- extract_numbers
|
|
349
|
+
- json_parse_safe
|
|
350
|
+
- save_to_file
|
|
351
|
+
- read_from_file
|
|
352
|
+
|
|
353
|
+
|
|
354
|
+
That's all there is to it! `bloggy` comes up with amazing headers, and `content_writer` turns them into full blog sections. No more writer's block! 🎉
|
|
355
|
+
|
|
356
|
+
And this is just the beginning - you can chain as many agents as you want. Maybe add a proofreader? Or add memory? Or an SEO optimizer? But let's not get ahead of ourselves! 😉
|
|
357
|
+
|
|
258
358
|
So far we've barely scratched the surface of what flock has to offer, and we're currently hard at work building up the documentation for all the other super cool features Flock has up its sleeve! Stay tuned! 🚀
|
|
259
359
|
|
|
260
360
|
## Temporal Workflow Integration
|
|
@@ -269,7 +369,9 @@ Documentation in progress!
|
|
|
269
369
|
|
|
270
370
|
## Architecture
|
|
271
371
|
|
|
272
|
-
|
|
372
|
+
<img src="docs/assets/images/components_chart.png" width="800"><br>
|
|
373
|
+
|
|
374
|
+
<img src="docs/assets/images/flow_chart.png" width="800"><br>
|
|
273
375
|
|
|
274
376
|
|
|
275
377
|
## Requirements
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
<mxfile host="65bd71144e">
|
|
2
|
+
<diagram id="iQ7YuHOuaVDECIdskFDT" name="Page-1">
|
|
3
|
+
<mxGraphModel dx="88" dy="620" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" background="light-dark(#FFFFFF, #d8cfb1)" math="0" shadow="1">
|
|
4
|
+
<root>
|
|
5
|
+
<mxCell id="0"/>
|
|
6
|
+
<mxCell id="1" parent="0"/>
|
|
7
|
+
<mxCell id="2" value="sequenceDiagram
 participant Client
 participant Flock
 participant FlockAgent
 participant Registry
 participant Context
 participant LLM
 
 Client->>Flock: run_async(agent, input)
 Flock->>Registry: get_agent(name)
 Registry-->>Flock: agent instance
 
 Flock->>Context: initialize_context(agent, input)
 
 Flock->>FlockAgent: run(inputs)
 activate FlockAgent
 
 FlockAgent->>FlockAgent: initialize(inputs)
 FlockAgent->>FlockAgent: _evaluate(inputs)
 
 FlockAgent->>LLM: process with tools/prompts
 LLM-->>FlockAgent: response
 
 FlockAgent->>FlockAgent: terminate(inputs, result)
 FlockAgent-->>Flock: result
 deactivate FlockAgent
 
 Flock-->>Client: final result" style="shadow=0;dashed=0;align=left;strokeWidth=1;shape=mxgraph.mermaid.abstract.mermaid;labelBackgroundColor=#ffffff;noLabel=1;theme=default;" parent="1" vertex="1">
|
|
8
|
+
<mxGeometry x="271" y="360" width="300" height="300" as="geometry"/>
|
|
9
|
+
</mxCell>
|
|
10
|
+
</root>
|
|
11
|
+
</mxGraphModel>
|
|
12
|
+
</diagram>
|
|
13
|
+
<diagram id="mQwFuZfSuTjpqv4SXbYC" name="Page-2">
|
|
14
|
+
<mxGraphModel dx="354" dy="259" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" background="light-dark(#FFFFFF, #ffffde)" math="0" shadow="1">
|
|
15
|
+
<root>
|
|
16
|
+
<mxCell id="0"/>
|
|
17
|
+
<mxCell id="1" parent="0"/>
|
|
18
|
+
<mxCell id="gh-ZxXSGDDD0mwRwWCxR-1" value="graph TD
 subgraph Client Application
 client[Client Code]
 end

 subgraph Flock Framework
 orchestrator[Flock Orchestrator]
 registry[Agent Registry]
 context[Context Manager]
 
 subgraph Agents
 base[FlockAgent Base]

 end
 
 subgraph Execution
 local[Local Executor]
 temporal[Temporal Executor]
 end
 
 subgraph Core Services
 logging[Logging System]
 tools[Tool Registry]
 formatter[Output Formatters]
 end
 end

 subgraph External Services
 llm[Language Models]
 temporal_server[Temporal Server]
 end

 %% Client interactions
 client --> orchestrator
 
 %% Orchestrator relations
 orchestrator --> registry
 orchestrator --> context
 orchestrator --> local
 orchestrator --> temporal
 
 %% Agent relations
 base --> tools
 base --> logging
 base --> formatter

 
 %% Execution relations
 local --> llm
 temporal --> temporal_server
 temporal_server --> llm
 
 %% Registry relations
 registry --> base
 registry --> tools

 %% Style
 classDef default fill:#f9f9f9,stroke:#333,stroke-width:2px;
 classDef external fill:#e1f5fe,stroke:#0288d1,stroke-width:2px;
 classDef core fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px;
 
 class llm,temporal_server external;
 class orchestrator,registry,context,base,local,temporal core;" style="shadow=0;dashed=0;align=left;strokeWidth=1;shape=mxgraph.mermaid.abstract.mermaid;labelBackgroundColor=#ffffff;noLabel=1;theme=default;" vertex="1" parent="1">
|
|
19
|
+
<mxGeometry x="274" y="325" width="300" height="300" as="geometry"/>
|
|
20
|
+
</mxCell>
|
|
21
|
+
</root>
|
|
22
|
+
</mxGraphModel>
|
|
23
|
+
</diagram>
|
|
24
|
+
<diagram id="sh9ImpPZNdK_Mo0HMCRx" name="Page-3">
|
|
25
|
+
<mxGraphModel dx="1237" dy="800" grid="0" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="0" pageScale="1" pageWidth="850" pageHeight="1100" background="light-dark(#FFFFFF,#E8E8E8)" math="0" shadow="0">
|
|
26
|
+
<root>
|
|
27
|
+
<mxCell id="0"/>
|
|
28
|
+
<mxCell id="1" parent="0"/>
|
|
29
|
+
<mxCell id="84CqISvRR4rrSDVKXhkM-1" value="graph TD
 subgraph Memory Storage
 A[New Input/Output] --> B[Create Embedding]
 B --> C[Extract Concepts]
 C --> D[Create Memory Entry]
 D --> E{Store Memory}
 E -->|Recent| F[Short Term Memory]
 E -->|Frequent Use| G[Long Term Memory]
 D --> H[Update Concept Graph]
 end

classDef process fill:#73B7E7,stroke:#333,stroke-width:2px;
classDef storage fill:#90EE90,stroke:#333,stroke-width:2px;
class A,B,C,D process;
class F,G,H storage;" style="shadow=0;dashed=0;align=left;strokeWidth=1;shape=mxgraph.mermaid.abstract.mermaid;labelBackgroundColor=#ffffff;noLabel=1;theme=default;" parent="1" vertex="1">
|
|
30
|
+
<mxGeometry x="-20" y="10" width="300" height="300" as="geometry"/>
|
|
31
|
+
</mxCell>
|
|
32
|
+
<mxCell id="84CqISvRR4rrSDVKXhkM-2" value="graph TD
 subgraph Memory Retrieval
 A1[Query] --> B1[Create Query Embedding]
 A1 --> C1[Extract Query Concepts]
 B1 --> D1{Similarity Search}
 C1 --> E1{Concept Spreading}
 D1 --> F1[Find Similar Memories]
 E1 --> G1[Find Related Concepts]
 F1 --> H1[Score & Rank Results]
 G1 --> H1
 H1 --> I1[Return Best Matches]
 end

classDef query fill:#FFB6C1,stroke:#333,stroke-width:2px;
classDef process fill:#73B7E7,stroke:#333,stroke-width:2px;
classDef result fill:#90EE90,stroke:#333,stroke-width:2px;
class A1,B1,C1 query;
class D1,E1,F1,G1 process;
class H1,I1 result;
" style="shadow=0;dashed=0;align=left;strokeWidth=1;shape=mxgraph.mermaid.abstract.mermaid;labelBackgroundColor=#ffffff;noLabel=1;theme=default;" parent="1" vertex="1">
|
|
33
|
+
<mxGeometry x="240" y="10" width="300" height="300" as="geometry"/>
|
|
34
|
+
</mxCell>
|
|
35
|
+
<mxCell id="84CqISvRR4rrSDVKXhkM-3" value="graph LR
 subgraph Concept Graph
 A2[Space] --> B2[Rockets]
 B2 --> C2[Physics]
 C2 --> D2[Energy]
 B2 --> E2[Engineering]
 A2 --> F2[Astronomy]
 F2 --> G2[Planets]
 end

classDef concept fill:#FFE4B5,stroke:#333,stroke-width:2px;
class A2,B2,C2,D2,E2,F2,G2 concept;" style="shadow=0;dashed=0;align=left;strokeWidth=1;shape=mxgraph.mermaid.abstract.mermaid;labelBackgroundColor=#ffffff;noLabel=1;theme=default;" parent="1" vertex="1">
|
|
36
|
+
<mxGeometry x="520" y="-60" width="300" height="300" as="geometry"/>
|
|
37
|
+
</mxCell>
|
|
38
|
+
<mxCell id="84CqISvRR4rrSDVKXhkM-4" value="sequenceDiagram
 participant Q as Query
 participant M as Memory System
 participant ST as Short Term
 participant LT as Long Term
 participant CG as Concept Graph

 Q->>M: Search Request
 activate M
 M->>ST: Check Recent Memories
 M->>LT: Check Important Memories
 M->>CG: Spread Activation
 CG-->>M: Related Concepts
 ST-->>M: Similar Recent Memories
 LT-->>M: Similar Important Memories
 M->>M: Score & Rank Results
 M-->>Q: Return Best Matches
 deactivate M" style="shadow=0;dashed=0;align=left;strokeWidth=1;shape=mxgraph.mermaid.abstract.mermaid;labelBackgroundColor=#ffffff;noLabel=1;theme=default;" parent="1" vertex="1">
|
|
39
|
+
<mxGeometry y="290" width="820" height="650" as="geometry"/>
|
|
40
|
+
</mxCell>
|
|
41
|
+
</root>
|
|
42
|
+
</mxGraphModel>
|
|
43
|
+
</diagram>
|
|
44
|
+
</mxfile>
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|