flock-core 0.5.22__tar.gz → 0.5.24__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.5.22 → flock_core-0.5.24}/PKG-INFO +2 -2
- {flock_core-0.5.22 → flock_core-0.5.24}/README.md +1 -1
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/about/changelog.md +1 -2
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/semantic-subscriptions.md +1 -2
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/08-semantic/01_intelligent_ticket_routing.py +4 -5
- flock_core-0.5.22/examples/08-semantic/03_multi_criteria_filtering.py → flock_core-0.5.24/examples/08-semantic/02_multi_criteria_filtering.py +1 -1
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/08-semantic/README.md +2 -27
- {flock_core-0.5.22 → flock_core-0.5.24}/pyproject.toml +1 -1
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/core/agent.py +1 -5
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/core/orchestrator.py +26 -3
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/orchestrator/artifact_manager.py +22 -4
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/semantic/embedding_service.py +6 -2
- {flock_core-0.5.22 → flock_core-0.5.24}/uv.lock +1 -1
- flock_core-0.5.22/examples/08-semantic/02_context_aware_responses.py +0 -259
- flock_core-0.5.22/examples/08-semantic/EXAMPLES_SUMMARY.md +0 -264
- {flock_core-0.5.22 → flock_core-0.5.24}/.devcontainer/devcontainer.json +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/.envtemplate +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/.github/issue_draft_non_blocking_serve.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/.github/workflows/deploy-documentation.yml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/.github/workflows/quality.yml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/.gitignore +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/.pre-commit-config.yaml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/.python-version +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/.vscode/settings.json +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/AGENTS.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/AUTO_TRACING.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/CONTRIBUTING.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/LICENSE +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/ROADMAP.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/USECASES.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/about/contributing.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/about/roadmap.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/architecture.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/assets/images/batch.png +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/assets/images/bug_diagnosis.png +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/assets/images/flock.png +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/assets/images/flock_ui_1.png +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/assets/images/flock_ui_agent_view.png +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/assets/images/flock_ui_blackboard_view.png +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/assets/images/join.png +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/assets/images/pattern2.png +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/assets/images/pizza.png +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/assets/images/trace_1.png +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/assets/images/trace_2.png +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/assets/images/trace_3.png +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/bugfixes/websocket-streaming-deadlock-fix.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/community/index.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/examples/index.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/getting-started/concepts.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/getting-started/index.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/getting-started/installation.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/getting-started/quick-start.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/agents.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/batch-processing.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/blackboard.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/components.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/context-providers.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/dashboard.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/dspy-engine.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/fan-out.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/index.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/join-operations.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/mcp-roots.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/orchestrator-components.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/patterns.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/persistent-blackboard.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/predicates.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/rest-api.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/testing.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/tracing/auto-tracing.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/tracing/how_to_use_tracing_effectively.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/tracing/index.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/tracing/trace-module.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/tracing/tracing-production.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/tracing/tracing-quickstart.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/tracing/unified-tracing.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/use-cases.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/guides/visibility.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/index.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/javascripts/extra.js +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/patterns/async_patterns.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/patterns/error_handling.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/reference/api.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/reference/configuration.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/reference/index.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/stylesheets/extra.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/tags.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/troubleshooting/streaming-freeze-fix.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/troubleshooting/streaming-freeze-with-dashboard-fix.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/tutorials/advanced-patterns.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/tutorials/conditional-routing.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/tutorials/connect_with_ollama.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/tutorials/custom-agent-components.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/tutorials/custom-engines.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/tutorials/index.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/tutorials/multi-agent-workflow.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/tutorials/semantic-routing.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/tutorials/your-first-agent.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/docs/whiteducksoftware/versions.json +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/00-patterns/README.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/00-patterns/publish/01-single_publish.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/00-patterns/publish/02-multi_publish.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/00-patterns/publish/03-multi-artifact-multi-publish.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/00-patterns/publish/04-fan-out.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/00-patterns/publish/05-multi-fan-out.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/00-patterns/visibility/01_basic_visibility.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/01_declarative_pizza.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/02_input_and_output.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/03_code_detective.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/04_movie_generation.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/05_mcp_and_tools.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/06_mcp_roots.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/07_web_detective.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/08_band_formation.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/09_debate_club.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/10_news_agency.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/11_tracing_detective.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/12_secret_agents.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/13_medical_diagnostics_joinspec.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/14_ecommerce_batch_processing.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/15_iot_sensor_batching.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/16_news_batching.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/01-getting-started/README.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/03-claudes-workshop/README.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/03-claudes-workshop/lesson_01_code_detective.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/03-claudes-workshop/lesson_02_band_formation.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/03-claudes-workshop/lesson_03_web_detective.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/03-claudes-workshop/lesson_04_debate_club.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/03-claudes-workshop/lesson_05_tracing_detective.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/03-claudes-workshop/lesson_06_secret_agents.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/03-claudes-workshop/lesson_07_news_agency.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/03-claudes-workshop/lesson_08_the_matchmaker.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/03-claudes-workshop/lesson_09_the_batch_optimizer.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/03-claudes-workshop/lesson_10_the_smart_factory.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/03-claudes-workshop/lesson_11_performance_monitor.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/03-claudes-workshop/lesson_12_confidence_booster.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/03-claudes-workshop/lesson_13_regex_matcher.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/04-misc/01_persistent_pizza.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/04-misc/02-dashboard-edge-cases.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/04-misc/03-scale-test-100-agents.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/04-misc/04_persistent_pizza_dashboard.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/04-misc/05_lm_studio.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/04-misc/06_prd.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/04-misc/README.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/05-engines/README.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/05-engines/emoji_mood_engine.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/05-engines/potion_batch_engine.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/06-agent-components/README.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/06-agent-components/cheer_meter_component.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/06-agent-components/plot_twist_component.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/07-orchestrator-components/README.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/07-orchestrator-components/kitchen_monitor_component.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/07-orchestrator-components/quest_tracker_component.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/examples/08-semantic/00_verify_semantic_features.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/mkdocs.yml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/requirements.txt +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/scripts/build_dashboard.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/scripts/bump_version.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/scripts/check_version_bump.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/scripts/ensure_uv.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/scripts/gen_ref_pages.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/scripts/generate_llm_codebase.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/scripts/phase8_file_moves.sh +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/scripts/update_imports.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/agent/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/agent/builder_helpers.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/agent/builder_validator.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/agent/component_lifecycle.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/agent/context_resolver.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/agent/mcp_integration.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/agent/output_processor.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/api/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/api/models.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/api/service.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/api/themes.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/cli.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/components/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/components/agent/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/components/agent/base.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/components/agent/output_utility.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/components/orchestrator/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/components/orchestrator/base.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/components/orchestrator/circuit_breaker.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/components/orchestrator/collection.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/components/orchestrator/deduplication.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/core/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/core/artifacts.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/core/context_provider.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/core/store.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/core/subscription.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/core/visibility.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/collector.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/events.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/graph_builder.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/launcher.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/models/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/models/graph.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/routes/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/routes/control.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/routes/helpers.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/routes/themes.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/routes/traces.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/routes/websocket.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/service.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/static_v2/assets/index-DFRnI_mt.js +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/static_v2/assets/index-fPLNdmp1.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/static_v2/index.html +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/dashboard/websocket.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/engines/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/engines/dspy/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/engines/dspy/artifact_materializer.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/engines/dspy/signature_builder.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/engines/dspy/streaming_executor.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/engines/dspy_engine.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/engines/examples/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/engines/examples/simple_batch_engine.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/engines/streaming/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/engines/streaming/sinks.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/examples.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/README.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/docs/DESIGN_SYSTEM.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/index.html +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/package-lock.json +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/package.json +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/App.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/__tests__/integration/graph-snapshot.test.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/__tests__/integration/indexeddb-persistence.test.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/common/BuildInfo.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/common/EmptyState.module.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/common/EmptyState.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/common/ErrorBoundary.module.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/common/ErrorBoundary.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/common/KeyboardShortcutsDialog.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/common/KeyboardShortcutsDialog.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/common/LoadingSpinner.module.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/common/LoadingSpinner.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/controls/PublishControl.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/controls/PublishControl.test.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/controls/PublishControl.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/details/DetailWindowContainer.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/details/LiveOutputTab.test.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/details/LiveOutputTab.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/details/MessageDetailWindow.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/details/MessageHistoryTab.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/details/NodeDetailWindow.test.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/details/NodeDetailWindow.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/details/RunStatusTab.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/details/tabs.test.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/ArtifactTypeFilter.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/CorrelationIDFilter.module.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/CorrelationIDFilter.test.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/CorrelationIDFilter.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/FilterFlyout.module.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/FilterFlyout.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/FilterPills.module.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/FilterPills.test.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/FilterPills.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/ProducerFilter.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/SavedFiltersControl.module.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/SavedFiltersControl.test.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/SavedFiltersControl.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/TagFilter.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/TimeRangeFilter.module.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/TimeRangeFilter.test.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/TimeRangeFilter.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/filters/VisibilityFilter.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/graph/AgentNode.test.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/graph/AgentNode.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/graph/GraphCanvas.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/graph/LogicOperationsDisplay.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/graph/MessageFlowEdge.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/graph/MessageNode.test.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/graph/MessageNode.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/graph/MiniMap.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/graph/PendingBatchEdge.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/graph/PendingJoinEdge.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/graph/TransformEdge.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/layout/DashboardLayout.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/layout/DashboardLayout.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/layout/Header.module.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/layout/Header.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/modules/HistoricalArtifactsModule.module.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/modules/HistoricalArtifactsModule.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/modules/HistoricalArtifactsModuleWrapper.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/modules/JsonAttributeRenderer.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/modules/ModuleRegistry.test.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/modules/ModuleRegistry.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/modules/ModuleWindow.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/modules/TraceModuleJaeger.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/modules/TraceModuleJaegerWrapper.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/modules/registerModules.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/settings/AdvancedSettings.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/settings/AppearanceSettings.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/settings/GraphSettings.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/settings/MultiSelect.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/settings/SettingsPanel.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/settings/SettingsPanel.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/settings/ThemeSelector.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/components/settings/TracingSettings.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/hooks/useKeyboardShortcuts.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/hooks/useModulePersistence.test.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/hooks/useModulePersistence.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/hooks/useModules.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/hooks/usePersistence.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/main.tsx +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/services/api.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/services/graphService.test.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/services/graphService.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/services/indexeddb.test.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/services/indexeddb.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/services/layout.test.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/services/layout.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/services/themeApplicator.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/services/themeService.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/services/websocket.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/store/filterStore.test.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/store/filterStore.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/store/graphStore.test.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/store/graphStore.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/store/moduleStore.test.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/store/moduleStore.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/store/settingsStore.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/store/streamStore.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/store/uiStore.test.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/store/uiStore.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/store/wsStore.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/styles/index.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/styles/scrollbar.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/styles/variables.css +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/test/setup.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/types/filters.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/types/graph.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/types/modules.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/types/theme.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/utils/artifacts.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/utils/mockData.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/utils/performance.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/src/vite-env.d.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/tsconfig.json +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/tsconfig.node.json +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/vite.config.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/frontend/vitest.config.ts +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/logging/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/logging/auto_trace.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/logging/formatters/enum_builder.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/logging/formatters/theme_builder.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/logging/formatters/themed_formatter.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/logging/formatters/themes.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/logging/logging.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/logging/span_middleware/baggage_span_processor.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/logging/telemetry.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/logging/telemetry_exporter/base_exporter.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/logging/telemetry_exporter/duckdb_exporter.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/logging/telemetry_exporter/file_exporter.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/logging/telemetry_exporter/sqlite_exporter.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/logging/trace_and_logged.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/client.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/config.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/manager.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/servers/sse/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/servers/sse/flock_sse_server.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/servers/stdio/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/servers/stdio/flock_stdio_server.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/servers/streamable_http/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/servers/streamable_http/flock_streamable_http_server.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/servers/websockets/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/servers/websockets/flock_websocket_server.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/tool.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/types/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/types/callbacks.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/types/factories.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/types/handlers.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/types/types.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/util/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/mcp/util/helpers.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/models/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/models/system_artifacts.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/orchestrator/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/orchestrator/artifact_collector.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/orchestrator/batch_accumulator.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/orchestrator/component_runner.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/orchestrator/context_builder.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/orchestrator/correlation_engine.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/orchestrator/event_emitter.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/orchestrator/initialization.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/orchestrator/lifecycle_manager.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/orchestrator/mcp_manager.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/orchestrator/scheduler.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/orchestrator/server_manager.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/orchestrator/tracing.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/patches/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/patches/dspy_streaming_patch.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/registry.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/semantic/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/semantic/context_provider.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/storage/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/storage/artifact_aggregator.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/storage/in_memory/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/storage/in_memory/artifact_filter.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/storage/in_memory/history_aggregator.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/storage/sqlite/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/storage/sqlite/agent_history_queries.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/storage/sqlite/consumption_loader.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/storage/sqlite/query_builder.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/storage/sqlite/query_params_builder.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/storage/sqlite/schema_manager.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/storage/sqlite/summary_queries.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/3024-day.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/3024-night.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/aardvark-blue.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/abernathy.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/adventure.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/adventuretime.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/afterglow.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/alabaster.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/alienblood.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/andromeda.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/apple-classic.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/apple-system-colors.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/arcoiris.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/argonaut copy.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/argonaut.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/arthur.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/ateliersulphurpool.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/atom.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/atom_test.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/atomonelight.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/aurora.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/ayu copy.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/ayu-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/ayu-mirage.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/ayu.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/banana-blueberry.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/batman.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/belafonte-day.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/belafonte-night.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/birdsofparadise.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/blazer.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/blue-matrix.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/blueberrypie.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/bluedolphin.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/blulocodark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/blulocolight.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/borland.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/breeze.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/bright-lights.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/broadcast.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/brogrammer.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/builtin-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/builtin-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/builtin-pastel-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/builtin-solarized-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/builtin-solarized-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/builtin-tango-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/builtin-tango-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/c64.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/calamity.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/catppuccin-frappe.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/catppuccin-latte.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/catppuccin-macchiato.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/catppuccin-mocha.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/cga.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/chalk.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/chalkboard.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/challengerdeep.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/chester.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/ciapre.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/clrs.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/cobalt-neon.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/cobalt2.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/coffee-theme.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/crayonponyfish.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/cutiepro.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/cyberdyne.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/cyberpunk.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/dark+.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/dark-pastel.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/darkermatrix.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/darkmatrix.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/darkside.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/dayfox.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/deep.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/desert.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/dimidium.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/dimmedmonokai.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/django.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/djangorebornagain.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/djangosmooth.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/doom-peacock.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/doomone.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/dotgov.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/dracula+.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/dracula.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/duckbones.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/duotone-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/earthsong.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/elemental.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/elementary.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/encom.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/espresso-libre.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/espresso.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/everblush.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/fahrenheit.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/fairyfloss.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/farmhouse-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/farmhouse-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/fideloper.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/firefly-traditional.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/firefoxdev.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/firewatch.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/fishtank.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/flat.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/flatland.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/flexoki-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/flexoki-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/floraverse.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/forestblue.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/framer.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/frontenddelight.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/funforrest.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/galaxy.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/galizur.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/github-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/github.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/glacier.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/grape.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/grass.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/grey-green.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/gruber-darker.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/gruvboxdark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/gruvboxdarkhard.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/gruvboxlight.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/guezwhoz.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/hacktober.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/hardcore.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/harper.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/hax0r-blue.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/hax0r-gr33n.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/hax0r-r3d.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/highway.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/hipster-green.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/hivacruz.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/homebrew.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/hopscotch.256.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/hopscotch.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/hurtado.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/hybrid.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/ic-green-ppl.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/ic-orange-ppl.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/iceberg-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/iceberg-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/idea.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/idletoes.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/ir-black.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/iterm2-dark-background.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/iterm2-default.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/iterm2-light-background.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/iterm2-smoooooth.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/iterm2-solarized-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/iterm2-tango-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/iterm2-tango-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/jackie-brown.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/japanesque.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/jellybeans.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/jetbrains-darcula.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/jubi.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/kanagawabones.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/kibble.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/kolorit.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/konsolas.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/kurokula.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/lab-fox.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/laser.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/later-this-evening.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/lavandula.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/liquidcarbon.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/liquidcarbontransparent.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/lovelace.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/man-page.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/mariana.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/material.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/materialdark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/materialdarker.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/materialdesigncolors.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/materialocean.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/mathias.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/matrix.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/medallion.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/mellifluous.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/midnight-in-mojave.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/mirage.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/misterioso.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/molokai.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/monalisa.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/monokai-remastered.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/monokai-soda.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/monokai-vivid.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/n0tch2k.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/neobones-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/neobones-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/neon.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/neopolitan.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/neutron.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/night-owlish-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/nightfox.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/nightlion-v1.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/nightlion-v2.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/niji.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/nocturnal-winter.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/nord-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/nord.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/novel.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/nvimdark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/nvimlight.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/obsidian.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/ocean.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/oceanic-next.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/oceanicmaterial.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/ollie.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/onehalfdark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/onehalflight.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/operator-mono-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/overnight-slumber.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/oxocarbon.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/palenighthc.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/pandora.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/paraiso-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/paulmillr.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/pencildark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/pencillight.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/peppermint.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/piatto-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/pnevma.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/popping-and-locking.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/primary.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/pro-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/pro.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/purple-rain.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/purplepeter.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/rapture.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/raycast-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/raycast-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/rebecca.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/red-alert.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/red-planet.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/red-sands.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/relaxed.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/retro.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/rippedcasts.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/rose-pine-dawn.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/rose-pine-moon.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/rose-pine.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/rouge-2.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/royal.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/ryuuko.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/sakura.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/scarlet-protocol.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/seafoam-pastel.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/seashells.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/seoulbones-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/seoulbones-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/seti.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/shades-of-purple.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/shaman.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/slate.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/sleepyhollow.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/smyck.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/snazzy.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/softserver.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/solarized-darcula.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/solarized-dark---patched.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/spacedust.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/spacegray-eighties.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/spacegray.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/spiderman.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/spring.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/square.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/sublette.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/subliminal.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/sugarplum.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/sundried.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/symfonic.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/synthwave-everything.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/synthwave.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/synthwavealpha.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/tango-adapted.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/tango-half-adapted.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/teerb.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/terafox.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/terminal-basic.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/thayer-bright.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/the-hulk.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/tinacious-design-(dark).toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/tinacious-design-(light).toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/tokyonight-day.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/tokyonight-storm.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/tokyonight.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/tomorrow-night-blue.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/tomorrow-night-bright.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/tomorrow-night-burns.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/tomorrow-night.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/tomorrow.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/toychest.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/treehouse.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/twilight.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/ubuntu.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/ultradark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/ultraviolent.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/underthesea.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/unikitty.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/urple.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/vaughn.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/vesper.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/vibrantink.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/vimbones.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/violet-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/violet-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/warmneon.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/wez.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/whimsy.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/wildcherry.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/wilmersdorf.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/wombat.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/wryan.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/xcodedark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/xcodedarkhc.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/xcodelight.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/xcodelighthc.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/xcodewwdc.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/zenbones-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/zenbones-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/zenbones.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/zenburn.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/zenburned.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/zenwritten-dark.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/themes/zenwritten-light.toml +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/utils/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/utils/async_utils.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/utils/cli_helper.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/utils/runtime.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/utils/time_utils.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/utils/type_resolution.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/utils/utilities.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/utils/validation.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/utils/visibility.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/src/flock/utils/visibility_utils.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/PHASE2_TEST_SUMMARY.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/PHASE3_TEST_SUMMARY.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/TEST_COVERAGE_PHASE2.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/agent/test_component_lifecycle.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/agent/test_context_resolver.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/agent/test_mcp_integration.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/agent/test_output_processor.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/conftest.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/contract/test_agent_payload_selection_contract.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/contract/test_artifact_storage_contract.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/contract/test_type_normalization_contract.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/dashboard/test_logic_operations_api.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/dashboard/test_logic_operations_events.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/e2e/README.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/e2e/TESTING_SUMMARY.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/e2e/test_critical_scenarios.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/integration/test_collector_orchestrator.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/integration/test_orchestrator_dashboard.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/integration/test_sqlite_store_integration.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/integration/test_websocket_protocol.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/semantic/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/semantic/conftest.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/semantic/test_agent_integration.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/semantic/test_embedding_service.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/semantic/test_optional_import.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/semantic/test_performance_and_edge_cases.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/semantic/test_semantic_context_provider.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/semantic/test_subscription_text_predicates.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/storage/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/storage/in_memory/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/storage/in_memory/test_artifact_filter.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/storage/in_memory/test_history_aggregator.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/storage/sqlite/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/storage/sqlite/test_agent_history_queries.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/storage/sqlite/test_consumption_loader.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/storage/sqlite/test_query_builder.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/storage/sqlite/test_query_params_builder.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/storage/sqlite/test_schema_manager.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/storage/sqlite/test_summary_queries.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/storage/test_artifact_aggregator.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_agent.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_agent_builder.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_agent_mcp.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_agent_server_specific_mounts.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_api_models.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_artifacts.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_cli.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_cli_helper.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_components.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_context_provider.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_context_security.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_dashboard_api.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_dashboard_collector.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_dashboard_graph.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_dashboard_launcher.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_dashboard_service.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_dspy_engine.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_dspy_engine_mcp.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_dspy_engine_multioutput.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_dspy_streaming_events.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_dspy_streaming_executor_helpers.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_dspy_streaming_integration.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_engine_context.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_engines.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_filtering_validation.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_logging_config.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_mcp_client.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_mcp_config.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_mcp_coverage_summary.md +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_mcp_imports.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_mcp_manager.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_mcp_server_config_typeddict.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_mcp_tool_handlers.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_orchestrator.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_orchestrator_and_gate.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_orchestrator_batchspec.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_orchestrator_combined.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_orchestrator_component.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_orchestrator_context_injection.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_orchestrator_joinspec.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_orchestrator_mcp.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_output_groups.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_registry.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_runtime.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_service.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_service_extended.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_store.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_store_graph.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_subscription.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_telemetry.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_trace_clearing.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_unified_tracing.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_utilities.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_version_endpoint.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_visibility.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/test_websocket_manager.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/utils/__init__.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/utils/test_async_utils.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/utils/test_time_utils.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/utils/test_type_resolution.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/utils/test_validation.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/utils/test_visibility.py +0 -0
- {flock_core-0.5.22 → flock_core-0.5.24}/tests/utils/test_visibility_utils.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: flock-core
|
|
3
|
-
Version: 0.5.
|
|
3
|
+
Version: 0.5.24
|
|
4
4
|
Summary: Flock: A declrative framework for building and orchestrating AI agents.
|
|
5
5
|
Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
|
|
6
6
|
License: MIT
|
|
@@ -43,7 +43,7 @@ Description-Content-Type: text/markdown
|
|
|
43
43
|
<a href="LICENSE" target="_blank"><img alt="License" src="https://img.shields.io/github/license/whiteducksoftware/flock?style=for-the-badge"></a>
|
|
44
44
|
<a href="https://whiteduck.de" target="_blank"><img alt="Built by white duck" src="https://img.shields.io/badge/Built%20by-white%20duck%20GmbH-white?style=for-the-badge&labelColor=black"></a>
|
|
45
45
|
<a href="https://codecov.io/gh/whiteducksoftware/flock" target="_blank"><img alt="Test Coverage" src="https://codecov.io/gh/whiteducksoftware/flock/branch/main/graph/badge.svg?token=YOUR_TOKEN_HERE&style=for-the-badge"></a>
|
|
46
|
-
<img alt="Tests" src="https://img.shields.io/badge/tests-
|
|
46
|
+
<img alt="Tests" src="https://img.shields.io/badge/tests-1400+-brightgreen?style=for-the-badge">
|
|
47
47
|
</p>
|
|
48
48
|
|
|
49
49
|
---
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
<a href="LICENSE" target="_blank"><img alt="License" src="https://img.shields.io/github/license/whiteducksoftware/flock?style=for-the-badge"></a>
|
|
9
9
|
<a href="https://whiteduck.de" target="_blank"><img alt="Built by white duck" src="https://img.shields.io/badge/Built%20by-white%20duck%20GmbH-white?style=for-the-badge&labelColor=black"></a>
|
|
10
10
|
<a href="https://codecov.io/gh/whiteducksoftware/flock" target="_blank"><img alt="Test Coverage" src="https://codecov.io/gh/whiteducksoftware/flock/branch/main/graph/badge.svg?token=YOUR_TOKEN_HERE&style=for-the-badge"></a>
|
|
11
|
-
<img alt="Tests" src="https://img.shields.io/badge/tests-
|
|
11
|
+
<img alt="Tests" src="https://img.shields.io/badge/tests-1400+-brightgreen?style=for-the-badge">
|
|
12
12
|
</p>
|
|
13
13
|
|
|
14
14
|
---
|
|
@@ -189,8 +189,7 @@ similar_incidents = await provider.get_context(store)
|
|
|
189
189
|
- Added 4 runnable examples in `examples/08-semantic/`:
|
|
190
190
|
- `00_verify_semantic_features.py` - Quick verification (no LLM)
|
|
191
191
|
- `01_intelligent_ticket_routing.py` - Smart routing demo
|
|
192
|
-
- `
|
|
193
|
-
- `03_multi_criteria_filtering.py` - Advanced filtering patterns
|
|
192
|
+
- `02_multi_criteria_filtering.py` - Advanced filtering patterns
|
|
194
193
|
- Updated README with semantic subscriptions feature
|
|
195
194
|
- Added API documentation for all new features
|
|
196
195
|
|
|
@@ -695,8 +695,7 @@ Additional examples in `examples/08-semantic/`:
|
|
|
695
695
|
|
|
696
696
|
- `00_verify_semantic_features.py` - Installation verification
|
|
697
697
|
- `01_intelligent_ticket_routing.py` - Multi-agent semantic routing
|
|
698
|
-
- `
|
|
699
|
-
- `03_multi_criteria_filtering.py` - Multiple semantic predicates
|
|
698
|
+
- `02_multi_criteria_filtering.py` - Multiple semantic predicates
|
|
700
699
|
|
|
701
700
|
## License
|
|
702
701
|
|
{flock_core-0.5.22 → flock_core-0.5.24}/examples/08-semantic/01_intelligent_ticket_routing.py
RENAMED
|
@@ -38,7 +38,6 @@ class SupportTicket(BaseModel):
|
|
|
38
38
|
|
|
39
39
|
message: str = Field(description="The customer's issue or question")
|
|
40
40
|
customer_id: str = Field(description="Customer identifier")
|
|
41
|
-
category: str | None = Field(default=None, description="Auto-assigned category")
|
|
42
41
|
|
|
43
42
|
|
|
44
43
|
@flock_type
|
|
@@ -99,7 +98,7 @@ billing_team = (
|
|
|
99
98
|
# Matches: "can't login", "error message", "not working", "broken feature"
|
|
100
99
|
tech_support = (
|
|
101
100
|
flock.agent("tech_support")
|
|
102
|
-
.consumes(SupportTicket, semantic_match="technical issue error bug problem")
|
|
101
|
+
.consumes(SupportTicket, semantic_match="technical issue error bug problem device")
|
|
103
102
|
.publishes(TechnicalResponse)
|
|
104
103
|
)
|
|
105
104
|
|
|
@@ -130,7 +129,7 @@ async def main_cli():
|
|
|
130
129
|
print(" Expected Route: → Security Team")
|
|
131
130
|
|
|
132
131
|
await flock.publish(security_ticket)
|
|
133
|
-
await flock.run_until_idle()
|
|
132
|
+
await flock.run_until_idle(wait_for_input=True)
|
|
134
133
|
|
|
135
134
|
# Test Case 2: Billing Issue
|
|
136
135
|
print("\n📋 Ticket 2: Billing Issue")
|
|
@@ -142,7 +141,7 @@ async def main_cli():
|
|
|
142
141
|
print(" Expected Route: → Billing Team")
|
|
143
142
|
|
|
144
143
|
await flock.publish(billing_ticket)
|
|
145
|
-
await flock.run_until_idle()
|
|
144
|
+
await flock.run_until_idle(wait_for_input=True)
|
|
146
145
|
|
|
147
146
|
# Test Case 3: Technical Issue
|
|
148
147
|
print("\n📋 Ticket 3: Technical Problem")
|
|
@@ -154,7 +153,7 @@ async def main_cli():
|
|
|
154
153
|
print(" Expected Route: → Tech Support")
|
|
155
154
|
|
|
156
155
|
await flock.publish(tech_ticket)
|
|
157
|
-
await flock.run_until_idle()
|
|
156
|
+
await flock.run_until_idle(wait_for_input=True)
|
|
158
157
|
|
|
159
158
|
# Test Case 4: General Question
|
|
160
159
|
print("\n📋 Ticket 4: General Inquiry")
|
|
@@ -75,7 +75,7 @@ class AuditReport(BaseModel):
|
|
|
75
75
|
# ============================================================================
|
|
76
76
|
# 🎛️ SETUP: Create agents with advanced semantic filters
|
|
77
77
|
# ============================================================================
|
|
78
|
-
flock = Flock(
|
|
78
|
+
flock = Flock()
|
|
79
79
|
|
|
80
80
|
# Agent 1: STRICT security + compliance filter
|
|
81
81
|
# Requires: BOTH "security" AND "compliance" topics + published status
|
|
@@ -40,32 +40,7 @@ All routing happens automatically based on semantic similarity!
|
|
|
40
40
|
|
|
41
41
|
---
|
|
42
42
|
|
|
43
|
-
###
|
|
44
|
-
**Learning from historical incidents**
|
|
45
|
-
|
|
46
|
-
Shows how `SemanticContextProvider` finds similar past incidents and recommends actions based on successful historical resolutions.
|
|
47
|
-
|
|
48
|
-
**Key Concepts:**
|
|
49
|
-
- `SemanticContextProvider` for historical context
|
|
50
|
-
- Learning from past similar cases
|
|
51
|
-
- Context-enriched decision making
|
|
52
|
-
|
|
53
|
-
**Run:**
|
|
54
|
-
```bash
|
|
55
|
-
uv run examples/08-semantic/02_context_aware_responses.py
|
|
56
|
-
```
|
|
57
|
-
|
|
58
|
-
**What You'll See:**
|
|
59
|
-
1. System populates incident history
|
|
60
|
-
2. New incidents arrive
|
|
61
|
-
3. System finds semantically similar past incidents
|
|
62
|
-
4. Recommends actions based on past successful resolutions
|
|
63
|
-
|
|
64
|
-
Example: "Database connection failures" → Finds similar past "connection pool exhausted" → Recommends "Increase max connections"
|
|
65
|
-
|
|
66
|
-
---
|
|
67
|
-
|
|
68
|
-
### 03_multi_criteria_filtering.py
|
|
43
|
+
### 02_multi_criteria_filtering.py
|
|
69
44
|
**Advanced semantic filtering with multiple criteria**
|
|
70
45
|
|
|
71
46
|
Demonstrates sophisticated filtering combining:
|
|
@@ -82,7 +57,7 @@ Demonstrates sophisticated filtering combining:
|
|
|
82
57
|
|
|
83
58
|
**Run:**
|
|
84
59
|
```bash
|
|
85
|
-
uv run examples/08-semantic/
|
|
60
|
+
uv run examples/08-semantic/02_multi_criteria_filtering.py
|
|
86
61
|
```
|
|
87
62
|
|
|
88
63
|
**What You'll See:**
|
|
@@ -226,11 +226,7 @@ class Agent(metaclass=AutoTracedMeta):
|
|
|
226
226
|
comp_name = self._component_display_name(component)
|
|
227
227
|
priority = getattr(component, "priority", 0)
|
|
228
228
|
logger.info(
|
|
229
|
-
"Agent
|
|
230
|
-
self.name,
|
|
231
|
-
comp_name,
|
|
232
|
-
priority,
|
|
233
|
-
len(self.utilities),
|
|
229
|
+
f"Agent {self.name}: utility added: component={comp_name}, priority={priority}, total_utilities={len(self.utilities)}"
|
|
234
230
|
)
|
|
235
231
|
self.utilities.sort(key=lambda comp: getattr(comp, "priority", 0))
|
|
236
232
|
|
|
@@ -492,13 +492,17 @@ class Flock(metaclass=AutoTracedMeta):
|
|
|
492
492
|
|
|
493
493
|
# Runtime --------------------------------------------------------------
|
|
494
494
|
|
|
495
|
-
async def run_until_idle(self) -> None:
|
|
495
|
+
async def run_until_idle(self, *, wait_for_input: bool = False) -> None:
|
|
496
496
|
"""Wait for all scheduled agent tasks to complete.
|
|
497
497
|
|
|
498
498
|
This method blocks until the blackboard reaches a stable state where no
|
|
499
499
|
agents are queued for execution. Essential for batch processing and ensuring
|
|
500
500
|
all agent cascades complete before continuing.
|
|
501
501
|
|
|
502
|
+
Args:
|
|
503
|
+
wait_for_input: If True, waits for user input before returning (default: False).
|
|
504
|
+
Useful for debugging or step-by-step execution.
|
|
505
|
+
|
|
502
506
|
Note:
|
|
503
507
|
Automatically resets circuit breaker counters and shuts down MCP connections
|
|
504
508
|
when idle. Used with publish() for event-driven workflows.
|
|
@@ -514,6 +518,12 @@ class Flock(metaclass=AutoTracedMeta):
|
|
|
514
518
|
>>> await flock.publish_many([task1, task2, task3])
|
|
515
519
|
>>> await flock.run_until_idle() # All tasks processed in parallel
|
|
516
520
|
|
|
521
|
+
>>> # Step-by-step execution with user prompts
|
|
522
|
+
>>> await flock.publish(task1)
|
|
523
|
+
>>> await flock.run_until_idle(wait_for_input=True) # Pauses for user input
|
|
524
|
+
>>> await flock.publish(task2)
|
|
525
|
+
>>> await flock.run_until_idle(wait_for_input=True) # Pauses again
|
|
526
|
+
|
|
517
527
|
See Also:
|
|
518
528
|
- publish(): Event-driven artifact publishing
|
|
519
529
|
- publish_many(): Batch publishing for parallel execution
|
|
@@ -553,6 +563,12 @@ class Flock(metaclass=AutoTracedMeta):
|
|
|
553
563
|
# Automatically shutdown MCP connections when idle
|
|
554
564
|
await self.shutdown(include_components=False)
|
|
555
565
|
|
|
566
|
+
# Wait for user input if requested
|
|
567
|
+
if wait_for_input:
|
|
568
|
+
# Use asyncio.to_thread to avoid blocking the event loop
|
|
569
|
+
# since input() is a blocking I/O operation
|
|
570
|
+
await asyncio.to_thread(input, "Press any key to continue....")
|
|
571
|
+
|
|
556
572
|
async def direct_invoke(
|
|
557
573
|
self, agent: Agent, inputs: Sequence[BaseModel | Mapping[str, Any] | Artifact]
|
|
558
574
|
) -> list[Artifact]:
|
|
@@ -715,6 +731,7 @@ class Flock(metaclass=AutoTracedMeta):
|
|
|
715
731
|
partition_key: str | None = None,
|
|
716
732
|
tags: set[str] | None = None,
|
|
717
733
|
is_dashboard: bool = False,
|
|
734
|
+
schedule_immediately: bool = True,
|
|
718
735
|
) -> Artifact:
|
|
719
736
|
"""Publish an artifact to the blackboard (event-driven).
|
|
720
737
|
|
|
@@ -727,16 +744,22 @@ class Flock(metaclass=AutoTracedMeta):
|
|
|
727
744
|
partition_key=partition_key,
|
|
728
745
|
tags=tags,
|
|
729
746
|
is_dashboard=is_dashboard,
|
|
747
|
+
schedule_immediately=schedule_immediately,
|
|
730
748
|
)
|
|
731
749
|
|
|
732
750
|
async def publish_many(
|
|
733
|
-
self,
|
|
751
|
+
self,
|
|
752
|
+
objects: Iterable[BaseModel | dict | Artifact],
|
|
753
|
+
schedule_immediately: bool = True,
|
|
754
|
+
**kwargs: Any,
|
|
734
755
|
) -> list[Artifact]:
|
|
735
756
|
"""Publish multiple artifacts at once (event-driven).
|
|
736
757
|
|
|
737
758
|
Delegates to ArtifactManager for batch publishing.
|
|
738
759
|
"""
|
|
739
|
-
return await self._artifact_manager.publish_many(
|
|
760
|
+
return await self._artifact_manager.publish_many(
|
|
761
|
+
objects, schedule_immediately=schedule_immediately, **kwargs
|
|
762
|
+
)
|
|
740
763
|
|
|
741
764
|
# -----------------------------------------------------------------------------
|
|
742
765
|
# NEW DIRECT INVOCATION API - Explicit Control
|
|
@@ -53,6 +53,7 @@ class ArtifactManager:
|
|
|
53
53
|
partition_key: str | None = None,
|
|
54
54
|
tags: set[str] | None = None,
|
|
55
55
|
is_dashboard: bool = False,
|
|
56
|
+
schedule_immediately: bool = True,
|
|
56
57
|
) -> Artifact:
|
|
57
58
|
"""Publish an artifact to the blackboard (event-driven).
|
|
58
59
|
|
|
@@ -125,12 +126,18 @@ class ArtifactManager:
|
|
|
125
126
|
"Expected BaseModel, dict, or Artifact."
|
|
126
127
|
)
|
|
127
128
|
|
|
128
|
-
|
|
129
|
-
|
|
129
|
+
if schedule_immediately:
|
|
130
|
+
await self.persist_and_schedule(artifact)
|
|
131
|
+
else:
|
|
132
|
+
await self.persist(artifact)
|
|
133
|
+
|
|
130
134
|
return artifact
|
|
131
135
|
|
|
132
136
|
async def publish_many(
|
|
133
|
-
self,
|
|
137
|
+
self,
|
|
138
|
+
objects: Iterable[BaseModel | dict | Artifact],
|
|
139
|
+
schedule_immediately: bool = True,
|
|
140
|
+
**kwargs: Any,
|
|
134
141
|
) -> list[Artifact]:
|
|
135
142
|
"""Publish multiple artifacts at once (event-driven).
|
|
136
143
|
|
|
@@ -150,7 +157,9 @@ class ArtifactManager:
|
|
|
150
157
|
"""
|
|
151
158
|
artifacts = []
|
|
152
159
|
for obj in objects:
|
|
153
|
-
artifact = await self.publish(
|
|
160
|
+
artifact = await self.publish(
|
|
161
|
+
obj, schedule_immediately=schedule_immediately, **kwargs
|
|
162
|
+
)
|
|
154
163
|
artifacts.append(artifact)
|
|
155
164
|
return artifacts
|
|
156
165
|
|
|
@@ -164,5 +173,14 @@ class ArtifactManager:
|
|
|
164
173
|
self._orchestrator.metrics["artifacts_published"] += 1
|
|
165
174
|
await self._scheduler.schedule_artifact(artifact)
|
|
166
175
|
|
|
176
|
+
async def persist(self, artifact: Artifact) -> None:
|
|
177
|
+
"""Persist artifact to store without scheduling.
|
|
178
|
+
|
|
179
|
+
Args:
|
|
180
|
+
artifact: Artifact to publish
|
|
181
|
+
"""
|
|
182
|
+
await self._store.publish(artifact)
|
|
183
|
+
self._orchestrator.metrics["artifacts_published"] += 1
|
|
184
|
+
|
|
167
185
|
|
|
168
186
|
__all__ = ["ArtifactManager"]
|
|
@@ -4,13 +4,13 @@ This module provides a singleton service for generating and caching embeddings
|
|
|
4
4
|
using sentence-transformers.
|
|
5
5
|
"""
|
|
6
6
|
|
|
7
|
-
import
|
|
7
|
+
from flock.logging.logging import get_logger
|
|
8
8
|
from collections import OrderedDict
|
|
9
9
|
|
|
10
10
|
import numpy as np
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
logger =
|
|
13
|
+
logger = get_logger(__name__)
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
class LRUCache:
|
|
@@ -213,6 +213,10 @@ class EmbeddingService:
|
|
|
213
213
|
|
|
214
214
|
similarity = dot_product / (norm1 * norm2)
|
|
215
215
|
|
|
216
|
+
logger.debug(
|
|
217
|
+
f"Computed similarity: {similarity:.4f} between texts '{text1}' and '{text2}'",
|
|
218
|
+
)
|
|
219
|
+
|
|
216
220
|
# Clamp to [0, 1] and handle floating point errors
|
|
217
221
|
return float(max(0.0, min(1.0, similarity)))
|
|
218
222
|
|
|
@@ -1,259 +0,0 @@
|
|
|
1
|
-
"""
|
|
2
|
-
Semantic Subscriptions: Context-Aware Incident Response
|
|
3
|
-
|
|
4
|
-
This example demonstrates using SemanticContextProvider to find similar
|
|
5
|
-
historical incidents and provide informed responses based on past resolutions.
|
|
6
|
-
|
|
7
|
-
🎯 Key Concepts:
|
|
8
|
-
- SemanticContextProvider for historical context
|
|
9
|
-
- Learning from past similar cases
|
|
10
|
-
- Context-enriched decision making
|
|
11
|
-
|
|
12
|
-
🎛️ CONFIGURATION: Set USE_DASHBOARD to switch between CLI and Dashboard modes
|
|
13
|
-
|
|
14
|
-
📚 Requires: uv add flock-core[semantic]
|
|
15
|
-
"""
|
|
16
|
-
|
|
17
|
-
import asyncio
|
|
18
|
-
from collections import Counter
|
|
19
|
-
|
|
20
|
-
from pydantic import BaseModel, Field
|
|
21
|
-
|
|
22
|
-
from flock import Flock
|
|
23
|
-
from flock.components.agent import EngineComponent
|
|
24
|
-
from flock.registry import flock_type
|
|
25
|
-
from flock.semantic import SemanticContextProvider
|
|
26
|
-
from flock.utils.runtime import EvalInputs, EvalResult
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
# ============================================================================
|
|
30
|
-
# 🎛️ CONFIGURATION: Switch between CLI and Dashboard modes
|
|
31
|
-
# ============================================================================
|
|
32
|
-
USE_DASHBOARD = False # Set to True for dashboard mode, False for CLI mode
|
|
33
|
-
# ============================================================================
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
# ============================================================================
|
|
37
|
-
# 🎛️ TYPE REGISTRATION: Incident types
|
|
38
|
-
# ============================================================================
|
|
39
|
-
@flock_type
|
|
40
|
-
class Incident(BaseModel):
|
|
41
|
-
"""A system incident that needs resolution."""
|
|
42
|
-
|
|
43
|
-
description: str = Field(description="Description of the incident")
|
|
44
|
-
severity: str = Field(description="critical, high, medium, or low")
|
|
45
|
-
system: str = Field(description="Affected system or service")
|
|
46
|
-
resolved: bool = Field(default=False, description="Whether incident is resolved")
|
|
47
|
-
resolution: str | None = Field(default=None, description="How it was resolved")
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
@flock_type
|
|
51
|
-
class IncidentResponse(BaseModel):
|
|
52
|
-
"""Recommended response to an incident."""
|
|
53
|
-
|
|
54
|
-
incident_description: str
|
|
55
|
-
recommended_action: str
|
|
56
|
-
confidence: str
|
|
57
|
-
similar_incidents_found: int
|
|
58
|
-
past_resolutions: list[str] = Field(default_factory=list)
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
# ============================================================================
|
|
62
|
-
# 🎛️ CUSTOM ENGINE: Context-aware incident analyzer
|
|
63
|
-
# ============================================================================
|
|
64
|
-
class ContextAwareEngine(EngineComponent):
|
|
65
|
-
"""Engine that uses historical context to inform decisions."""
|
|
66
|
-
|
|
67
|
-
async def evaluate(
|
|
68
|
-
self, agent, ctx, inputs: EvalInputs, output_group
|
|
69
|
-
) -> EvalResult:
|
|
70
|
-
"""Find similar past incidents and recommend action."""
|
|
71
|
-
from flock.registry import type_registry
|
|
72
|
-
|
|
73
|
-
# Get the incoming incident
|
|
74
|
-
artifact = inputs.artifacts[0]
|
|
75
|
-
incident = Incident(**artifact.payload)
|
|
76
|
-
|
|
77
|
-
print(f"\n📊 Analyzing: {incident.description}")
|
|
78
|
-
|
|
79
|
-
# Use SemanticContextProvider to find similar RESOLVED incidents
|
|
80
|
-
provider = SemanticContextProvider(
|
|
81
|
-
query_text=incident.description,
|
|
82
|
-
artifact_type=Incident,
|
|
83
|
-
where=lambda a: a.payload.get("resolved") is True,
|
|
84
|
-
threshold=0.4,
|
|
85
|
-
limit=5,
|
|
86
|
-
)
|
|
87
|
-
|
|
88
|
-
similar = await provider.get_context(ctx.store)
|
|
89
|
-
print(f" Found {len(similar)} similar past incidents")
|
|
90
|
-
|
|
91
|
-
# Extract past resolutions
|
|
92
|
-
past_resolutions = []
|
|
93
|
-
for sim in similar:
|
|
94
|
-
resolution = sim.payload.get("resolution")
|
|
95
|
-
if resolution:
|
|
96
|
-
past_resolutions.append(resolution)
|
|
97
|
-
print(f" - Past resolution: {resolution}")
|
|
98
|
-
|
|
99
|
-
# Determine recommendation based on past success
|
|
100
|
-
if past_resolutions:
|
|
101
|
-
# Use most common resolution
|
|
102
|
-
most_common = Counter(past_resolutions).most_common(1)[0][0]
|
|
103
|
-
recommended = most_common
|
|
104
|
-
confidence = "high"
|
|
105
|
-
else:
|
|
106
|
-
# No historical data
|
|
107
|
-
recommended = "Escalate to on-call engineer for investigation"
|
|
108
|
-
confidence = "low"
|
|
109
|
-
|
|
110
|
-
print(f" Recommendation: {recommended}")
|
|
111
|
-
print(f" Confidence: {confidence}\n")
|
|
112
|
-
|
|
113
|
-
# Create response artifact
|
|
114
|
-
response = IncidentResponse(
|
|
115
|
-
incident_description=incident.description,
|
|
116
|
-
recommended_action=recommended,
|
|
117
|
-
confidence=confidence,
|
|
118
|
-
similar_incidents_found=len(similar),
|
|
119
|
-
past_resolutions=past_resolutions,
|
|
120
|
-
)
|
|
121
|
-
|
|
122
|
-
# Return as artifact
|
|
123
|
-
response_artifact = type_registry.resolve("IncidentResponse")(**response.dict())
|
|
124
|
-
|
|
125
|
-
return EvalResult(
|
|
126
|
-
artifacts=[artifact], # Pass through for potential further processing
|
|
127
|
-
state={"response": response.dict()},
|
|
128
|
-
)
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
# ============================================================================
|
|
132
|
-
# 🎛️ SETUP: Create incident response system
|
|
133
|
-
# ============================================================================
|
|
134
|
-
flock = Flock("openai/gpt-4o-mini")
|
|
135
|
-
|
|
136
|
-
# Incident responder that learns from history
|
|
137
|
-
incident_responder = (
|
|
138
|
-
flock.agent("incident_responder")
|
|
139
|
-
.consumes(Incident)
|
|
140
|
-
.publishes(IncidentResponse)
|
|
141
|
-
.with_engines(ContextAwareEngine())
|
|
142
|
-
)
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
# ============================================================================
|
|
146
|
-
# 🎛️ RUN: Simulate incident history and new incidents
|
|
147
|
-
# ============================================================================
|
|
148
|
-
async def main_cli():
|
|
149
|
-
"""CLI mode: Demonstrate context-aware incident response"""
|
|
150
|
-
print("\n🔍 Context-Aware Incident Response Demo\n")
|
|
151
|
-
print("=" * 70)
|
|
152
|
-
|
|
153
|
-
# Step 1: Populate incident history
|
|
154
|
-
print("\n📚 Step 1: Populating incident history...")
|
|
155
|
-
print("-" * 70)
|
|
156
|
-
|
|
157
|
-
history = [
|
|
158
|
-
Incident(
|
|
159
|
-
description="Database connection pool exhausted",
|
|
160
|
-
severity="high",
|
|
161
|
-
system="postgres",
|
|
162
|
-
resolved=True,
|
|
163
|
-
resolution="Increased max connections from 100 to 200",
|
|
164
|
-
),
|
|
165
|
-
Incident(
|
|
166
|
-
description="Database timeout errors during peak traffic",
|
|
167
|
-
severity="high",
|
|
168
|
-
system="postgres",
|
|
169
|
-
resolved=True,
|
|
170
|
-
resolution="Increased max connections from 100 to 200",
|
|
171
|
-
),
|
|
172
|
-
Incident(
|
|
173
|
-
description="API response time degraded significantly",
|
|
174
|
-
severity="medium",
|
|
175
|
-
system="api-gateway",
|
|
176
|
-
resolved=True,
|
|
177
|
-
resolution="Added caching layer with Redis",
|
|
178
|
-
),
|
|
179
|
-
Incident(
|
|
180
|
-
description="Memory leak in application server",
|
|
181
|
-
severity="critical",
|
|
182
|
-
system="app-server",
|
|
183
|
-
resolved=True,
|
|
184
|
-
resolution="Restarted service and deployed hotfix for leak",
|
|
185
|
-
),
|
|
186
|
-
Incident(
|
|
187
|
-
description="Slow query causing database locks",
|
|
188
|
-
severity="high",
|
|
189
|
-
system="postgres",
|
|
190
|
-
resolved=True,
|
|
191
|
-
resolution="Added database index on user_id column",
|
|
192
|
-
),
|
|
193
|
-
]
|
|
194
|
-
|
|
195
|
-
for inc in history:
|
|
196
|
-
await flock.store.publish(
|
|
197
|
-
flock.store._build_artifact(inc, produced_by="history_loader")
|
|
198
|
-
)
|
|
199
|
-
print(f" ✓ {inc.description}")
|
|
200
|
-
|
|
201
|
-
print("\n✅ Historical data loaded!")
|
|
202
|
-
|
|
203
|
-
# Step 2: Process new incidents with context
|
|
204
|
-
print("\n📋 Step 2: Processing new incidents with historical context...")
|
|
205
|
-
print("-" * 70)
|
|
206
|
-
|
|
207
|
-
new_incidents = [
|
|
208
|
-
Incident(
|
|
209
|
-
description="Database connection failures under load",
|
|
210
|
-
severity="high",
|
|
211
|
-
system="postgres",
|
|
212
|
-
),
|
|
213
|
-
Incident(
|
|
214
|
-
description="API latency spiking during business hours",
|
|
215
|
-
severity="medium",
|
|
216
|
-
system="api-gateway",
|
|
217
|
-
),
|
|
218
|
-
Incident(
|
|
219
|
-
description="Disk space running low on server",
|
|
220
|
-
severity="low",
|
|
221
|
-
system="file-server",
|
|
222
|
-
),
|
|
223
|
-
]
|
|
224
|
-
|
|
225
|
-
for incident in new_incidents:
|
|
226
|
-
await flock.publish(incident)
|
|
227
|
-
await flock.run_until_idle()
|
|
228
|
-
|
|
229
|
-
print("\n" + "=" * 70)
|
|
230
|
-
print("✅ Incident analysis complete!")
|
|
231
|
-
print("\n💡 Key Takeaway:")
|
|
232
|
-
print(" The system learned from past resolutions to recommend")
|
|
233
|
-
print(" actions for new but similar incidents automatically!")
|
|
234
|
-
print("\n - Database connection issues → Increase max connections")
|
|
235
|
-
print(" - API latency → Add caching layer")
|
|
236
|
-
print(" - Unknown issue → Escalate to engineer")
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
async def main_dashboard():
|
|
240
|
-
"""Dashboard mode: Serve with interactive web interface"""
|
|
241
|
-
print("\n🌐 Starting Flock Dashboard...")
|
|
242
|
-
print(" Visit http://localhost:8000 to see context-aware responses!")
|
|
243
|
-
print("\n💡 The system will:")
|
|
244
|
-
print(" 1. Find similar past incidents using semantic search")
|
|
245
|
-
print(" 2. Learn from successful past resolutions")
|
|
246
|
-
print(" 3. Recommend actions based on historical data\n")
|
|
247
|
-
|
|
248
|
-
await flock.serve(dashboard=True)
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
async def main():
|
|
252
|
-
if USE_DASHBOARD:
|
|
253
|
-
await main_dashboard()
|
|
254
|
-
else:
|
|
255
|
-
await main_cli()
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
if __name__ == "__main__":
|
|
259
|
-
asyncio.run(main(), debug=True)
|