flock-core 0.4.0b22__tar.gz → 0.4.0b24__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.0b22 → flock_core-0.4.0b24}/PKG-INFO +2 -1
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/pyproject.toml +2 -1
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/flock.py +24 -7
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/flock_agent.py +219 -75
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/flock_factory.py +8 -6
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/flock_registry.py +140 -60
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/flock_router.py +19 -6
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/serialization/serialization_utils.py +85 -19
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/util/input_resolver.py +5 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/evaluators/declarative/declarative_evaluator.py +18 -10
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/evaluators/memory/memory_evaluator.py +2 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/evaluators/test/test_case_evaluator.py +2 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/evaluators/zep/zep_evaluator.py +2 -0
- flock_core-0.4.0b24/src/flock/modules/assertion/assertion_module.py +286 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/modules/callback/callback_module.py +2 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/modules/memory/memory_module.py +2 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/modules/output/output_module.py +2 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/modules/performance/metrics_module.py +2 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/modules/zep/zep_module.py +2 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/routers/agent/agent_router.py +7 -5
- flock_core-0.4.0b24/src/flock/routers/conditional/conditional_router.py +482 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/routers/default/default_router.py +5 -1
- flock_core-0.4.0b24/src/flock/routers/feedback/feedback_router.py +114 -0
- flock_core-0.4.0b24/src/flock/routers/list_generator/list_generator_router.py +166 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/routers/llm/llm_router.py +3 -1
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/workflow/activities.py +20 -1
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/uv.lock +258 -1
- flock_core-0.4.0b22/src/flock/evaluators/memory/azure_search_evaluator.py +0 -0
- flock_core-0.4.0b22/src/flock/evaluators/natural_language/natural_language_evaluator.py +0 -66
- flock_core-0.4.0b22/src/flock/modules/azure-search/azure_search_module.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/.devcontainer/devcontainer.json +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/.env_template +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/.github/workflows/.gitkeep +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/.github/workflows/deploy-documentation.yml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/.gitignore +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/.vscode/launch.json +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/.vscode/settings.json +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/.vscode/tasks.json +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/LICENSE +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/README.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/about/changelog.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/about/contributing.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/drawio/architecture.drawio +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/cli_outputs/out.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/components_chart.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/examples/01_01.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/examples/01_02.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/examples/01_03.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/examples/01_04.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/examples/01_05.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/examples/01_06.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/flock.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/flock_cli.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/flow_chart.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/getting-started/first_agent_00.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/hummingbird.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/icon.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/icon.png~ +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/logo.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/memory_concepts.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/memory_flow.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/assets/images/memory_flow_chart.png +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/components/evaluators.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/components/index.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/components/modules.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/components/tools.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/core-concepts/agents.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/core-concepts/declarative.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/core-concepts/index.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/core-concepts/workflows.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/create_doc_boilerplate.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/deployment/index.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/deployment/temporal.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/getting-started/configuration.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/getting-started/index.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/getting-started/installation.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/getting-started/quickstart.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/guides/chaining-agents.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/guides/index.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/index.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/interacting-with-flock/cli-tool.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/interacting-with-flock/index.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/interacting-with-flock/interactive-cli.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/interacting-with-flock/programmatic.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/interacting-with-flock/rest-api.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/interacting-with-flock/web-ui.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/reference/flock_agent.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/reference/index.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/release-notes/magpie.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/docs/stylesheets/extra.css +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/mkdocs.yml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/requirements.txt +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/scripts/code_collector.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/scripts/create_docs.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/__init__.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/assets/release_notes.md +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/config.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/constants.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/create_agent.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/create_flock.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/execute_flock.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/load_agent.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/load_examples.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/load_flock.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/load_release_notes.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/loaded_flock_cli.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/manage_agents.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/registry_management.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/runner.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/settings.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/utils.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/view_results.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/cli/yaml_editor.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/config.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/__init__.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/api/__init__.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/api/endpoints.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/api/main.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/api/models.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/api/run_store.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/api/runner.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/api/ui/__init__.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/api/ui/routes.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/api/ui/utils.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/context/context.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/context/context_manager.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/context/context_vars.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/evaluation/utils.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/execution/batch_executor.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/execution/evaluation_executor.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/execution/local_executor.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/execution/temporal_executor.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/flock_evaluator.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/flock_module.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/interpreter/python_interpreter.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/logging/__init__.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/logging/formatters/enum_builder.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/logging/formatters/theme_builder.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/logging/formatters/themes.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/logging/logging.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/logging/telemetry.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/logging/trace_and_logged.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/mixin/dspy_integration.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/mixin/prompt_parser.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/serialization/__init__.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/serialization/callable_registry.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/serialization/flock_serializer.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/serialization/json_encoder.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/serialization/secure_serializer.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/serialization/serializable.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/tools/azure_tools.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/tools/basic_tools.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/tools/dev_tools/github.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/tools/llm_tools.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/tools/markdown_tools.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/tools/zendesk_tools.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/util/cli_helper.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/util/file_path_utils.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/util/hydrator.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/core/util/loader.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/modules/memory/memory_parser.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/modules/memory/memory_storage.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/platform/docker_tools.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/platform/jaeger_install.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/routers/__init__.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/routers/agent/__init__.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/routers/agent/handoff_agent.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/routers/default/__init__.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/routers/llm/__init__.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/3024-day.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/3024-night.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/aardvark-blue.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/abernathy.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/adventure.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/adventuretime.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/afterglow.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/alabaster.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/alienblood.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/andromeda.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/apple-classic.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/apple-system-colors.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/arcoiris.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/argonaut copy.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/argonaut.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/arthur.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/ateliersulphurpool.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/atom.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/atom_test.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/atomonelight.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/aurora.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/ayu copy.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/ayu-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/ayu-mirage.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/ayu.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/banana-blueberry.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/batman.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/belafonte-day.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/belafonte-night.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/birdsofparadise.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/blazer.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/blue-matrix.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/blueberrypie.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/bluedolphin.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/blulocodark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/blulocolight.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/borland.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/breeze.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/bright-lights.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/broadcast.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/brogrammer.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/builtin-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/builtin-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/builtin-pastel-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/builtin-solarized-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/builtin-solarized-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/builtin-tango-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/builtin-tango-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/c64.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/calamity.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/catppuccin-frappe.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/catppuccin-latte.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/catppuccin-macchiato.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/catppuccin-mocha.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/cga.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/chalk.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/chalkboard.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/challengerdeep.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/chester.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/ciapre.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/clrs.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/cobalt-neon.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/cobalt2.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/coffee-theme.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/crayonponyfish.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/cutiepro.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/cyberdyne.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/cyberpunk.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/dark+.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/dark-pastel.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/darkermatrix.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/darkmatrix.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/darkside.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/dayfox.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/deep.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/desert.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/dimidium.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/dimmedmonokai.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/django.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/djangorebornagain.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/djangosmooth.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/doom-peacock.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/doomone.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/dotgov.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/dracula+.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/dracula.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/duckbones.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/duotone-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/earthsong.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/elemental.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/elementary.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/encom.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/espresso-libre.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/espresso.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/everblush.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/fahrenheit.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/fairyfloss.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/farmhouse-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/farmhouse-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/fideloper.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/firefly-traditional.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/firefoxdev.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/firewatch.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/fishtank.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/flat.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/flatland.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/flexoki-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/flexoki-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/floraverse.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/forestblue.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/framer.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/frontenddelight.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/funforrest.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/galaxy.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/galizur.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/github-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/github.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/glacier.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/grape.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/grass.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/grey-green.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/gruber-darker.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/gruvboxdark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/gruvboxdarkhard.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/gruvboxlight.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/guezwhoz.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/hacktober.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/hardcore.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/harper.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/hax0r-blue.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/hax0r-gr33n.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/hax0r-r3d.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/highway.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/hipster-green.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/hivacruz.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/homebrew.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/hopscotch.256.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/hopscotch.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/hurtado.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/hybrid.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/ic-green-ppl.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/ic-orange-ppl.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/iceberg-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/iceberg-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/idea.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/idletoes.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/ir-black.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/iterm2-dark-background.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/iterm2-default.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/iterm2-light-background.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/iterm2-smoooooth.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/iterm2-solarized-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/iterm2-tango-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/iterm2-tango-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/jackie-brown.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/japanesque.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/jellybeans.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/jetbrains-darcula.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/jubi.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/kanagawabones.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/kibble.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/kolorit.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/konsolas.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/kurokula.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/lab-fox.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/laser.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/later-this-evening.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/lavandula.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/liquidcarbon.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/liquidcarbontransparent.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/lovelace.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/man-page.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/mariana.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/material.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/materialdark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/materialdarker.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/materialdesigncolors.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/materialocean.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/mathias.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/matrix.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/medallion.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/mellifluous.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/midnight-in-mojave.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/mirage.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/misterioso.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/molokai.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/monalisa.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/monokai-remastered.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/monokai-soda.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/monokai-vivid.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/n0tch2k.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/neobones-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/neobones-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/neon.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/neopolitan.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/neutron.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/night-owlish-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/nightfox.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/nightlion-v1.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/nightlion-v2.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/niji.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/nocturnal-winter.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/nord-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/nord.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/novel.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/nvimdark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/nvimlight.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/obsidian.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/ocean.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/oceanic-next.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/oceanicmaterial.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/ollie.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/onehalfdark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/onehalflight.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/operator-mono-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/overnight-slumber.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/oxocarbon.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/palenighthc.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/pandora.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/paraiso-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/paulmillr.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/pencildark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/pencillight.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/peppermint.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/piatto-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/pnevma.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/popping-and-locking.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/primary.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/pro-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/pro.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/purple-rain.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/purplepeter.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/rapture.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/raycast-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/raycast-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/rebecca.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/red-alert.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/red-planet.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/red-sands.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/relaxed.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/retro.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/rippedcasts.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/rose-pine-dawn.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/rose-pine-moon.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/rose-pine.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/rouge-2.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/royal.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/ryuuko.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/sakura.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/scarlet-protocol.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/seafoam-pastel.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/seashells.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/seoulbones-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/seoulbones-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/seti.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/shades-of-purple.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/shaman.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/slate.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/sleepyhollow.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/smyck.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/snazzy.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/softserver.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/solarized-darcula.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/solarized-dark---patched.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/spacedust.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/spacegray-eighties.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/spacegray.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/spiderman.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/spring.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/square.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/sublette.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/subliminal.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/sugarplum.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/sundried.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/symfonic.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/synthwave-everything.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/synthwave.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/synthwavealpha.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/tango-adapted.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/tango-half-adapted.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/teerb.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/terafox.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/terminal-basic.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/thayer-bright.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/the-hulk.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/tinacious-design-(dark).toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/tinacious-design-(light).toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/tokyonight-day.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/tokyonight-storm.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/tokyonight.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/tomorrow-night-blue.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/tomorrow-night-bright.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/tomorrow-night-burns.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/tomorrow-night.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/tomorrow.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/toychest.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/treehouse.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/twilight.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/ubuntu.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/ultradark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/ultraviolent.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/underthesea.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/unikitty.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/urple.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/vaughn.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/vesper.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/vibrantink.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/vimbones.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/violet-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/violet-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/warmneon.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/wez.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/whimsy.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/wildcherry.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/wilmersdorf.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/wombat.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/wryan.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/xcodedark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/xcodedarkhc.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/xcodelight.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/xcodelighthc.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/xcodewwdc.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/zenbones-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/zenbones-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/zenbones.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/zenburn.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/zenburned.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/zenwritten-dark.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/themes/zenwritten-light.toml +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/workflow/__init__.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/workflow/agent_activities.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/workflow/temporal_setup.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/src/flock/workflow/workflow.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/tests/__init__.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/tests/core/test_flock_batch.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/tests/core/test_flock_core.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/tests/serialization/__init__.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/tests/serialization/test_enhanced_serialization.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/tests/serialization/test_file_path_serialization.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/tests/serialization/test_flock_serializer.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/tests/serialization/test_nested_serialization.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/tests/serialization/test_yaml_serialization.py +0 -0
- {flock_core-0.4.0b22 → flock_core-0.4.0b24}/tests/tools/test_zendesk_tools.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flock-core
|
|
3
|
-
Version: 0.4.
|
|
3
|
+
Version: 0.4.0b24
|
|
4
4
|
Summary: Declarative LLM Orchestration at Scale
|
|
5
5
|
Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -17,6 +17,7 @@ Requires-Dist: dspy==2.6.16
|
|
|
17
17
|
Requires-Dist: duckduckgo-search>=7.3.2
|
|
18
18
|
Requires-Dist: fastapi>=0.115.8
|
|
19
19
|
Requires-Dist: httpx>=0.28.1
|
|
20
|
+
Requires-Dist: inspect-ai>=0.3.88
|
|
20
21
|
Requires-Dist: litellm==1.63.7
|
|
21
22
|
Requires-Dist: loguru>=0.7.3
|
|
22
23
|
Requires-Dist: matplotlib>=3.10.0
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
[project]
|
|
2
2
|
name = "flock-core"
|
|
3
|
-
version = "0.4.0b-
|
|
3
|
+
version = "0.4.0b-24"
|
|
4
4
|
description = "Declarative LLM Orchestration at Scale"
|
|
5
5
|
readme = "README.md"
|
|
6
6
|
authors = [
|
|
@@ -22,6 +22,7 @@ dependencies = [
|
|
|
22
22
|
"duckduckgo-search>=7.3.2",
|
|
23
23
|
"fastapi>=0.115.8",
|
|
24
24
|
"httpx>=0.28.1",
|
|
25
|
+
"inspect-ai>=0.3.88",
|
|
25
26
|
"litellm==1.63.7",
|
|
26
27
|
"loguru>=0.7.3",
|
|
27
28
|
"matplotlib>=3.10.0",
|
|
@@ -59,6 +59,10 @@ FlockRegistry = get_registry() # Get the registry instance
|
|
|
59
59
|
# Define TypeVar for generic class methods like from_dict
|
|
60
60
|
T = TypeVar("T", bound="Flock")
|
|
61
61
|
|
|
62
|
+
from rich.traceback import install
|
|
63
|
+
|
|
64
|
+
install(show_locals=True)
|
|
65
|
+
|
|
62
66
|
|
|
63
67
|
class Flock(BaseModel, Serializable):
|
|
64
68
|
"""Orchestrator for managing and executing agent systems.
|
|
@@ -350,9 +354,13 @@ class Flock(BaseModel, Serializable):
|
|
|
350
354
|
try:
|
|
351
355
|
resolved_start_agent = self._agents.get(start_agent_name)
|
|
352
356
|
if not resolved_start_agent:
|
|
353
|
-
resolved_start_agent = FlockRegistry.get_agent(
|
|
357
|
+
resolved_start_agent = FlockRegistry.get_agent(
|
|
358
|
+
start_agent_name
|
|
359
|
+
)
|
|
354
360
|
if not resolved_start_agent:
|
|
355
|
-
raise ValueError(
|
|
361
|
+
raise ValueError(
|
|
362
|
+
f"Start agent '{start_agent_name}' not found."
|
|
363
|
+
)
|
|
356
364
|
self.add_agent(resolved_start_agent)
|
|
357
365
|
|
|
358
366
|
run_context = context if context else FlockContext()
|
|
@@ -384,15 +392,20 @@ class Flock(BaseModel, Serializable):
|
|
|
384
392
|
|
|
385
393
|
# Execute workflow
|
|
386
394
|
if not self.enable_temporal:
|
|
387
|
-
result = await run_local_workflow(
|
|
395
|
+
result = await run_local_workflow(
|
|
396
|
+
run_context, box_result=False
|
|
397
|
+
)
|
|
388
398
|
else:
|
|
389
|
-
result = await run_temporal_workflow(
|
|
399
|
+
result = await run_temporal_workflow(
|
|
400
|
+
run_context, box_result=False
|
|
401
|
+
)
|
|
390
402
|
|
|
391
403
|
span.set_attribute("result.type", str(type(result)))
|
|
392
404
|
result_str = str(result)
|
|
393
405
|
span.set_attribute(
|
|
394
406
|
"result.preview",
|
|
395
|
-
result_str[:1000]
|
|
407
|
+
result_str[:1000]
|
|
408
|
+
+ ("..." if len(result_str) > 1000 else ""),
|
|
396
409
|
)
|
|
397
410
|
|
|
398
411
|
if box_result:
|
|
@@ -400,13 +413,17 @@ class Flock(BaseModel, Serializable):
|
|
|
400
413
|
logger.debug("Boxing final result.")
|
|
401
414
|
return Box(result)
|
|
402
415
|
except ImportError:
|
|
403
|
-
logger.warning(
|
|
416
|
+
logger.warning(
|
|
417
|
+
"Box library not installed, returning raw dict."
|
|
418
|
+
)
|
|
404
419
|
return result
|
|
405
420
|
else:
|
|
406
421
|
return result
|
|
407
422
|
|
|
408
423
|
except Exception as e:
|
|
409
|
-
logger.error(
|
|
424
|
+
logger.error(
|
|
425
|
+
f"Flock run '{self.name}' failed: {e}", exc_info=True
|
|
426
|
+
)
|
|
410
427
|
span.record_exception(e)
|
|
411
428
|
span.set_status(trace.Status(trace.StatusCode.ERROR, str(e)))
|
|
412
429
|
return {
|
|
@@ -23,9 +23,9 @@ from rich.console import Console
|
|
|
23
23
|
|
|
24
24
|
# Core Flock components (ensure these are importable)
|
|
25
25
|
from flock.core.context.context import FlockContext
|
|
26
|
-
from flock.core.flock_evaluator import FlockEvaluator
|
|
27
|
-
from flock.core.flock_module import FlockModule
|
|
28
|
-
from flock.core.flock_router import FlockRouter
|
|
26
|
+
from flock.core.flock_evaluator import FlockEvaluator, FlockEvaluatorConfig
|
|
27
|
+
from flock.core.flock_module import FlockModule, FlockModuleConfig
|
|
28
|
+
from flock.core.flock_router import FlockRouter, FlockRouterConfig
|
|
29
29
|
from flock.core.logging.logging import get_logger
|
|
30
30
|
|
|
31
31
|
# Mixins and Serialization components
|
|
@@ -45,6 +45,15 @@ tracer = trace.get_tracer(__name__)
|
|
|
45
45
|
T = TypeVar("T", bound="FlockAgent")
|
|
46
46
|
|
|
47
47
|
|
|
48
|
+
SignatureType = (
|
|
49
|
+
str
|
|
50
|
+
| Callable[..., str]
|
|
51
|
+
| type[BaseModel]
|
|
52
|
+
| Callable[..., type[BaseModel]]
|
|
53
|
+
| None
|
|
54
|
+
)
|
|
55
|
+
|
|
56
|
+
|
|
48
57
|
# Make FlockAgent inherit from Serializable
|
|
49
58
|
class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
|
|
50
59
|
"""Core, declarative base class for Flock agents, enabling serialization,
|
|
@@ -61,14 +70,14 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
|
|
|
61
70
|
"",
|
|
62
71
|
description="A human-readable description or a callable returning one.",
|
|
63
72
|
)
|
|
64
|
-
input:
|
|
73
|
+
input: SignatureType = Field(
|
|
65
74
|
None,
|
|
66
75
|
description=(
|
|
67
76
|
"Signature for input keys. Supports type hints (:) and descriptions (|). "
|
|
68
77
|
"E.g., 'query: str | Search query, context: dict | Conversation context'. Can be a callable."
|
|
69
78
|
),
|
|
70
79
|
)
|
|
71
|
-
output:
|
|
80
|
+
output: SignatureType = Field(
|
|
72
81
|
None,
|
|
73
82
|
description=(
|
|
74
83
|
"Signature for output keys. Supports type hints (:) and descriptions (|). "
|
|
@@ -111,6 +120,43 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
|
|
|
111
120
|
description="Runtime context associated with the flock execution.",
|
|
112
121
|
)
|
|
113
122
|
|
|
123
|
+
def __init__(
|
|
124
|
+
self,
|
|
125
|
+
name: str,
|
|
126
|
+
model: str | None = None,
|
|
127
|
+
description: str | Callable[..., str] | None = "",
|
|
128
|
+
input: SignatureType = None,
|
|
129
|
+
output: SignatureType = None,
|
|
130
|
+
tools: list[Callable[..., Any]] | None = None,
|
|
131
|
+
evaluator: "FlockEvaluator | None" = None,
|
|
132
|
+
handoff_router: "FlockRouter | None" = None,
|
|
133
|
+
modules: dict[str, "FlockModule"] | None = None, # Use dict for modules
|
|
134
|
+
write_to_file: bool = False,
|
|
135
|
+
wait_for_input: bool = False,
|
|
136
|
+
**kwargs,
|
|
137
|
+
):
|
|
138
|
+
super().__init__(
|
|
139
|
+
name=name,
|
|
140
|
+
model=model,
|
|
141
|
+
description=description,
|
|
142
|
+
input=input, # Store the raw input spec
|
|
143
|
+
output=output, # Store the raw output spec
|
|
144
|
+
tools=tools,
|
|
145
|
+
write_to_file=write_to_file,
|
|
146
|
+
wait_for_input=wait_for_input,
|
|
147
|
+
evaluator=evaluator,
|
|
148
|
+
handoff_router=handoff_router,
|
|
149
|
+
modules=modules
|
|
150
|
+
if modules is not None
|
|
151
|
+
else {}, # Ensure modules is a dict
|
|
152
|
+
**kwargs,
|
|
153
|
+
)
|
|
154
|
+
|
|
155
|
+
if isinstance(self.input, type) and issubclass(self.input, BaseModel):
|
|
156
|
+
self._input_model = self.input
|
|
157
|
+
if isinstance(self.output, type) and issubclass(self.output, BaseModel):
|
|
158
|
+
self._output_model = self.output
|
|
159
|
+
|
|
114
160
|
# --- Existing Methods (add_module, remove_module, etc.) ---
|
|
115
161
|
# (Keep these methods as they were, adding type hints where useful)
|
|
116
162
|
def add_module(self, module: FlockModule) -> None:
|
|
@@ -359,6 +405,114 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
|
|
|
359
405
|
span.record_exception(temporal_error)
|
|
360
406
|
raise
|
|
361
407
|
|
|
408
|
+
def add_component(
|
|
409
|
+
self,
|
|
410
|
+
config_instance: FlockModuleConfig
|
|
411
|
+
| FlockRouterConfig
|
|
412
|
+
| FlockEvaluatorConfig,
|
|
413
|
+
component_name: str | None = None,
|
|
414
|
+
) -> "FlockAgent":
|
|
415
|
+
"""Adds or replaces a component (Evaluator, Router, Module) based on its configuration object.
|
|
416
|
+
|
|
417
|
+
Args:
|
|
418
|
+
config_instance: An instance of a config class inheriting from
|
|
419
|
+
FlockModuleConfig, FlockRouterConfig, or FlockEvaluatorConfig.
|
|
420
|
+
component_name: Explicit name for the component (required for Modules if not in config).
|
|
421
|
+
|
|
422
|
+
Returns:
|
|
423
|
+
self for potential chaining.
|
|
424
|
+
"""
|
|
425
|
+
from flock.core.flock_registry import get_registry
|
|
426
|
+
|
|
427
|
+
config_type = type(config_instance)
|
|
428
|
+
registry = get_registry() # Get registry instance
|
|
429
|
+
logger.debug(
|
|
430
|
+
f"Attempting to add component via config: {config_type.__name__}"
|
|
431
|
+
)
|
|
432
|
+
|
|
433
|
+
# --- 1. Find Component Class using Registry Map ---
|
|
434
|
+
ComponentClass = registry.get_component_class_for_config(config_type)
|
|
435
|
+
|
|
436
|
+
if not ComponentClass:
|
|
437
|
+
logger.error(
|
|
438
|
+
f"No component class registered for config type {config_type.__name__}. Use @flock_component(config_class=...) on the component."
|
|
439
|
+
)
|
|
440
|
+
raise TypeError(
|
|
441
|
+
f"Cannot find component class for config {config_type.__name__}"
|
|
442
|
+
)
|
|
443
|
+
|
|
444
|
+
component_class_name = ComponentClass.__name__
|
|
445
|
+
logger.debug(
|
|
446
|
+
f"Found component class '{component_class_name}' mapped to config '{config_type.__name__}'"
|
|
447
|
+
)
|
|
448
|
+
|
|
449
|
+
# --- 2. Determine Assignment Target and Name (Same as before) ---
|
|
450
|
+
instance_name = component_name
|
|
451
|
+
attribute_name: str = ""
|
|
452
|
+
|
|
453
|
+
if issubclass(ComponentClass, FlockEvaluator):
|
|
454
|
+
attribute_name = "evaluator"
|
|
455
|
+
if not instance_name:
|
|
456
|
+
instance_name = getattr(
|
|
457
|
+
config_instance, "name", component_class_name.lower()
|
|
458
|
+
)
|
|
459
|
+
|
|
460
|
+
elif issubclass(ComponentClass, FlockRouter):
|
|
461
|
+
attribute_name = "handoff_router"
|
|
462
|
+
if not instance_name:
|
|
463
|
+
instance_name = getattr(
|
|
464
|
+
config_instance, "name", component_class_name.lower()
|
|
465
|
+
)
|
|
466
|
+
|
|
467
|
+
elif issubclass(ComponentClass, FlockModule):
|
|
468
|
+
attribute_name = "modules"
|
|
469
|
+
if not instance_name:
|
|
470
|
+
instance_name = getattr(
|
|
471
|
+
config_instance, "name", component_class_name.lower()
|
|
472
|
+
)
|
|
473
|
+
if not instance_name:
|
|
474
|
+
raise ValueError(
|
|
475
|
+
"Module name must be provided either in config or as component_name argument."
|
|
476
|
+
)
|
|
477
|
+
# Ensure config has name if module expects it
|
|
478
|
+
if hasattr(config_instance, "name") and not getattr(
|
|
479
|
+
config_instance, "name", None
|
|
480
|
+
):
|
|
481
|
+
setattr(config_instance, "name", instance_name)
|
|
482
|
+
|
|
483
|
+
else: # Should be caught by registry map logic ideally
|
|
484
|
+
raise TypeError(
|
|
485
|
+
f"Class '{component_class_name}' mapped from config is not a valid Flock component."
|
|
486
|
+
)
|
|
487
|
+
|
|
488
|
+
# --- 3. Instantiate the Component (Same as before) ---
|
|
489
|
+
try:
|
|
490
|
+
init_args = {"config": config_instance, "name": instance_name}
|
|
491
|
+
|
|
492
|
+
component_instance = ComponentClass(**init_args)
|
|
493
|
+
except Exception as e:
|
|
494
|
+
logger.error(
|
|
495
|
+
f"Failed to instantiate {ComponentClass.__name__} with config {config_type.__name__}: {e}",
|
|
496
|
+
exc_info=True,
|
|
497
|
+
)
|
|
498
|
+
raise RuntimeError(f"Component instantiation failed: {e}") from e
|
|
499
|
+
|
|
500
|
+
# --- 4. Assign to the Agent (Same as before) ---
|
|
501
|
+
if attribute_name == "modules":
|
|
502
|
+
if not isinstance(self.modules, dict):
|
|
503
|
+
self.modules = {}
|
|
504
|
+
self.modules[instance_name] = component_instance
|
|
505
|
+
logger.info(
|
|
506
|
+
f"Added/Updated module '{instance_name}' (type: {ComponentClass.__name__}) to agent '{self.name}'"
|
|
507
|
+
)
|
|
508
|
+
else:
|
|
509
|
+
setattr(self, attribute_name, component_instance)
|
|
510
|
+
logger.info(
|
|
511
|
+
f"Set {attribute_name} to {ComponentClass.__name__} (instance name: '{instance_name}') for agent '{self.name}'"
|
|
512
|
+
)
|
|
513
|
+
|
|
514
|
+
return self
|
|
515
|
+
|
|
362
516
|
# resolve_callables remains useful for dynamic definitions
|
|
363
517
|
def resolve_callables(self, context: FlockContext | None = None) -> None:
|
|
364
518
|
"""Resolves callable fields (description, input, output) using context."""
|
|
@@ -428,81 +582,71 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
|
|
|
428
582
|
exclude_none=True, # Exclude None values for cleaner output
|
|
429
583
|
)
|
|
430
584
|
logger.debug(f"Base agent data for '{self.name}': {list(data.keys())}")
|
|
585
|
+
serialized_modules = {}
|
|
586
|
+
|
|
587
|
+
def add_serialized_component(component: Any, field_name: str):
|
|
588
|
+
if component:
|
|
589
|
+
comp_type = type(component)
|
|
590
|
+
type_name = FlockRegistry.get_component_type_name(
|
|
591
|
+
comp_type
|
|
592
|
+
) # Get registered name
|
|
593
|
+
if type_name:
|
|
594
|
+
try:
|
|
595
|
+
serialized_component_data = serialize_item(component)
|
|
596
|
+
|
|
597
|
+
if not isinstance(serialized_component_data, dict):
|
|
598
|
+
logger.error(
|
|
599
|
+
f"Serialization of component {type_name} for field '{field_name}' did not result in a dictionary. Got: {type(serialized_component_data)}"
|
|
600
|
+
)
|
|
601
|
+
serialized_modules[field_name] = {
|
|
602
|
+
"type": type_name,
|
|
603
|
+
"name": getattr(component, "name", "unknown"),
|
|
604
|
+
"error": "serialization_failed_non_dict",
|
|
605
|
+
}
|
|
606
|
+
else:
|
|
607
|
+
serialized_component_data["type"] = type_name
|
|
608
|
+
serialized_modules[field_name] = (
|
|
609
|
+
serialized_component_data
|
|
610
|
+
)
|
|
611
|
+
logger.debug(
|
|
612
|
+
f"Successfully serialized component for field '{field_name}' (type: {type_name})"
|
|
613
|
+
)
|
|
431
614
|
|
|
432
|
-
|
|
433
|
-
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
evaluator_type_name = FlockRegistry.get_component_type_name(
|
|
437
|
-
type(self.evaluator)
|
|
438
|
-
)
|
|
439
|
-
if evaluator_type_name:
|
|
440
|
-
# Recursively serialize the evaluator's dict representation
|
|
441
|
-
evaluator_dict = serialize_item(
|
|
442
|
-
self.evaluator.model_dump(mode="json", exclude_none=True)
|
|
443
|
-
)
|
|
444
|
-
evaluator_dict["type"] = evaluator_type_name # Add type marker
|
|
445
|
-
data["evaluator"] = evaluator_dict
|
|
446
|
-
logger.debug(
|
|
447
|
-
f"Added evaluator of type '{evaluator_type_name}' to agent '{self.name}'"
|
|
448
|
-
)
|
|
449
|
-
else:
|
|
450
|
-
logger.warning(
|
|
451
|
-
f"Could not get registered type name for evaluator {type(self.evaluator).__name__} in agent '{self.name}'. Skipping serialization."
|
|
452
|
-
)
|
|
453
|
-
|
|
454
|
-
# Router
|
|
455
|
-
if self.handoff_router:
|
|
456
|
-
logger.debug(f"Serializing router for agent '{self.name}'")
|
|
457
|
-
router_type_name = FlockRegistry.get_component_type_name(
|
|
458
|
-
type(self.handoff_router)
|
|
459
|
-
)
|
|
460
|
-
if router_type_name:
|
|
461
|
-
router_dict = serialize_item(
|
|
462
|
-
self.handoff_router.model_dump(
|
|
463
|
-
mode="json", exclude_none=True
|
|
464
|
-
)
|
|
465
|
-
)
|
|
466
|
-
router_dict["type"] = router_type_name
|
|
467
|
-
data["handoff_router"] = router_dict
|
|
468
|
-
logger.debug(
|
|
469
|
-
f"Added router of type '{router_type_name}' to agent '{self.name}'"
|
|
470
|
-
)
|
|
471
|
-
else:
|
|
472
|
-
logger.warning(
|
|
473
|
-
f"Could not get registered type name for router {type(self.handoff_router).__name__} in agent '{self.name}'. Skipping serialization."
|
|
474
|
-
)
|
|
475
|
-
|
|
476
|
-
# Modules
|
|
477
|
-
if self.modules:
|
|
478
|
-
logger.debug(
|
|
479
|
-
f"Serializing {len(self.modules)} modules for agent '{self.name}'"
|
|
480
|
-
)
|
|
481
|
-
serialized_modules = {}
|
|
482
|
-
for name, module_instance in self.modules.items():
|
|
483
|
-
module_type_name = FlockRegistry.get_component_type_name(
|
|
484
|
-
type(module_instance)
|
|
485
|
-
)
|
|
486
|
-
if module_type_name:
|
|
487
|
-
module_dict = serialize_item(
|
|
488
|
-
module_instance.model_dump(
|
|
489
|
-
mode="json", exclude_none=True
|
|
615
|
+
except Exception as e:
|
|
616
|
+
logger.error(
|
|
617
|
+
f"Failed to serialize component {type_name} for field '{field_name}': {e}",
|
|
618
|
+
exc_info=True,
|
|
490
619
|
)
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
)
|
|
620
|
+
serialized_modules[field_name] = {
|
|
621
|
+
"type": type_name,
|
|
622
|
+
"name": getattr(component, "name", "unknown"),
|
|
623
|
+
"error": "serialization_failed",
|
|
624
|
+
}
|
|
497
625
|
else:
|
|
498
626
|
logger.warning(
|
|
499
|
-
f"
|
|
627
|
+
f"Cannot serialize unregistered component {comp_type.__name__} for field '{field_name}'"
|
|
500
628
|
)
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
629
|
+
|
|
630
|
+
add_serialized_component(self.evaluator, "evaluator")
|
|
631
|
+
if serialized_modules:
|
|
632
|
+
data["evaluator"] = serialized_modules["evaluator"]
|
|
633
|
+
logger.debug(f"Added evaluator to agent '{self.name}'")
|
|
634
|
+
|
|
635
|
+
serialized_modules = {}
|
|
636
|
+
add_serialized_component(self.handoff_router, "handoff_router")
|
|
637
|
+
if serialized_modules:
|
|
638
|
+
data["handoff_router"] = serialized_modules["handoff_router"]
|
|
639
|
+
logger.debug(f"Added handoff_router to agent '{self.name}'")
|
|
640
|
+
|
|
641
|
+
serialized_modules = {}
|
|
642
|
+
for module in self.modules.values():
|
|
643
|
+
add_serialized_component(module, module.name)
|
|
644
|
+
|
|
645
|
+
if serialized_modules:
|
|
646
|
+
data["modules"] = serialized_modules
|
|
647
|
+
logger.debug(
|
|
648
|
+
f"Added {len(serialized_modules)} modules to agent '{self.name}'"
|
|
649
|
+
)
|
|
506
650
|
|
|
507
651
|
# --- Serialize Tools (Callables) ---
|
|
508
652
|
if self.tools:
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
from collections.abc import Callable
|
|
4
4
|
from typing import Any
|
|
5
5
|
|
|
6
|
-
from flock.core.flock_agent import FlockAgent
|
|
6
|
+
from flock.core.flock_agent import FlockAgent, SignatureType
|
|
7
7
|
from flock.core.logging.formatters.themes import OutputTheme
|
|
8
8
|
from flock.evaluators.declarative.declarative_evaluator import (
|
|
9
9
|
DeclarativeEvaluator,
|
|
@@ -24,15 +24,15 @@ class FlockFactory:
|
|
|
24
24
|
name: str,
|
|
25
25
|
description: str | Callable[..., str] | None = None,
|
|
26
26
|
model: str | Callable[..., str] | None = None,
|
|
27
|
-
input:
|
|
28
|
-
output:
|
|
27
|
+
input: SignatureType = None,
|
|
28
|
+
output: SignatureType = None,
|
|
29
29
|
tools: list[Callable[..., Any] | Any] | None = None,
|
|
30
30
|
use_cache: bool = True,
|
|
31
31
|
enable_rich_tables: bool = False,
|
|
32
32
|
output_theme: OutputTheme = OutputTheme.abernathy,
|
|
33
33
|
wait_for_input: bool = False,
|
|
34
34
|
temperature: float = 0.0,
|
|
35
|
-
max_tokens: int =
|
|
35
|
+
max_tokens: int = 8192,
|
|
36
36
|
alert_latency_threshold_ms: int = 30000,
|
|
37
37
|
no_output: bool = False,
|
|
38
38
|
print_context: bool = False,
|
|
@@ -42,10 +42,12 @@ class FlockFactory:
|
|
|
42
42
|
) -> FlockAgent:
|
|
43
43
|
"""Creates a default FlockAgent.
|
|
44
44
|
|
|
45
|
-
The default agent includes
|
|
45
|
+
The default agent includes the following modules:
|
|
46
|
+
- DeclarativeEvaluator
|
|
46
47
|
- OutputModule
|
|
48
|
+
- MetricsModule
|
|
47
49
|
|
|
48
|
-
It also includes
|
|
50
|
+
It also includes direct acces to the most important configurations.
|
|
49
51
|
"""
|
|
50
52
|
eval_config = DeclarativeEvaluatorConfig(
|
|
51
53
|
model=model,
|