flock-core 0.4.528__tar.gz → 0.5.0b0__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.4.528 → flock_core-0.5.0b0}/.github/workflows/deploy-whiteduck-pypi.yml +1 -0
- flock_core-0.5.0b0/AGENT.md +351 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/CONTRIBUTING.md +8 -8
- flock_core-0.5.0b0/PKG-INFO +272 -0
- flock_core-0.5.0b0/README.md +209 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/SECURITY.md +1 -1
- flock_core-0.5.0b0/docs/about/changelog.md +133 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/about/contributing.md +1 -5
- flock_core-0.5.0b0/docs/architecture_report.md +1099 -0
- flock_core-0.5.0b0/docs/assets/class_diagram.md +143 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/getting-started/installation.md +2 -2
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/getting-started/quickstart.md +4 -4
- flock_core-0.5.0b0/docs/refactor_plan_flock.md +463 -0
- flock_core-0.5.0b0/docs/refactor_plan_flock_registry.md +316 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/wd-di.md +1 -1
- flock_core-0.4.528/src/flock/core/flock_agent.py → flock_core-0.5.0b0/legacy/flock_agent_original.py +13 -13
- flock_core-0.5.0b0/legacy/flock_agent_refactored_backup.py +302 -0
- flock_core-0.5.0b0/legacy/flock_agent_unified.py +376 -0
- {flock_core-0.4.528/src/flock/core → flock_core-0.5.0b0/legacy}/flock_registry.py +7 -21
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/memory/memory_module.py +9 -7
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/memory/memory_parser.py +6 -5
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/performance/metrics_module.py +13 -13
- {flock_core-0.4.528 → flock_core-0.5.0b0}/mkdocs.yml +1 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/pyproject.toml +5 -48
- {flock_core-0.4.528 → flock_core-0.5.0b0}/requirements.txt +17 -17
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/execute_flock.py +1 -1
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/manage_agents.py +6 -6
- flock_core-0.5.0b0/src/flock/components/__init__.py +30 -0
- flock_core-0.5.0b0/src/flock/components/evaluation/__init__.py +9 -0
- flock_core-0.5.0b0/src/flock/components/evaluation/declarative_evaluation_component.py +222 -0
- flock_core-0.5.0b0/src/flock/components/routing/__init__.py +15 -0
- flock_core-0.5.0b0/src/flock/components/routing/conditional_routing_component.py +494 -0
- flock_core-0.5.0b0/src/flock/components/routing/default_routing_component.py +103 -0
- flock_core-0.5.0b0/src/flock/components/routing/llm_routing_component.py +206 -0
- flock_core-0.5.0b0/src/flock/components/utility/__init__.py +15 -0
- flock_core-0.5.0b0/src/flock/components/utility/memory_utility_component.py +548 -0
- flock_core-0.5.0b0/src/flock/components/utility/metrics_utility_component.py +693 -0
- flock_core-0.5.0b0/src/flock/components/utility/output_utility_component.py +198 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/__init__.py +26 -18
- flock_core-0.5.0b0/src/flock/core/agent/__init__.py +16 -0
- flock_core-0.5.0b0/src/flock/core/agent/flock_agent_components.py +104 -0
- flock_core-0.5.0b0/src/flock/core/agent/flock_agent_execution.py +101 -0
- flock_core-0.5.0b0/src/flock/core/agent/flock_agent_integration.py +206 -0
- flock_core-0.5.0b0/src/flock/core/agent/flock_agent_lifecycle.py +177 -0
- flock_core-0.5.0b0/src/flock/core/agent/flock_agent_serialization.py +381 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/api/endpoints.py +2 -2
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/api/service.py +2 -2
- flock_core-0.5.0b0/src/flock/core/component/__init__.py +15 -0
- flock_core-0.5.0b0/src/flock/core/component/agent_component_base.py +309 -0
- flock_core-0.5.0b0/src/flock/core/component/evaluation_component.py +56 -0
- flock_core-0.5.0b0/src/flock/core/component/routing_component.py +74 -0
- flock_core-0.5.0b0/src/flock/core/component/utility_component.py +69 -0
- flock_core-0.5.0b0/src/flock/core/config/flock_agent_config.py +58 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/evaluation/utils.py +3 -2
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/execution/batch_executor.py +1 -1
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/execution/evaluation_executor.py +2 -2
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/execution/opik_executor.py +1 -1
- flock_core-0.5.0b0/src/flock/core/flock.py +628 -0
- flock_core-0.5.0b0/src/flock/core/flock_agent.py +321 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/flock_factory.py +114 -90
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/flock_scheduler.py +1 -1
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/flock_server_manager.py +8 -8
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/logging/logging.py +1 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/mcp/flock_mcp_server.py +53 -48
- flock_core-0.4.528/src/flock/core/mcp/flock_mcp_tool_base.py → flock_core-0.5.0b0/src/flock/core/mcp/flock_mcp_tool.py +2 -2
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/mcp/mcp_client.py +9 -9
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/mcp/mcp_client_manager.py +9 -9
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/mcp/mcp_config.py +24 -24
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/mixin/dspy_integration.py +5 -5
- flock_core-0.5.0b0/src/flock/core/orchestration/__init__.py +18 -0
- flock_core-0.5.0b0/src/flock/core/orchestration/flock_batch_processor.py +94 -0
- flock_core-0.5.0b0/src/flock/core/orchestration/flock_evaluator.py +113 -0
- flock_core-0.5.0b0/src/flock/core/orchestration/flock_execution.py +288 -0
- flock_core-0.5.0b0/src/flock/core/orchestration/flock_initialization.py +125 -0
- flock_core-0.5.0b0/src/flock/core/orchestration/flock_server_manager.py +67 -0
- flock_core-0.5.0b0/src/flock/core/orchestration/flock_web_server.py +117 -0
- flock_core-0.5.0b0/src/flock/core/registry/__init__.py +45 -0
- flock_core-0.5.0b0/src/flock/core/registry/agent_registry.py +69 -0
- flock_core-0.5.0b0/src/flock/core/registry/callable_registry.py +139 -0
- flock_core-0.5.0b0/src/flock/core/registry/component_discovery.py +142 -0
- flock_core-0.5.0b0/src/flock/core/registry/component_registry.py +64 -0
- flock_core-0.5.0b0/src/flock/core/registry/config_mapping.py +64 -0
- flock_core-0.5.0b0/src/flock/core/registry/decorators.py +137 -0
- flock_core-0.5.0b0/src/flock/core/registry/registry_hub.py +205 -0
- flock_core-0.5.0b0/src/flock/core/registry/server_registry.py +57 -0
- flock_core-0.5.0b0/src/flock/core/registry/type_registry.py +86 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/serialization/flock_serializer.py +36 -32
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/serialization/serialization_utils.py +28 -25
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/util/hydrator.py +1 -1
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/util/input_resolver.py +29 -2
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/mcp/servers/sse/flock_sse_server.py +10 -10
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/mcp/servers/stdio/flock_stdio_server.py +10 -10
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/mcp/servers/streamable_http/flock_streamable_http_server.py +10 -10
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/mcp/servers/websockets/flock_websocket_server.py +10 -10
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/platform/docker_tools.py +3 -3
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/chat.py +1 -1
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/main.py +9 -5
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/services/flock_service.py +1 -1
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/services/sharing_store.py +1 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/workflow/activities.py +67 -92
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/workflow/agent_execution_activity.py +6 -6
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/workflow/flock_workflow.py +1 -1
- flock_core-0.5.0b0/tests/components/test_conditional_routing.py +123 -0
- flock_core-0.5.0b0/tests/components/test_factory_migration.py +137 -0
- flock_core-0.5.0b0/tests/components/test_factory_working.py +58 -0
- flock_core-0.5.0b0/tests/components/test_migrated_components.py +177 -0
- flock_core-0.5.0b0/tests/components/test_quick_serialization.py +50 -0
- flock_core-0.5.0b0/tests/components/test_routing_migration.py +167 -0
- flock_core-0.5.0b0/tests/components/test_serialization_compatibility.py +147 -0
- flock_core-0.5.0b0/tests/components/test_unified_architecture.py +145 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/tests/core/test_flock_core.py +7 -6
- flock_core-0.5.0b0/tests/core/test_performance_fixes.py +68 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/tests/serialization/test_enhanced_serialization.py +1 -1
- {flock_core-0.4.528 → flock_core-0.5.0b0}/tests/serialization/test_file_path_serialization.py +1 -1
- {flock_core-0.4.528 → flock_core-0.5.0b0}/tests/serialization/test_flock_serializer.py +6 -6
- {flock_core-0.4.528 → flock_core-0.5.0b0}/tests/serialization/test_nested_serialization.py +1 -1
- {flock_core-0.4.528 → flock_core-0.5.0b0}/tests/serialization/test_yaml_serialization.py +1 -1
- flock_core-0.5.0b0/uv.lock +6558 -0
- flock_core-0.4.528/.gitmodules +0 -4
- flock_core-0.4.528/PKG-INFO +0 -675
- flock_core-0.4.528/README.md +0 -573
- flock_core-0.4.528/docs/about/changelog.md +0 -37
- flock_core-0.4.528/src/flock/core/config/flock_agent_config.py +0 -11
- flock_core-0.4.528/src/flock/core/flock.py +0 -974
- flock_core-0.4.528/src/flock/tools/azure_tools.py +0 -781
- flock_core-0.4.528/src/flock/tools/code_tools.py +0 -167
- flock_core-0.4.528/src/flock/tools/file_tools.py +0 -149
- flock_core-0.4.528/src/flock/tools/github_tools.py +0 -157
- flock_core-0.4.528/src/flock/tools/markdown_tools.py +0 -205
- flock_core-0.4.528/src/flock/tools/system_tools.py +0 -9
- flock_core-0.4.528/src/flock/tools/text_tools.py +0 -810
- flock_core-0.4.528/src/flock/tools/web_tools.py +0 -90
- flock_core-0.4.528/src/flock/tools/zendesk_tools.py +0 -147
- flock_core-0.4.528/src/flock/workflow/__init__.py +0 -0
- flock_core-0.4.528/test_store_integration.py +0 -107
- flock_core-0.4.528/uv.lock +0 -7216
- {flock_core-0.4.528 → flock_core-0.5.0b0}/.devcontainer/devcontainer.json +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/.env_template +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/.github/ISSUE_TEMPLATE/bug_report.yaml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/.github/ISSUE_TEMPLATE/documentation_improvement.yaml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/.github/ISSUE_TEMPLATE/feature_request.yaml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/.github/ISSUE_TEMPLATE/question_support_request.yaml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/.github/ISSUE_TEMPLATE/vulnerability_report.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/.github/workflows/.gitkeep +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/.github/workflows/deploy-documentation.yml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/.gitignore +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/.vscode/launch.json +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/.vscode/settings.json +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/.vscode/tasks.json +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/CODE_OF_CONDUCT.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/LICENSE +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/drawio/architecture.drawio +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/cli_outputs/out.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/components_chart.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/examples/01_01.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/examples/01_02.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/examples/01_03.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/examples/01_04.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/examples/01_05.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/examples/01_06.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/flock.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/flock_cli.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/flow_chart.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/getting-started/first_agent_00.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/hummingbird.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/icon.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/icon.png~ +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/logo.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/magpie.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/memory_concepts.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/memory_flow.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/memory_flow_chart.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/assets/images/readme_output.png +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/components/evaluators.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/components/index.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/components/modules.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/components/tools.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/core-concepts/agents.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/core-concepts/declarative.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/core-concepts/di.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/core-concepts/index.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/core-concepts/workflows.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/create_doc_boilerplate.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/deployment/index.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/deployment/temporal.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/getting-started/concepts.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/getting-started/configuration.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/getting-started/index.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/guides/chaining-agents.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/guides/custom-endpoints.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/guides/index.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/guides/temporal-configuration.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/index.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/interacting-with-flock/cli-tool.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/interacting-with-flock/index.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/interacting-with-flock/interactive-cli.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/interacting-with-flock/programmatic.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/interacting-with-flock/rest-api.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/interacting-with-flock/web-ui.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/reference/flock_agent.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/reference/index.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/release-notes/magpie.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/docs/stylesheets/extra.css +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/evaluators/__init__.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/evaluators/declarative/__init__.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/evaluators/declarative/declarative_evaluator.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/evaluators/memory/memory_evaluator.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/evaluators/test/test_case_evaluator.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/evaluators/zep/zep_evaluator.py +0 -0
- {flock_core-0.4.528/src/flock/core → flock_core-0.5.0b0/legacy}/flock_evaluator.py +0 -0
- {flock_core-0.4.528/src/flock/core → flock_core-0.5.0b0/legacy}/flock_module.py +0 -0
- {flock_core-0.4.528/src/flock/core → flock_core-0.5.0b0/legacy}/flock_router.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/__init__.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/assertion/__init__.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/assertion/assertion_module.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/callback/__init__.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/callback/callback_module.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/enterprise_memory/README.md +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/enterprise_memory/enterprise_memory_module.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/mem0/__init__.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/mem0/mem0_module.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/mem0_async/__init__.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/mem0_async/async_mem0_module.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/memory/__init__.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/memory/memory_storage.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/output/__init__.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/output/output_module.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/performance/__init__.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/zep/__init__.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/modules/zep/zep_module.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/routers/__init__.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/routers/agent/__init__.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/routers/agent/agent_router.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/routers/agent/handoff_agent.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/routers/conditional/conditional_router.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/routers/default/__init__.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/routers/default/default_router.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/routers/feedback/feedback_router.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/routers/list_generator/list_generator_router.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/routers/llm/__init__.py +0 -0
- {flock_core-0.4.528/src/flock → flock_core-0.5.0b0/legacy}/routers/llm/llm_router.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/scripts/code_collector.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/scripts/create_docs.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/scripts/ensure_uv.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/adapter/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/adapter/azure_adapter.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/adapter/chroma_adapter.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/adapter/faiss_adapter.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/adapter/pinecone_adapter.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/adapter/vector_base.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/assets/release_notes.md +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/config.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/constants.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/create_agent.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/create_flock.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/load_agent.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/load_examples.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/load_flock.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/load_release_notes.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/loaded_flock_cli.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/registry_management.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/runner.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/settings.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/utils.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/view_results.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/cli/yaml_editor.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/config.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/api/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/api/custom_endpoint.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/api/main.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/api/models.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/api/run_store.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/api/runner.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/config/scheduled_agent_config.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/context/context.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/context/context_manager.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/context/context_vars.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/execution/local_executor.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/execution/temporal_executor.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/interpreter/python_interpreter.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/logging/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/logging/formatters/enum_builder.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/logging/formatters/theme_builder.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/logging/formatters/themes.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/logging/telemetry.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/logging/trace_and_logged.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/mcp/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/mcp/types/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/mcp/types/callbacks.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/mcp/types/factories.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/mcp/types/handlers.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/mcp/types/types.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/mcp/util/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/mcp/util/helpers.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/mixin/prompt_parser.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/serialization/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/serialization/callable_registry.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/serialization/json_encoder.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/serialization/secure_serializer.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/serialization/serializable.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/util/cli_helper.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/util/file_path_utils.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/util/loader.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/core/util/splitter.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/di.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/mcp/servers/sse/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/mcp/servers/stdio/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/mcp/servers/streamable_http/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/mcp/servers/websockets/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/platform/jaeger_install.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/3024-day.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/3024-night.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/aardvark-blue.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/abernathy.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/adventure.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/adventuretime.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/afterglow.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/alabaster.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/alienblood.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/andromeda.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/apple-classic.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/apple-system-colors.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/arcoiris.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/argonaut copy.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/argonaut.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/arthur.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/ateliersulphurpool.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/atom.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/atom_test.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/atomonelight.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/aurora.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/ayu copy.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/ayu-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/ayu-mirage.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/ayu.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/banana-blueberry.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/batman.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/belafonte-day.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/belafonte-night.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/birdsofparadise.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/blazer.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/blue-matrix.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/blueberrypie.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/bluedolphin.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/blulocodark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/blulocolight.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/borland.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/breeze.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/bright-lights.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/broadcast.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/brogrammer.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/builtin-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/builtin-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/builtin-pastel-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/builtin-solarized-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/builtin-solarized-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/builtin-tango-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/builtin-tango-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/c64.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/calamity.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/catppuccin-frappe.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/catppuccin-latte.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/catppuccin-macchiato.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/catppuccin-mocha.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/cga.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/chalk.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/chalkboard.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/challengerdeep.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/chester.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/ciapre.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/clrs.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/cobalt-neon.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/cobalt2.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/coffee-theme.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/crayonponyfish.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/cutiepro.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/cyberdyne.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/cyberpunk.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/dark+.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/dark-pastel.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/darkermatrix.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/darkmatrix.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/darkside.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/dayfox.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/deep.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/desert.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/dimidium.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/dimmedmonokai.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/django.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/djangorebornagain.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/djangosmooth.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/doom-peacock.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/doomone.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/dotgov.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/dracula+.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/dracula.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/duckbones.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/duotone-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/earthsong.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/elemental.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/elementary.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/encom.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/espresso-libre.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/espresso.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/everblush.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/fahrenheit.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/fairyfloss.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/farmhouse-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/farmhouse-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/fideloper.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/firefly-traditional.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/firefoxdev.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/firewatch.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/fishtank.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/flat.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/flatland.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/flexoki-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/flexoki-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/floraverse.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/forestblue.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/framer.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/frontenddelight.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/funforrest.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/galaxy.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/galizur.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/github-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/github.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/glacier.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/grape.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/grass.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/grey-green.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/gruber-darker.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/gruvboxdark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/gruvboxdarkhard.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/gruvboxlight.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/guezwhoz.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/hacktober.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/hardcore.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/harper.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/hax0r-blue.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/hax0r-gr33n.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/hax0r-r3d.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/highway.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/hipster-green.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/hivacruz.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/homebrew.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/hopscotch.256.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/hopscotch.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/hurtado.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/hybrid.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/ic-green-ppl.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/ic-orange-ppl.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/iceberg-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/iceberg-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/idea.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/idletoes.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/ir-black.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/iterm2-dark-background.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/iterm2-default.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/iterm2-light-background.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/iterm2-smoooooth.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/iterm2-solarized-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/iterm2-tango-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/iterm2-tango-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/jackie-brown.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/japanesque.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/jellybeans.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/jetbrains-darcula.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/jubi.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/kanagawabones.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/kibble.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/kolorit.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/konsolas.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/kurokula.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/lab-fox.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/laser.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/later-this-evening.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/lavandula.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/liquidcarbon.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/liquidcarbontransparent.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/lovelace.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/man-page.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/mariana.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/material.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/materialdark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/materialdarker.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/materialdesigncolors.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/materialocean.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/mathias.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/matrix.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/medallion.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/mellifluous.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/midnight-in-mojave.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/mirage.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/misterioso.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/molokai.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/monalisa.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/monokai-remastered.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/monokai-soda.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/monokai-vivid.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/n0tch2k.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/neobones-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/neobones-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/neon.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/neopolitan.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/neutron.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/night-owlish-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/nightfox.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/nightlion-v1.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/nightlion-v2.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/niji.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/nocturnal-winter.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/nord-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/nord.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/novel.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/nvimdark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/nvimlight.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/obsidian.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/ocean.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/oceanic-next.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/oceanicmaterial.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/ollie.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/onehalfdark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/onehalflight.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/operator-mono-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/overnight-slumber.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/oxocarbon.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/palenighthc.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/pandora.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/paraiso-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/paulmillr.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/pencildark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/pencillight.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/peppermint.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/piatto-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/pnevma.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/popping-and-locking.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/primary.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/pro-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/pro.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/purple-rain.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/purplepeter.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/rapture.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/raycast-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/raycast-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/rebecca.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/red-alert.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/red-planet.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/red-sands.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/relaxed.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/retro.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/rippedcasts.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/rose-pine-dawn.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/rose-pine-moon.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/rose-pine.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/rouge-2.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/royal.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/ryuuko.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/sakura.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/scarlet-protocol.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/seafoam-pastel.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/seashells.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/seoulbones-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/seoulbones-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/seti.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/shades-of-purple.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/shaman.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/slate.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/sleepyhollow.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/smyck.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/snazzy.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/softserver.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/solarized-darcula.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/solarized-dark---patched.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/spacedust.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/spacegray-eighties.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/spacegray.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/spiderman.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/spring.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/square.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/sublette.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/subliminal.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/sugarplum.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/sundried.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/symfonic.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/synthwave-everything.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/synthwave.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/synthwavealpha.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/tango-adapted.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/tango-half-adapted.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/teerb.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/terafox.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/terminal-basic.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/thayer-bright.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/the-hulk.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/tinacious-design-(dark).toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/tinacious-design-(light).toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/tokyonight-day.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/tokyonight-storm.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/tokyonight.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/tomorrow-night-blue.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/tomorrow-night-bright.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/tomorrow-night-burns.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/tomorrow-night.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/tomorrow.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/toychest.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/treehouse.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/twilight.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/ubuntu.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/ultradark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/ultraviolent.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/underthesea.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/unikitty.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/urple.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/vaughn.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/vesper.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/vibrantink.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/vimbones.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/violet-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/violet-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/warmneon.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/wez.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/whimsy.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/wildcherry.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/wilmersdorf.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/wombat.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/wryan.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/xcodedark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/xcodedarkhc.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/xcodelight.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/xcodelighthc.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/xcodewwdc.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/zenbones-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/zenbones-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/zenbones.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/zenburn.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/zenburned.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/zenwritten-dark.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/themes/zenwritten-light.toml +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/__init__.py +0 -0
- {flock_core-0.4.528/src/flock/tools → flock_core-0.5.0b0/src/flock/webapp/app}/__init__.py +0 -0
- {flock_core-0.4.528/src/flock/webapp/app → flock_core-0.5.0b0/src/flock/webapp/app/api}/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/api/agent_management.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/api/execution.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/api/flock_management.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/api/registry_viewer.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/config.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/dependencies.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/middleware.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/models_ui.py +0 -0
- {flock_core-0.4.528/src/flock/webapp/app/api → flock_core-0.5.0b0/src/flock/webapp/app/services}/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/services/sharing_models.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/templates/theme_mapper.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/theme_mapper.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/app/utils.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/run.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/static/css/chat.css +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/static/css/components.css +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/static/css/header.css +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/static/css/layout.css +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/static/css/sidebar.css +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/static/css/two-pane.css +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/base.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/chat.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/chat_settings.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/flock_editor.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/index.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_agent_detail_form.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_agent_list.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_agent_manager_view.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_agent_tools_checklist.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_chat_container.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_chat_messages.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_chat_settings_form.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_create_flock_form.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_dashboard_flock_detail.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_dashboard_flock_file_list.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_dashboard_flock_properties_preview.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_dashboard_upload_flock_form.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_dynamic_input_form_content.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_env_vars_table.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_execution_form.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_execution_view_container.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_flock_file_list.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_flock_properties_form.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_flock_upload_form.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_header_flock_status.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_load_manager_view.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_registry_table.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_registry_viewer_content.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_results_display.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_settings_env_content.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_settings_theme_content.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_settings_view.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_share_chat_link_snippet.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_share_link_snippet.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_sidebar.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_structured_data_view.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/partials/_theme_preview.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/registry_viewer.html +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/webapp/templates/shared_run_page.html +0 -0
- {flock_core-0.4.528/src/flock/webapp/app/services → flock_core-0.5.0b0/src/flock/workflow}/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/workflow/agent_activities.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/workflow/temporal_config.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/src/flock/workflow/temporal_setup.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/tests/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/tests/api/test_custom_endpoints.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/tests/core/test_flock_batch.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/tests/integration/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/tests/integration/test_shared_link_store.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/tests/modules/test_enterprise_memory_store.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/tests/modules/test_vector_adapters.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/tests/serialization/__init__.py +0 -0
- {flock_core-0.4.528 → flock_core-0.5.0b0}/tests/tools/test_zendesk_tools.py +0 -0
|
@@ -0,0 +1,351 @@
|
|
|
1
|
+
# AGENT.md - Flock Framework Onboarding Guide
|
|
2
|
+
|
|
3
|
+
## Project Overview
|
|
4
|
+
|
|
5
|
+
**Flock** is a declarative AI agent orchestration framework built by white duck GmbH. It solves common LLM development pain points by providing:
|
|
6
|
+
|
|
7
|
+
- **Declarative Contracts**: Define inputs/outputs with Pydantic models instead of brittle prompts
|
|
8
|
+
- **Built-in Resilience**: Automatic retries, state persistence via Temporal.io
|
|
9
|
+
- **Production-Ready**: Deploy as REST APIs, scale without rewriting
|
|
10
|
+
- **Actually Testable**: Clear contracts make agents unit-testable
|
|
11
|
+
- **Dynamic Workflows**: Self-correcting loops, conditional routing
|
|
12
|
+
- **Unified Architecture**: Simplified from 4 concepts to 2 (Agent + Components)
|
|
13
|
+
|
|
14
|
+
**Key Differentiator**: You define what goes in and what should come out - the framework handles the "how" with LLMs.
|
|
15
|
+
|
|
16
|
+
**Recent Architecture Update**: Flock has been refactored to use a unified component system that simplifies the mental model from "Agent + Evaluator + Router + Modules" to just "Agent + Components". Legacy components have been completely removed.
|
|
17
|
+
|
|
18
|
+
## Project Structure
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
flock/
|
|
22
|
+
├── src/flock/
|
|
23
|
+
│ ├── core/ # Framework foundation
|
|
24
|
+
│ │ ├── flock.py # Main orchestrator class
|
|
25
|
+
│ │ ├── flock_agent.py # Base agent class (~500 lines)
|
|
26
|
+
│ │ ├── registry/ # Thread-safe component discovery & registration
|
|
27
|
+
│ │ ├── context/ # State management
|
|
28
|
+
│ │ ├── execution/ # Local & Temporal executors
|
|
29
|
+
│ │ ├── serialization/ # Save/load functionality
|
|
30
|
+
│ │ └── mcp/ # Model Context Protocol integration
|
|
31
|
+
│ ├── components/ # Unified agent components (evaluation, routing, utility)
|
|
32
|
+
│ ├── tools/ # Utility functions
|
|
33
|
+
│ ├── webapp/ # FastAPI web interface
|
|
34
|
+
│ └── workflow/ # Temporal.io activities
|
|
35
|
+
├── tests/ # Comprehensive test suite
|
|
36
|
+
│ ├── components/ # Tests for unified components
|
|
37
|
+
│ ├── core/ # Core framework tests
|
|
38
|
+
│ └── integration/ # Integration tests
|
|
39
|
+
├── examples/ # Usage examples and showcases
|
|
40
|
+
└── docs/ # Documentation
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Key Components & Architecture
|
|
44
|
+
|
|
45
|
+
### Core Classes
|
|
46
|
+
|
|
47
|
+
1. **`Flock`** (`src/flock/core/flock.py`)
|
|
48
|
+
- Main orchestrator, manages agents and execution
|
|
49
|
+
- Handles both local and Temporal.io execution
|
|
50
|
+
- Entry point for most operations
|
|
51
|
+
|
|
52
|
+
2. **`FlockAgent`** (`src/flock/core/flock_agent.py`)
|
|
53
|
+
- Base class for all agents (refactored from 1000+ to ~500 lines)
|
|
54
|
+
- Lifecycle hooks: initialize → evaluate → terminate
|
|
55
|
+
- **Unified Architecture**: Uses single `components` list instead of separate evaluator/router/modules
|
|
56
|
+
- **Workflow State**: `next_agent` property for explicit workflow control
|
|
57
|
+
- Composition-based architecture with focused components
|
|
58
|
+
|
|
59
|
+
3. **`RegistryHub`** (`src/flock/core/registry/`)
|
|
60
|
+
- Thread-safe registry system using composition pattern
|
|
61
|
+
- Manages agents, callables, types, servers with specialized helpers
|
|
62
|
+
- Auto-registration capabilities with component discovery
|
|
63
|
+
|
|
64
|
+
4. **`FlockContext`** (`src/flock/core/context/context.py`)
|
|
65
|
+
- State management between agent executions
|
|
66
|
+
- History tracking, variable storage
|
|
67
|
+
|
|
68
|
+
### Unified Component Architecture
|
|
69
|
+
|
|
70
|
+
**Mental Model**: Agent + Components (2 concepts instead of 4)
|
|
71
|
+
|
|
72
|
+
**Component Types** (all follow `*ComponentBase` naming convention):
|
|
73
|
+
- **EvaluationComponentBase**: Core LLM evaluation logic
|
|
74
|
+
- **RoutingComponentBase**: Workflow routing decisions (sets `next_agent`)
|
|
75
|
+
- **UtilityComponentBase**: Cross-cutting concerns (metrics, output, memory)
|
|
76
|
+
|
|
77
|
+
**Key Properties**:
|
|
78
|
+
- `agent.components`: List of all components
|
|
79
|
+
- `agent.evaluator`: Primary evaluation component (delegates to helper)
|
|
80
|
+
- `agent.router`: Primary routing component (delegates to helper)
|
|
81
|
+
- `agent.next_agent`: Next agent in workflow (string, callable, or None)
|
|
82
|
+
- `agent._components`: Component management helper (lazy-loaded)
|
|
83
|
+
|
|
84
|
+
### Execution Flow
|
|
85
|
+
|
|
86
|
+
```
|
|
87
|
+
Flock.run() → FlockAgent.run_async() → Components.evaluate() → Router.set_next_agent() → Next Agent
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
**Workflow Steps**:
|
|
91
|
+
1. Agent initializes and runs evaluation components
|
|
92
|
+
2. Routing components analyze results and set `agent.next_agent`
|
|
93
|
+
3. Utility components handle cross-cutting concerns
|
|
94
|
+
4. Orchestrator uses `agent.next_agent` to continue workflow
|
|
95
|
+
|
|
96
|
+
## Development Workflow
|
|
97
|
+
|
|
98
|
+
### Essential Commands
|
|
99
|
+
|
|
100
|
+
```bash
|
|
101
|
+
# Project uses UV as package manager
|
|
102
|
+
uv run python -m pytest tests/core/test_flock_core.py -v # Run core tests
|
|
103
|
+
uv run python -m pytest tests/serialization/ -v # Test serialization
|
|
104
|
+
uv run python -m pytest tests/components/ -v -k memory # Test specific components
|
|
105
|
+
|
|
106
|
+
# Common development tasks
|
|
107
|
+
uv run python examples/01-getting-started/quickstart.py # Run basic example
|
|
108
|
+
uv run python -c "from flock.core import Flock; print('OK')" # Quick import test
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Testing Strategy
|
|
112
|
+
|
|
113
|
+
- **Unit Tests**: `tests/core/` for framework components
|
|
114
|
+
- **Component Tests**: `tests/components/` for unified component architecture
|
|
115
|
+
- **Integration Tests**: `tests/integration/` for external dependencies
|
|
116
|
+
- **Serialization Tests**: `tests/serialization/` for save/load
|
|
117
|
+
|
|
118
|
+
**Important**: Many tests currently have issues unrelated to core functionality (logging conflicts, registry state). Focus on functionality tests.
|
|
119
|
+
|
|
120
|
+
## Known Issues & Gotchas
|
|
121
|
+
|
|
122
|
+
### Current Problems
|
|
123
|
+
1. **Logging conflicts**: `exc_info` parameter duplication causing test failures
|
|
124
|
+
2. **Test brittleness**: Some tests depend on external services or configuration
|
|
125
|
+
|
|
126
|
+
### Code Quality Issues Found
|
|
127
|
+
- Bare `except:` handlers in multiple files
|
|
128
|
+
- Global state management patterns
|
|
129
|
+
- Some circular import dependencies
|
|
130
|
+
- Complex function complexity (Ruff warnings)
|
|
131
|
+
|
|
132
|
+
## Important Patterns & Conventions
|
|
133
|
+
|
|
134
|
+
### Component Registration
|
|
135
|
+
```python
|
|
136
|
+
from flock.core.registry import flock_component
|
|
137
|
+
from flock.core.component.evaluation_component_base import EvaluationComponentBase
|
|
138
|
+
|
|
139
|
+
@flock_component(config_class=MyComponentConfig)
|
|
140
|
+
class MyComponent(EvaluationComponentBase):
|
|
141
|
+
# Component implementation
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
### Agent Creation
|
|
145
|
+
```python
|
|
146
|
+
from flock.core import Flock, FlockFactory
|
|
147
|
+
|
|
148
|
+
flock = Flock(model="openai/gpt-4o")
|
|
149
|
+
agent = FlockFactory.create_default_agent(
|
|
150
|
+
name="my_agent",
|
|
151
|
+
input="query: str",
|
|
152
|
+
output="result: str"
|
|
153
|
+
)
|
|
154
|
+
flock.add_agent(agent)
|
|
155
|
+
result = flock.run(start_agent="my_agent", input={"query": "test"})
|
|
156
|
+
```
|
|
157
|
+
|
|
158
|
+
### Manual Component Assembly
|
|
159
|
+
```python
|
|
160
|
+
from flock.core import FlockAgent
|
|
161
|
+
from flock.core.agent.flock_agent_components import FlockAgentComponents
|
|
162
|
+
from flock.components.evaluation.declarative_evaluation_component import (
|
|
163
|
+
DeclarativeEvaluationComponent, DeclarativeEvaluationConfig
|
|
164
|
+
)
|
|
165
|
+
from flock.components.utility.output_utility_component import (
|
|
166
|
+
OutputUtilityComponent, OutputUtilityConfig
|
|
167
|
+
)
|
|
168
|
+
from flock.components.routing.default_routing_component import (
|
|
169
|
+
DefaultRoutingComponent, DefaultRoutingConfig
|
|
170
|
+
)
|
|
171
|
+
|
|
172
|
+
# Create agent with unified components
|
|
173
|
+
agent = FlockAgent(
|
|
174
|
+
name="my_agent",
|
|
175
|
+
input="query: str",
|
|
176
|
+
output="result: str",
|
|
177
|
+
components=[
|
|
178
|
+
DeclarativeEvaluationComponent(name="evaluator", config=DeclarativeEvaluationConfig()),
|
|
179
|
+
OutputUtilityComponent(name="output", config=OutputUtilityConfig()),
|
|
180
|
+
DefaultRoutingComponent(name="router", config=DefaultRoutingConfig(hand_off="next_agent"))
|
|
181
|
+
]
|
|
182
|
+
)
|
|
183
|
+
|
|
184
|
+
# Use helper for component management
|
|
185
|
+
helper = agent._components # Lazy-loaded property
|
|
186
|
+
print(f"Evaluation components: {len(helper.get_evaluation_components())}")
|
|
187
|
+
print(f"Primary evaluator: {helper.get_primary_evaluator()}")
|
|
188
|
+
|
|
189
|
+
# Basic operations delegate to helper
|
|
190
|
+
agent.add_component(my_component) # Delegates to helper
|
|
191
|
+
agent.get_component("component_name") # Delegates to helper
|
|
192
|
+
|
|
193
|
+
# Alternative: Set next_agent directly
|
|
194
|
+
agent.next_agent = "next_agent_name"
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
### Component Management Helper
|
|
198
|
+
|
|
199
|
+
The `FlockAgentComponents` class provides convenient methods for managing components:
|
|
200
|
+
|
|
201
|
+
```python
|
|
202
|
+
# Access helper through agent property (lazy-loaded)
|
|
203
|
+
helper = agent._components
|
|
204
|
+
|
|
205
|
+
# Component management
|
|
206
|
+
helper.add_component(my_component)
|
|
207
|
+
helper.remove_component("component_name")
|
|
208
|
+
component = helper.get_component("component_name")
|
|
209
|
+
|
|
210
|
+
# Type-specific getters
|
|
211
|
+
evaluation_components = helper.get_evaluation_components()
|
|
212
|
+
routing_components = helper.get_routing_components()
|
|
213
|
+
utility_components = helper.get_utility_components()
|
|
214
|
+
|
|
215
|
+
# Convenience methods
|
|
216
|
+
primary_evaluator = helper.get_primary_evaluator()
|
|
217
|
+
primary_router = helper.get_primary_router()
|
|
218
|
+
enabled_components = helper.get_enabled_components()
|
|
219
|
+
|
|
220
|
+
# Basic operations delegate to helper automatically
|
|
221
|
+
agent.add_component(my_component) # Same as helper.add_component()
|
|
222
|
+
agent.evaluator # Same as helper.get_primary_evaluator()
|
|
223
|
+
agent.router # Same as helper.get_primary_router()
|
|
224
|
+
```
|
|
225
|
+
|
|
226
|
+
### Serialization
|
|
227
|
+
- All core classes inherit from `Serializable`
|
|
228
|
+
- Support JSON, YAML, and Python dict formats
|
|
229
|
+
- Use `to_dict()` / `from_dict()` for persistence
|
|
230
|
+
|
|
231
|
+
## Development Guidelines
|
|
232
|
+
|
|
233
|
+
### When Making Changes
|
|
234
|
+
1. **Always run diagnostics**: Use `get_diagnostics` tool on modified files
|
|
235
|
+
2. **Test serialization**: Many components need to serialize/deserialize correctly
|
|
236
|
+
3. **Check imports**: Circular imports are a known issue
|
|
237
|
+
4. **Memory management**: Be careful with global state (registry, context)
|
|
238
|
+
|
|
239
|
+
### Code Style
|
|
240
|
+
- Use Pydantic for all data models
|
|
241
|
+
- Prefer `async`/`await` for I/O operations
|
|
242
|
+
- Type hints are mandatory
|
|
243
|
+
- Error handling should be specific (avoid bare `except`)
|
|
244
|
+
|
|
245
|
+
### Testing
|
|
246
|
+
- Mock external dependencies (LLM calls, file systems)
|
|
247
|
+
- Use fixtures for complex setup
|
|
248
|
+
- Test both success and failure paths
|
|
249
|
+
- Verify serialization roundtrips
|
|
250
|
+
|
|
251
|
+
## Quick Start for Development
|
|
252
|
+
|
|
253
|
+
1. **Understand the flow**: `Flock` → `FlockAgent` → `Utility/Evaluator/Router` → Result
|
|
254
|
+
2. **Start with examples**: Check `examples/01-getting-started/`
|
|
255
|
+
3. **Read tests**: `tests/core/test_flock_core.py` shows usage patterns
|
|
256
|
+
4. **Use the factory**: `FlockFactory.create_default_agent()` for quick setup
|
|
257
|
+
5. **Focus on contracts**: Input/output signatures are key
|
|
258
|
+
|
|
259
|
+
## Workflow Management
|
|
260
|
+
|
|
261
|
+
### Setting Next Agent
|
|
262
|
+
|
|
263
|
+
You can control workflow flow in three ways:
|
|
264
|
+
|
|
265
|
+
1. **Direct assignment**: `agent.next_agent = "agent_name"`
|
|
266
|
+
2. **Callable**: `agent.next_agent = lambda context, result: "dynamic_agent"`
|
|
267
|
+
3. **Routing component**: Add a routing component that sets `next_agent` based on evaluation results
|
|
268
|
+
|
|
269
|
+
### Routing Components
|
|
270
|
+
|
|
271
|
+
Routing components implement workflow logic:
|
|
272
|
+
|
|
273
|
+
```python
|
|
274
|
+
from flock.components.routing.default_routing_component import DefaultRoutingComponent, DefaultRoutingConfig
|
|
275
|
+
from flock.components.routing.conditional_routing_component import ConditionalRoutingComponent, ConditionalRoutingConfig
|
|
276
|
+
from flock.components.routing.llm_routing_component import LLMRoutingComponent, LLMRoutingConfig
|
|
277
|
+
|
|
278
|
+
# Simple static routing
|
|
279
|
+
router = DefaultRoutingComponent(
|
|
280
|
+
name="router",
|
|
281
|
+
config=DefaultRoutingConfig(hand_off="next_agent")
|
|
282
|
+
)
|
|
283
|
+
|
|
284
|
+
# Conditional routing based on results
|
|
285
|
+
router = ConditionalRoutingComponent(
|
|
286
|
+
name="conditional_router",
|
|
287
|
+
config=ConditionalRoutingConfig(
|
|
288
|
+
condition=lambda result: result.get("confidence", 0) > 0.8,
|
|
289
|
+
true_agent="high_confidence_agent",
|
|
290
|
+
false_agent="low_confidence_agent"
|
|
291
|
+
)
|
|
292
|
+
)
|
|
293
|
+
|
|
294
|
+
# AI-powered routing decisions
|
|
295
|
+
router = LLMRoutingComponent(
|
|
296
|
+
name="llm_router",
|
|
297
|
+
config=LLMRoutingConfig(
|
|
298
|
+
available_agents=["agent_a", "agent_b", "agent_c"],
|
|
299
|
+
routing_prompt="Choose the best next agent based on the result"
|
|
300
|
+
)
|
|
301
|
+
)
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
## Web Interface
|
|
305
|
+
|
|
306
|
+
The framework includes a FastAPI web application at `src/flock/webapp/` with:
|
|
307
|
+
- Agent execution interface
|
|
308
|
+
- Configuration management
|
|
309
|
+
- File upload/download
|
|
310
|
+
- Real-time execution monitoring
|
|
311
|
+
|
|
312
|
+
Start with: `flock.serve()` method on any Flock instance.
|
|
313
|
+
|
|
314
|
+
## External Dependencies
|
|
315
|
+
|
|
316
|
+
- **DSPy**: LLM interaction and prompt management
|
|
317
|
+
- **Temporal.io**: Workflow orchestration and resilience
|
|
318
|
+
- **FastAPI**: Web interface
|
|
319
|
+
- **Pydantic**: Data validation and serialization
|
|
320
|
+
- **OpenTelemetry**: Observability and tracing
|
|
321
|
+
|
|
322
|
+
## Next Priority Areas
|
|
323
|
+
|
|
324
|
+
Based on the review, focus on:
|
|
325
|
+
1. **Fixing logging conflicts** in test suite
|
|
326
|
+
2. **Improving error handling** patterns
|
|
327
|
+
3. **Adding security guidelines** for component development
|
|
328
|
+
4. **Performance optimization** for component operations
|
|
329
|
+
|
|
330
|
+
## Migration Notes
|
|
331
|
+
|
|
332
|
+
The unified architecture completely replaces the legacy system:
|
|
333
|
+
- Legacy evaluators, modules, and routers have been removed
|
|
334
|
+
- All legacy dependencies cleaned up from codebase
|
|
335
|
+
- FlockFactory creates agents with new unified components
|
|
336
|
+
- Workflow execution uses `agent.next_agent` for routing
|
|
337
|
+
- HandOffRequest system replaced with direct property assignment
|
|
338
|
+
|
|
339
|
+
**Key Benefits of New Architecture**:
|
|
340
|
+
- Simpler mental model (2 concepts vs 4)
|
|
341
|
+
- Explicit workflow state management via `agent.next_agent`
|
|
342
|
+
- Clean composition over complex inheritance
|
|
343
|
+
- Easier testing and debugging
|
|
344
|
+
- Unified component registration and discovery
|
|
345
|
+
- Consistent `*ComponentBase` naming convention
|
|
346
|
+
- Full composition pattern with `_components`, `_execution`, `_integration`, `_serialization`, `_lifecycle`
|
|
347
|
+
- Lazy-loaded component helper with rich functionality
|
|
348
|
+
- Thread-safe registry system with specialized helpers
|
|
349
|
+
- Zero code duplication in registry operations
|
|
350
|
+
|
|
351
|
+
This should give you a solid foundation to understand and contribute to the Flock framework efficiently!
|
|
@@ -40,7 +40,7 @@ We follow the [Contributor Covenant](https://www.contributor-covenant.org/) code
|
|
|
40
40
|
|
|
41
41
|
<!-- TOC --><a name="-reporting-issues"></a>
|
|
42
42
|
## ❗ Reporting Issues:
|
|
43
|
-
- Before submitting a new issue,
|
|
43
|
+
- Before submitting a new issue, please check [existing issues](https://github.com/whiteducksoftware/flock/issues) if it has already been reported.
|
|
44
44
|
- To submit a new issue, please use the provided **Issue Templates** and provide a clear and descriptive title along with a detailed description of the problem or feature request, including steps to reproduce if it's a bug.
|
|
45
45
|
|
|
46
46
|
<!-- TOC --><a name="-pull-requests"></a>
|
|
@@ -104,15 +104,15 @@ We follow the [Contributor Covenant](https://www.contributor-covenant.org/) code
|
|
|
104
104
|
<!-- TOC --><a name="a-few-best-practices-for-writing-good-documentation"></a>
|
|
105
105
|
### A few best practices for writing good documentation:
|
|
106
106
|
1. Document the **Why**, not just the how:
|
|
107
|
-
- Documentation should explain the
|
|
108
|
-
- This helps other developers understand the context and reasoning for the implementation, making the code more maintainable and
|
|
107
|
+
- Documentation should explain the rationale behind your decisions, rather than just describing the "how".
|
|
108
|
+
- This helps other developers understand the context and reasoning for the implementation, making the code more maintainable and modifiable.
|
|
109
109
|
2. Keep it Up to Date:
|
|
110
110
|
- Your documentation should evolve alongside the code. If you change the behavior of an existing component of Flock, please also take care to make sure the documentation reflects this fact.
|
|
111
111
|
3. Write for the Reader:
|
|
112
112
|
- Consider the audience for your documentation.
|
|
113
113
|
- It should be accessible and understandable for developers who are not intimately familiar with the code.
|
|
114
114
|
4. Document Intent and Design:
|
|
115
|
-
-
|
|
115
|
+
- Referring to Point 1, Document your decisions of **why** you chose to implement a new component or code change the way you did, if it is not immediately obvious.
|
|
116
116
|
5. Code as Documentation:
|
|
117
117
|
- Well-written code can serve as it's own documentation.
|
|
118
118
|
- Code should be clear, expressive and self-explanatory where possible.
|
|
@@ -120,19 +120,19 @@ We follow the [Contributor Covenant](https://www.contributor-covenant.org/) code
|
|
|
120
120
|
6. Provide Examples:
|
|
121
121
|
- Examples can help other developers understand your changes and are therefore encouraged.
|
|
122
122
|
7. Use Comments Wisely:
|
|
123
|
-
-
|
|
123
|
+
- Avoid redundant comments that merely restate what the code does, which can clutter the codebase and detract from its readability.
|
|
124
124
|
8. Be Pragmatic:
|
|
125
125
|
- There is no need for you to excessively comment every line of code you provide.
|
|
126
126
|
- Add documentation where necessary and focus on keeping documentation on a high level.
|
|
127
127
|
|
|
128
128
|
<!-- TOC --><a name="-testing-and-reliability"></a>
|
|
129
129
|
## 🔭 Testing and Reliability:
|
|
130
|
-
Flock aims to provide
|
|
130
|
+
Flock aims to provide an easy and reliable way to implement agentic applications. Therefore, well tested code is crucial.
|
|
131
131
|
|
|
132
132
|
- Test your changes thoroughly! Ensure that existing tests pass and add **new tests** for any new functionality.
|
|
133
133
|
- Follow Flock's testing conventions and use the provided testing framework.
|
|
134
134
|
- Run the tests before submitting your pull request to confirm that nothing is broken.
|
|
135
|
-
-
|
|
135
|
+
- Tests can be run locally with `pytest -q`
|
|
136
136
|
- Place new tests in `tests/` mirroring the package path.
|
|
137
137
|
- Use [`pytest`](https://docs.pytest.org/en/stable/) fixtures instead of duplicating setup code.
|
|
138
138
|
- For Temporal code, rely on the *Temporal Test Server* fixture.
|
|
@@ -140,7 +140,7 @@ Flock aims to provide a easy and reliable way to implement agentic applications.
|
|
|
140
140
|
|
|
141
141
|
<!-- TOC --><a name="release-process"></a>
|
|
142
142
|
## Release Process:
|
|
143
|
-
1. Maintainer bumps
|
|
143
|
+
1. Maintainer bumps version in `pyproject.toml` following **SemVer**.
|
|
144
144
|
2. Changelog entry added in `docs/about/changelog.md`.
|
|
145
145
|
3. `uv pip install -e .[all] && pytest`
|
|
146
146
|
4. `git tag v.X.Y.Z && git push --tags`
|
|
@@ -0,0 +1,272 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: flock-core
|
|
3
|
+
Version: 0.5.0b0
|
|
4
|
+
Summary: Declarative LLM Orchestration at Scale
|
|
5
|
+
Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
|
|
6
|
+
License-File: LICENSE
|
|
7
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
8
|
+
Classifier: Operating System :: OS Independent
|
|
9
|
+
Classifier: Programming Language :: Python :: 3
|
|
10
|
+
Requires-Python: >=3.10
|
|
11
|
+
Requires-Dist: aiosqlite>=0.21.0
|
|
12
|
+
Requires-Dist: azure-data-tables>=12.7.0
|
|
13
|
+
Requires-Dist: chromadb>=0.6.3
|
|
14
|
+
Requires-Dist: cloudpickle>=3.1.1
|
|
15
|
+
Requires-Dist: croniter>=6.0.0
|
|
16
|
+
Requires-Dist: datasets>=3.2.0
|
|
17
|
+
Requires-Dist: devtools>=0.12.2
|
|
18
|
+
Requires-Dist: dspy==2.6.23
|
|
19
|
+
Requires-Dist: fastapi>=0.115.8
|
|
20
|
+
Requires-Dist: httpx>=0.28.1
|
|
21
|
+
Requires-Dist: litellm==1.69.3
|
|
22
|
+
Requires-Dist: loguru>=0.7.3
|
|
23
|
+
Requires-Dist: markdown2>=2.5.3
|
|
24
|
+
Requires-Dist: mcp>=1.7.1
|
|
25
|
+
Requires-Dist: msgpack>=1.1.0
|
|
26
|
+
Requires-Dist: neo4j>=5.28.1
|
|
27
|
+
Requires-Dist: openai==1.75.0
|
|
28
|
+
Requires-Dist: opentelemetry-api>=1.30.0
|
|
29
|
+
Requires-Dist: opentelemetry-exporter-jaeger-proto-grpc>=1.21.0
|
|
30
|
+
Requires-Dist: opentelemetry-exporter-jaeger>=1.21.0
|
|
31
|
+
Requires-Dist: opentelemetry-exporter-otlp>=1.30.0
|
|
32
|
+
Requires-Dist: opentelemetry-instrumentation-logging>=0.51b0
|
|
33
|
+
Requires-Dist: opentelemetry-sdk>=1.30.0
|
|
34
|
+
Requires-Dist: opik>=1.7.26
|
|
35
|
+
Requires-Dist: pandas>=2.2.3
|
|
36
|
+
Requires-Dist: pillow>=10.4.0
|
|
37
|
+
Requires-Dist: prometheus-client>=0.21.1
|
|
38
|
+
Requires-Dist: psutil>=6.1.1
|
|
39
|
+
Requires-Dist: pydantic-settings>=2.7.1
|
|
40
|
+
Requires-Dist: pydantic==2.10.5
|
|
41
|
+
Requires-Dist: python-box>=7.3.2
|
|
42
|
+
Requires-Dist: python-decouple>=3.8
|
|
43
|
+
Requires-Dist: python-dotenv>=1.0.1
|
|
44
|
+
Requires-Dist: pyyaml>=6.0
|
|
45
|
+
Requires-Dist: questionary>=2.1.0
|
|
46
|
+
Requires-Dist: rich>=13.9.4
|
|
47
|
+
Requires-Dist: rouge-score>=0.1.2
|
|
48
|
+
Requires-Dist: sentence-transformers>=3.4.1
|
|
49
|
+
Requires-Dist: temporalio>=1.9.0
|
|
50
|
+
Requires-Dist: thefuzz>=0.22.1
|
|
51
|
+
Requires-Dist: tiktoken>=0.8.0
|
|
52
|
+
Requires-Dist: toml>=0.10.2
|
|
53
|
+
Requires-Dist: tqdm>=4.60.1
|
|
54
|
+
Requires-Dist: uvicorn>=0.34.0
|
|
55
|
+
Requires-Dist: wd-di>=0.2.14
|
|
56
|
+
Requires-Dist: websockets>=15.0.1
|
|
57
|
+
Requires-Dist: werkzeug>=3.1.3
|
|
58
|
+
Provides-Extra: memory
|
|
59
|
+
Requires-Dist: matplotlib>=3.10.0; extra == 'memory'
|
|
60
|
+
Requires-Dist: mem0ai[graph]>=0.1.101; extra == 'memory'
|
|
61
|
+
Requires-Dist: zep-python>=2.0.2; extra == 'memory'
|
|
62
|
+
Description-Content-Type: text/markdown
|
|
63
|
+
|
|
64
|
+
<p align="center">
|
|
65
|
+
<!-- Placeholder for your Flock Logo/Banner - Replace URL -->
|
|
66
|
+
<img alt="Flock Banner" src="https://raw.githubusercontent.com/whiteducksoftware/flock/master/docs/assets/images/flock.png" width="600">
|
|
67
|
+
</p>
|
|
68
|
+
<p align="center">
|
|
69
|
+
<!-- Update badges -->
|
|
70
|
+
<a href="https://pypi.org/project/flock-core/" target="_blank"><img alt="PyPI Version" src="https://img.shields.io/pypi/v/flock-core?style=for-the-badge&logo=pypi&label=pip%20version"></a>
|
|
71
|
+
<img alt="Python Version" src="https://img.shields.io/badge/python-3.10%2B-blue?style=for-the-badge&logo=python">
|
|
72
|
+
<a href="https://github.com/whiteducksoftware/flock/actions/workflows/deploy-whiteduck-pypi.yml" target="_blank"><img alt="CI Status" src="https://img.shields.io/github/actions/workflow/status/whiteducksoftware/flock/deploy-whiteduck-pypi.yml?branch=master&style=for-the-badge&logo=githubactions&logoColor=white"></a>
|
|
73
|
+
<a href="https://github.com/whiteducksoftware/flock/blob/master/LICENSE" target="_blank"><img alt="License" src="https://img.shields.io/pypi/l/flock-core?style=for-the-badge"></a>
|
|
74
|
+
<a href="https://whiteduck.de" target="_blank"><img alt="Built by white duck" src="https://img.shields.io/badge/Built%20by-white%20duck%20GmbH-white?style=for-the-badge&labelColor=black"></a>
|
|
75
|
+
<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>
|
|
76
|
+
<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>
|
|
77
|
+
</p>
|
|
78
|
+
|
|
79
|
+
|
|
80
|
+
---
|
|
81
|
+
|
|
82
|
+
|
|
83
|
+
## The Problem You Know Too Well
|
|
84
|
+
|
|
85
|
+
🤯 **Prompt Hell**: Brittle 500-line prompts that break with every model update.
|
|
86
|
+
💥 **System Failures**: One bad LLM response crashes your entire workflow
|
|
87
|
+
🧪 **Testing Nightmares**: "How do I unit test a prompt?" (You don't.)
|
|
88
|
+
🧪 **Measuring Quality**: "How do I know my prompts are close to optimal?" (You also don't.)
|
|
89
|
+
📄 **Output Chaos**: Parsing unstructured LLM responses into reliable data
|
|
90
|
+
⛓️ **Orchestration Limits**: Moving beyond simple chains and DAGs? Good luck
|
|
91
|
+
🚀 **Production Gap**: Jupyter notebooks don't scale to enterprise systems
|
|
92
|
+
|
|
93
|
+
*After building dozens of AI systems for enterprise clients, we realized the tooling was fundamentally broken.*
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
**Build with agents, not against them.**
|
|
97
|
+
|
|
98
|
+
|
|
99
|
+
## The Flock Solution
|
|
100
|
+
|
|
101
|
+
**What if you could just skip that 'prompt engineering' step?**
|
|
102
|
+
|
|
103
|
+
Flock is an agent framework for declarative AI workflows. You define what goes in and what should come out, the how is handled by the agent.
|
|
104
|
+
No brittle prompts. No guesswork. Just reliable, testable AI agents.
|
|
105
|
+
|
|
106
|
+
|
|
107
|
+
✅ **Declarative Contracts**: Define inputs/outputs with Pydantic models. Flock handles the LLM complexity.
|
|
108
|
+
⚡ **Built-in Resilience**: Automatic retries, state persistence, and workflow resumption via Temporal.io
|
|
109
|
+
🧪 **Actually Testable**: Clear contracts make agents unit-testable like any other code
|
|
110
|
+
🧪 **Optimal Quality**: Agents posses multiple self-optimization algorithms based on latest research
|
|
111
|
+
🚀 **Dynamic Workflows**: Self-correcting loops, conditional routing, and intelligent decision-making
|
|
112
|
+
🔧 **Zero-Config Production**: Deploy as REST APIs with one command. Scale without rewriting.
|
|
113
|
+
|
|
114
|
+
**Ready to see it in action?**
|
|
115
|
+
|
|
116
|
+
## ⚡ Quick Start
|
|
117
|
+
|
|
118
|
+
```python
|
|
119
|
+
from flock.core import Flock, FlockFactory
|
|
120
|
+
|
|
121
|
+
# 1. Create the main orchestrator
|
|
122
|
+
my_flock = Flock(model="openai/gpt-4.1")
|
|
123
|
+
|
|
124
|
+
# 2. Declaratively define an agent
|
|
125
|
+
brainstorm_agent = FlockFactory.create_default_agent(
|
|
126
|
+
name="idea_generator",
|
|
127
|
+
input="topic",
|
|
128
|
+
output="catchy_title, key_points"
|
|
129
|
+
)
|
|
130
|
+
|
|
131
|
+
# 3. Add the agent to the Flock
|
|
132
|
+
my_flock.add_agent(brainstorm_agent)
|
|
133
|
+
|
|
134
|
+
# 4. Run the agent!
|
|
135
|
+
input_data = {"topic": "The future of AI agents"}
|
|
136
|
+
result = my_flock.run(start_agent="idea_generator", input=input_data)
|
|
137
|
+
|
|
138
|
+
# The result is a Box object (dot-accessible dict)
|
|
139
|
+
print(f"Generated Title: {result.catchy_title}")
|
|
140
|
+
print(f"Key Points: {result.key_points}")
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
**No 20-line prompt fiddling. Just structured output, every time.**
|
|
144
|
+
|
|
145
|
+

|
|
146
|
+
|
|
147
|
+
**Explore more examples →** [**Flock Showcase Repository**](https://github.com/whiteducksoftware/flock-showcase)
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
|
|
151
|
+
## 💾 Installation - Use Flock in your project
|
|
152
|
+
|
|
153
|
+
Get started with the core Flock library:
|
|
154
|
+
|
|
155
|
+
```bash
|
|
156
|
+
# Using uv (recommended)
|
|
157
|
+
uv pip install flock-core
|
|
158
|
+
|
|
159
|
+
# Using pip
|
|
160
|
+
pip install flock-core
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Extras: Install optional dependencies for specific features:
|
|
164
|
+
|
|
165
|
+
```bash
|
|
166
|
+
# Flock tools and mcp server
|
|
167
|
+
uv pip install flock-mcp
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
## 🔑 Installation - Develop Flock
|
|
171
|
+
|
|
172
|
+
```bash
|
|
173
|
+
git clone https://github.com/whiteducksoftware/flock.git
|
|
174
|
+
cd flock
|
|
175
|
+
|
|
176
|
+
# One-liner dev setup after cloning
|
|
177
|
+
pip install poethepoet && poe install
|
|
178
|
+
```
|
|
179
|
+
|
|
180
|
+
Additional provided `poe` tasks and commands:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
poe install # Install the project
|
|
184
|
+
poe build # Build the project
|
|
185
|
+
poe docs # Serve the docs
|
|
186
|
+
poe format # Format the code
|
|
187
|
+
poe lint # Lint the code
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
## 🔑 Environment Setup
|
|
191
|
+
|
|
192
|
+
Flock uses environment variables (typically in a .env file) for configuration, especially API keys. Create a .env file in your project root:
|
|
193
|
+
|
|
194
|
+
```bash
|
|
195
|
+
# .env - Example
|
|
196
|
+
|
|
197
|
+
# --- LLM Provider API Keys (Required by most examples) ---
|
|
198
|
+
# Add keys for providers you use (OpenAI, Anthropic, Gemini, Azure, etc.)
|
|
199
|
+
# Refer to litellm docs (https://docs.litellm.ai/docs/providers) for names
|
|
200
|
+
OPENAI_API_KEY="your-openai-api-key"
|
|
201
|
+
# ANTHROPIC_API_KEY="your-anthropic-api-key"
|
|
202
|
+
|
|
203
|
+
# --- Tool-Specific Keys (Optional) ---
|
|
204
|
+
# TAVILY_API_KEY="your-tavily-search-key"
|
|
205
|
+
# GITHUB_PAT="your-github-personal-access-token"
|
|
206
|
+
|
|
207
|
+
# --- Default Flock Settings (Optional) ---
|
|
208
|
+
DEFAULT_MODEL="openai/gpt-4o" # Default LLM if agent doesn't specify
|
|
209
|
+
|
|
210
|
+
# --- Flock CLI Settings (Managed by `flock settings`) ---
|
|
211
|
+
# SHOW_SECRETS="False"
|
|
212
|
+
# VARS_PER_PAGE="20"
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Be sure that the .env file is added to your .gitignore!
|
|
216
|
+
|
|
217
|
+
|
|
218
|
+
## 🐤 New in Flock 0.5.0 `Kea` 🐤
|
|
219
|
+
|
|
220
|
+
Keas are one of the smartest birds in the world famous for figuring out multi-step puzzles, unlatching doors, and coordinating in small groups to get what it wants.
|
|
221
|
+
|
|
222
|
+
<Insert Kea Logo>
|
|
223
|
+
|
|
224
|
+
### Self-optimizing agents
|
|
225
|
+
|
|
226
|
+
### Everything you need to evaluate and optimize agents
|
|
227
|
+
|
|
228
|
+
### Benchmarks
|
|
229
|
+
|
|
230
|
+
### Smooth Jupyter experience
|
|
231
|
+
|
|
232
|
+
### Multi-Threading and Thread Safety
|
|
233
|
+
|
|
234
|
+
|
|
235
|
+
--------------------------------
|
|
236
|
+
|
|
237
|
+
## 📚 Examples & Tutorials
|
|
238
|
+
|
|
239
|
+
For a comprehensive set of examples, ranging from basic usage to complex projects and advanced features, please visit our dedicated showcase repository:
|
|
240
|
+
|
|
241
|
+
➡️ [github.com/whiteducksoftware/flock-showcase](https://github.com/whiteducksoftware/flock-showcase) ⬅️
|
|
242
|
+
|
|
243
|
+
The showcase includes:
|
|
244
|
+
|
|
245
|
+
- Step-by-step guides for core concepts.
|
|
246
|
+
- Examples of tool usage, routing, memory, and more.
|
|
247
|
+
- Complete mini-projects demonstrating practical applications.
|
|
248
|
+
|
|
249
|
+
## 📖 Documentation
|
|
250
|
+
|
|
251
|
+
Full documentation, including API references and conceptual explanations, can be found at:
|
|
252
|
+
|
|
253
|
+
➡️ [whiteducksoftware.github.io/flock/](https://whiteducksoftware.github.io/flock/) ⬅️
|
|
254
|
+
|
|
255
|
+
## 🤝 Contributing
|
|
256
|
+
|
|
257
|
+
We welcome contributions! Please see the CONTRIBUTING.md file (if available) or open an issue/pull request on GitHub.
|
|
258
|
+
|
|
259
|
+
Ways to contribute:
|
|
260
|
+
|
|
261
|
+
- Report bugs or suggest features.
|
|
262
|
+
- Improve documentation.
|
|
263
|
+
- Contribute new Modules, Evaluators, or Routers.
|
|
264
|
+
- Add examples to the flock-showcase repository.
|
|
265
|
+
|
|
266
|
+
## 📜 License
|
|
267
|
+
|
|
268
|
+
Flock is licensed under the MIT License. See the LICENSE file for details.
|
|
269
|
+
|
|
270
|
+
## 🏢 About
|
|
271
|
+
|
|
272
|
+
Flock is developed and maintained by white duck GmbH, your partner for cloud-native solutions and AI integration.
|