flock-core 0.4.0b21__tar.gz → 0.4.0b23__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.0b21 → flock_core-0.4.0b23}/.gitignore +1 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/PKG-INFO +2 -1
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/pyproject.toml +2 -1
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/flock_agent.py +60 -70
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/flock_factory.py +1 -1
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/flock_registry.py +77 -45
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/flock_router.py +19 -6
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/mixin/dspy_integration.py +1 -1
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/serialization/serialization_utils.py +85 -19
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/util/input_resolver.py +5 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/evaluators/declarative/declarative_evaluator.py +23 -13
- flock_core-0.4.0b23/src/flock/modules/assertion/assertion_module.py +286 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/routers/agent/agent_router.py +5 -5
- flock_core-0.4.0b23/src/flock/routers/conditional/conditional_router.py +482 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/routers/default/default_router.py +3 -1
- flock_core-0.4.0b23/src/flock/routers/feedback/feedback_router.py +114 -0
- flock_core-0.4.0b23/src/flock/routers/list_generator/list_generator_router.py +166 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/routers/llm/llm_router.py +1 -1
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/workflow/activities.py +20 -1
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/uv.lock +258 -1
- flock_core-0.4.0b21/.sesskey +0 -1
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/.devcontainer/devcontainer.json +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/.env_template +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/.github/workflows/.gitkeep +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/.github/workflows/deploy-documentation.yml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/.vscode/launch.json +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/.vscode/settings.json +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/.vscode/tasks.json +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/LICENSE +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/README.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/about/changelog.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/about/contributing.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/drawio/architecture.drawio +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/cli_outputs/out.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/components_chart.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/examples/01_01.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/examples/01_02.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/examples/01_03.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/examples/01_04.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/examples/01_05.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/examples/01_06.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/flock.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/flock_cli.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/flow_chart.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/getting-started/first_agent_00.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/hummingbird.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/icon.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/icon.png~ +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/logo.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/memory_concepts.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/memory_flow.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/assets/images/memory_flow_chart.png +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/components/evaluators.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/components/index.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/components/modules.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/components/tools.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/core-concepts/agents.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/core-concepts/declarative.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/core-concepts/index.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/core-concepts/workflows.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/create_doc_boilerplate.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/deployment/index.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/deployment/temporal.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/getting-started/configuration.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/getting-started/index.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/getting-started/installation.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/getting-started/quickstart.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/guides/chaining-agents.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/guides/index.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/index.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/interacting-with-flock/cli-tool.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/interacting-with-flock/index.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/interacting-with-flock/interactive-cli.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/interacting-with-flock/programmatic.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/interacting-with-flock/rest-api.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/interacting-with-flock/web-ui.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/reference/flock_agent.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/reference/index.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/release-notes/magpie.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/docs/stylesheets/extra.css +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/mkdocs.yml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/requirements.txt +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/scripts/code_collector.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/scripts/create_docs.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/__init__.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/assets/release_notes.md +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/config.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/constants.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/create_agent.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/create_flock.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/execute_flock.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/load_agent.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/load_examples.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/load_flock.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/load_release_notes.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/loaded_flock_cli.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/manage_agents.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/registry_management.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/runner.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/settings.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/utils.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/view_results.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/cli/yaml_editor.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/config.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/__init__.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/api/__init__.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/api/endpoints.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/api/main.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/api/models.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/api/run_store.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/api/runner.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/api/ui/__init__.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/api/ui/routes.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/api/ui/utils.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/context/context.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/context/context_manager.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/context/context_vars.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/evaluation/utils.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/execution/batch_executor.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/execution/evaluation_executor.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/execution/local_executor.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/execution/temporal_executor.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/flock.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/flock_evaluator.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/flock_module.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/interpreter/python_interpreter.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/logging/__init__.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/logging/formatters/enum_builder.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/logging/formatters/theme_builder.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/logging/formatters/themes.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/logging/logging.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/logging/telemetry.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/logging/trace_and_logged.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/mixin/prompt_parser.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/serialization/__init__.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/serialization/callable_registry.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/serialization/flock_serializer.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/serialization/json_encoder.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/serialization/secure_serializer.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/serialization/serializable.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/tools/azure_tools.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/tools/basic_tools.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/tools/dev_tools/github.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/tools/llm_tools.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/tools/markdown_tools.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/tools/zendesk_tools.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/util/cli_helper.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/util/file_path_utils.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/util/hydrator.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/util/loader.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/evaluators/memory/azure_search_evaluator.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/evaluators/memory/memory_evaluator.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/evaluators/natural_language/natural_language_evaluator.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/evaluators/test/test_case_evaluator.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/evaluators/zep/zep_evaluator.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/modules/azure-search/azure_search_module.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/modules/callback/callback_module.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/modules/memory/memory_module.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/modules/memory/memory_parser.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/modules/memory/memory_storage.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/modules/output/output_module.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/modules/performance/metrics_module.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/modules/zep/zep_module.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/platform/docker_tools.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/platform/jaeger_install.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/routers/__init__.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/routers/agent/__init__.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/routers/agent/handoff_agent.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/routers/default/__init__.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/routers/llm/__init__.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/3024-day.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/3024-night.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/aardvark-blue.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/abernathy.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/adventure.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/adventuretime.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/afterglow.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/alabaster.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/alienblood.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/andromeda.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/apple-classic.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/apple-system-colors.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/arcoiris.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/argonaut copy.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/argonaut.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/arthur.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/ateliersulphurpool.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/atom.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/atom_test.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/atomonelight.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/aurora.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/ayu copy.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/ayu-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/ayu-mirage.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/ayu.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/banana-blueberry.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/batman.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/belafonte-day.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/belafonte-night.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/birdsofparadise.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/blazer.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/blue-matrix.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/blueberrypie.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/bluedolphin.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/blulocodark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/blulocolight.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/borland.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/breeze.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/bright-lights.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/broadcast.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/brogrammer.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/builtin-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/builtin-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/builtin-pastel-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/builtin-solarized-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/builtin-solarized-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/builtin-tango-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/builtin-tango-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/c64.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/calamity.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/catppuccin-frappe.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/catppuccin-latte.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/catppuccin-macchiato.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/catppuccin-mocha.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/cga.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/chalk.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/chalkboard.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/challengerdeep.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/chester.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/ciapre.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/clrs.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/cobalt-neon.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/cobalt2.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/coffee-theme.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/crayonponyfish.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/cutiepro.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/cyberdyne.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/cyberpunk.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/dark+.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/dark-pastel.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/darkermatrix.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/darkmatrix.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/darkside.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/dayfox.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/deep.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/desert.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/dimidium.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/dimmedmonokai.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/django.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/djangorebornagain.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/djangosmooth.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/doom-peacock.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/doomone.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/dotgov.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/dracula+.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/dracula.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/duckbones.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/duotone-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/earthsong.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/elemental.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/elementary.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/encom.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/espresso-libre.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/espresso.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/everblush.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/fahrenheit.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/fairyfloss.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/farmhouse-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/farmhouse-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/fideloper.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/firefly-traditional.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/firefoxdev.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/firewatch.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/fishtank.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/flat.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/flatland.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/flexoki-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/flexoki-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/floraverse.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/forestblue.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/framer.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/frontenddelight.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/funforrest.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/galaxy.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/galizur.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/github-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/github.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/glacier.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/grape.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/grass.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/grey-green.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/gruber-darker.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/gruvboxdark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/gruvboxdarkhard.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/gruvboxlight.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/guezwhoz.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/hacktober.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/hardcore.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/harper.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/hax0r-blue.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/hax0r-gr33n.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/hax0r-r3d.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/highway.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/hipster-green.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/hivacruz.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/homebrew.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/hopscotch.256.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/hopscotch.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/hurtado.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/hybrid.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/ic-green-ppl.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/ic-orange-ppl.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/iceberg-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/iceberg-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/idea.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/idletoes.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/ir-black.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/iterm2-dark-background.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/iterm2-default.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/iterm2-light-background.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/iterm2-smoooooth.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/iterm2-solarized-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/iterm2-tango-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/iterm2-tango-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/jackie-brown.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/japanesque.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/jellybeans.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/jetbrains-darcula.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/jubi.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/kanagawabones.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/kibble.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/kolorit.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/konsolas.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/kurokula.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/lab-fox.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/laser.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/later-this-evening.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/lavandula.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/liquidcarbon.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/liquidcarbontransparent.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/lovelace.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/man-page.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/mariana.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/material.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/materialdark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/materialdarker.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/materialdesigncolors.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/materialocean.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/mathias.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/matrix.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/medallion.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/mellifluous.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/midnight-in-mojave.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/mirage.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/misterioso.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/molokai.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/monalisa.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/monokai-remastered.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/monokai-soda.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/monokai-vivid.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/n0tch2k.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/neobones-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/neobones-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/neon.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/neopolitan.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/neutron.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/night-owlish-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/nightfox.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/nightlion-v1.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/nightlion-v2.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/niji.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/nocturnal-winter.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/nord-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/nord.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/novel.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/nvimdark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/nvimlight.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/obsidian.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/ocean.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/oceanic-next.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/oceanicmaterial.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/ollie.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/onehalfdark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/onehalflight.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/operator-mono-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/overnight-slumber.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/oxocarbon.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/palenighthc.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/pandora.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/paraiso-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/paulmillr.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/pencildark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/pencillight.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/peppermint.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/piatto-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/pnevma.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/popping-and-locking.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/primary.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/pro-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/pro.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/purple-rain.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/purplepeter.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/rapture.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/raycast-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/raycast-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/rebecca.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/red-alert.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/red-planet.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/red-sands.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/relaxed.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/retro.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/rippedcasts.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/rose-pine-dawn.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/rose-pine-moon.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/rose-pine.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/rouge-2.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/royal.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/ryuuko.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/sakura.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/scarlet-protocol.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/seafoam-pastel.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/seashells.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/seoulbones-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/seoulbones-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/seti.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/shades-of-purple.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/shaman.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/slate.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/sleepyhollow.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/smyck.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/snazzy.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/softserver.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/solarized-darcula.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/solarized-dark---patched.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/spacedust.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/spacegray-eighties.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/spacegray.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/spiderman.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/spring.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/square.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/sublette.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/subliminal.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/sugarplum.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/sundried.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/symfonic.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/synthwave-everything.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/synthwave.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/synthwavealpha.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/tango-adapted.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/tango-half-adapted.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/teerb.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/terafox.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/terminal-basic.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/thayer-bright.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/the-hulk.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/tinacious-design-(dark).toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/tinacious-design-(light).toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/tokyonight-day.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/tokyonight-storm.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/tokyonight.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/tomorrow-night-blue.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/tomorrow-night-bright.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/tomorrow-night-burns.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/tomorrow-night.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/tomorrow.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/toychest.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/treehouse.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/twilight.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/ubuntu.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/ultradark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/ultraviolent.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/underthesea.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/unikitty.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/urple.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/vaughn.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/vesper.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/vibrantink.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/vimbones.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/violet-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/violet-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/warmneon.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/wez.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/whimsy.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/wildcherry.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/wilmersdorf.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/wombat.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/wryan.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/xcodedark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/xcodedarkhc.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/xcodelight.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/xcodelighthc.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/xcodewwdc.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/zenbones-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/zenbones-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/zenbones.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/zenburn.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/zenburned.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/zenwritten-dark.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/themes/zenwritten-light.toml +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/workflow/__init__.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/workflow/agent_activities.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/workflow/temporal_setup.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/workflow/workflow.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/tests/__init__.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/tests/core/test_flock_batch.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/tests/core/test_flock_core.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/tests/serialization/__init__.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/tests/serialization/test_enhanced_serialization.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/tests/serialization/test_file_path_serialization.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/tests/serialization/test_flock_serializer.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/tests/serialization/test_nested_serialization.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/tests/serialization/test_yaml_serialization.py +0 -0
- {flock_core-0.4.0b21 → flock_core-0.4.0b23}/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.0b23
|
|
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-23"
|
|
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",
|
|
@@ -428,81 +428,71 @@ class FlockAgent(BaseModel, Serializable, DSPyIntegrationMixin, ABC):
|
|
|
428
428
|
exclude_none=True, # Exclude None values for cleaner output
|
|
429
429
|
)
|
|
430
430
|
logger.debug(f"Base agent data for '{self.name}': {list(data.keys())}")
|
|
431
|
+
serialized_modules = {}
|
|
432
|
+
|
|
433
|
+
def add_serialized_component(component: Any, field_name: str):
|
|
434
|
+
if component:
|
|
435
|
+
comp_type = type(component)
|
|
436
|
+
type_name = FlockRegistry.get_component_type_name(
|
|
437
|
+
comp_type
|
|
438
|
+
) # Get registered name
|
|
439
|
+
if type_name:
|
|
440
|
+
try:
|
|
441
|
+
serialized_component_data = serialize_item(component)
|
|
442
|
+
|
|
443
|
+
if not isinstance(serialized_component_data, dict):
|
|
444
|
+
logger.error(
|
|
445
|
+
f"Serialization of component {type_name} for field '{field_name}' did not result in a dictionary. Got: {type(serialized_component_data)}"
|
|
446
|
+
)
|
|
447
|
+
serialized_modules[field_name] = {
|
|
448
|
+
"type": type_name,
|
|
449
|
+
"name": getattr(component, "name", "unknown"),
|
|
450
|
+
"error": "serialization_failed_non_dict",
|
|
451
|
+
}
|
|
452
|
+
else:
|
|
453
|
+
serialized_component_data["type"] = type_name
|
|
454
|
+
serialized_modules[field_name] = (
|
|
455
|
+
serialized_component_data
|
|
456
|
+
)
|
|
457
|
+
logger.debug(
|
|
458
|
+
f"Successfully serialized component for field '{field_name}' (type: {type_name})"
|
|
459
|
+
)
|
|
431
460
|
|
|
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
|
|
461
|
+
except Exception as e:
|
|
462
|
+
logger.error(
|
|
463
|
+
f"Failed to serialize component {type_name} for field '{field_name}': {e}",
|
|
464
|
+
exc_info=True,
|
|
490
465
|
)
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
)
|
|
466
|
+
serialized_modules[field_name] = {
|
|
467
|
+
"type": type_name,
|
|
468
|
+
"name": getattr(component, "name", "unknown"),
|
|
469
|
+
"error": "serialization_failed",
|
|
470
|
+
}
|
|
497
471
|
else:
|
|
498
472
|
logger.warning(
|
|
499
|
-
f"
|
|
473
|
+
f"Cannot serialize unregistered component {comp_type.__name__} for field '{field_name}'"
|
|
500
474
|
)
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
475
|
+
|
|
476
|
+
add_serialized_component(self.evaluator, "evaluator")
|
|
477
|
+
if serialized_modules:
|
|
478
|
+
data["evaluator"] = serialized_modules["evaluator"]
|
|
479
|
+
logger.debug(f"Added evaluator to agent '{self.name}'")
|
|
480
|
+
|
|
481
|
+
serialized_modules = {}
|
|
482
|
+
add_serialized_component(self.handoff_router, "handoff_router")
|
|
483
|
+
if serialized_modules:
|
|
484
|
+
data["handoff_router"] = serialized_modules["handoff_router"]
|
|
485
|
+
logger.debug(f"Added handoff_router to agent '{self.name}'")
|
|
486
|
+
|
|
487
|
+
serialized_modules = {}
|
|
488
|
+
for module in self.modules.values():
|
|
489
|
+
add_serialized_component(module, module.name)
|
|
490
|
+
|
|
491
|
+
if serialized_modules:
|
|
492
|
+
data["modules"] = serialized_modules
|
|
493
|
+
logger.debug(
|
|
494
|
+
f"Added {len(serialized_modules)} modules to agent '{self.name}'"
|
|
495
|
+
)
|
|
506
496
|
|
|
507
497
|
# --- Serialize Tools (Callables) ---
|
|
508
498
|
if self.tools:
|
|
@@ -32,7 +32,7 @@ class FlockFactory:
|
|
|
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,
|
|
@@ -5,6 +5,7 @@ within the Flock framework to support dynamic lookup and serialization.
|
|
|
5
5
|
|
|
6
6
|
from __future__ import annotations # Add this at the very top
|
|
7
7
|
|
|
8
|
+
import builtins
|
|
8
9
|
import importlib
|
|
9
10
|
import inspect
|
|
10
11
|
import sys
|
|
@@ -172,57 +173,88 @@ class FlockRegistry:
|
|
|
172
173
|
)
|
|
173
174
|
return None
|
|
174
175
|
|
|
175
|
-
def get_callable(self,
|
|
176
|
-
"""Retrieves a callable by its
|
|
177
|
-
if
|
|
178
|
-
|
|
179
|
-
|
|
176
|
+
def get_callable(self, name_or_path: str) -> Callable:
|
|
177
|
+
"""Retrieves a callable by its registered name or full path string.
|
|
178
|
+
Attempts dynamic import if not found directly. Prioritizes exact match,
|
|
179
|
+
then searches for matches ending with '.{name}'.
|
|
180
|
+
"""
|
|
181
|
+
# 1. Try exact match first (covers full paths and simple names if registered that way)
|
|
182
|
+
if name_or_path in self._callables:
|
|
183
|
+
logger.debug(
|
|
184
|
+
f"Found callable '{name_or_path}' directly in registry."
|
|
185
|
+
)
|
|
186
|
+
return self._callables[name_or_path]
|
|
187
|
+
|
|
188
|
+
# 2. If not found, and it looks like a simple name, search registered paths
|
|
189
|
+
if "." not in name_or_path:
|
|
190
|
+
matches = []
|
|
191
|
+
for path_str, func in self._callables.items():
|
|
192
|
+
# Check if path ends with ".{simple_name}" or exactly matches simple_name
|
|
193
|
+
if path_str == name_or_path or path_str.endswith(
|
|
194
|
+
f".{name_or_path}"
|
|
195
|
+
):
|
|
196
|
+
matches.append(func)
|
|
180
197
|
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
try:
|
|
185
|
-
if "." not in path_str: # Built-ins
|
|
186
|
-
logger.debug(f"Trying to import built-in callable '{path_str}'")
|
|
187
|
-
builtins_module = importlib.import_module("builtins")
|
|
188
|
-
if hasattr(builtins_module, path_str):
|
|
189
|
-
func = getattr(builtins_module, path_str)
|
|
190
|
-
if callable(func):
|
|
191
|
-
self.register_callable(func, path_str) # Cache it
|
|
192
|
-
logger.info(
|
|
193
|
-
f"Successfully imported built-in callable '{path_str}'"
|
|
194
|
-
)
|
|
195
|
-
return func
|
|
196
|
-
logger.error(f"Built-in callable '{path_str}' not found.")
|
|
197
|
-
raise KeyError(f"Built-in callable '{path_str}' not found.")
|
|
198
|
-
|
|
199
|
-
logger.debug(f"Trying to import module callable '{path_str}'")
|
|
200
|
-
module_name, func_name = path_str.rsplit(".", 1)
|
|
201
|
-
module = importlib.import_module(module_name)
|
|
202
|
-
func = getattr(module, func_name)
|
|
203
|
-
if callable(func):
|
|
204
|
-
self.register_callable(
|
|
205
|
-
func, path_str
|
|
206
|
-
) # Cache dynamically imported
|
|
207
|
-
logger.info(
|
|
208
|
-
f"Successfully imported module callable '{path_str}'"
|
|
198
|
+
if len(matches) == 1:
|
|
199
|
+
logger.debug(
|
|
200
|
+
f"Found unique callable for simple name '{name_or_path}' via path '{self.get_callable_path_string(matches[0])}'."
|
|
209
201
|
)
|
|
210
|
-
return
|
|
211
|
-
|
|
202
|
+
return matches[0]
|
|
203
|
+
elif len(matches) > 1:
|
|
204
|
+
# Ambiguous simple name - require full path
|
|
205
|
+
found_paths = [
|
|
206
|
+
self.get_callable_path_string(f) for f in matches
|
|
207
|
+
]
|
|
212
208
|
logger.error(
|
|
213
|
-
f"
|
|
209
|
+
f"Ambiguous callable name '{name_or_path}'. Found matches: {found_paths}. Use full path string for lookup."
|
|
214
210
|
)
|
|
215
|
-
raise
|
|
216
|
-
f"
|
|
211
|
+
raise KeyError(
|
|
212
|
+
f"Ambiguous callable name '{name_or_path}'. Use full path string."
|
|
217
213
|
)
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
214
|
+
# else: Not found by simple name search in registry, proceed to dynamic import
|
|
215
|
+
|
|
216
|
+
# 3. Attempt dynamic import if it looks like a full path
|
|
217
|
+
if "." in name_or_path:
|
|
218
|
+
logger.debug(
|
|
219
|
+
f"Callable '{name_or_path}' not in registry cache, attempting dynamic import."
|
|
222
220
|
)
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
221
|
+
try:
|
|
222
|
+
module_name, func_name = name_or_path.rsplit(".", 1)
|
|
223
|
+
module = importlib.import_module(module_name)
|
|
224
|
+
func = getattr(module, func_name)
|
|
225
|
+
if callable(func):
|
|
226
|
+
self.register_callable(
|
|
227
|
+
func, name_or_path
|
|
228
|
+
) # Cache dynamically imported
|
|
229
|
+
logger.info(
|
|
230
|
+
f"Successfully imported and registered module callable '{name_or_path}'"
|
|
231
|
+
)
|
|
232
|
+
return func
|
|
233
|
+
else:
|
|
234
|
+
raise TypeError(
|
|
235
|
+
f"Dynamically imported object '{name_or_path}' is not callable."
|
|
236
|
+
)
|
|
237
|
+
except (ImportError, AttributeError, TypeError) as e:
|
|
238
|
+
logger.error(
|
|
239
|
+
f"Failed to dynamically load/find callable '{name_or_path}': {e}",
|
|
240
|
+
exc_info=False,
|
|
241
|
+
)
|
|
242
|
+
# Fall through to raise KeyError
|
|
243
|
+
# 4. Handle built-ins if not found yet (might be redundant if simple name check worked)
|
|
244
|
+
elif name_or_path in builtins.__dict__:
|
|
245
|
+
func = builtins.__dict__[name_or_path]
|
|
246
|
+
if callable(func):
|
|
247
|
+
self.register_callable(func, name_or_path) # Cache it
|
|
248
|
+
logger.info(
|
|
249
|
+
f"Found and registered built-in callable '{name_or_path}'"
|
|
250
|
+
)
|
|
251
|
+
return func
|
|
252
|
+
|
|
253
|
+
# 5. Final failure
|
|
254
|
+
logger.error(
|
|
255
|
+
f"Callable '{name_or_path}' not found in registry or via import."
|
|
256
|
+
)
|
|
257
|
+
raise KeyError(f"Callable '{name_or_path}' not found.")
|
|
226
258
|
|
|
227
259
|
def get_callable_path_string(self, func: Callable) -> str | None:
|
|
228
260
|
"""Gets the path string for a callable, registering it if necessary."""
|
|
@@ -14,13 +14,26 @@ class HandOffRequest(BaseModel):
|
|
|
14
14
|
next_agent: str = Field(default="", description="Next agent to invoke")
|
|
15
15
|
# match = use the output fields of the current agent that also exists as input field of the next agent
|
|
16
16
|
# add = add the output of the current agent to the input of the next agent
|
|
17
|
-
|
|
17
|
+
output_to_input_merge_strategy: Literal["match", "add"] = Field(
|
|
18
|
+
default="match"
|
|
19
|
+
)
|
|
20
|
+
add_input_fields: list[str] | None = Field(
|
|
21
|
+
default=None,
|
|
22
|
+
description="List of input fields to add to the next agent",
|
|
23
|
+
)
|
|
24
|
+
add_output_fields: list[str] | None = Field(
|
|
25
|
+
default=None,
|
|
26
|
+
description="List of output fields to add to the next agent",
|
|
27
|
+
)
|
|
28
|
+
add_description: str | None = Field(
|
|
29
|
+
default=None, description="Add this description to the next agent"
|
|
30
|
+
)
|
|
18
31
|
override_next_agent: Any | None = Field(
|
|
19
32
|
default=None,
|
|
20
33
|
description="Override the next agent to hand off to",
|
|
21
34
|
)
|
|
22
35
|
override_context: FlockContext | None = Field(
|
|
23
|
-
default=None,
|
|
36
|
+
default=None, description="Override context parameters"
|
|
24
37
|
)
|
|
25
38
|
|
|
26
39
|
|
|
@@ -34,10 +47,10 @@ class FlockRouterConfig(BaseModel):
|
|
|
34
47
|
enabled: bool = Field(
|
|
35
48
|
default=True, description="Whether the router is enabled"
|
|
36
49
|
)
|
|
37
|
-
agents: list[str] | None = Field(
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
)
|
|
50
|
+
# agents: list[str] | None = Field(
|
|
51
|
+
# default=None,
|
|
52
|
+
# description="List of agents to choose from",
|
|
53
|
+
# )
|
|
41
54
|
|
|
42
55
|
|
|
43
56
|
class FlockRouter(BaseModel, ABC):
|
|
@@ -408,7 +408,7 @@ class DSPyIntegrationMixin:
|
|
|
408
408
|
|
|
409
409
|
lm = dspy.settings.get("lm")
|
|
410
410
|
cost = sum([x["cost"] for x in lm.history if x["cost"] is not None])
|
|
411
|
-
lm_history = lm.
|
|
411
|
+
lm_history = lm.history
|
|
412
412
|
|
|
413
413
|
return final_result, cost, lm_history
|
|
414
414
|
|
{flock_core-0.4.0b21 → flock_core-0.4.0b23}/src/flock/core/serialization/serialization_utils.py
RENAMED
|
@@ -8,6 +8,7 @@ import sys
|
|
|
8
8
|
import types
|
|
9
9
|
import typing
|
|
10
10
|
from collections.abc import Mapping, Sequence
|
|
11
|
+
from enum import Enum
|
|
11
12
|
from typing import (
|
|
12
13
|
TYPE_CHECKING,
|
|
13
14
|
Any,
|
|
@@ -57,7 +58,9 @@ def _format_type_to_string(type_hint: type) -> str:
|
|
|
57
58
|
inner_type = next(t for t in args if t is not type(None))
|
|
58
59
|
return _format_type_to_string(inner_type)
|
|
59
60
|
# return f"Optional[{_format_type_to_string(inner_type)}]"
|
|
60
|
-
return
|
|
61
|
+
return (
|
|
62
|
+
f"Union[{', '.join(_format_type_to_string(arg) for arg in args)}]"
|
|
63
|
+
)
|
|
61
64
|
elif origin is Literal:
|
|
62
65
|
formatted_args = []
|
|
63
66
|
for arg in args:
|
|
@@ -66,7 +69,9 @@ def _format_type_to_string(type_hint: type) -> str:
|
|
|
66
69
|
else:
|
|
67
70
|
formatted_args.append(str(arg))
|
|
68
71
|
return f"Literal[{', '.join(formatted_args)}]"
|
|
69
|
-
elif hasattr(
|
|
72
|
+
elif hasattr(
|
|
73
|
+
type_hint, "__forward_arg__"
|
|
74
|
+
): # Handle ForwardRefs if necessary
|
|
70
75
|
return type_hint.__forward_arg__
|
|
71
76
|
elif hasattr(type_hint, "__name__"):
|
|
72
77
|
# Handle custom types registered in registry (get preferred name)
|
|
@@ -83,7 +88,9 @@ def _format_type_to_string(type_hint: type) -> str:
|
|
|
83
88
|
type_repr = str(type_hint).replace("typing.", "") # Basic cleanup
|
|
84
89
|
type_repr = str(type_hint).replace("| None", "")
|
|
85
90
|
type_repr = type_repr.strip()
|
|
86
|
-
logger.debug(
|
|
91
|
+
logger.debug(
|
|
92
|
+
f"Using fallback string representation for type: {type_repr}"
|
|
93
|
+
)
|
|
87
94
|
return type_repr
|
|
88
95
|
|
|
89
96
|
|
|
@@ -189,18 +196,51 @@ def serialize_item(item: Any) -> Any:
|
|
|
189
196
|
|
|
190
197
|
FlockRegistry = get_registry()
|
|
191
198
|
|
|
192
|
-
if isinstance(item,
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
path_str = FlockRegistry.get_callable_path_string(item) # Use registry helper
|
|
199
|
+
if callable(item) and not isinstance(item, type):
|
|
200
|
+
path_str = FlockRegistry.get_callable_path_string(
|
|
201
|
+
item
|
|
202
|
+
) # Use registry helper
|
|
197
203
|
if path_str:
|
|
198
|
-
|
|
204
|
+
# Store the simple name (last part of the path) for cleaner YAML/JSON
|
|
205
|
+
simple_name = path_str.split(".")[-1]
|
|
206
|
+
logger.debug(
|
|
207
|
+
f"Serializing callable '{getattr(item, '__name__', 'unknown')}' as reference: '{simple_name}' (from path '{path_str}')"
|
|
208
|
+
)
|
|
209
|
+
return {
|
|
210
|
+
"__callable_ref__": simple_name
|
|
211
|
+
} # Use simple name convention
|
|
199
212
|
else:
|
|
213
|
+
# Handle unregistered callables (e.g., lambdas defined inline)
|
|
214
|
+
# Option 1: Raise error (stricter)
|
|
215
|
+
# raise ValueError(f"Cannot serialize unregistered callable: {getattr(item, '__name__', item)}")
|
|
216
|
+
# Option 2: Store string representation with warning (more lenient)
|
|
200
217
|
logger.warning(
|
|
201
|
-
f"
|
|
218
|
+
f"Cannot serialize unregistered callable {getattr(item, '__name__', item)}, storing as string."
|
|
202
219
|
)
|
|
203
220
|
return str(item)
|
|
221
|
+
elif isinstance(item, BaseModel):
|
|
222
|
+
logger.debug(
|
|
223
|
+
f"Serializing Pydantic model instance: {item.__class__.__name__}"
|
|
224
|
+
)
|
|
225
|
+
serialized_dict = {}
|
|
226
|
+
# Iterate through defined fields in the model
|
|
227
|
+
fields_to_iterate = {}
|
|
228
|
+
if hasattr(item, "model_fields"): # Pydantic v2
|
|
229
|
+
fields_to_iterate = item.model_fields
|
|
230
|
+
|
|
231
|
+
for field_name in fields_to_iterate:
|
|
232
|
+
# Get the value *from the instance*
|
|
233
|
+
try:
|
|
234
|
+
value = getattr(item, field_name)
|
|
235
|
+
if value is not None: # Exclude None values
|
|
236
|
+
# Recursively serialize the field's value
|
|
237
|
+
serialized_dict[field_name] = serialize_item(value)
|
|
238
|
+
except AttributeError:
|
|
239
|
+
# Should not happen if iterating model_fields/__fields__ but handle defensively
|
|
240
|
+
logger.warning(
|
|
241
|
+
f"Attribute '{field_name}' not found on instance of {item.__class__.__name__} during serialization."
|
|
242
|
+
)
|
|
243
|
+
return serialized_dict
|
|
204
244
|
elif isinstance(item, Mapping):
|
|
205
245
|
return {key: serialize_item(value) for key, value in item.items()}
|
|
206
246
|
elif isinstance(item, Sequence) and not isinstance(item, str):
|
|
@@ -218,8 +258,12 @@ def serialize_item(item: Any) -> Any:
|
|
|
218
258
|
) # Check regular types/classes by path
|
|
219
259
|
if type_name:
|
|
220
260
|
return {"__type_ref__": type_name}
|
|
221
|
-
logger.warning(
|
|
261
|
+
logger.warning(
|
|
262
|
+
f"Could not serialize type object {item}, storing as string."
|
|
263
|
+
)
|
|
222
264
|
return str(item)
|
|
265
|
+
elif isinstance(item, Enum):
|
|
266
|
+
return item.value
|
|
223
267
|
else:
|
|
224
268
|
# Return basic types as is
|
|
225
269
|
return item
|
|
@@ -240,12 +284,24 @@ def deserialize_item(item: Any) -> Any:
|
|
|
240
284
|
|
|
241
285
|
if isinstance(item, Mapping):
|
|
242
286
|
if "__callable_ref__" in item and len(item) == 1:
|
|
243
|
-
|
|
287
|
+
ref_name = item["__callable_ref__"]
|
|
244
288
|
try:
|
|
245
|
-
|
|
289
|
+
# The registry's get_callable needs to handle lookup by simple name OR full path
|
|
290
|
+
# Or we assume get_callable handles finding the right function from the simple name
|
|
291
|
+
resolved_callable = FlockRegistry.get_callable(ref_name)
|
|
292
|
+
logger.debug(
|
|
293
|
+
f"Deserialized callable reference '{ref_name}' to {resolved_callable}"
|
|
294
|
+
)
|
|
295
|
+
return resolved_callable
|
|
246
296
|
except KeyError:
|
|
247
297
|
logger.error(
|
|
248
|
-
f"Callable reference '{
|
|
298
|
+
f"Callable reference '{ref_name}' not found during deserialization."
|
|
299
|
+
)
|
|
300
|
+
return None # Or raise?
|
|
301
|
+
except Exception as e:
|
|
302
|
+
logger.error(
|
|
303
|
+
f"Error resolving callable reference '{ref_name}': {e}",
|
|
304
|
+
exc_info=True,
|
|
249
305
|
)
|
|
250
306
|
return None
|
|
251
307
|
elif "__component_ref__" in item and len(item) == 1:
|
|
@@ -273,7 +329,9 @@ def deserialize_item(item: Any) -> Any:
|
|
|
273
329
|
mod = importlib.import_module(module_name)
|
|
274
330
|
type_obj = getattr(mod, class_name)
|
|
275
331
|
if isinstance(type_obj, type):
|
|
276
|
-
FlockRegistry.register_type(
|
|
332
|
+
FlockRegistry.register_type(
|
|
333
|
+
type_obj, type_name
|
|
334
|
+
) # Cache it
|
|
277
335
|
return type_obj
|
|
278
336
|
else:
|
|
279
337
|
raise TypeError()
|
|
@@ -294,7 +352,9 @@ def deserialize_item(item: Any) -> Any:
|
|
|
294
352
|
|
|
295
353
|
|
|
296
354
|
# --- Component Deserialization Helper ---
|
|
297
|
-
def deserialize_component(
|
|
355
|
+
def deserialize_component(
|
|
356
|
+
data: dict | None, expected_base_type: type
|
|
357
|
+
) -> Any | None:
|
|
298
358
|
"""Deserializes a component (Module, Evaluator, Router) from its dict representation.
|
|
299
359
|
Uses the 'type' field to find the correct class via FlockRegistry.
|
|
300
360
|
"""
|
|
@@ -306,10 +366,14 @@ def deserialize_component(data: dict | None, expected_base_type: type) -> Any |
|
|
|
306
366
|
if data is None:
|
|
307
367
|
return None
|
|
308
368
|
if not isinstance(data, dict):
|
|
309
|
-
logger.error(
|
|
369
|
+
logger.error(
|
|
370
|
+
f"Expected dict for component deserialization, got {type(data)}"
|
|
371
|
+
)
|
|
310
372
|
return None
|
|
311
373
|
|
|
312
|
-
type_name = data.get(
|
|
374
|
+
type_name = data.get(
|
|
375
|
+
"type"
|
|
376
|
+
) # Assuming 'type' key holds the class name string
|
|
313
377
|
if not type_name:
|
|
314
378
|
logger.error(f"Component data missing 'type' field: {data}")
|
|
315
379
|
return None
|
|
@@ -317,7 +381,9 @@ def deserialize_component(data: dict | None, expected_base_type: type) -> Any |
|
|
|
317
381
|
try:
|
|
318
382
|
ComponentClass = FlockRegistry.get_component(type_name) # Use registry
|
|
319
383
|
# Optional: Keep the base type check
|
|
320
|
-
if COMPONENT_BASE_TYPES and not issubclass(
|
|
384
|
+
if COMPONENT_BASE_TYPES and not issubclass(
|
|
385
|
+
ComponentClass, expected_base_type
|
|
386
|
+
):
|
|
321
387
|
raise TypeError(
|
|
322
388
|
f"Deserialized class {type_name} is not a subclass of {expected_base_type.__name__}"
|
|
323
389
|
)
|
|
@@ -152,6 +152,11 @@ def resolve_inputs(
|
|
|
152
152
|
continue
|
|
153
153
|
|
|
154
154
|
# Fallback to the initial input
|
|
155
|
+
var_value = context.get_variable(key)
|
|
156
|
+
if var_value is not None:
|
|
157
|
+
inputs[key] = var_value
|
|
158
|
+
continue
|
|
159
|
+
|
|
155
160
|
inputs[key] = context.get_variable("flock." + key)
|
|
156
161
|
|
|
157
162
|
# Case 2: A compound key (e.g., "agent_name.property" or "context.property")
|