flock-core 0.3.35__tar.gz → 0.3.36__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of flock-core might be problematic. Click here for more details.
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/specs/01_core_architecture.md +12 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/specs/02_agent_factory.md +4 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/specs/03_module_system.md +14 -4
- flock_core-0.3.36/.project/specs/04_evaluator_system.md +103 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/specs/05_router_system.md +47 -20
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/specs/06_tool_system.md +41 -10
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/specs/07_execution_system.md +30 -21
- flock_core-0.3.36/.project/specs/08_context_system.md +121 -0
- flock_core-0.3.36/.project/specs/09_cli_system.md +117 -0
- flock_core-0.3.36/.project/specs/10_workflow_system.md +140 -0
- flock_core-0.3.36/.project/specs/11_memory_system.md +130 -0
- flock_core-0.3.36/.project/specs/12_platform_system.md +83 -0
- flock_core-0.3.36/.project/specs/13_registry_system.md +130 -0
- flock_core-0.3.36/.project/specs/14_serialization_system.md +140 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/PKG-INFO +2 -1
- {flock_core-0.3.35 → flock_core-0.3.36}/pyproject.toml +2 -1
- {flock_core-0.3.35 → flock_core-0.3.36}/uv.lock +18 -1
- flock_core-0.3.35/.project/specs/04_evaluator_system.md +0 -100
- flock_core-0.3.35/.project/specs/08_context_system.md +0 -119
- flock_core-0.3.35/.project/specs/09_cli_system.md +0 -119
- {flock_core-0.3.35 → flock_core-0.3.36}/.cursorignore +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.devcontainer/devcontainer.json +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.env_template +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.github/PULL_REQUEST_TEMPLATE.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.github/workflows/.gitkeep +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.github/workflows/deploy-documentation.yml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.gitignore +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/SPECS.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/TASKS.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/USERSTORIES.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/analyze_repo_prompt.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/llm/flock-02-04-25-dynamic-ui.txt +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/llm/flock-29_03_2025-yaml.txt +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/llm/llms-ctx-fasthtml.txt +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/llm/llms-ctx-full_monsterui.txt +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/llm/old_ui_poc.txt +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/planning_prompt.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/tasks/US007-T005-YAML-Documentation-and-Examples.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/tasks/US007-T006-YAML-Editor-CLI.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/tasks/done/US001-001-env-settings-editor.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/tasks/done/US001-002-env-settings-ui-components.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/tasks/done/US001-003-env-settings-file-operations.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/tasks/done/US001-004-settings-security-features.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/tasks/done/US001-005-env-profile-switching.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/tasks/done/US007-T001-YAML-Serializable-Base.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/tasks/done/US007-T002.1-FlockAgent-YAML-Formatting.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/tasks/done/US007-T002.2-FlockAgent-YAML-Examples.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/tasks/done/US007-T003.1-Flock-System-YAML-Formatting.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/tasks/done/US007-T003.2-YAML-Schema-Documentation.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/tasks/done/US007-T004-Callable-Reference-System.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/tasks/done/US007-T007-YAML-Serialization-Tests.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/userstories/US007-YAML-Serialization.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.project/userstories/done/US001-Settings-Editor.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.sesskey +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.vscode/launch.json +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.vscode/settings.json +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/.vscode/tasks.json +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/LICENSE +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/README.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/bloggy.flock.yaml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/advanced/complex-workflows.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/advanced/custom-agents.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/advanced/performance.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/advanced/testing.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/api/flock-core.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/api/flockagent.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/api/types.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/api/utilities.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/architecture/components.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/architecture/design-decisions.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/architecture/overview.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/drawio/architecture.drawio +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/cli_outputs/out.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/components_chart.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/examples/01_01.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/examples/01_02.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/examples/01_03.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/examples/01_04.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/examples/01_05.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/examples/01_06.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/flock.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/flock_cli.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/flow_chart.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/getting-started/first_agent_00.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/hummingbird.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/icon.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/icon.png~ +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/logo.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/memory_concepts.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/memory_flow.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/assets/images/memory_flow_chart.png +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/changelog.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/cli/index.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/cli/settings-editor.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/contributing/code-style.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/contributing/development.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/contributing/documentation.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/contributing/testing.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/agents.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/declarative.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/error-handling.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/evaluators.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/memory.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/modules/memory.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/modules/metrics.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/modules/output.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/modules.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/routers/agent.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/routers/default.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/routers/llm.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/routers.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/tools/azure-tools.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/tools/overview.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/type-system.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/core-concepts/workflows.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/create_doc_boilerplate.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/deployment/monitoring.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/deployment/production-setup.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/deployment/scalability.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/deployment/security.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/development/dev.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/development/replace-dspy/implementation_plan.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/development/topics.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/examples/chain-gang.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/examples/hello-flock.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/examples/pydantic.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/examples/type-system.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/features/agent-chaining.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/features/agent-definition.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/features/lifecycle-hooks.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/features/pydantic.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/features/type-safety.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/getting-started/concepts.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/getting-started/configuration.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/getting-started/installation.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/getting-started/quickstart.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/index.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/integrations/dspy.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/integrations/litellm.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/integrations/rest-api.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/integrations/tavily.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/integrations/temporal.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/release-notes/release_notes.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/stylesheets/extra.css +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/tutorials/blog-generator.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/tutorials/custom-tools.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/tutorials/error-recovery.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/docs/tutorials/multi-agent.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/01_introduction/01_simple_example.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/01_introduction/02_typed_output.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/01_introduction/03_tool_and_code_agent.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/01_introduction/04_descriptions.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/01_introduction/05_typed_output2.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/01_introduction/06_simple_hand_off.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/01_introduction/07_all_base_concepts.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/02_concepts/api/api_client.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/02_concepts/api/api_server.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/02_concepts/context/context.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/02_concepts/evaluator/multi_hops_memory.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/02_concepts/evaluator/multi_hops_zep.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/02_concepts/modules/use_modules.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/02_concepts/router/router_example.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/02_concepts/tools/azure_tools_example.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/03_apps/dynamic_apps/main.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/03_apps/gemini_dev/main.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/03_apps/roguelike/game.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/03_apps/story_gen/cursor.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/03_apps/story_gen/main.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/04_comparison/rag_comparison/rag.ipynb +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/05_documentation/getting-started/first_agent_01.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/05_documentation/getting-started/first_agent_02.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/05_documentation/getting-started/first_agent_03.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/README.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/02_cook_book/flock_without_llms.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/02_cook_book/long_research_no_handoff.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/02_cook_book/painting_by_numbers.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/02_cook_book/project_manager.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/02_cook_book/repo_analyzer/repo_analyzer.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/02_cook_book/repo_analyzer/repo_analyzer_llm.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/02_cook_book/save_and_load/load_01.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/02_cook_book/save_and_load/load_02.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/02_cook_book/save_and_load/load_03.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/02_cook_book/save_and_load/load_04.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/02_cook_book/save_and_load/save_01.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/02_cook_book/save_and_load/save_02.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/02_cook_book/save_and_load/save_03.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/02_cook_book/self_improvement_with_memory.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/hier/her_vis.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/hier/hier_mem.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/misc/memory.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/misc/self_learner.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/misc/self_learner2.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/examples/playground/website/app.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/mkdocs.yml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/my_flock.flock.yaml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/project.flock.yaml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/requirements.txt +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/scripts/code_collector.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/__init__.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/cli/assets/release_notes.md +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/cli/constants.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/cli/create_agent.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/cli/create_flock.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/cli/execute_flock.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/cli/load_agent.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/cli/load_examples.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/cli/load_flock.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/cli/load_release_notes.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/cli/loaded_flock_cli.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/cli/manage_agents.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/cli/registry_management.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/cli/settings.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/cli/view_results.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/cli/yaml_editor.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/config.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/__init__.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/api/__init__.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/api/endpoints.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/api/main.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/api/models.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/api/run_store.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/api/ui/__init__.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/api/ui/routes.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/api/ui/utils.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/context/context.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/context/context_manager.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/context/context_vars.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/execution/local_executor.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/execution/temporal_executor.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/flock.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/flock_agent.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/flock_evaluator.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/flock_factory.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/flock_module.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/flock_registry.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/flock_router.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/interpreter/python_interpreter.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/logging/__init__.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/logging/formatters/enum_builder.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/logging/formatters/theme_builder.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/logging/formatters/themed_formatter.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/logging/formatters/themes.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/logging/logging.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/logging/span_middleware/baggage_span_processor.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/logging/telemetry.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/logging/telemetry_exporter/base_exporter.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/logging/telemetry_exporter/file_exporter.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/logging/telemetry_exporter/sqlite_exporter.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/logging/trace_and_logged.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/mixin/dspy_integration.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/mixin/prompt_parser.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/serialization/__init__.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/serialization/callable_registry.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/serialization/json_encoder.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/serialization/secure_serializer.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/serialization/serializable.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/serialization/serialization_utils.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/tools/azure_tools.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/tools/basic_tools.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/tools/dev_tools/github.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/tools/llm_tools.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/tools/markdown_tools.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/util/cli_helper.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/util/hydrator.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/core/util/input_resolver.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/evaluators/declarative/declarative_evaluator.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/evaluators/memory/azure_search_evaluator.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/evaluators/memory/memory_evaluator.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/evaluators/natural_language/natural_language_evaluator.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/evaluators/zep/zep_evaluator.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/modules/azure-search/azure_search_module.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/modules/callback/callback_module.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/modules/memory/memory_module.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/modules/memory/memory_parser.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/modules/memory/memory_storage.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/modules/output/output_module.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/modules/performance/metrics_module.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/modules/zep/zep_module.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/platform/docker_tools.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/platform/jaeger_install.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/routers/__init__.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/routers/agent/__init__.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/routers/agent/agent_router.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/routers/agent/handoff_agent.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/routers/default/__init__.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/routers/default/default_router.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/routers/llm/__init__.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/routers/llm/llm_router.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/3024-day.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/3024-night.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/aardvark-blue.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/abernathy.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/adventure.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/adventuretime.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/afterglow.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/alabaster.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/alienblood.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/andromeda.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/apple-classic.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/apple-system-colors.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/arcoiris.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/argonaut copy.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/argonaut.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/arthur.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/ateliersulphurpool.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/atom.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/atom_test.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/atomonelight.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/aurora.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/ayu copy.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/ayu-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/ayu-mirage.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/ayu.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/banana-blueberry.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/batman.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/belafonte-day.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/belafonte-night.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/birdsofparadise.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/blazer.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/blue-matrix.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/blueberrypie.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/bluedolphin.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/blulocodark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/blulocolight.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/borland.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/breeze.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/bright-lights.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/broadcast.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/brogrammer.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/builtin-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/builtin-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/builtin-pastel-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/builtin-solarized-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/builtin-solarized-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/builtin-tango-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/builtin-tango-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/c64.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/calamity.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/catppuccin-frappe.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/catppuccin-latte.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/catppuccin-macchiato.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/catppuccin-mocha.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/cga.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/chalk.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/chalkboard.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/challengerdeep.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/chester.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/ciapre.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/clrs.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/cobalt-neon.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/cobalt2.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/coffee-theme.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/crayonponyfish.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/cutiepro.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/cyberdyne.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/cyberpunk.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/dark+.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/dark-pastel.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/darkermatrix.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/darkmatrix.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/darkside.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/dayfox.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/deep.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/desert.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/dimidium.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/dimmedmonokai.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/django.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/djangorebornagain.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/djangosmooth.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/doom-peacock.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/doomone.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/dotgov.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/dracula+.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/dracula.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/duckbones.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/duotone-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/earthsong.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/elemental.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/elementary.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/encom.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/espresso-libre.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/espresso.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/everblush.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/fahrenheit.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/fairyfloss.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/farmhouse-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/farmhouse-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/fideloper.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/firefly-traditional.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/firefoxdev.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/firewatch.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/fishtank.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/flat.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/flatland.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/flexoki-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/flexoki-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/floraverse.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/forestblue.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/framer.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/frontenddelight.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/funforrest.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/galaxy.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/galizur.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/github-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/github.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/glacier.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/grape.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/grass.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/grey-green.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/gruber-darker.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/gruvboxdark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/gruvboxdarkhard.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/gruvboxlight.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/guezwhoz.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/hacktober.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/hardcore.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/harper.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/hax0r-blue.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/hax0r-gr33n.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/hax0r-r3d.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/highway.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/hipster-green.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/hivacruz.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/homebrew.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/hopscotch.256.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/hopscotch.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/hurtado.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/hybrid.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/ic-green-ppl.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/ic-orange-ppl.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/iceberg-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/iceberg-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/idea.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/idletoes.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/ir-black.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/iterm2-dark-background.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/iterm2-default.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/iterm2-light-background.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/iterm2-smoooooth.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/iterm2-solarized-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/iterm2-tango-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/iterm2-tango-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/jackie-brown.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/japanesque.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/jellybeans.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/jetbrains-darcula.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/jubi.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/kanagawabones.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/kibble.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/kolorit.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/konsolas.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/kurokula.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/lab-fox.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/laser.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/later-this-evening.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/lavandula.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/liquidcarbon.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/liquidcarbontransparent.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/lovelace.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/man-page.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/mariana.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/material.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/materialdark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/materialdarker.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/materialdesigncolors.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/materialocean.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/mathias.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/matrix.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/medallion.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/mellifluous.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/midnight-in-mojave.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/mirage.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/misterioso.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/molokai.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/monalisa.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/monokai-remastered.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/monokai-soda.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/monokai-vivid.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/n0tch2k.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/neobones-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/neobones-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/neon.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/neopolitan.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/neutron.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/night-owlish-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/nightfox.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/nightlion-v1.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/nightlion-v2.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/niji.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/nocturnal-winter.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/nord-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/nord.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/novel.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/nvimdark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/nvimlight.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/obsidian.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/ocean.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/oceanic-next.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/oceanicmaterial.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/ollie.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/onehalfdark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/onehalflight.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/operator-mono-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/overnight-slumber.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/oxocarbon.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/palenighthc.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/pandora.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/paraiso-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/paulmillr.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/pencildark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/pencillight.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/peppermint.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/piatto-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/pnevma.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/popping-and-locking.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/primary.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/pro-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/pro.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/purple-rain.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/purplepeter.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/rapture.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/raycast-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/raycast-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/rebecca.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/red-alert.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/red-planet.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/red-sands.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/relaxed.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/retro.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/rippedcasts.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/rose-pine-dawn.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/rose-pine-moon.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/rose-pine.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/rouge-2.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/royal.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/ryuuko.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/sakura.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/scarlet-protocol.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/seafoam-pastel.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/seashells.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/seoulbones-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/seoulbones-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/seti.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/shades-of-purple.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/shaman.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/slate.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/sleepyhollow.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/smyck.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/snazzy.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/softserver.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/solarized-darcula.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/solarized-dark---patched.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/spacedust.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/spacegray-eighties.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/spacegray.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/spiderman.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/spring.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/square.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/sublette.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/subliminal.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/sugarplum.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/sundried.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/symfonic.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/synthwave-everything.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/synthwave.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/synthwavealpha.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/tango-adapted.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/tango-half-adapted.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/teerb.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/terafox.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/terminal-basic.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/thayer-bright.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/the-hulk.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/tinacious-design-(dark).toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/tinacious-design-(light).toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/tokyonight-day.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/tokyonight-storm.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/tokyonight.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/tomorrow-night-blue.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/tomorrow-night-bright.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/tomorrow-night-burns.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/tomorrow-night.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/tomorrow.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/toychest.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/treehouse.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/twilight.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/ubuntu.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/ultradark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/ultraviolent.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/underthesea.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/unikitty.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/urple.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/vaughn.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/vesper.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/vibrantink.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/vimbones.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/violet-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/violet-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/warmneon.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/wez.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/whimsy.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/wildcherry.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/wilmersdorf.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/wombat.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/wryan.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/xcodedark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/xcodedarkhc.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/xcodelight.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/xcodelighthc.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/xcodewwdc.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/zenbones-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/zenbones-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/zenbones.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/zenburn.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/zenburned.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/zenwritten-dark.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/themes/zenwritten-light.toml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/workflow/__init__.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/workflow/activities.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/workflow/agent_activities.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/workflow/temporal_setup.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/src/flock/workflow/workflow.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/test.yaml +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/tests/__init__.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/tests/serialization/__init__.py +0 -0
- {flock_core-0.3.35 → flock_core-0.3.36}/tests/serialization/test_yaml_serialization.py +0 -0
|
@@ -9,6 +9,8 @@ Flock is a framework for building, orchestrating, and running AI agent systems.
|
|
|
9
9
|
|
|
10
10
|
The central orchestrator that manages agents, tools, and execution flow.
|
|
11
11
|
|
|
12
|
+
**Implementation:** `src/flock/core/flock.py`
|
|
13
|
+
|
|
12
14
|
**Responsibilities:**
|
|
13
15
|
- Managing agent registration and retrieval
|
|
14
16
|
- Orchestrating workflow execution
|
|
@@ -27,6 +29,8 @@ The central orchestrator that manages agents, tools, and execution flow.
|
|
|
27
29
|
|
|
28
30
|
The core agent class that defines a single AI agent's capabilities.
|
|
29
31
|
|
|
32
|
+
**Implementation:** `src/flock/core/flock_agent.py`
|
|
33
|
+
|
|
30
34
|
**Responsibilities:**
|
|
31
35
|
- Defining agent inputs and outputs
|
|
32
36
|
- Managing agent lifecycle
|
|
@@ -49,6 +53,8 @@ The core agent class that defines a single AI agent's capabilities.
|
|
|
49
53
|
|
|
50
54
|
Extension system for agents to modify behavior through lifecycle hooks.
|
|
51
55
|
|
|
56
|
+
**Implementation:** `src/flock/core/flock_module.py`
|
|
57
|
+
|
|
52
58
|
**Responsibilities:**
|
|
53
59
|
- Hooking into agent lifecycle events
|
|
54
60
|
- Modifying inputs or outputs
|
|
@@ -66,6 +72,8 @@ Extension system for agents to modify behavior through lifecycle hooks.
|
|
|
66
72
|
|
|
67
73
|
Strategy for evaluating agent requests and generating outputs.
|
|
68
74
|
|
|
75
|
+
**Implementation:** `src/flock/core/flock_evaluator.py`
|
|
76
|
+
|
|
69
77
|
**Responsibilities:**
|
|
70
78
|
- Processing agent inputs
|
|
71
79
|
- Formulating appropriate prompts
|
|
@@ -77,6 +85,8 @@ Strategy for evaluating agent requests and generating outputs.
|
|
|
77
85
|
|
|
78
86
|
Mechanism for directing workflow between agents.
|
|
79
87
|
|
|
88
|
+
**Implementation:** `src/flock/core/flock_router.py`
|
|
89
|
+
|
|
80
90
|
**Responsibilities:**
|
|
81
91
|
- Determining the next agent in a workflow
|
|
82
92
|
- Managing input/output mapping between agents
|
|
@@ -89,6 +99,8 @@ Mechanism for directing workflow between agents.
|
|
|
89
99
|
|
|
90
100
|
Shared execution context for agents and modules.
|
|
91
101
|
|
|
102
|
+
**Implementation:** `src/flock/core/context/context.py`
|
|
103
|
+
|
|
92
104
|
**Responsibilities:**
|
|
93
105
|
- Storing global state across agents
|
|
94
106
|
- Providing access to agent definitions
|
|
@@ -5,6 +5,8 @@ The Factory design pattern is implemented in Flock to simplify agent creation wi
|
|
|
5
5
|
|
|
6
6
|
## FlockFactory
|
|
7
7
|
|
|
8
|
+
**Implementation:** `src/flock/core/flock_factory.py`
|
|
9
|
+
|
|
8
10
|
### Purpose
|
|
9
11
|
Provide a simplified interface for creating pre-configured agents without requiring manual setup of all components.
|
|
10
12
|
|
|
@@ -18,6 +20,8 @@ Provide a simplified interface for creating pre-configured agents without requir
|
|
|
18
20
|
|
|
19
21
|
### Method: `create_default_agent`
|
|
20
22
|
|
|
23
|
+
**Implementation:** `src/flock/core/flock_factory.py:create_default_agent`
|
|
24
|
+
|
|
21
25
|
**Parameters:**
|
|
22
26
|
- `name`: Required unique agent identifier
|
|
23
27
|
- `description`: Optional human-readable description
|
|
@@ -3,10 +3,14 @@
|
|
|
3
3
|
## Overview
|
|
4
4
|
The module system provides a way to extend agent functionality through lifecycle hooks. Modules can modify agent behavior, add new capabilities, or provide cross-cutting concerns like logging or metrics without changing the core agent implementation.
|
|
5
5
|
|
|
6
|
+
**Core Implementation:** `src/flock/core/flock_module.py`
|
|
7
|
+
|
|
6
8
|
## Core Module Components
|
|
7
9
|
|
|
8
10
|
### 1. FlockModuleConfig
|
|
9
11
|
|
|
12
|
+
**Implementation:** `src/flock/core/flock_module.py:FlockModuleConfig`
|
|
13
|
+
|
|
10
14
|
**Purpose:**
|
|
11
15
|
Base configuration class for all module configurations.
|
|
12
16
|
|
|
@@ -20,6 +24,8 @@ Base configuration class for all module configurations.
|
|
|
20
24
|
|
|
21
25
|
### 2. FlockModule
|
|
22
26
|
|
|
27
|
+
**Implementation:** `src/flock/core/flock_module.py:FlockModule`
|
|
28
|
+
|
|
23
29
|
**Purpose:**
|
|
24
30
|
Base abstract class for all modules that can be attached to agents.
|
|
25
31
|
|
|
@@ -40,10 +46,10 @@ Base abstract class for all modules that can be attached to agents.
|
|
|
40
46
|
|
|
41
47
|
### Agent Module Management
|
|
42
48
|
The FlockAgent must provide methods to:
|
|
43
|
-
- Add modules via `add_module(module)`
|
|
44
|
-
- Remove modules via `remove_module(module_name)`
|
|
45
|
-
- Retrieve modules via `get_module(module_name)`
|
|
46
|
-
- Get all enabled modules via `get_enabled_modules()`
|
|
49
|
+
- Add modules via `add_module(module)` - **Implementation:** `src/flock/core/flock_agent.py:add_module`
|
|
50
|
+
- Remove modules via `remove_module(module_name)` - **Implementation:** `src/flock/core/flock_agent.py:remove_module`
|
|
51
|
+
- Retrieve modules via `get_module(module_name)` - **Implementation:** `src/flock/core/flock_agent.py:get_module`
|
|
52
|
+
- Get all enabled modules via `get_enabled_modules()` - **Implementation:** `src/flock/core/flock_agent.py:get_enabled_modules`
|
|
47
53
|
|
|
48
54
|
### Module Execution
|
|
49
55
|
During agent execution, the agent must:
|
|
@@ -57,6 +63,8 @@ During agent execution, the agent must:
|
|
|
57
63
|
|
|
58
64
|
### 1. OutputModule
|
|
59
65
|
|
|
66
|
+
**Implementation:** `src/flock/modules/output/output_module.py`
|
|
67
|
+
|
|
60
68
|
**Purpose:**
|
|
61
69
|
Handle formatting and displaying agent outputs.
|
|
62
70
|
|
|
@@ -69,6 +77,8 @@ Handle formatting and displaying agent outputs.
|
|
|
69
77
|
|
|
70
78
|
### 2. MetricsModule
|
|
71
79
|
|
|
80
|
+
**Implementation:** `src/flock/modules/metrics/metrics_module.py`
|
|
81
|
+
|
|
72
82
|
**Purpose:**
|
|
73
83
|
Track and report agent performance metrics.
|
|
74
84
|
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
# Flock Evaluator System Specification
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
The evaluator system is responsible for processing agent inputs and generating outputs. It defines how agents interact with language models, including prompt formulation, model configuration, and output processing. This specification outlines the requirements and architecture of the evaluator system.
|
|
5
|
+
|
|
6
|
+
## Core Components
|
|
7
|
+
|
|
8
|
+
### 1. FlockEvaluator
|
|
9
|
+
|
|
10
|
+
**Implementation:** `src/flock/core/flock_evaluator.py`
|
|
11
|
+
|
|
12
|
+
**Purpose:**
|
|
13
|
+
Abstract base class defining the interface for all evaluators.
|
|
14
|
+
|
|
15
|
+
**Requirements:**
|
|
16
|
+
- Must define an `evaluate(agent, inputs, context)` method
|
|
17
|
+
- Must handle varied input and output formats
|
|
18
|
+
- Must integrate with tools if provided
|
|
19
|
+
- Should support caching when enabled
|
|
20
|
+
|
|
21
|
+
### 2. DeclarativeEvaluator
|
|
22
|
+
|
|
23
|
+
**Implementation:** `src/flock/evaluators/declarative/declarative_evaluator.py`
|
|
24
|
+
|
|
25
|
+
**Purpose:**
|
|
26
|
+
Standard evaluator that generates outputs based on agent's declared inputs and outputs.
|
|
27
|
+
|
|
28
|
+
**Configuration:**
|
|
29
|
+
- `agent_type_override`: Optional override for agent type
|
|
30
|
+
- `model`: The LLM to use for evaluation (default: openai/gpt-4o)
|
|
31
|
+
- `use_cache`: Whether to cache evaluation results (default: True)
|
|
32
|
+
- `temperature`: Sampling temperature (default: 0.0)
|
|
33
|
+
- `max_tokens`: Maximum generated tokens (default: 4096)
|
|
34
|
+
|
|
35
|
+
**Behavior:**
|
|
36
|
+
1. Creates a DSPy signature from agent input/output declarations
|
|
37
|
+
2. Configures the language model with appropriate settings
|
|
38
|
+
3. Selects the task type based on tool requirements
|
|
39
|
+
4. Executes the task with provided inputs
|
|
40
|
+
5. Processes and returns the structured results
|
|
41
|
+
|
|
42
|
+
**Mixins:**
|
|
43
|
+
- `DSPyIntegrationMixin`: Provides DSPy framework integration
|
|
44
|
+
- `PromptParserMixin`: Handles prompt parsing and formatting
|
|
45
|
+
|
|
46
|
+
## Evaluator Integration
|
|
47
|
+
|
|
48
|
+
### Agent Integration
|
|
49
|
+
The FlockAgent must:
|
|
50
|
+
- Store the evaluator in its `evaluator` attribute
|
|
51
|
+
- Call `evaluator.evaluate()` during its own `evaluate()` method
|
|
52
|
+
- Pass the appropriate context and inputs to the evaluator
|
|
53
|
+
|
|
54
|
+
### Factory Integration
|
|
55
|
+
The FlockFactory must:
|
|
56
|
+
- Create and configure the appropriate evaluator based on agent parameters
|
|
57
|
+
- Attach the evaluator to the agent during creation
|
|
58
|
+
|
|
59
|
+
## Specializations
|
|
60
|
+
|
|
61
|
+
### 1. Natural Language Evaluators
|
|
62
|
+
|
|
63
|
+
**Implementation:** `src/flock/evaluators/natural_language/`
|
|
64
|
+
|
|
65
|
+
**Purpose:**
|
|
66
|
+
Evaluators that use natural language processing techniques.
|
|
67
|
+
|
|
68
|
+
### 2. Memory-Enhanced Evaluators
|
|
69
|
+
|
|
70
|
+
**Implementation:** `src/flock/evaluators/memory/`
|
|
71
|
+
|
|
72
|
+
**Purpose:**
|
|
73
|
+
Evaluators that incorporate memory capabilities for stateful conversations and reasoning.
|
|
74
|
+
|
|
75
|
+
## Design Principles
|
|
76
|
+
|
|
77
|
+
1. **Separation of Concerns**:
|
|
78
|
+
- Evaluators handle prompt creation and model interaction
|
|
79
|
+
- Agents define inputs and outputs
|
|
80
|
+
- Clear division of responsibilities
|
|
81
|
+
|
|
82
|
+
2. **Flexibility**:
|
|
83
|
+
- Support for different model providers via LiteLLM
|
|
84
|
+
- Configurable parameters for each evaluation
|
|
85
|
+
- Extensible through specializations
|
|
86
|
+
|
|
87
|
+
3. **Consistency**:
|
|
88
|
+
- Standard interface for all evaluators
|
|
89
|
+
- Predictable input and output processing
|
|
90
|
+
- Common error handling patterns
|
|
91
|
+
|
|
92
|
+
4. **Performance**:
|
|
93
|
+
- Built-in caching support
|
|
94
|
+
- Efficient DSPy integration
|
|
95
|
+
- Optimized model calls
|
|
96
|
+
|
|
97
|
+
## Implementation Requirements
|
|
98
|
+
|
|
99
|
+
1. Evaluators must be serializable
|
|
100
|
+
2. Evaluators should have minimal dependencies on specific model providers
|
|
101
|
+
3. Error handling should be graceful and informative
|
|
102
|
+
4. Caching should be configurable and efficient
|
|
103
|
+
5. Tool integration should be seamless and standardized
|
|
@@ -3,18 +3,17 @@
|
|
|
3
3
|
## Overview
|
|
4
4
|
The router system enables multi-agent workflows by determining which agent should execute next based on the current agent's outputs. It provides a mechanism for building complex agent pipelines and workflows.
|
|
5
5
|
|
|
6
|
+
**Core Implementation:** `src/flock/core/flock_router.py`
|
|
7
|
+
|
|
6
8
|
## Core Router Components
|
|
7
9
|
|
|
8
10
|
### 1. HandOffRequest
|
|
9
11
|
|
|
12
|
+
**Implementation:** `src/flock/core/flock_router.py`
|
|
13
|
+
|
|
10
14
|
**Purpose:**
|
|
11
15
|
Define the next agent to execute and how inputs should be handled.
|
|
12
16
|
|
|
13
|
-
**Requirements:**
|
|
14
|
-
- Must extend Pydantic's BaseModel
|
|
15
|
-
- Must identify the next agent to execute
|
|
16
|
-
- Must define how inputs are mapped between agents
|
|
17
|
-
|
|
18
17
|
**Fields:**
|
|
19
18
|
- `next_agent`: Name of the next agent to invoke
|
|
20
19
|
- `hand_off_mode`: Strategy for mapping outputs to inputs ('match' or 'add')
|
|
@@ -23,29 +22,22 @@ Define the next agent to execute and how inputs should be handled.
|
|
|
23
22
|
|
|
24
23
|
### 2. FlockRouterConfig
|
|
25
24
|
|
|
25
|
+
**Implementation:** `src/flock/core/flock_router.py`
|
|
26
|
+
|
|
26
27
|
**Purpose:**
|
|
27
28
|
Configuration for router behavior.
|
|
28
29
|
|
|
29
|
-
**Requirements:**
|
|
30
|
-
- Must extend Pydantic's BaseModel
|
|
31
|
-
- Must include an enabled flag
|
|
32
|
-
- Must support a list of possible agent destinations
|
|
33
|
-
|
|
34
30
|
**Fields:**
|
|
35
31
|
- `enabled`: Whether the router is active
|
|
36
32
|
- `agents`: Optional list of potential target agents
|
|
37
33
|
|
|
38
34
|
### 3. FlockRouter
|
|
39
35
|
|
|
36
|
+
**Implementation:** `src/flock/core/flock_router.py`
|
|
37
|
+
|
|
40
38
|
**Purpose:**
|
|
41
39
|
Base abstract class for all routers.
|
|
42
40
|
|
|
43
|
-
**Requirements:**
|
|
44
|
-
- Must extend Pydantic's BaseModel and be abstract (ABC)
|
|
45
|
-
- Must include a unique name
|
|
46
|
-
- Must include a configuration
|
|
47
|
-
- Must implement a `route` method
|
|
48
|
-
|
|
49
41
|
**API:**
|
|
50
42
|
- `route(current_agent, result, context)`: Async method to determine the next agent
|
|
51
43
|
|
|
@@ -67,11 +59,46 @@ During Flock execution:
|
|
|
67
59
|
|
|
68
60
|
## Standard Routers
|
|
69
61
|
|
|
70
|
-
### 1.
|
|
71
|
-
|
|
62
|
+
### 1. DefaultRouter
|
|
63
|
+
|
|
64
|
+
**Implementation:** `src/flock/routers/default/default_router.py`
|
|
65
|
+
|
|
66
|
+
**Purpose:**
|
|
67
|
+
A basic router that directs to a predefined next agent.
|
|
68
|
+
|
|
69
|
+
**Configuration:**
|
|
70
|
+
- `hand_off`: Static agent name, HandOffRequest instance, or callable returning HandOffRequest
|
|
71
|
+
|
|
72
|
+
**Behavior:**
|
|
73
|
+
Provides a simple, non-dynamic routing based on a predetermined path.
|
|
74
|
+
|
|
75
|
+
### 2. LLMRouter
|
|
76
|
+
|
|
77
|
+
**Implementation:** `src/flock/routers/llm/llm_router.py`
|
|
78
|
+
|
|
79
|
+
**Purpose:**
|
|
80
|
+
A router that uses an LLM to determine the next agent based on result content.
|
|
81
|
+
|
|
82
|
+
**Configuration:**
|
|
83
|
+
- `with_output`: Whether to include the current agent's output in the routing decision
|
|
84
|
+
- `config_model`: Routing model to use
|
|
85
|
+
|
|
86
|
+
**Behavior:**
|
|
87
|
+
Uses an LLM to dynamically select the next agent from a list of available agents based on the current result.
|
|
88
|
+
|
|
89
|
+
### 3. AgentRouter
|
|
90
|
+
|
|
91
|
+
**Implementation:** `src/flock/routers/agent/agent_router.py`
|
|
92
|
+
|
|
93
|
+
**Purpose:**
|
|
94
|
+
A router that uses a separate agent to determine the next agent in the workflow.
|
|
95
|
+
|
|
96
|
+
**Configuration:**
|
|
97
|
+
- `router_agent`: The specialized agent that makes routing decisions
|
|
98
|
+
- `input_template`: Template for creating input for the router agent
|
|
72
99
|
|
|
73
|
-
|
|
74
|
-
|
|
100
|
+
**Behavior:**
|
|
101
|
+
Delegates routing decisions to a specialized agent designed specifically for workflow orchestration.
|
|
75
102
|
|
|
76
103
|
## Design Principles
|
|
77
104
|
|
|
@@ -3,6 +3,8 @@
|
|
|
3
3
|
## Overview
|
|
4
4
|
The tool system provides agents with capabilities to perform actions beyond generating text. Tools can retrieve information, perform calculations, interact with external systems, or execute code. This specification defines how tools are integrated and used within the Flock framework.
|
|
5
5
|
|
|
6
|
+
**Core Implementation:** `src/flock/core/tools/`
|
|
7
|
+
|
|
6
8
|
## Tool Definition
|
|
7
9
|
|
|
8
10
|
### Requirements
|
|
@@ -35,16 +37,45 @@ The evaluator is responsible for:
|
|
|
35
37
|
## Standard Tool Categories
|
|
36
38
|
|
|
37
39
|
### 1. Basic Tools
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
40
|
+
|
|
41
|
+
**Implementation:** `src/flock/core/tools/basic_tools.py`
|
|
42
|
+
|
|
43
|
+
- Web search tools (Tavily, DuckDuckGo, Bing)
|
|
44
|
+
- Web content extraction and parsing
|
|
45
|
+
- Code evaluation (via PythonInterpreter)
|
|
46
|
+
- Math evaluation
|
|
47
|
+
- Time and date functions
|
|
48
|
+
- Text parsing and extraction (URLs, numbers)
|
|
49
|
+
- File operations (read/write)
|
|
50
|
+
- JSON processing
|
|
51
|
+
|
|
52
|
+
### 2. LLM-specific Tools
|
|
53
|
+
|
|
54
|
+
**Implementation:** `src/flock/core/tools/llm_tools.py`
|
|
55
|
+
|
|
56
|
+
- Text chunking and splitting (multiple strategies)
|
|
57
|
+
- Token counting and management
|
|
58
|
+
- Keyword extraction
|
|
59
|
+
- Text cleaning and formatting
|
|
60
|
+
- Chat history formatting
|
|
61
|
+
- Language detection
|
|
62
|
+
- JSON extraction from text
|
|
63
|
+
- Table formatting
|
|
64
|
+
- Text hashing
|
|
65
|
+
|
|
66
|
+
### 3. Azure Tools
|
|
67
|
+
|
|
68
|
+
**Implementation:** `src/flock/core/tools/azure_tools.py`
|
|
69
|
+
|
|
70
|
+
- Azure-specific functionality
|
|
71
|
+
- Cloud resource management
|
|
72
|
+
|
|
73
|
+
### 4. Markdown Tools
|
|
74
|
+
|
|
75
|
+
**Implementation:** `src/flock/core/tools/markdown_tools.py`
|
|
76
|
+
|
|
77
|
+
- Markdown processing and generation
|
|
78
|
+
- Documentation creation helpers
|
|
48
79
|
|
|
49
80
|
## Tool Execution Flow
|
|
50
81
|
|
|
@@ -21,21 +21,30 @@ The execution system defines how agent workflows are executed, with support for
|
|
|
21
21
|
|
|
22
22
|
### 1. Local Executor
|
|
23
23
|
|
|
24
|
+
**Implementation:** `src/flock/core/execution/local_executor.py`
|
|
25
|
+
|
|
24
26
|
**Responsibilities:**
|
|
25
27
|
- Execute agent workflows synchronously
|
|
26
|
-
-
|
|
27
|
-
-
|
|
28
|
-
-
|
|
29
|
-
|
|
28
|
+
- Process context through workflow
|
|
29
|
+
- Return formatted results
|
|
30
|
+
- Support debugging workflows
|
|
31
|
+
|
|
32
|
+
**Key Function:**
|
|
33
|
+
- `run_local_workflow(context, box_result)`: Executes the workflow locally
|
|
30
34
|
|
|
31
35
|
### 2. Temporal Executor
|
|
32
36
|
|
|
37
|
+
**Implementation:** `src/flock/core/execution/temporal_executor.py`
|
|
38
|
+
|
|
33
39
|
**Responsibilities:**
|
|
34
|
-
- Set up Temporal workflow
|
|
35
|
-
-
|
|
36
|
-
-
|
|
37
|
-
-
|
|
38
|
-
-
|
|
40
|
+
- Set up Temporal workflow and worker
|
|
41
|
+
- Create Temporal client
|
|
42
|
+
- Execute workflow through Temporal
|
|
43
|
+
- Maintain workflow ID management
|
|
44
|
+
- Return formatted results
|
|
45
|
+
|
|
46
|
+
**Key Function:**
|
|
47
|
+
- `run_temporal_workflow(context, box_result)`: Executes the workflow via Temporal
|
|
39
48
|
|
|
40
49
|
## Execution Flow
|
|
41
50
|
|
|
@@ -44,7 +53,7 @@ The execution system defines how agent workflows are executed, with support for
|
|
|
44
53
|
2. Flock resolves the start agent (by name or reference)
|
|
45
54
|
3. Flock initializes the context
|
|
46
55
|
4. Flock calls `run_local_workflow()` to execute the workflow
|
|
47
|
-
5. Local executor calls `
|
|
56
|
+
5. Local executor calls `run_agent()` to process the workflow
|
|
48
57
|
6. If agent has a router, determine next agent and continue execution
|
|
49
58
|
7. Continue until no next agent is specified
|
|
50
59
|
8. Return final result to the user
|
|
@@ -52,19 +61,19 @@ The execution system defines how agent workflows are executed, with support for
|
|
|
52
61
|
### Temporal Execution Flow
|
|
53
62
|
1. User calls `flock.run()` with start agent and input
|
|
54
63
|
2. Flock checks `enable_temporal` flag and identifies Temporal execution
|
|
55
|
-
3. Flock
|
|
56
|
-
4. Flock calls `run_temporal_workflow()`
|
|
57
|
-
5. Temporal
|
|
58
|
-
6. Workflow
|
|
59
|
-
7.
|
|
64
|
+
3. Flock initializes context with run ID
|
|
65
|
+
4. Flock calls `run_temporal_workflow()`
|
|
66
|
+
5. Temporal executor sets up worker and client
|
|
67
|
+
6. Workflow is executed through Temporal infrastructure
|
|
68
|
+
7. Results are returned to the user
|
|
60
69
|
|
|
61
70
|
## Serialization Requirements
|
|
62
71
|
|
|
63
72
|
For Temporal execution, components must be serializable:
|
|
64
|
-
1.
|
|
65
|
-
2.
|
|
66
|
-
3.
|
|
67
|
-
4. All inputs and outputs must be
|
|
73
|
+
1. Context is serialized to/from dictionary
|
|
74
|
+
2. Agents must be accessible through registry
|
|
75
|
+
3. Tools must be properly registered
|
|
76
|
+
4. All inputs and outputs must be serializable
|
|
68
77
|
|
|
69
78
|
## Error Handling
|
|
70
79
|
|
|
@@ -94,12 +103,12 @@ For Temporal execution, components must be serializable:
|
|
|
94
103
|
3. **Observability**:
|
|
95
104
|
- Tracing through all execution steps
|
|
96
105
|
- Logging at key points
|
|
97
|
-
-
|
|
106
|
+
- Consistent workflow IDs for tracking
|
|
98
107
|
|
|
99
108
|
4. **Flexibility**:
|
|
100
109
|
- Support for synchronous and asynchronous APIs
|
|
101
110
|
- Compatible with different execution environments
|
|
102
|
-
-
|
|
111
|
+
- Result formatting options
|
|
103
112
|
|
|
104
113
|
## Implementation Requirements
|
|
105
114
|
|
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# Flock Context System Specification
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
The context system provides shared state management across agent executions within a Flock workflow. It enables agents to access shared data, store intermediate results, and communicate with each other beyond direct input/output mapping. This specification defines the requirements and behavior of the context system.
|
|
5
|
+
|
|
6
|
+
**Core Implementation:** `src/flock/core/context/`
|
|
7
|
+
|
|
8
|
+
## Core Components
|
|
9
|
+
|
|
10
|
+
### 1. FlockContext
|
|
11
|
+
|
|
12
|
+
**Implementation:** `src/flock/core/context/context.py`
|
|
13
|
+
|
|
14
|
+
**Purpose:**
|
|
15
|
+
Provides a centralized state container for sharing data across agent executions.
|
|
16
|
+
|
|
17
|
+
**Key Features:**
|
|
18
|
+
- State storage for variables
|
|
19
|
+
- Agent execution history tracking
|
|
20
|
+
- Agent definition registry
|
|
21
|
+
- Run/workflow identification
|
|
22
|
+
- Variable access via key-value or dictionary-style access
|
|
23
|
+
- Serialization support
|
|
24
|
+
|
|
25
|
+
**API:**
|
|
26
|
+
- `get_variable(key, default=None)`: Retrieve a value by key
|
|
27
|
+
- `set_variable(key, value)`: Store a value by key
|
|
28
|
+
- `__getitem__`/`__setitem__`: Dictionary-style access
|
|
29
|
+
- `record(agent_name, data, timestamp, hand_off, called_from)`: Record agent execution
|
|
30
|
+
- `get_agent_history(agent_name)`: Get execution history for an agent
|
|
31
|
+
- `next_input_for(agent)`: Determine the next input for an agent
|
|
32
|
+
- `get_most_recent_value(variable_name)`: Get most recent value from history
|
|
33
|
+
- `get_agent_definition(agent_name)`: Get agent definition
|
|
34
|
+
- `add_agent_definition(agent_type, agent_name, agent_data)`: Register agent definition
|
|
35
|
+
|
|
36
|
+
### 2. Context Manager
|
|
37
|
+
|
|
38
|
+
**Implementation:** `src/flock/core/context/context_manager.py`
|
|
39
|
+
|
|
40
|
+
**Purpose:**
|
|
41
|
+
Initializes and manages context instances for workflows.
|
|
42
|
+
|
|
43
|
+
**API:**
|
|
44
|
+
- `initialize_context(flock_args)`: Create and initialize a new context
|
|
45
|
+
|
|
46
|
+
## Supporting Models
|
|
47
|
+
|
|
48
|
+
### 1. AgentRunRecord
|
|
49
|
+
|
|
50
|
+
**Implementation:** `src/flock/core/context/context.py`
|
|
51
|
+
|
|
52
|
+
**Purpose:**
|
|
53
|
+
Records the details of each agent execution for history tracking.
|
|
54
|
+
|
|
55
|
+
**Fields:**
|
|
56
|
+
- `id`: Unique identifier for the run
|
|
57
|
+
- `agent`: Name of the agent
|
|
58
|
+
- `data`: Input/output data associated with the run
|
|
59
|
+
- `timestamp`: When the execution occurred
|
|
60
|
+
- `hand_off`: Routing information
|
|
61
|
+
- `called_from`: Origin of the execution request
|
|
62
|
+
|
|
63
|
+
### 2. AgentDefinition
|
|
64
|
+
|
|
65
|
+
**Implementation:** `src/flock/core/context/context.py`
|
|
66
|
+
|
|
67
|
+
**Purpose:**
|
|
68
|
+
Stores information about registered agents.
|
|
69
|
+
|
|
70
|
+
**Fields:**
|
|
71
|
+
- `agent_type`: Type of the agent
|
|
72
|
+
- `agent_name`: Name identifier
|
|
73
|
+
- `agent_data`: Agent configuration
|
|
74
|
+
- `serializer`: Serialization method
|
|
75
|
+
|
|
76
|
+
## Context Integration
|
|
77
|
+
|
|
78
|
+
### Flock Integration
|
|
79
|
+
- Flock creates and initializes the global context
|
|
80
|
+
- Flock passes context to each agent during execution
|
|
81
|
+
- Flock ensures context consistency across agents
|
|
82
|
+
|
|
83
|
+
### Agent Integration
|
|
84
|
+
- Agents receive context during initialization and evaluation
|
|
85
|
+
- Agents can read from and write to context
|
|
86
|
+
- Context determines appropriate inputs for agents based on their input schema
|
|
87
|
+
|
|
88
|
+
### Module Integration
|
|
89
|
+
- Modules receive context in all lifecycle methods
|
|
90
|
+
- Modules can use context to store and retrieve state
|
|
91
|
+
- Modules can communicate with each other via context
|
|
92
|
+
|
|
93
|
+
## Design Principles
|
|
94
|
+
|
|
95
|
+
1. **Shared State Management**:
|
|
96
|
+
- Consistent state across agent executions
|
|
97
|
+
- History tracking for debugging and analysis
|
|
98
|
+
- Dictionary-like access patterns
|
|
99
|
+
|
|
100
|
+
2. **Flexibility**:
|
|
101
|
+
- Support for various data types
|
|
102
|
+
- Both key-value and path-based access
|
|
103
|
+
- Robust serialization for distribution
|
|
104
|
+
|
|
105
|
+
3. **Serialization Support**:
|
|
106
|
+
- Full serialization for distributed execution
|
|
107
|
+
- Support for complex object types
|
|
108
|
+
- Proper handling of datetime objects
|
|
109
|
+
|
|
110
|
+
4. **Observability**:
|
|
111
|
+
- Tracing integration
|
|
112
|
+
- Logging of state changes
|
|
113
|
+
- History recording for execution flow
|
|
114
|
+
|
|
115
|
+
## Implementation Requirements
|
|
116
|
+
|
|
117
|
+
1. Context must be serializable for Temporal workflows
|
|
118
|
+
2. Context operations must be thread-safe
|
|
119
|
+
3. Context should handle large data volumes efficiently
|
|
120
|
+
4. Context should support common data operations (get, set, delete)
|
|
121
|
+
5. Context should provide clear error messages for invalid operations
|