flock-core 0.4.0b26__tar.gz → 0.4.0b27__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.0b26 → flock_core-0.4.0b27}/PKG-INFO +31 -5
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/README.md +30 -4
- flock_core-0.4.0b27/docs/guides/temporal-configuration.md +322 -0
- flock_core-0.4.0b27/flock_test.yaml +159 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/mkdocs.yml +1 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/pyproject.toml +1 -1
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/context/context.py +10 -1
- flock_core-0.4.0b27/src/flock/core/execution/temporal_executor.py +166 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/flock.py +46 -2
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/flock_agent.py +145 -142
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/flock_factory.py +3 -0
- flock_core-0.4.0b27/src/flock/workflow/agent_execution_activity.py +228 -0
- flock_core-0.4.0b27/src/flock/workflow/flock_workflow.py +225 -0
- flock_core-0.4.0b27/src/flock/workflow/temporal_config.py +96 -0
- flock_core-0.4.0b27/src/flock/workflow/temporal_setup.py +60 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/tests/core/test_flock_core.py +149 -4
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/tests/serialization/test_flock_serializer.py +104 -3
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/uv.lock +1 -1
- flock_core-0.4.0b26/src/flock/core/execution/temporal_executor.py +0 -57
- flock_core-0.4.0b26/src/flock/workflow/flock_workflow.py +0 -58
- flock_core-0.4.0b26/src/flock/workflow/temporal_setup.py +0 -63
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/.devcontainer/devcontainer.json +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/.env_template +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/.github/workflows/.gitkeep +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/.github/workflows/deploy-documentation.yml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/.gitignore +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/.vscode/launch.json +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/.vscode/settings.json +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/.vscode/tasks.json +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/LICENSE +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/about/changelog.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/about/contributing.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/drawio/architecture.drawio +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/cli_outputs/out.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/components_chart.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/examples/01_01.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/examples/01_02.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/examples/01_03.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/examples/01_04.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/examples/01_05.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/examples/01_06.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/flock.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/flock_cli.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/flow_chart.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/getting-started/first_agent_00.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/hummingbird.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/icon.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/icon.png~ +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/logo.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/memory_concepts.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/memory_flow.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/assets/images/memory_flow_chart.png +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/components/evaluators.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/components/index.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/components/modules.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/components/tools.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/core-concepts/agents.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/core-concepts/declarative.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/core-concepts/index.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/core-concepts/workflows.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/create_doc_boilerplate.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/deployment/index.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/deployment/temporal.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/getting-started/configuration.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/getting-started/index.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/getting-started/installation.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/getting-started/quickstart.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/guides/chaining-agents.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/guides/index.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/index.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/interacting-with-flock/cli-tool.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/interacting-with-flock/index.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/interacting-with-flock/interactive-cli.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/interacting-with-flock/programmatic.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/interacting-with-flock/rest-api.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/interacting-with-flock/web-ui.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/reference/flock_agent.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/reference/index.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/release-notes/magpie.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/docs/stylesheets/extra.css +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/requirements.txt +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/scripts/code_collector.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/scripts/create_docs.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/__init__.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/assets/release_notes.md +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/config.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/constants.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/create_agent.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/create_flock.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/execute_flock.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/load_agent.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/load_examples.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/load_flock.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/load_release_notes.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/loaded_flock_cli.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/manage_agents.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/registry_management.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/runner.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/settings.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/utils.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/view_results.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/cli/yaml_editor.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/config.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/__init__.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/api/__init__.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/api/endpoints.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/api/main.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/api/models.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/api/run_store.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/api/runner.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/api/ui/__init__.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/api/ui/routes.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/api/ui/utils.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/context/context_manager.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/context/context_vars.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/evaluation/utils.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/execution/batch_executor.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/execution/evaluation_executor.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/execution/local_executor.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/flock_evaluator.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/flock_module.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/flock_registry.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/flock_router.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/interpreter/python_interpreter.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/logging/__init__.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/logging/formatters/enum_builder.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/logging/formatters/theme_builder.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/logging/formatters/themes.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/logging/logging.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/logging/telemetry.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/logging/trace_and_logged.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/mixin/dspy_integration.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/mixin/prompt_parser.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/serialization/__init__.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/serialization/callable_registry.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/serialization/flock_serializer.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/serialization/json_encoder.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/serialization/secure_serializer.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/serialization/serializable.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/serialization/serialization_utils.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/tools/azure_tools.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/tools/basic_tools.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/tools/dev_tools/github.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/tools/llm_tools.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/tools/markdown_tools.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/tools/zendesk_tools.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/util/cli_helper.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/util/file_path_utils.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/util/hydrator.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/util/input_resolver.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/core/util/loader.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/evaluators/declarative/declarative_evaluator.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/evaluators/memory/memory_evaluator.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/evaluators/test/test_case_evaluator.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/evaluators/zep/zep_evaluator.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/modules/assertion/assertion_module.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/modules/callback/callback_module.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/modules/memory/memory_module.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/modules/memory/memory_parser.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/modules/memory/memory_storage.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/modules/output/output_module.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/modules/performance/metrics_module.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/modules/zep/zep_module.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/platform/docker_tools.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/platform/jaeger_install.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/routers/__init__.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/routers/agent/__init__.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/routers/agent/agent_router.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/routers/agent/handoff_agent.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/routers/conditional/conditional_router.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/routers/default/__init__.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/routers/default/default_router.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/routers/feedback/feedback_router.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/routers/list_generator/list_generator_router.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/routers/llm/__init__.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/routers/llm/llm_router.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/3024-day.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/3024-night.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/aardvark-blue.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/abernathy.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/adventure.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/adventuretime.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/afterglow.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/alabaster.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/alienblood.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/andromeda.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/apple-classic.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/apple-system-colors.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/arcoiris.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/argonaut copy.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/argonaut.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/arthur.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/ateliersulphurpool.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/atom.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/atom_test.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/atomonelight.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/aurora.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/ayu copy.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/ayu-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/ayu-mirage.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/ayu.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/banana-blueberry.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/batman.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/belafonte-day.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/belafonte-night.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/birdsofparadise.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/blazer.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/blue-matrix.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/blueberrypie.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/bluedolphin.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/blulocodark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/blulocolight.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/borland.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/breeze.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/bright-lights.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/broadcast.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/brogrammer.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/builtin-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/builtin-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/builtin-pastel-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/builtin-solarized-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/builtin-solarized-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/builtin-tango-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/builtin-tango-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/c64.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/calamity.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/catppuccin-frappe.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/catppuccin-latte.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/catppuccin-macchiato.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/catppuccin-mocha.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/cga.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/chalk.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/chalkboard.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/challengerdeep.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/chester.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/ciapre.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/clrs.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/cobalt-neon.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/cobalt2.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/coffee-theme.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/crayonponyfish.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/cutiepro.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/cyberdyne.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/cyberpunk.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/dark+.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/dark-pastel.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/darkermatrix.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/darkmatrix.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/darkside.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/dayfox.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/deep.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/desert.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/dimidium.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/dimmedmonokai.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/django.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/djangorebornagain.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/djangosmooth.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/doom-peacock.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/doomone.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/dotgov.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/dracula+.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/dracula.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/duckbones.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/duotone-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/earthsong.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/elemental.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/elementary.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/encom.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/espresso-libre.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/espresso.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/everblush.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/fahrenheit.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/fairyfloss.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/farmhouse-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/farmhouse-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/fideloper.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/firefly-traditional.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/firefoxdev.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/firewatch.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/fishtank.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/flat.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/flatland.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/flexoki-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/flexoki-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/floraverse.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/forestblue.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/framer.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/frontenddelight.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/funforrest.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/galaxy.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/galizur.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/github-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/github.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/glacier.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/grape.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/grass.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/grey-green.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/gruber-darker.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/gruvboxdark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/gruvboxdarkhard.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/gruvboxlight.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/guezwhoz.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/hacktober.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/hardcore.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/harper.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/hax0r-blue.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/hax0r-gr33n.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/hax0r-r3d.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/highway.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/hipster-green.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/hivacruz.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/homebrew.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/hopscotch.256.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/hopscotch.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/hurtado.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/hybrid.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/ic-green-ppl.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/ic-orange-ppl.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/iceberg-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/iceberg-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/idea.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/idletoes.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/ir-black.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/iterm2-dark-background.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/iterm2-default.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/iterm2-light-background.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/iterm2-smoooooth.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/iterm2-solarized-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/iterm2-tango-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/iterm2-tango-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/jackie-brown.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/japanesque.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/jellybeans.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/jetbrains-darcula.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/jubi.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/kanagawabones.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/kibble.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/kolorit.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/konsolas.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/kurokula.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/lab-fox.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/laser.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/later-this-evening.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/lavandula.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/liquidcarbon.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/liquidcarbontransparent.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/lovelace.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/man-page.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/mariana.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/material.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/materialdark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/materialdarker.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/materialdesigncolors.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/materialocean.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/mathias.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/matrix.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/medallion.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/mellifluous.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/midnight-in-mojave.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/mirage.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/misterioso.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/molokai.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/monalisa.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/monokai-remastered.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/monokai-soda.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/monokai-vivid.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/n0tch2k.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/neobones-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/neobones-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/neon.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/neopolitan.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/neutron.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/night-owlish-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/nightfox.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/nightlion-v1.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/nightlion-v2.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/niji.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/nocturnal-winter.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/nord-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/nord.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/novel.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/nvimdark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/nvimlight.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/obsidian.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/ocean.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/oceanic-next.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/oceanicmaterial.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/ollie.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/onehalfdark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/onehalflight.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/operator-mono-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/overnight-slumber.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/oxocarbon.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/palenighthc.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/pandora.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/paraiso-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/paulmillr.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/pencildark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/pencillight.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/peppermint.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/piatto-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/pnevma.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/popping-and-locking.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/primary.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/pro-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/pro.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/purple-rain.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/purplepeter.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/rapture.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/raycast-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/raycast-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/rebecca.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/red-alert.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/red-planet.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/red-sands.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/relaxed.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/retro.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/rippedcasts.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/rose-pine-dawn.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/rose-pine-moon.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/rose-pine.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/rouge-2.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/royal.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/ryuuko.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/sakura.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/scarlet-protocol.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/seafoam-pastel.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/seashells.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/seoulbones-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/seoulbones-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/seti.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/shades-of-purple.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/shaman.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/slate.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/sleepyhollow.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/smyck.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/snazzy.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/softserver.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/solarized-darcula.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/solarized-dark---patched.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/spacedust.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/spacegray-eighties.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/spacegray.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/spiderman.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/spring.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/square.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/sublette.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/subliminal.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/sugarplum.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/sundried.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/symfonic.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/synthwave-everything.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/synthwave.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/synthwavealpha.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/tango-adapted.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/tango-half-adapted.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/teerb.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/terafox.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/terminal-basic.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/thayer-bright.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/the-hulk.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/tinacious-design-(dark).toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/tinacious-design-(light).toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/tokyonight-day.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/tokyonight-storm.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/tokyonight.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/tomorrow-night-blue.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/tomorrow-night-bright.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/tomorrow-night-burns.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/tomorrow-night.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/tomorrow.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/toychest.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/treehouse.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/twilight.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/ubuntu.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/ultradark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/ultraviolent.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/underthesea.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/unikitty.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/urple.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/vaughn.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/vesper.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/vibrantink.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/vimbones.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/violet-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/violet-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/warmneon.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/wez.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/whimsy.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/wildcherry.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/wilmersdorf.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/wombat.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/wryan.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/xcodedark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/xcodedarkhc.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/xcodelight.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/xcodelighthc.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/xcodewwdc.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/zenbones-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/zenbones-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/zenbones.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/zenburn.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/zenburned.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/zenwritten-dark.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/themes/zenwritten-light.toml +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/workflow/__init__.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/workflow/activities.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/src/flock/workflow/agent_activities.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/tests/__init__.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/tests/core/test_flock_batch.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/tests/serialization/__init__.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/tests/serialization/test_enhanced_serialization.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/tests/serialization/test_file_path_serialization.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/tests/serialization/test_nested_serialization.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/tests/serialization/test_yaml_serialization.py +0 -0
- {flock_core-0.4.0b26 → flock_core-0.4.0b27}/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.0b27
|
|
4
4
|
Summary: Declarative LLM Orchestration at Scale
|
|
5
5
|
Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -216,13 +216,39 @@ if __name__ == "__main__":
|
|
|
216
216
|
|
|
217
217
|
## 🐤 New in Flock 0.4.0 `Magpie` 🐤
|
|
218
218
|
|
|
219
|
-
|
|
219
|
+
Version 0.4.0 brings significant enhancements focused on usability, deployment, and robustness:
|
|
220
220
|
|
|
221
|
-
### Web UI - Test Flock Agents in the Browser
|
|
222
221
|
|
|
223
|
-
###
|
|
222
|
+
### 🚀 REST API - Deploy Flock Agents as REST API Endpoints
|
|
224
223
|
|
|
225
|
-
|
|
224
|
+
Easily deploy your Flock agents as scalable REST API endpoints. Interact with your agent workflows via standard HTTP requests.
|
|
225
|
+
|
|
226
|
+
### 🖥️ Web UI - Test Flock Agents in the Browser
|
|
227
|
+
|
|
228
|
+
Test and interact with your Flock agents directly in your browser through an integrated web interface.
|
|
229
|
+
|
|
230
|
+
### ⌨️ CLI Tool - Manage Flock Agents via the Command Line
|
|
231
|
+
|
|
232
|
+
Manage Flock configurations, run agents, and inspect results directly from your command line.
|
|
233
|
+
|
|
234
|
+
### 💾 Enhanced Serialization - Share, Deploy, and Run Flock Agents by human readable yaml files
|
|
235
|
+
|
|
236
|
+
Define and share entire Flock configurations, including agents and components, using human-readable YAML files. Load flocks directly from these files for easy deployment and versioning.
|
|
237
|
+
|
|
238
|
+
### ⏱️ Robust Temporal Integration
|
|
239
|
+
|
|
240
|
+
Flock 0.4.0 introduces first-class support for Temporal.io, enabling you to build truly production-grade, reliable, and scalable agent workflows. Move beyond simple local execution and leverage Temporal's power for:
|
|
241
|
+
|
|
242
|
+
* **Fault Tolerance:** Workflows automatically resume from the last successful step after failures.
|
|
243
|
+
* **Retries:** Configure automatic retries for activities (like LLM calls or tool usage) with exponential backoff.
|
|
244
|
+
* **Scalability:** Distribute workflow and activity execution across multiple worker processes using Task Queues.
|
|
245
|
+
* **Observability:** Gain deep insights into workflow execution history via the Temporal UI.
|
|
246
|
+
|
|
247
|
+
Flock makes this easy with:
|
|
248
|
+
|
|
249
|
+
* **Declarative Configuration:** Define Temporal timeouts, retry policies, and task queues directly within your `Flock` and `FlockAgent` configurations (YAML or Python).
|
|
250
|
+
* **Correct Patterns:** Uses Temporal's recommended granular activity execution for better control and visibility.
|
|
251
|
+
* **Clear Worker Separation:** Provides guidance and flags for running dedicated Temporal workers, separating development convenience from production best practices.
|
|
226
252
|
|
|
227
253
|
### ✨ Utility: @flockclass Hydrator
|
|
228
254
|
|
|
@@ -155,13 +155,39 @@ if __name__ == "__main__":
|
|
|
155
155
|
|
|
156
156
|
## 🐤 New in Flock 0.4.0 `Magpie` 🐤
|
|
157
157
|
|
|
158
|
-
|
|
158
|
+
Version 0.4.0 brings significant enhancements focused on usability, deployment, and robustness:
|
|
159
159
|
|
|
160
|
-
### Web UI - Test Flock Agents in the Browser
|
|
161
160
|
|
|
162
|
-
###
|
|
161
|
+
### 🚀 REST API - Deploy Flock Agents as REST API Endpoints
|
|
163
162
|
|
|
164
|
-
|
|
163
|
+
Easily deploy your Flock agents as scalable REST API endpoints. Interact with your agent workflows via standard HTTP requests.
|
|
164
|
+
|
|
165
|
+
### 🖥️ Web UI - Test Flock Agents in the Browser
|
|
166
|
+
|
|
167
|
+
Test and interact with your Flock agents directly in your browser through an integrated web interface.
|
|
168
|
+
|
|
169
|
+
### ⌨️ CLI Tool - Manage Flock Agents via the Command Line
|
|
170
|
+
|
|
171
|
+
Manage Flock configurations, run agents, and inspect results directly from your command line.
|
|
172
|
+
|
|
173
|
+
### 💾 Enhanced Serialization - Share, Deploy, and Run Flock Agents by human readable yaml files
|
|
174
|
+
|
|
175
|
+
Define and share entire Flock configurations, including agents and components, using human-readable YAML files. Load flocks directly from these files for easy deployment and versioning.
|
|
176
|
+
|
|
177
|
+
### ⏱️ Robust Temporal Integration
|
|
178
|
+
|
|
179
|
+
Flock 0.4.0 introduces first-class support for Temporal.io, enabling you to build truly production-grade, reliable, and scalable agent workflows. Move beyond simple local execution and leverage Temporal's power for:
|
|
180
|
+
|
|
181
|
+
* **Fault Tolerance:** Workflows automatically resume from the last successful step after failures.
|
|
182
|
+
* **Retries:** Configure automatic retries for activities (like LLM calls or tool usage) with exponential backoff.
|
|
183
|
+
* **Scalability:** Distribute workflow and activity execution across multiple worker processes using Task Queues.
|
|
184
|
+
* **Observability:** Gain deep insights into workflow execution history via the Temporal UI.
|
|
185
|
+
|
|
186
|
+
Flock makes this easy with:
|
|
187
|
+
|
|
188
|
+
* **Declarative Configuration:** Define Temporal timeouts, retry policies, and task queues directly within your `Flock` and `FlockAgent` configurations (YAML or Python).
|
|
189
|
+
* **Correct Patterns:** Uses Temporal's recommended granular activity execution for better control and visibility.
|
|
190
|
+
* **Clear Worker Separation:** Provides guidance and flags for running dedicated Temporal workers, separating development convenience from production best practices.
|
|
165
191
|
|
|
166
192
|
### ✨ Utility: @flockclass Hydrator
|
|
167
193
|
|
|
@@ -0,0 +1,322 @@
|
|
|
1
|
+
# Configuring Temporal Execution
|
|
2
|
+
|
|
3
|
+
When you run your Flock workflows using Temporal (`enable_temporal=True`), you gain access to powerful features for reliability and scalability. Flock allows you to declaratively configure various Temporal settings for both the overall workflow and individual agent activities.
|
|
4
|
+
|
|
5
|
+
## Why Configure Temporal?
|
|
6
|
+
|
|
7
|
+
- **Task Queues:** Route different workflows or agents to specific worker pools (e.g., GPU workers, high-priority workers).
|
|
8
|
+
- **Timeouts:** Prevent runaway executions and manage resource usage.
|
|
9
|
+
- **Retry Policies:** Automatically handle transient failures (like network issues or temporary API outages) with configurable backoff strategies.
|
|
10
|
+
|
|
11
|
+
## Prerequisites
|
|
12
|
+
|
|
13
|
+
- Ensure you have Temporal running and accessible.
|
|
14
|
+
- Enable Temporal execution in your Flock: `Flock(enable_temporal=True, ...)`
|
|
15
|
+
|
|
16
|
+
## Workflow-Level Configuration (`TemporalWorkflowConfig`)
|
|
17
|
+
|
|
18
|
+
You can define default settings for the entire workflow execution when you initialize your `Flock`.
|
|
19
|
+
|
|
20
|
+
```python
|
|
21
|
+
# Import necessary classes
|
|
22
|
+
from datetime import timedelta
|
|
23
|
+
from flock.core import Flock
|
|
24
|
+
# Adjust path if needed: from flock.config.temporal_config import ...
|
|
25
|
+
from flock.workflow.temporal_config import TemporalWorkflowConfig, TemporalRetryPolicyConfig
|
|
26
|
+
|
|
27
|
+
# Define a custom retry policy (e.g., fewer retries by default)
|
|
28
|
+
default_retry = TemporalRetryPolicyConfig(
|
|
29
|
+
maximum_attempts=2, # Default 2 attempts for activities
|
|
30
|
+
initial_interval=timedelta(seconds=2)
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
# Define workflow configuration
|
|
34
|
+
workflow_config = TemporalWorkflowConfig(
|
|
35
|
+
task_queue="my-custom-queue", # Default queue for this Flock's workflows
|
|
36
|
+
workflow_execution_timeout=timedelta(minutes=30), # Max 30 mins total
|
|
37
|
+
default_activity_retry_policy=default_retry
|
|
38
|
+
)
|
|
39
|
+
|
|
40
|
+
# Pass the config to your Flock
|
|
41
|
+
my_flock = Flock(
|
|
42
|
+
name="configured_flock",
|
|
43
|
+
enable_temporal=True,
|
|
44
|
+
temporal_config=workflow_config
|
|
45
|
+
# ... other Flock args
|
|
46
|
+
)
|
|
47
|
+
|
|
48
|
+
print(f"Flock configured for Temporal queue: {my_flock.temporal_config.task_queue}")
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
**Key `TemporalWorkflowConfig` Fields:**
|
|
52
|
+
|
|
53
|
+
- `task_queue`: The default Temporal Task Queue for this workflow. Workers must listen on this queue.
|
|
54
|
+
- `workflow_execution_timeout`: Maximum total duration for the workflow.
|
|
55
|
+
- `workflow_run_timeout`: Maximum duration for a single run attempt.
|
|
56
|
+
- `default_activity_retry_policy`: A `TemporalRetryPolicyConfig` object defining the default retry behavior for all activities *unless overridden by an agent*.
|
|
57
|
+
|
|
58
|
+
## Agent-Specific Configuration (`TemporalActivityConfig`)
|
|
59
|
+
|
|
60
|
+
Sometimes, different agents need different settings (e.g., longer timeouts for complex tasks, different retry logic for external API calls). You can specify these when defining your `FlockAgent`.
|
|
61
|
+
|
|
62
|
+
```python
|
|
63
|
+
# Import necessary classes
|
|
64
|
+
from datetime import timedelta
|
|
65
|
+
from flock.core import FlockFactory
|
|
66
|
+
# Adjust path if needed: from flock.config.temporal_config import ...
|
|
67
|
+
from flock.workflow.temporal_config import TemporalActivityConfig, TemporalRetryPolicyConfig
|
|
68
|
+
|
|
69
|
+
# Define a specific retry policy for this agent
|
|
70
|
+
agent_retry = TemporalRetryPolicyConfig(
|
|
71
|
+
maximum_attempts=5, # Allow more retries
|
|
72
|
+
non_retryable_error_types=["ValueError"] # Don't retry specific errors
|
|
73
|
+
)
|
|
74
|
+
|
|
75
|
+
# Define activity configuration for this agent
|
|
76
|
+
agent_activity_config = TemporalActivityConfig(
|
|
77
|
+
start_to_close_timeout=timedelta(minutes=3), # Allow 3 minutes per attempt
|
|
78
|
+
retry_policy=agent_retry,
|
|
79
|
+
task_queue="gpu-workers-queue" # Optionally route this agent to different workers!
|
|
80
|
+
)
|
|
81
|
+
|
|
82
|
+
# Create the agent and pass the config
|
|
83
|
+
special_agent = FlockFactory.create_default_agent(
|
|
84
|
+
name="special_gpu_agent",
|
|
85
|
+
input="data",
|
|
86
|
+
output="processed_data",
|
|
87
|
+
# Add the specific Temporal config here!
|
|
88
|
+
temporal_activity_config=agent_activity_config
|
|
89
|
+
)
|
|
90
|
+
|
|
91
|
+
# Assuming 'my_flock' is the Flock instance from the previous example
|
|
92
|
+
# my_flock.add_agent(special_agent)
|
|
93
|
+
|
|
94
|
+
# You can inspect the agent's config:
|
|
95
|
+
print(f"Agent '{special_agent.name}' config timeout: {special_agent.temporal_activity_config.start_to_close_timeout}")
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
**Key `TemporalActivityConfig` Fields:**
|
|
99
|
+
|
|
100
|
+
- `task_queue`: Route *this specific agent's* execution to a different task queue (overrides workflow default).
|
|
101
|
+
- `start_to_close_timeout`: Maximum duration for a single attempt of *this specific agent's* activity.
|
|
102
|
+
- `retry_policy`: A `TemporalRetryPolicyConfig` defining retry behavior specifically for *this agent*, overriding the workflow default.
|
|
103
|
+
|
|
104
|
+
**Configuration Precedence:**
|
|
105
|
+
|
|
106
|
+
Settings are applied with the following priority:
|
|
107
|
+
|
|
108
|
+
1. Agent's `temporal_activity_config` (if set for a specific field)
|
|
109
|
+
2. Flock's `temporal_config.default_activity_retry_policy` (for retries)
|
|
110
|
+
3. Flock's `temporal_config.task_queue` (for activity task queue, if not set on agent)
|
|
111
|
+
4. Temporal's built-in defaults (e.g., for timeouts if not set anywhere).
|
|
112
|
+
|
|
113
|
+
## Runtime Metadata (`memo`)
|
|
114
|
+
|
|
115
|
+
You can add non-indexed metadata to your workflow run for observability using the `memo` parameter in `run` or `run_async`:
|
|
116
|
+
|
|
117
|
+
```python
|
|
118
|
+
# Assuming 'my_flock' is the Flock instance from previous examples
|
|
119
|
+
# result = my_flock.run_async(
|
|
120
|
+
# start_agent="some_agent",
|
|
121
|
+
# input={"data": "..."},
|
|
122
|
+
# memo={"user_id": "user123", "experiment_tag": "v2-prompt"}
|
|
123
|
+
# )
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
This metadata will be visible in the Temporal UI.
|
|
127
|
+
|
|
128
|
+
## Example
|
|
129
|
+
|
|
130
|
+
Here's a combined example similar to the one used during development:
|
|
131
|
+
|
|
132
|
+
```python
|
|
133
|
+
# .flock/flock_temporal_config_example.py
|
|
134
|
+
import asyncio
|
|
135
|
+
from datetime import timedelta
|
|
136
|
+
|
|
137
|
+
# Import Temporal config models (adjust path if needed)
|
|
138
|
+
from flock.workflow.temporal_config import (
|
|
139
|
+
TemporalActivityConfig,
|
|
140
|
+
TemporalRetryPolicyConfig,
|
|
141
|
+
TemporalWorkflowConfig,
|
|
142
|
+
)
|
|
143
|
+
from flock.core import Flock, FlockFactory
|
|
144
|
+
from flock.routers.default.default_router import DefaultRouterConfig
|
|
145
|
+
|
|
146
|
+
async def main():
|
|
147
|
+
# 1. Define Workflow Config
|
|
148
|
+
workflow_config = TemporalWorkflowConfig(
|
|
149
|
+
task_queue="flock-example-queue",
|
|
150
|
+
workflow_execution_timeout=timedelta(minutes=10),
|
|
151
|
+
default_activity_retry_policy=TemporalRetryPolicyConfig(maximum_attempts=2)
|
|
152
|
+
)
|
|
153
|
+
|
|
154
|
+
# 2. Create Flock with Temporal Config
|
|
155
|
+
flock = Flock(
|
|
156
|
+
enable_temporal=True, # MUST be True to use Temporal config
|
|
157
|
+
enable_logging=True,
|
|
158
|
+
temporal_config=workflow_config
|
|
159
|
+
)
|
|
160
|
+
|
|
161
|
+
# 3. Presentation Agent (uses workflow defaults)
|
|
162
|
+
agent = FlockFactory.create_default_agent(
|
|
163
|
+
name="presentation_agent",
|
|
164
|
+
input="topic",
|
|
165
|
+
output="funny_title, funny_slide_headers",
|
|
166
|
+
)
|
|
167
|
+
flock.add_agent(agent)
|
|
168
|
+
|
|
169
|
+
# 4. Content Agent Config (specific settings)
|
|
170
|
+
content_agent_retry = TemporalRetryPolicyConfig(maximum_attempts=4)
|
|
171
|
+
content_agent_activity_config = TemporalActivityConfig(
|
|
172
|
+
start_to_close_timeout=timedelta(minutes=1),
|
|
173
|
+
retry_policy=content_agent_retry
|
|
174
|
+
)
|
|
175
|
+
|
|
176
|
+
# 5. Content Agent (with specific config)
|
|
177
|
+
content_agent = FlockFactory.create_default_agent(
|
|
178
|
+
name="content_agent",
|
|
179
|
+
input="funny_title, funny_slide_headers",
|
|
180
|
+
output="funny_slide_content",
|
|
181
|
+
temporal_activity_config=content_agent_activity_config
|
|
182
|
+
)
|
|
183
|
+
flock.add_agent(content_agent)
|
|
184
|
+
|
|
185
|
+
# 6. Add routing
|
|
186
|
+
agent.add_component(DefaultRouterConfig(hand_off="content_agent"))
|
|
187
|
+
|
|
188
|
+
print(f"Starting Flock run on Temporal task queue: {workflow_config.task_queue}")
|
|
189
|
+
print(f"Ensure a Temporal worker is listening on '{workflow_config.task_queue}'")
|
|
190
|
+
|
|
191
|
+
# 7. Run the workflow (example input)
|
|
192
|
+
try:
|
|
193
|
+
result = await flock.run_async(
|
|
194
|
+
start_agent="presentation_agent",
|
|
195
|
+
input={"topic": "Why Temporal makes distributed systems easier"},
|
|
196
|
+
memo={"run_type": "docs_example"} # Example memo
|
|
197
|
+
)
|
|
198
|
+
|
|
199
|
+
print("\n--- Result ---")
|
|
200
|
+
print(result)
|
|
201
|
+
except Exception as e:
|
|
202
|
+
print(f"\n--- An error occurred ---")
|
|
203
|
+
print(f"Error: {e}")
|
|
204
|
+
print("Ensure Temporal service and worker are running correctly.")
|
|
205
|
+
|
|
206
|
+
|
|
207
|
+
if __name__ == "__main__":
|
|
208
|
+
asyncio.run(main())
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
## Next Steps
|
|
212
|
+
|
|
213
|
+
- Learn more about Temporal's concepts like [Task Queues](https://docs.temporal.io/concepts/what-is-a-task-queue) and [Retries](https://docs.temporal.io/concepts/what-is-a-retry-policy).
|
|
214
|
+
- Explore how to run [Temporal Workers](https://docs.temporal.io/application-development/foundations#worker) to process tasks from your queues.
|
|
215
|
+
|
|
216
|
+
## Running Temporal Workers (Production Requirement)
|
|
217
|
+
|
|
218
|
+
The examples above show how to configure Temporal settings declaratively. However, for Temporal workflows to actually execute, you need **Worker Processes** running, listening on the specified task queues.
|
|
219
|
+
|
|
220
|
+
**Development vs. Production:**
|
|
221
|
+
|
|
222
|
+
- **Current Behavior (Development/Testing):** For convenience during local development and testing, when you call `flock.run_async` with `enable_temporal=True`, the Flock framework *currently* starts a temporary, in-process worker in the background. This allows simple scripts like the examples above to run without needing a separate process. **This is NOT intended for production use.**
|
|
223
|
+
- **Production Requirement:** In a real deployment (staging, production), you **must** run dedicated, long-running worker processes separately from your application that calls `flock.run_async`. These workers are responsible for picking up tasks from the queue and executing your workflow and activity code.
|
|
224
|
+
|
|
225
|
+
**Why Dedicated Workers?**
|
|
226
|
+
|
|
227
|
+
- **Scalability:** You can run multiple worker processes (even on different machines) listening to the same task queue to handle higher loads.
|
|
228
|
+
- **Reliability:** Workers can be restarted independently of your main application.
|
|
229
|
+
- **Resource Management:** You can run workers on machines with specific resources (e.g., GPUs for certain agents) by having them listen on specific task queues (like `gpu-workers-queue` configured in `TemporalActivityConfig`).
|
|
230
|
+
- **Isolation:** Keeps the workflow execution logic separate from your application logic.
|
|
231
|
+
|
|
232
|
+
**Creating a Worker Script:**
|
|
233
|
+
|
|
234
|
+
You need to create a separate Python script (e.g., `run_flock_worker.py`) to run your workers. Here's a basic example:
|
|
235
|
+
|
|
236
|
+
```python
|
|
237
|
+
# run_flock_worker.py
|
|
238
|
+
import asyncio
|
|
239
|
+
import logging # Use standard logging for the worker process
|
|
240
|
+
|
|
241
|
+
from temporalio.client import Client
|
|
242
|
+
from temporalio.worker import Worker
|
|
243
|
+
|
|
244
|
+
# Import your Flock workflow and activities
|
|
245
|
+
# Ensure these imports work in the context where you run the worker
|
|
246
|
+
from flock.workflow.flock_workflow import FlockWorkflow
|
|
247
|
+
from flock.workflow.agent_execution_activity import (
|
|
248
|
+
execute_single_agent,
|
|
249
|
+
determine_next_agent,
|
|
250
|
+
)
|
|
251
|
+
|
|
252
|
+
# --- Configuration ---
|
|
253
|
+
# Make these configurable via environment variables, CLI args, or a config file
|
|
254
|
+
TEMPORAL_SERVICE_URL = "localhost:7233"
|
|
255
|
+
NAMESPACE = "default"
|
|
256
|
+
# The task queue(s) this worker process will listen on.
|
|
257
|
+
# Must match the queue(s) defined in your Flock/Agent Temporal configurations.
|
|
258
|
+
TASK_QUEUES = ["flock-queue", "flock-example-queue", "my-custom-queue", "gpu-workers-queue"]
|
|
259
|
+
|
|
260
|
+
# Configure logging for the worker process
|
|
261
|
+
logging.basicConfig(level=logging.INFO)
|
|
262
|
+
log = logging.getLogger(__name__)
|
|
263
|
+
|
|
264
|
+
async def run_worker():
|
|
265
|
+
log.info(f"Connecting to Temporal at {TEMPORAL_SERVICE_URL} in namespace '{NAMESPACE}'")
|
|
266
|
+
client = await Client.connect(TEMPORAL_SERVICE_URL, namespace=NAMESPACE)
|
|
267
|
+
log.info(f"Client connected successfully.")
|
|
268
|
+
|
|
269
|
+
activities_to_register = [execute_single_agent, determine_next_agent]
|
|
270
|
+
workflows_to_register = [FlockWorkflow]
|
|
271
|
+
|
|
272
|
+
# Create and run workers for each specified task queue
|
|
273
|
+
# You might run multiple instances of this script for different queues
|
|
274
|
+
# or handle multiple queues in one worker if resources allow.
|
|
275
|
+
worker_tasks = []
|
|
276
|
+
for queue in TASK_QUEUES:
|
|
277
|
+
log.info(f"Starting worker for task queue: '{queue}'")
|
|
278
|
+
worker = Worker(
|
|
279
|
+
client,
|
|
280
|
+
task_queue=queue,
|
|
281
|
+
workflows=workflows_to_register,
|
|
282
|
+
activities=activities_to_register,
|
|
283
|
+
# identity="my-worker-process-1" # Optional: Set a worker identity
|
|
284
|
+
)
|
|
285
|
+
worker_tasks.append(asyncio.create_task(worker.run()))
|
|
286
|
+
log.info(f"Worker for task queue '{queue}' started.")
|
|
287
|
+
|
|
288
|
+
log.info(f"All workers started. Running indefinitely...")
|
|
289
|
+
# Keep running until manually stopped or an error occurs
|
|
290
|
+
await asyncio.gather(*worker_tasks)
|
|
291
|
+
|
|
292
|
+
if __name__ == "__main__":
|
|
293
|
+
try:
|
|
294
|
+
asyncio.run(run_worker())
|
|
295
|
+
except KeyboardInterrupt:
|
|
296
|
+
log.info("Worker process interrupted. Shutting down.")
|
|
297
|
+
except Exception as e:
|
|
298
|
+
log.exception(f"Worker process failed: {e}")
|
|
299
|
+
|
|
300
|
+
**Running the Worker:**
|
|
301
|
+
|
|
302
|
+
1. Save the code above as `run_flock_worker.py` (or similar).
|
|
303
|
+
2. Customize `TEMPORAL_SERVICE_URL`, `NAMESPACE`, and especially `TASK_QUEUES` to match your environment and the queues you configured in your `Flock` and `FlockAgent` objects.
|
|
304
|
+
3. Run the worker from your terminal: `python run_flock_worker.py`
|
|
305
|
+
4. You typically keep this worker process running indefinitely using a process manager like `systemd`, `supervisor`, or within a container orchestration system (like Kubernetes).
|
|
306
|
+
|
|
307
|
+
**Important Note on Automatic Worker Startup:**
|
|
308
|
+
|
|
309
|
+
As mentioned, `flock.run_async` currently starts a temporary worker for convenience if `enable_temporal=True` and the `temporal_start_in_process_worker` flag on your `Flock` instance is `True` (which is the default).
|
|
310
|
+
|
|
311
|
+
When you are running your own dedicated workers (like the script above), this temporary worker becomes redundant. To prevent this, you should set `temporal_start_in_process_worker=False` when initializing your `Flock` instance:
|
|
312
|
+
|
|
313
|
+
```python
|
|
314
|
+
my_prod_flock = Flock(
|
|
315
|
+
# ... other config ...
|
|
316
|
+
enable_temporal=True,
|
|
317
|
+
temporal_config=workflow_config, # Your production temporal config
|
|
318
|
+
temporal_start_in_process_worker=False # Disable automatic worker
|
|
319
|
+
)
|
|
320
|
+
```
|
|
321
|
+
|
|
322
|
+
Focus on ensuring your dedicated workers are correctly configured and running for production deployments.
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
name: flock_6e0930c6
|
|
2
|
+
model: openai/gpt-4o
|
|
3
|
+
enable_temporal: true
|
|
4
|
+
enable_logging: true
|
|
5
|
+
show_flock_banner: true
|
|
6
|
+
temporal_config:
|
|
7
|
+
task_queue: flock-test-queue
|
|
8
|
+
workflow_execution_timeout: PT10M
|
|
9
|
+
default_activity_retry_policy:
|
|
10
|
+
initial_interval: PT1S
|
|
11
|
+
backoff_coefficient: 2.0
|
|
12
|
+
maximum_interval: PT1M40S
|
|
13
|
+
maximum_attempts: 2
|
|
14
|
+
non_retryable_error_types: []
|
|
15
|
+
agents:
|
|
16
|
+
my_presentation_agent:
|
|
17
|
+
name: my_presentation_agent
|
|
18
|
+
model: openai/gpt-4o
|
|
19
|
+
input: topic
|
|
20
|
+
output: funny_title, funny_slide_headers
|
|
21
|
+
write_to_file: false
|
|
22
|
+
wait_for_input: false
|
|
23
|
+
evaluator:
|
|
24
|
+
name: default
|
|
25
|
+
config:
|
|
26
|
+
model: openai/gpt-4o
|
|
27
|
+
use_cache: true
|
|
28
|
+
temperature: 0.0
|
|
29
|
+
max_tokens: 8192
|
|
30
|
+
stream: false
|
|
31
|
+
include_thought_process: false
|
|
32
|
+
kwargs: {}
|
|
33
|
+
type: DeclarativeEvaluator
|
|
34
|
+
handoff_router:
|
|
35
|
+
name: defaultrouter
|
|
36
|
+
config:
|
|
37
|
+
enabled: true
|
|
38
|
+
hand_off: content_agent
|
|
39
|
+
type: DefaultRouter
|
|
40
|
+
modules:
|
|
41
|
+
output:
|
|
42
|
+
name: output
|
|
43
|
+
config:
|
|
44
|
+
enabled: true
|
|
45
|
+
theme: abernathy
|
|
46
|
+
render_table: false
|
|
47
|
+
max_length: 1000
|
|
48
|
+
truncate_long_values: true
|
|
49
|
+
show_metadata: true
|
|
50
|
+
format_code_blocks: true
|
|
51
|
+
custom_formatters: {}
|
|
52
|
+
no_output: false
|
|
53
|
+
print_context: false
|
|
54
|
+
type: OutputModule
|
|
55
|
+
metrics:
|
|
56
|
+
name: metrics
|
|
57
|
+
config:
|
|
58
|
+
enabled: true
|
|
59
|
+
collect_timing: true
|
|
60
|
+
collect_memory: true
|
|
61
|
+
collect_token_usage: true
|
|
62
|
+
collect_cpu: true
|
|
63
|
+
storage_type: json
|
|
64
|
+
metrics_dir: metrics/
|
|
65
|
+
aggregation_interval: 1h
|
|
66
|
+
retention_days: 30
|
|
67
|
+
alert_on_high_latency: true
|
|
68
|
+
latency_threshold_ms: 30000
|
|
69
|
+
type: MetricsModule
|
|
70
|
+
content_agent:
|
|
71
|
+
name: content_agent
|
|
72
|
+
model: openai/gpt-4o
|
|
73
|
+
input: funny_title, funny_slide_headers
|
|
74
|
+
output: funny_slide_content
|
|
75
|
+
write_to_file: false
|
|
76
|
+
wait_for_input: false
|
|
77
|
+
temporal_activity_config:
|
|
78
|
+
start_to_close_timeout: PT1M
|
|
79
|
+
retry_policy:
|
|
80
|
+
initial_interval: PT2S
|
|
81
|
+
backoff_coefficient: 2.0
|
|
82
|
+
maximum_interval: PT1M40S
|
|
83
|
+
maximum_attempts: 4
|
|
84
|
+
non_retryable_error_types:
|
|
85
|
+
- ValueError
|
|
86
|
+
evaluator:
|
|
87
|
+
name: default
|
|
88
|
+
config:
|
|
89
|
+
model: openai/gpt-4o
|
|
90
|
+
use_cache: true
|
|
91
|
+
temperature: 0.0
|
|
92
|
+
max_tokens: 8192
|
|
93
|
+
stream: false
|
|
94
|
+
include_thought_process: false
|
|
95
|
+
kwargs: {}
|
|
96
|
+
type: DeclarativeEvaluator
|
|
97
|
+
modules:
|
|
98
|
+
output:
|
|
99
|
+
name: output
|
|
100
|
+
config:
|
|
101
|
+
enabled: true
|
|
102
|
+
theme: abernathy
|
|
103
|
+
render_table: false
|
|
104
|
+
max_length: 1000
|
|
105
|
+
truncate_long_values: true
|
|
106
|
+
show_metadata: true
|
|
107
|
+
format_code_blocks: true
|
|
108
|
+
custom_formatters: {}
|
|
109
|
+
no_output: false
|
|
110
|
+
print_context: false
|
|
111
|
+
type: OutputModule
|
|
112
|
+
metrics:
|
|
113
|
+
name: metrics
|
|
114
|
+
config:
|
|
115
|
+
enabled: true
|
|
116
|
+
collect_timing: true
|
|
117
|
+
collect_memory: true
|
|
118
|
+
collect_token_usage: true
|
|
119
|
+
collect_cpu: true
|
|
120
|
+
storage_type: json
|
|
121
|
+
metrics_dir: metrics/
|
|
122
|
+
aggregation_interval: 1h
|
|
123
|
+
retention_days: 30
|
|
124
|
+
alert_on_high_latency: true
|
|
125
|
+
latency_threshold_ms: 30000
|
|
126
|
+
type: MetricsModule
|
|
127
|
+
components:
|
|
128
|
+
DeclarativeEvaluator:
|
|
129
|
+
type: flock_component
|
|
130
|
+
module_path: flock.evaluators.declarative.declarative_evaluator
|
|
131
|
+
file_path: src\flock\evaluators\declarative\declarative_evaluator.py
|
|
132
|
+
description: Evaluator that uses DSPy for generation.
|
|
133
|
+
OutputModule:
|
|
134
|
+
type: flock_component
|
|
135
|
+
module_path: flock.modules.output.output_module
|
|
136
|
+
file_path: src\flock\modules\output\output_module.py
|
|
137
|
+
description: Module that handles output formatting and display.
|
|
138
|
+
MetricsModule:
|
|
139
|
+
type: flock_component
|
|
140
|
+
module_path: flock.modules.performance.metrics_module
|
|
141
|
+
file_path: src\flock\modules\performance\metrics_module.py
|
|
142
|
+
description: Module for collecting and analyzing agent performance metrics.
|
|
143
|
+
DefaultRouter:
|
|
144
|
+
type: flock_component
|
|
145
|
+
module_path: flock.routers.default.default_router
|
|
146
|
+
file_path: src\flock\routers\default\default_router.py
|
|
147
|
+
description: 'Default router implementation.
|
|
148
|
+
|
|
149
|
+
|
|
150
|
+
This router simply uses the agent''s hand_off property to determine the next
|
|
151
|
+
agent.
|
|
152
|
+
|
|
153
|
+
It does not perform any dynamic routing.'
|
|
154
|
+
dependencies:
|
|
155
|
+
- pydantic>=2.0.0
|
|
156
|
+
- flock-core>=0.4.0
|
|
157
|
+
metadata:
|
|
158
|
+
path_type: relative
|
|
159
|
+
flock_version: 0.4.0
|
|
@@ -98,6 +98,7 @@ nav:
|
|
|
98
98
|
- Guides:
|
|
99
99
|
- Overview: guides/index.md
|
|
100
100
|
- Chaining Agents: guides/chaining-agents.md
|
|
101
|
+
- Configuring Temporal Execution: guides/temporal-configuration.md
|
|
101
102
|
# Add later: Custom Tools, Using Memory, Advanced Workflows
|
|
102
103
|
- Deployment:
|
|
103
104
|
- Overview: deployment/index.md
|
|
@@ -20,7 +20,7 @@ class AgentRunRecord(BaseModel):
|
|
|
20
20
|
data: dict[str, Any] = Field(default_factory=dict)
|
|
21
21
|
timestamp: str = Field(default="")
|
|
22
22
|
hand_off: dict | None = Field(default_factory=dict)
|
|
23
|
-
called_from: str = Field(default=
|
|
23
|
+
called_from: str | None = Field(default=None)
|
|
24
24
|
|
|
25
25
|
|
|
26
26
|
class AgentDefinition(BaseModel):
|
|
@@ -132,6 +132,15 @@ class FlockContext(Serializable, BaseModel):
|
|
|
132
132
|
def get_agent_definition(self, agent_name: str) -> AgentDefinition | None:
|
|
133
133
|
return self.agent_definitions.get(agent_name)
|
|
134
134
|
|
|
135
|
+
def get_last_agent_name(self) -> str | None:
|
|
136
|
+
"""Returns the name of the agent from the most recent history record."""
|
|
137
|
+
if not self.history:
|
|
138
|
+
return None
|
|
139
|
+
last_record = self.history[-1]
|
|
140
|
+
# The 'called_from' field in the *next* record is the previous agent.
|
|
141
|
+
# However, to get the name of the *last executed agent*, we look at the 'agent' field.
|
|
142
|
+
return last_record.agent
|
|
143
|
+
|
|
135
144
|
def add_agent_definition(
|
|
136
145
|
self, agent_type: type, agent_name: str, agent_data: Any
|
|
137
146
|
) -> None:
|