flock-core 0.5.0b63__tar.gz → 0.5.0b65__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.0b63 → flock_core-0.5.0b65}/PKG-INFO +2 -1
- flock_core-0.5.0b65/docs/bugfixes/websocket-streaming-deadlock-fix.md +203 -0
- flock_core-0.5.0b65/docs/guides/mcp-roots.md +416 -0
- flock_core-0.5.0b65/docs/internal/implementation-summary-server-specific-mounts.md +153 -0
- flock_core-0.5.0b65/docs/internal/mcp-server-config-typeddict.md +230 -0
- flock_core-0.5.0b65/docs/troubleshooting/streaming-freeze-fix.md +169 -0
- flock_core-0.5.0b65/docs/troubleshooting/streaming-freeze-with-dashboard-fix.md +50 -0
- flock_core-0.5.0b65/docs/tutorials/connect_with_ollama.md +255 -0
- flock_core-0.5.0b65/examples/01-the-declarative-way/04_mcp_roots.py +299 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/01-the-declarative-way/README.md +6 -1
- flock_core-0.5.0b65/examples/08-ollama/08_ollama_example.py +91 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/pyproject.toml +2 -1
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/agent.py +205 -27
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/dashboard/websocket.py +13 -2
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/engines/dspy_engine.py +30 -9
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/package-lock.json +11 -21
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/client.py +25 -1
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/config.py +1 -10
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/manager.py +34 -3
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/types/callbacks.py +4 -1
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/orchestrator.py +33 -4
- flock_core-0.5.0b65/test.py +149 -0
- flock_core-0.5.0b65/tests/test_agent_server_specific_mounts.py +252 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_mcp_config.py +0 -5
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_mcp_manager.py +3 -3
- flock_core-0.5.0b65/tests/test_mcp_server_config_typeddict.py +143 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_orchestrator_mcp.py +0 -2
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/uv.lock +12 -1
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/.devcontainer/devcontainer.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/.envtemplate +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/.github/workflows/deploy-whiteduck-pypi.yml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/.github/workflows/quality.yml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/.gitignore +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/.pre-commit-config.yaml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/.python-version +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/.vscode/settings.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/AGENTS.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/AGENTS.md.backup +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/CONTRIBUTING.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/LICENSE +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/ROADMAP.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/USECASES.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/about/changelog.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/about/contributing.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/about/roadmap.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/assets/images/bug_diagnosis.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/assets/images/flock_ui_1.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/assets/images/flock_ui_agent_view.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/assets/images/flock_ui_blackboard_view.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/assets/images/pizza.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/assets/images/trace_1.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/assets/images/trace_2.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/assets/images/trace_3.png +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/community/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/examples/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/getting-started/concepts.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/getting-started/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/getting-started/installation.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/getting-started/quick-start.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/agents.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/blackboard.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/components.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/dashboard.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/patterns.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/testing.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/tracing/auto-tracing.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/tracing/how_to_use_tracing_effectively.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/tracing/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/tracing/trace-module.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/tracing/tracing-production.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/tracing/tracing-quickstart.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/tracing/unified-tracing.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/use-cases.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/guides/visibility.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/IMPLEMENTATION_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/PRE_COMMIT_HOOKS.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/UNIFIED_TRACING_DELIVERY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/VERSIONING.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/ai-agents/architecture.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/ai-agents/common-tasks.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/ai-agents/dependencies.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/ai-agents/development.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/ai-agents/frontend.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/design_and_goals/landscape_analysis.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/design_and_goals/motivation.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/design_and_goals/review.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/design_and_goals/technical_design.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/ANALYSIS_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/AUDIT_QUICKREF.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/BROKEN_LINKS_REPORT.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/DOCUMENTATION_ANALYSIS.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/DOCUMENTATION_TRANSFORMATION_CHECKLIST.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/DOCUMENTATION_TRANSFORMATION_ROADMAP.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/MKDOCS_BEST_PRACTICES_RESEARCH.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/MKDOCS_QUICK_REFERENCE.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/PHASE_1_COMPLETION_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/PHASE_1_FINAL_REPORT.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/PHASE_2_COMPLETION_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/PHASE_3_COMPLETION_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/examples-analysis.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/examples-quick-reference.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/documentation-analysis/examples-structure-diagram.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/domain/test-improvement-roadmap.md +0 -0
- {flock_core-0.5.0b63/docs → flock_core-0.5.0b65/docs/internal}/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/patterns/auto-layout-auto-zoom-removal.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/patterns/core-architecture.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/patterns/development-workflow.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/patterns/project-configuration.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/patterns/repository-structure.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/INDEX.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/RANKED_RESEARCH_AGENDA.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/benchmarks/BENCHMARK_DELIVERABLES.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/benchmarks/BENCHMARK_EXECUTIVE_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/benchmarks/BENCHMARK_RESEARCH.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/benchmarks/BENCHMARK_VISUAL_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/benchmarks/QUICK_START_BENCHMARKS.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/benchmarks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/01_contract_first_reliability.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/02_event_parallelism_batching.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/03_mcp_native_eval.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/04_formal_liveness_safety.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/05_stigmergic_patterns.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/06_observability_driven_scheduling.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/07_visibility_multitenant_infoflow.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/08_structured_generation_adversarial_schemas.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/09_web_agent_orchestration_bench.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/09x_alternatives_refs.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/10_distributed_blackboard_kafka.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/11_cost_optimal_bestof_cascade.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/12_human_in_the_loop_guardrails.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/13_trace_dataset_compression.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/14_mcp_latency_caching.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/15_market_bidding_blackboard.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/01_contract_first_reliability/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/02_event_parallelism_batching/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/03_mcp_native_eval/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/04_formal_liveness_safety/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/05_stigmergic_patterns/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/06_observability_driven_scheduling/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/07_visibility_multitenant_infoflow/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/08_structured_generation_adversarial_schemas/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/09_web_agent_orchestration_bench/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/10_distributed_blackboard_kafka/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/11_cost_optimal_bestof_cascade/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/12_human_in_the_loop_guardrails/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/12_human_in_the_loop_guardrails/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/12_human_in_the_loop_guardrails/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/12_human_in_the_loop_guardrails/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/12_human_in_the_loop_guardrails/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/12_human_in_the_loop_guardrails/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/12_human_in_the_loop_guardrails/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/12_human_in_the_loop_guardrails/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/12_human_in_the_loop_guardrails/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/12_human_in_the_loop_guardrails/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/13_trace_dataset_compression/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/14_mcp_latency_caching/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/configs/experiment.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/data/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/figures/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/notebooks/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/results/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/scripts/analyze.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/scripts/run.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/15_market_bidding_blackboard/scripts/run_local.sh +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/INDEX.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/_shared/analysis/queries.sql +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/_shared/harness/runner.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/boilerplate/_shared/scripts/analyze_template.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/extra_sources.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/kafka_implementation_plan.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/codex/needed_framework_implementation.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/emergence/EMERGENCE_RESEARCH_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/emergence/EMERGENT_BEHAVIOR_RESEARCH.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/emergence/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/emergence/emergence_toolkit.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/emergence/experiment_emergence_demo.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/formal-methods/FORMAL_METHODS_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/formal-methods/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/formal-methods/formal-methods-analysis.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/formal-methods/formal-methods-quick-ref.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/formal-methods/formal-verification-examples.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/observability/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/observability/observability_research_opportunities.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/orchestration/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/orchestration/RESEARCH_BLACKBOARD_ORCHESTRATION.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/orchestration/RESEARCH_EXAMPLES.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/research/orchestration/RESEARCH_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/specs/001-test-coverage-improvement/PLAN.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/specs/001-test-coverage-improvement/PRD.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/specs/001-test-coverage-improvement/SDD.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/troubleshooting/codex_bug_analysis.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/internal/troubleshooting/event-log-memory-leak-analysis.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/javascripts/extra.js +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/reference/api.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/reference/configuration.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/reference/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/stylesheets/extra.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/tags.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/tutorials/advanced-patterns.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/tutorials/conditional-routing.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/tutorials/index.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/tutorials/multi-agent-workflow.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/tutorials/your-first-agent.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/docs/whiteducksoftware/versions.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/01-the-declarative-way/01_declarative_pizza.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/01-the-declarative-way/02_input_and_output.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/01-the-declarative-way/03_mcp_and_tools.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/02-the-blackboard/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/03-the-dashboard/01_declarative_pizza.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/03-the-dashboard/02-dashboard-edge-cases.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/03-the-dashboard/03-scale-test-100-agents.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/03-the-dashboard/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/04-the-api/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/05-claudes-workshop/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/05-claudes-workshop/lesson_01_code_detective.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/05-claudes-workshop/lesson_02_band_formation.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/05-claudes-workshop/lesson_03_web_detective.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/05-claudes-workshop/lesson_04_debate_club.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/05-claudes-workshop/lesson_05_tracing_detective.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/05-claudes-workshop/lesson_06_secret_agents.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/05-claudes-workshop/lesson_07_news_agency.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/06-readme/01-BugDiagnosis.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/examples/07-notebooks/Untitled-1.ipynb +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/mkdocs.yml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/requirements.txt +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/scripts/build_dashboard.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/scripts/bump_version.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/scripts/check_version_bump.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/scripts/ensure_uv.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/scripts/gen_ref_pages.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/scripts/generate_llm_codebase.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/api/themes.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/artifacts.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/cli.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/components.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/dashboard/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/dashboard/collector.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/dashboard/events.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/dashboard/launcher.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/dashboard/service.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/engines/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/examples.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/docs/DESIGN_SYSTEM.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/index.html +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/package.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/App.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/__tests__/e2e/critical-scenarios.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/__tests__/integration/filtering-e2e.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/__tests__/integration/graph-rendering.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/__tests__/integration/indexeddb-persistence.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/common/BuildInfo.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/common/EmptyState.module.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/common/EmptyState.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/common/ErrorBoundary.module.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/common/ErrorBoundary.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/common/KeyboardShortcutsDialog.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/common/KeyboardShortcutsDialog.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/common/LoadingSpinner.module.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/common/LoadingSpinner.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/controls/PublishControl.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/controls/PublishControl.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/controls/PublishControl.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/details/DetailWindowContainer.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/details/LiveOutputTab.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/details/LiveOutputTab.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/details/MessageHistoryTab.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/details/NodeDetailWindow.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/details/NodeDetailWindow.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/details/RunStatusTab.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/details/tabs.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/filters/CorrelationIDFilter.module.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/filters/CorrelationIDFilter.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/filters/CorrelationIDFilter.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/filters/FilterBar.module.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/filters/FilterBar.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/filters/FilterBar.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/filters/FilterPills.module.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/filters/FilterPills.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/filters/FilterPills.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/filters/TimeRangeFilter.module.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/filters/TimeRangeFilter.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/filters/TimeRangeFilter.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/graph/AgentNode.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/graph/AgentNode.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/graph/GraphCanvas.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/graph/MessageFlowEdge.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/graph/MessageNode.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/graph/MessageNode.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/graph/MiniMap.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/graph/TransformEdge.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/layout/DashboardLayout.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/layout/DashboardLayout.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/layout/Header.module.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/layout/Header.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/modules/EventLogModule.test.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/modules/EventLogModule.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/modules/EventLogModuleWrapper.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/modules/JsonAttributeRenderer.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/modules/ModuleRegistry.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/modules/ModuleRegistry.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/modules/ModuleWindow.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/modules/TraceModuleJaeger.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/modules/TraceModuleJaegerWrapper.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/modules/registerModules.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/settings/AdvancedSettings.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/settings/AppearanceSettings.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/settings/GraphSettings.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/settings/MultiSelect.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/settings/SettingsPanel.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/settings/SettingsPanel.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/settings/ThemeSelector.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/components/settings/TracingSettings.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/hooks/useKeyboardShortcuts.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/hooks/useModulePersistence.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/hooks/useModulePersistence.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/hooks/useModules.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/hooks/usePersistence.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/main.tsx +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/services/api.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/services/indexeddb.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/services/indexeddb.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/services/layout.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/services/layout.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/services/themeApplicator.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/services/themeService.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/services/websocket.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/services/websocket.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/store/filterStore.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/store/filterStore.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/store/graphStore.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/store/graphStore.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/store/moduleStore.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/store/moduleStore.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/store/settingsStore.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/store/streamStore.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/store/uiStore.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/store/uiStore.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/store/wsStore.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/styles/index.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/styles/scrollbar.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/styles/variables.css +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/test/setup.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/types/filters.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/types/graph.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/types/modules.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/types/theme.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/utils/mockData.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/utils/performance.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/utils/transforms.test.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/utils/transforms.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/src/vite-env.d.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/tsconfig.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/tsconfig.node.json +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/vite.config.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/frontend/vitest.config.ts +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/helper/cli_helper.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/logging/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/logging/auto_trace.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/logging/formatters/enum_builder.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/logging/formatters/theme_builder.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/logging/formatters/themed_formatter.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/logging/formatters/themes.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/logging/logging.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/logging/span_middleware/baggage_span_processor.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/logging/telemetry.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/logging/telemetry_exporter/base_exporter.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/logging/telemetry_exporter/duckdb_exporter.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/logging/telemetry_exporter/file_exporter.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/logging/telemetry_exporter/sqlite_exporter.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/logging/trace_and_logged.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/servers/sse/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/servers/sse/flock_sse_server.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/servers/stdio/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/servers/stdio/flock_stdio_server.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/servers/streamable_http/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/servers/streamable_http/flock_streamable_http_server.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/servers/websockets/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/servers/websockets/flock_websocket_server.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/tool.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/types/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/types/factories.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/types/handlers.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/types/types.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/util/__init__.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/mcp/util/helpers.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/registry.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/runtime.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/service.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/store.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/subscription.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/3024-day.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/3024-night.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/aardvark-blue.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/abernathy.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/adventure.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/adventuretime.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/afterglow.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/alabaster.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/alienblood.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/andromeda.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/apple-classic.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/apple-system-colors.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/arcoiris.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/argonaut copy.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/argonaut.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/arthur.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/ateliersulphurpool.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/atom.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/atom_test.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/atomonelight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/aurora.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/ayu copy.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/ayu-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/ayu-mirage.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/ayu.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/banana-blueberry.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/batman.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/belafonte-day.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/belafonte-night.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/birdsofparadise.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/blazer.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/blue-matrix.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/blueberrypie.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/bluedolphin.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/blulocodark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/blulocolight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/borland.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/breeze.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/bright-lights.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/broadcast.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/brogrammer.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/builtin-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/builtin-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/builtin-pastel-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/builtin-solarized-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/builtin-solarized-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/builtin-tango-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/builtin-tango-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/c64.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/calamity.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/catppuccin-frappe.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/catppuccin-latte.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/catppuccin-macchiato.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/catppuccin-mocha.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/cga.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/chalk.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/chalkboard.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/challengerdeep.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/chester.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/ciapre.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/clrs.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/cobalt-neon.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/cobalt2.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/coffee-theme.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/crayonponyfish.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/cutiepro.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/cyberdyne.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/cyberpunk.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/cyberpunkscarletprotocol.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/dark+.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/dark-pastel.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/darkermatrix.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/darkmatrix.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/darkside.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/dayfox.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/deep.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/desert.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/dimidium.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/dimmedmonokai.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/django.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/djangorebornagain.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/djangosmooth.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/doom-peacock.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/doomone.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/dotgov.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/dracula+.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/dracula.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/duckbones.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/duotone-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/earthsong.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/elemental.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/elementary.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/encom.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/espresso-libre.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/espresso.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/everblush.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/fahrenheit.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/fairyfloss.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/farmhouse-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/farmhouse-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/fideloper.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/firefly-traditional.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/firefoxdev.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/firewatch.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/fishtank.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/flat.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/flatland.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/flexoki-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/flexoki-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/floraverse.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/forestblue.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/framer.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/frontenddelight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/funforrest.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/galaxy.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/galizur.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/github-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/github.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/glacier.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/grape.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/grass.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/grey-green.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/gruber-darker.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/gruvboxdark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/gruvboxdarkhard.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/gruvboxlight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/guezwhoz.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/hacktober.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/hardcore.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/harper.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/hax0r-blue.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/hax0r-gr33n.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/hax0r-r3d.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/highway.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/hipster-green.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/hivacruz.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/homebrew.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/hopscotch.256.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/hopscotch.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/hurtado.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/hybrid.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/ic-green-ppl.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/ic-orange-ppl.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/iceberg-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/iceberg-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/idea.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/idletoes.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/ir-black.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/iterm2-dark-background.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/iterm2-default.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/iterm2-light-background.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/iterm2-pastel-dark-background.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/iterm2-smoooooth.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/iterm2-solarized-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/iterm2-solarized-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/iterm2-tango-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/iterm2-tango-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/jackie-brown.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/japanesque.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/jellybeans.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/jetbrains-darcula.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/jubi.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/kanagawabones.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/kibble.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/kolorit.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/konsolas.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/kurokula.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/lab-fox.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/laser.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/later-this-evening.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/lavandula.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/liquidcarbon.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/liquidcarbontransparent.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/liquidcarbontransparentinverse.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/lovelace.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/man-page.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/mariana.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/material.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/materialdark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/materialdarker.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/materialdesigncolors.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/materialocean.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/mathias.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/matrix.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/medallion.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/mellifluous.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/midnight-in-mojave.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/mirage.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/misterioso.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/molokai.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/monalisa.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/monokai-remastered.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/monokai-soda.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/monokai-vivid.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/n0tch2k.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/neobones-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/neobones-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/neon.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/neopolitan.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/neutron.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/night-owlish-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/nightfox.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/nightlion-v1.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/nightlion-v2.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/niji.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/nocturnal-winter.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/nord-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/nord.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/novel.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/nvimdark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/nvimlight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/obsidian.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/ocean.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/oceanic-next.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/oceanicmaterial.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/ollie.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/onehalfdark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/onehalflight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/operator-mono-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/overnight-slumber.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/oxocarbon.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/palenighthc.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/pandora.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/paraiso-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/paulmillr.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/pencildark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/pencillight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/peppermint.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/piatto-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/pnevma.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/popping-and-locking.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/primary.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/pro-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/pro.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/purple-rain.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/purplepeter.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/rapture.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/raycast-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/raycast-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/rebecca.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/red-alert.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/red-planet.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/red-sands.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/relaxed.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/retro.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/rippedcasts.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/rose-pine-dawn.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/rose-pine-moon.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/rose-pine.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/rouge-2.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/royal.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/ryuuko.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/sakura.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/scarlet-protocol.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/seafoam-pastel.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/seashells.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/seoulbones-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/seoulbones-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/seti.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/shades-of-purple.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/shaman.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/slate.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/sleepyhollow.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/smyck.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/snazzy.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/softserver.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/solarized-darcula.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/solarized-dark---patched.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/solarized-dark-higher-contrast.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/spacedust.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/spacegray-eighties-dull.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/spacegray-eighties.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/spacegray.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/spiderman.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/spring.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/square.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/sublette.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/subliminal.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/sugarplum.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/sundried.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/symfonic.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/synthwave-everything.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/synthwave.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/synthwavealpha.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/tango-adapted.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/tango-half-adapted.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/teerb.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/terafox.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/terminal-basic.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/thayer-bright.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/the-hulk.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/tinacious-design-(dark).toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/tinacious-design-(light).toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/tokyonight-day.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/tokyonight-storm.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/tokyonight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/tomorrow-night-blue.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/tomorrow-night-bright.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/tomorrow-night-burns.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/tomorrow-night-eighties.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/tomorrow-night.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/tomorrow.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/toychest.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/treehouse.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/twilight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/ubuntu.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/ultradark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/ultraviolent.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/underthesea.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/unikitty.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/urple.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/vaughn.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/vesper.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/vibrantink.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/vimbones.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/violet-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/violet-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/warmneon.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/wez.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/whimsy.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/wildcherry.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/wilmersdorf.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/wombat.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/wryan.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/xcodedark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/xcodedarkhc.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/xcodelight.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/xcodelighthc.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/xcodewwdc.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/zenbones-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/zenbones-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/zenbones.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/zenburn.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/zenburned.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/zenwritten-dark.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/themes/zenwritten-light.toml +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/utilities.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/utility/output_utility_component.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/src/flock/visibility.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/conftest.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/contract/test_agent_payload_selection_contract.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/contract/test_artifact_storage_contract.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/contract/test_type_normalization_contract.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/e2e/README.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/e2e/TESTING_SUMMARY.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/e2e/test_critical_scenarios.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/integration/test_collector_orchestrator.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/integration/test_orchestrator_dashboard.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/integration/test_websocket_protocol.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_agent.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_agent_mcp.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_artifacts.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_cli.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_cli_helper.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_components.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_dashboard_api.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_dashboard_collector.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_dashboard_launcher.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_dashboard_service.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_dspy_engine.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_dspy_engine_mcp.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_dspy_streaming_events.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_engines.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_logging_config.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_mcp_client.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_mcp_coverage_summary.md +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_mcp_imports.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_mcp_tool_handlers.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_orchestrator.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_registry.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_runtime.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_service.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_service_extended.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_store.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_subscription.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_telemetry.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_trace_clearing.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_unified_tracing.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_utilities.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_version_endpoint.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_visibility.py +0 -0
- {flock_core-0.5.0b63 → flock_core-0.5.0b65}/tests/test_websocket_manager.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.0b65
|
|
4
4
|
Summary: Add your description here
|
|
5
5
|
Author-email: Andre Ratzenberger <andre.ratzenberger@whiteduck.de>
|
|
6
6
|
License-File: LICENSE
|
|
@@ -9,6 +9,7 @@ Requires-Dist: devtools>=0.12.2
|
|
|
9
9
|
Requires-Dist: dspy==3.0.0
|
|
10
10
|
Requires-Dist: duckdb>=1.1.0
|
|
11
11
|
Requires-Dist: fastapi>=0.117.1
|
|
12
|
+
Requires-Dist: hanging-threads>=2.0.7
|
|
12
13
|
Requires-Dist: httpx>=0.28.1
|
|
13
14
|
Requires-Dist: litellm==1.75.3
|
|
14
15
|
Requires-Dist: loguru>=0.7.3
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
# WebSocket Streaming Deadlock Fix
|
|
2
|
+
|
|
3
|
+
## Issue Description
|
|
4
|
+
|
|
5
|
+
**Symptom**: When using the dashboard UI, agent execution would freeze (deadlock) when the agent called MCP tools during streaming, particularly with filesystem operations. The issue did NOT occur when running via CLI without the dashboard.
|
|
6
|
+
|
|
7
|
+
**Affected Component**: `src/flock/engines/dspy_engine.py` - streaming execution with WebSocket broadcasting
|
|
8
|
+
|
|
9
|
+
## Root Cause Analysis
|
|
10
|
+
|
|
11
|
+
### The Deadlock Scenario
|
|
12
|
+
|
|
13
|
+
The deadlock occurred due to a **circular wait condition** in the async event loop:
|
|
14
|
+
|
|
15
|
+
1. **Agent starts streaming** tokens via WebSocket: `await ws_manager.broadcast(event)`
|
|
16
|
+
2. **Agent calls an MCP tool** (e.g., filesystem read) - this is an `await` operation
|
|
17
|
+
3. **WebSocket send buffer fills up** because the client can't process messages fast enough
|
|
18
|
+
4. **`broadcast()` blocks** waiting for `client.send_text(message)` to complete (500ms timeout)
|
|
19
|
+
5. **Client is blocked** waiting for the agent to finish
|
|
20
|
+
6. **Agent can't continue** because it's waiting for `broadcast()` to return
|
|
21
|
+
|
|
22
|
+
This creates a **circular dependency**:
|
|
23
|
+
```
|
|
24
|
+
Streaming loop → await broadcast() → await client.send_text() →
|
|
25
|
+
→ client waiting for response → agent waiting to send →
|
|
26
|
+
→ agent blocked on MCP tool → deadlock!
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
### Why It Only Happened with Dashboard
|
|
30
|
+
|
|
31
|
+
- **CLI mode**: No WebSocket, streaming goes directly to console (no blocking I/O to client)
|
|
32
|
+
- **Dashboard mode**: WebSocket adds network I/O and client buffering, creating blocking points
|
|
33
|
+
|
|
34
|
+
### Key Code Pattern (Before Fix)
|
|
35
|
+
|
|
36
|
+
```python
|
|
37
|
+
async for value in stream_generator:
|
|
38
|
+
if isinstance(value, StatusMessage):
|
|
39
|
+
# ... process token ...
|
|
40
|
+
|
|
41
|
+
# BLOCKING: Waits for WebSocket to complete send
|
|
42
|
+
await ws_manager.broadcast(event) # ← DEADLOCK HERE
|
|
43
|
+
|
|
44
|
+
# ... later ...
|
|
45
|
+
|
|
46
|
+
# MCP tool call happens here
|
|
47
|
+
result = await server.call_tool(...) # ← Can't reach if blocked above
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
## The Fix
|
|
51
|
+
|
|
52
|
+
### Solution: Non-Blocking WebSocket Broadcasts
|
|
53
|
+
|
|
54
|
+
Changed all `await ws_manager.broadcast(event)` calls inside the streaming loop to **fire-and-forget** using `asyncio.create_task()`:
|
|
55
|
+
|
|
56
|
+
```python
|
|
57
|
+
# Before (blocking)
|
|
58
|
+
await ws_manager.broadcast(event)
|
|
59
|
+
|
|
60
|
+
# After (non-blocking)
|
|
61
|
+
task = asyncio.create_task(ws_manager.broadcast(event))
|
|
62
|
+
ws_broadcast_tasks.add(task)
|
|
63
|
+
task.add_done_callback(ws_broadcast_tasks.discard)
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
### Changes Made
|
|
67
|
+
|
|
68
|
+
**File**: `src/flock/engines/dspy_engine.py`
|
|
69
|
+
|
|
70
|
+
1. **Added asyncio import**:
|
|
71
|
+
```python
|
|
72
|
+
import asyncio
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
2. **Track background tasks** to prevent garbage collection:
|
|
76
|
+
```python
|
|
77
|
+
# Track background WebSocket broadcast tasks to prevent garbage collection
|
|
78
|
+
ws_broadcast_tasks: set[asyncio.Task] = set()
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
3. **Updated all broadcast calls** (4 locations in streaming loop):
|
|
82
|
+
- `StatusMessage` handling (line ~625)
|
|
83
|
+
- `StreamResponse` handling (line ~670)
|
|
84
|
+
- `ModelResponseStream` handling (line ~715)
|
|
85
|
+
- Final `Prediction` handling (lines ~745, ~760)
|
|
86
|
+
|
|
87
|
+
### Why This Works
|
|
88
|
+
|
|
89
|
+
1. **Breaks the circular wait**: Streaming loop doesn't wait for WebSocket sends to complete
|
|
90
|
+
2. **Maintains order**: Tasks are created in sequence, AsyncIO scheduler maintains order
|
|
91
|
+
3. **Prevents garbage collection**: Tasks stored in set until completion
|
|
92
|
+
4. **Graceful error handling**: Errors in broadcast don't crash the streaming loop
|
|
93
|
+
5. **Timeout still applies**: WebSocket still has 500ms timeout per client (in broadcast method)
|
|
94
|
+
|
|
95
|
+
## Testing
|
|
96
|
+
|
|
97
|
+
### Before Fix
|
|
98
|
+
```bash
|
|
99
|
+
# This would deadlock when agent calls filesystem tool
|
|
100
|
+
uv run python examples/03-the-dashboard/test_streaming_fix.py
|
|
101
|
+
# Result: Hangs indefinitely when tool is called
|
|
102
|
+
```
|
|
103
|
+
|
|
104
|
+
### After Fix
|
|
105
|
+
```bash
|
|
106
|
+
# Should complete successfully
|
|
107
|
+
uv run python examples/03-the-dashboard/test_streaming_fix.py
|
|
108
|
+
# Result: Streams tokens, calls tool, completes normally
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
### Verification Steps
|
|
112
|
+
|
|
113
|
+
1. **Start dashboard example** with MCP filesystem tools
|
|
114
|
+
2. **Publish artifact** that triggers agent with tool calls
|
|
115
|
+
3. **Observe streaming**: Should see tokens streaming in real-time
|
|
116
|
+
4. **Tool execution**: Agent should call filesystem tools without freezing
|
|
117
|
+
5. **Completion**: Agent should finish and display final output
|
|
118
|
+
|
|
119
|
+
## Related Code
|
|
120
|
+
|
|
121
|
+
### WebSocket Timeout Protection
|
|
122
|
+
|
|
123
|
+
The WebSocket broadcast already had timeout protection (500ms per client):
|
|
124
|
+
|
|
125
|
+
```python
|
|
126
|
+
# In src/flock/dashboard/websocket.py
|
|
127
|
+
send_tasks = [
|
|
128
|
+
asyncio.wait_for(client.send_text(message), timeout=0.5) # 500ms timeout
|
|
129
|
+
for client in clients_list
|
|
130
|
+
]
|
|
131
|
+
results = await asyncio.gather(*send_tasks, return_exceptions=True)
|
|
132
|
+
```
|
|
133
|
+
|
|
134
|
+
This timeout prevented infinite hangs on individual client sends, but didn't prevent the streaming loop from blocking.
|
|
135
|
+
|
|
136
|
+
### MCP Tool Execution
|
|
137
|
+
|
|
138
|
+
MCP tools are async operations that can take time:
|
|
139
|
+
|
|
140
|
+
```python
|
|
141
|
+
# In src/flock/mcp/tool.py
|
|
142
|
+
async def func(*args, **kwargs):
|
|
143
|
+
result = await server.call_tool(
|
|
144
|
+
agent_id=self.agent_id,
|
|
145
|
+
run_id=self.run_id,
|
|
146
|
+
name=self.name,
|
|
147
|
+
arguments=kwargs,
|
|
148
|
+
)
|
|
149
|
+
return self._convert_mcp_tool_result(result)
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
When streaming loop blocks on `await broadcast()`, it can't reach tool execution.
|
|
153
|
+
|
|
154
|
+
## Lessons Learned
|
|
155
|
+
|
|
156
|
+
### Async Programming Gotchas
|
|
157
|
+
|
|
158
|
+
1. **Never block in a loop that generates async events**: Use `create_task()` for background operations
|
|
159
|
+
2. **Always track background tasks**: Prevents garbage collection and allows cleanup
|
|
160
|
+
3. **WebSocket I/O is a blocking point**: Even with timeouts, can create circular waits
|
|
161
|
+
4. **Test with real network conditions**: CLI vs Dashboard revealed the issue
|
|
162
|
+
|
|
163
|
+
### Best Practices Applied
|
|
164
|
+
|
|
165
|
+
1. ✅ **Fire-and-forget for broadcasts**: Don't wait for all clients to receive
|
|
166
|
+
2. ✅ **Task tracking**: Prevent garbage collection with set + done_callback
|
|
167
|
+
3. ✅ **Timeout protection**: Already in place at WebSocket level (500ms)
|
|
168
|
+
4. ✅ **Error isolation**: try/except around each broadcast creation
|
|
169
|
+
5. ✅ **Sequence preservation**: Tasks maintain order in AsyncIO scheduler
|
|
170
|
+
|
|
171
|
+
## Impact
|
|
172
|
+
|
|
173
|
+
### Fixed
|
|
174
|
+
- ✅ Dashboard streaming works with MCP tool calls
|
|
175
|
+
- ✅ No more deadlocks during agent execution
|
|
176
|
+
- ✅ Real-time token streaming continues during tool execution
|
|
177
|
+
|
|
178
|
+
### No Regressions
|
|
179
|
+
- ✅ CLI mode still works (no WebSocket = no change)
|
|
180
|
+
- ✅ Streaming order preserved (AsyncIO guarantees)
|
|
181
|
+
- ✅ Error handling unchanged (try/except still catches failures)
|
|
182
|
+
- ✅ Client timeout protection still active (500ms per client)
|
|
183
|
+
|
|
184
|
+
## Future Considerations
|
|
185
|
+
|
|
186
|
+
### Potential Improvements
|
|
187
|
+
|
|
188
|
+
1. **Backpressure handling**: Could monitor `ws_broadcast_tasks` size and pause streaming if queue gets too large
|
|
189
|
+
2. **Broadcast batching**: Could batch multiple tokens into single broadcast for efficiency
|
|
190
|
+
3. **Client-side buffering**: Could implement client-side buffer to handle burst traffic
|
|
191
|
+
4. **Metrics**: Could track broadcast task queue size and completion time
|
|
192
|
+
|
|
193
|
+
### Architecture Decision
|
|
194
|
+
|
|
195
|
+
**Decision**: Use fire-and-forget for WebSocket broadcasts during streaming
|
|
196
|
+
**Rationale**: Streaming must not block on network I/O; client displays are eventually consistent
|
|
197
|
+
**Trade-off**: Slight delay in UI updates vs. preventing deadlocks (clear win for preventing deadlocks)
|
|
198
|
+
|
|
199
|
+
## Version
|
|
200
|
+
|
|
201
|
+
- **Fixed in**: v0.5.0b64 (or current version)
|
|
202
|
+
- **Issue discovered**: October 9, 2025
|
|
203
|
+
- **Fix applied**: October 9, 2025
|
|
@@ -0,0 +1,416 @@
|
|
|
1
|
+
# MCP Root/Mount Point Feature
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
The MCP Root/Mount Point feature allows you to control which filesystem directories MCP servers can access on a **per-agent, per-server** basis. This provides fine-grained security and isolation for agents working with filesystem tools.
|
|
6
|
+
|
|
7
|
+
## Key Features
|
|
8
|
+
|
|
9
|
+
✨ **Server-Specific Mounts**: Different mount points for different MCP servers
|
|
10
|
+
🔒 **Per-Agent Isolation**: Each agent can have its own directory restrictions
|
|
11
|
+
🎯 **Explicit API**: Clear syntax showing which mounts apply to which servers
|
|
12
|
+
🔄 **Backward Compatible**: Old `.mount()` API still works (with deprecation warning)
|
|
13
|
+
|
|
14
|
+
## Architecture
|
|
15
|
+
|
|
16
|
+
### How It Works
|
|
17
|
+
|
|
18
|
+
1. **Agent Definition**: Use `.with_mcps({server: [paths]})` to specify mount points per server
|
|
19
|
+
2. **Runtime**: Server-specific mount points are passed to the MCP client manager
|
|
20
|
+
3. **Client Creation**: Each (agent_id, run_id) gets isolated MCP client with server-specific roots
|
|
21
|
+
4. **Server Notification**: Client notifies each MCP server only about roots relevant to it
|
|
22
|
+
|
|
23
|
+
### Protocol Flow
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
Agent.with_mcps({"filesystem": ["/workspace/src"]})
|
|
27
|
+
↓
|
|
28
|
+
Manager.get_tools_for_agent(server_mounts={"filesystem": ["/workspace/src"]})
|
|
29
|
+
↓
|
|
30
|
+
For each server:
|
|
31
|
+
Manager.get_client(server_name, mount_points=["/workspace/src"])
|
|
32
|
+
↓
|
|
33
|
+
Client.__init__ (sets current_roots from config.mount_points)
|
|
34
|
+
↓
|
|
35
|
+
Client._perform_initial_handshake()
|
|
36
|
+
↓
|
|
37
|
+
client_session.send_roots_list_changed() [Notify server]
|
|
38
|
+
↓
|
|
39
|
+
Server calls list_roots_callback() [Request roots]
|
|
40
|
+
↓
|
|
41
|
+
Callback returns ListRootsResult(roots=["/workspace/src"]) [Provide roots]
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
## Usage
|
|
45
|
+
|
|
46
|
+
### Basic Example - Single Server
|
|
47
|
+
|
|
48
|
+
```python
|
|
49
|
+
from flock.orchestrator import Flock
|
|
50
|
+
from flock.mcp import StdioServerParameters
|
|
51
|
+
|
|
52
|
+
flock = Flock(model="openai/gpt-4")
|
|
53
|
+
|
|
54
|
+
# Register MCP server with roots feature
|
|
55
|
+
flock.add_mcp(
|
|
56
|
+
name="filesystem",
|
|
57
|
+
connection_params=StdioServerParameters(
|
|
58
|
+
command="npx",
|
|
59
|
+
args=["-y", "@modelcontextprotocol/server-filesystem"]
|
|
60
|
+
),
|
|
61
|
+
enable_roots_feature=True
|
|
62
|
+
)
|
|
63
|
+
|
|
64
|
+
# Agent with server-specific mount points
|
|
65
|
+
(
|
|
66
|
+
flock.agent("src_agent")
|
|
67
|
+
.with_mcps({"filesystem": ["/workspace/src"]}) # ← Explicit server + mounts
|
|
68
|
+
.consumes(Request)
|
|
69
|
+
.publishes(Response)
|
|
70
|
+
)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
### Multiple Mount Points for One Server
|
|
74
|
+
|
|
75
|
+
```python
|
|
76
|
+
# Agent with multiple mount points for a single server
|
|
77
|
+
(
|
|
78
|
+
flock.agent("multi_dir_agent")
|
|
79
|
+
.with_mcps({
|
|
80
|
+
"filesystem": ["/data", "/logs", "/config"] # Multiple directories
|
|
81
|
+
})
|
|
82
|
+
.consumes(Request)
|
|
83
|
+
.publishes(Response)
|
|
84
|
+
)
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Multiple Servers with Different Mounts
|
|
88
|
+
|
|
89
|
+
```python
|
|
90
|
+
# Register multiple MCP servers
|
|
91
|
+
flock.add_mcp(name="filesystem", connection_params=..., enable_roots_feature=True)
|
|
92
|
+
flock.add_mcp(name="github", connection_params=..., enable_roots_feature=True)
|
|
93
|
+
|
|
94
|
+
# Agent using multiple servers with different mount points
|
|
95
|
+
(
|
|
96
|
+
flock.agent("multi_server_agent")
|
|
97
|
+
.with_mcps({
|
|
98
|
+
"filesystem": ["/workspace/src", "/data"], # Filesystem mounts
|
|
99
|
+
"github": ["/workspace/.git"], # GitHub mounts
|
|
100
|
+
})
|
|
101
|
+
.consumes(Request)
|
|
102
|
+
.publishes(Response)
|
|
103
|
+
)
|
|
104
|
+
```
|
|
105
|
+
|
|
106
|
+
### Mixed Format (Backward Compatible)
|
|
107
|
+
|
|
108
|
+
```python
|
|
109
|
+
# Some servers with mounts, others without
|
|
110
|
+
(
|
|
111
|
+
flock.agent("mixed_agent")
|
|
112
|
+
.with_mcps([
|
|
113
|
+
{"filesystem": ["/workspace/src"]}, # With mounts
|
|
114
|
+
"github", # No mounts (unrestricted)
|
|
115
|
+
])
|
|
116
|
+
.consumes(Request)
|
|
117
|
+
.publishes(Response)
|
|
118
|
+
)
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
### No Mount Restrictions
|
|
122
|
+
|
|
123
|
+
```python
|
|
124
|
+
# Agent with no mount restrictions (full access)
|
|
125
|
+
(
|
|
126
|
+
flock.agent("unrestricted_agent")
|
|
127
|
+
.with_mcps(["filesystem"]) # String format = no restrictions
|
|
128
|
+
.consumes(Request)
|
|
129
|
+
.publishes(Response)
|
|
130
|
+
)
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
## API Reference
|
|
134
|
+
|
|
135
|
+
### MCPServerConfig (TypedDict)
|
|
136
|
+
|
|
137
|
+
```python
|
|
138
|
+
class MCPServerConfig(TypedDict, total=False):
|
|
139
|
+
"""Configuration for MCP server assignment to an agent.
|
|
140
|
+
|
|
141
|
+
All fields are optional. If omitted, no restrictions apply.
|
|
142
|
+
|
|
143
|
+
Attributes:
|
|
144
|
+
roots: Filesystem paths this server can access.
|
|
145
|
+
Empty list or omitted = no mount restrictions.
|
|
146
|
+
tool_whitelist: Tool names the agent can use from this server.
|
|
147
|
+
Empty list or omitted = all tools available.
|
|
148
|
+
"""
|
|
149
|
+
roots: list[str]
|
|
150
|
+
tool_whitelist: list[str]
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
### AgentBuilder.with_mcps()
|
|
154
|
+
|
|
155
|
+
```python
|
|
156
|
+
def with_mcps(
|
|
157
|
+
self,
|
|
158
|
+
servers: Iterable[str] | dict[str, MCPServerConfig] | list[str | dict[str, MCPServerConfig]]
|
|
159
|
+
) -> AgentBuilder:
|
|
160
|
+
"""Assign MCP servers to agent with optional server-specific mount points.
|
|
161
|
+
|
|
162
|
+
Args:
|
|
163
|
+
servers: One of:
|
|
164
|
+
- List of server names (strings) - no specific mounts
|
|
165
|
+
- Dict mapping server names to MCPServerConfig - with restrictions
|
|
166
|
+
- Mixed list of strings and dicts for flexibility
|
|
167
|
+
|
|
168
|
+
Returns:
|
|
169
|
+
AgentBuilder for method chaining
|
|
170
|
+
|
|
171
|
+
Raises:
|
|
172
|
+
ValueError: If any server name is not registered
|
|
173
|
+
TypeError: If invalid server specification format
|
|
174
|
+
|
|
175
|
+
Examples:
|
|
176
|
+
# Simple: no mount restrictions
|
|
177
|
+
agent.with_mcps(["filesystem", "github"])
|
|
178
|
+
|
|
179
|
+
# Server-specific mounts and tool whitelist
|
|
180
|
+
agent.with_mcps({
|
|
181
|
+
"filesystem": {
|
|
182
|
+
"roots": ["/workspace/src", "/data"],
|
|
183
|
+
"tool_whitelist": ["read_file", "write_file"]
|
|
184
|
+
},
|
|
185
|
+
"github": {} # No restrictions for github
|
|
186
|
+
})
|
|
187
|
+
|
|
188
|
+
# Mixed format
|
|
189
|
+
agent.with_mcps([
|
|
190
|
+
"github", # No mounts
|
|
191
|
+
{"filesystem": {"roots": ["/workspace/src"]}} # With mounts
|
|
192
|
+
])
|
|
193
|
+
"""
|
|
194
|
+
```
|
|
195
|
+
|
|
196
|
+
### AgentBuilder.mount() [Deprecated]
|
|
197
|
+
|
|
198
|
+
```python
|
|
199
|
+
def mount(
|
|
200
|
+
self,
|
|
201
|
+
paths: str | list[str],
|
|
202
|
+
*,
|
|
203
|
+
validate: bool = False
|
|
204
|
+
) -> AgentBuilder:
|
|
205
|
+
"""Mount agent in specific directories for MCP root access.
|
|
206
|
+
|
|
207
|
+
.. deprecated:: 0.2.0
|
|
208
|
+
Use `.with_mcps({"server_name": ["/path"]})` instead.
|
|
209
|
+
|
|
210
|
+
Args:
|
|
211
|
+
paths: Single path or list of paths to mount
|
|
212
|
+
validate: If True, validate that paths exist
|
|
213
|
+
|
|
214
|
+
Returns:
|
|
215
|
+
AgentBuilder for method chaining
|
|
216
|
+
"""
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
### Flock.add_mcp()
|
|
220
|
+
|
|
221
|
+
```python
|
|
222
|
+
def add_mcp(
|
|
223
|
+
self,
|
|
224
|
+
name: str,
|
|
225
|
+
connection_params: ServerParameters,
|
|
226
|
+
*,
|
|
227
|
+
enable_roots_feature: bool = True,
|
|
228
|
+
mount_points: list[str] | None = None, # Global default
|
|
229
|
+
...
|
|
230
|
+
) -> Flock:
|
|
231
|
+
"""Register MCP server with optional global mount points."""
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
## Security Considerations
|
|
235
|
+
|
|
236
|
+
### Best Practices
|
|
237
|
+
|
|
238
|
+
1. **Principle of Least Privilege**: Only mount directories agents actually need
|
|
239
|
+
2. **Server-Specific Mounts**: Use dict format to be explicit about which server gets which mounts
|
|
240
|
+
3. **Agent-Specific Mounts**: Prefer per-agent mounts over global defaults
|
|
241
|
+
4. **Avoid Root Access**: Never mount `/` unless absolutely necessary
|
|
242
|
+
|
|
243
|
+
### Example: Secure File Processing
|
|
244
|
+
|
|
245
|
+
```python
|
|
246
|
+
# ❌ BAD: All servers get unrestricted access
|
|
247
|
+
(
|
|
248
|
+
flock.agent("file_processor")
|
|
249
|
+
.with_mcps(["filesystem", "github"]) # Both have unrestricted access
|
|
250
|
+
.consumes(FileRequest)
|
|
251
|
+
.publishes(FileData)
|
|
252
|
+
)
|
|
253
|
+
|
|
254
|
+
# ✅ GOOD: Each server gets only what it needs
|
|
255
|
+
(
|
|
256
|
+
flock.agent("file_processor")
|
|
257
|
+
.with_mcps({
|
|
258
|
+
"filesystem": ["/data/input"], # Filesystem only reads from input
|
|
259
|
+
"github": ["/workspace/.git"], # GitHub only accesses git directory
|
|
260
|
+
})
|
|
261
|
+
.consumes(FileRequest)
|
|
262
|
+
.publishes(FileData)
|
|
263
|
+
)
|
|
264
|
+
|
|
265
|
+
# ✅ BETTER: Separate agents with minimal permissions
|
|
266
|
+
(
|
|
267
|
+
flock.agent("file_reader")
|
|
268
|
+
.with_mcps({"filesystem": ["/data/input"]}) # Read only
|
|
269
|
+
.consumes(FileRequest)
|
|
270
|
+
.publishes(FileData)
|
|
271
|
+
)
|
|
272
|
+
|
|
273
|
+
(
|
|
274
|
+
flock.agent("file_writer")
|
|
275
|
+
.with_mcps({"filesystem": ["/data/output"]}) # Write only
|
|
276
|
+
.consumes(FileData)
|
|
277
|
+
.publishes(FileResult)
|
|
278
|
+
)
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
## Implementation Details
|
|
282
|
+
|
|
283
|
+
### Server-Specific Mount Points
|
|
284
|
+
|
|
285
|
+
Each server only receives the mount points specified for it:
|
|
286
|
+
|
|
287
|
+
```python
|
|
288
|
+
agent.with_mcps({
|
|
289
|
+
"filesystem": ["/workspace/src"],
|
|
290
|
+
"github": ["/workspace/.git"],
|
|
291
|
+
})
|
|
292
|
+
|
|
293
|
+
# When connecting to "filesystem" → roots = ["/workspace/src"]
|
|
294
|
+
# When connecting to "github" → roots = ["/workspace/.git"]
|
|
295
|
+
# Each server only knows about its own roots
|
|
296
|
+
```
|
|
297
|
+
|
|
298
|
+
### Per-(agent_id, run_id) Isolation
|
|
299
|
+
|
|
300
|
+
Each unique (agent_id, run_id) pair gets its own isolated MCP client connection with server-specific mount points:
|
|
301
|
+
|
|
302
|
+
```python
|
|
303
|
+
# Same agent, different runs = different clients with same mounts
|
|
304
|
+
await orchestrator.invoke(agent, request_1) # run_id=123 → client_1 (filesystem: ["/src"])
|
|
305
|
+
await orchestrator.invoke(agent, request_2) # run_id=456 → client_2 (filesystem: ["/src"])
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### Mount Point Precedence
|
|
309
|
+
|
|
310
|
+
1. **Agent-level server-specific mounts** (highest priority): `agent.with_mcps({"server": ["/path"]})`
|
|
311
|
+
2. **Server-level defaults**: `add_mcp(mount_points=["/path"])`
|
|
312
|
+
3. **No restrictions** (lowest priority): No mounts specified
|
|
313
|
+
|
|
314
|
+
### MCPRoot Format
|
|
315
|
+
|
|
316
|
+
Mount points are converted to `MCPRoot` objects:
|
|
317
|
+
|
|
318
|
+
```python
|
|
319
|
+
# Input
|
|
320
|
+
mount_points = ["/workspace/src", "/data"]
|
|
321
|
+
|
|
322
|
+
# Converted to
|
|
323
|
+
[
|
|
324
|
+
MCPRoot(uri="file:///workspace/src", name="src"),
|
|
325
|
+
MCPRoot(uri="file:///data", name="data")
|
|
326
|
+
]
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
## Troubleshooting
|
|
330
|
+
|
|
331
|
+
### Common Issues
|
|
332
|
+
|
|
333
|
+
**Issue**: Agent can't access files despite mount
|
|
334
|
+
```python
|
|
335
|
+
# Check if roots feature is enabled for the server
|
|
336
|
+
flock.add_mcp(
|
|
337
|
+
name="filesystem",
|
|
338
|
+
connection_params=...,
|
|
339
|
+
enable_roots_feature=True # ← Must be True
|
|
340
|
+
)
|
|
341
|
+
|
|
342
|
+
# Check if mounts are specified correctly
|
|
343
|
+
agent.with_mcps({
|
|
344
|
+
"filesystem": ["/workspace/src"] # ← Correct server name
|
|
345
|
+
})
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
**Issue**: Wrong server getting mount points
|
|
349
|
+
```python
|
|
350
|
+
# ❌ BAD: Typo in server name
|
|
351
|
+
agent.with_mcps({
|
|
352
|
+
"filesytem": ["/workspace/src"] # Typo!
|
|
353
|
+
})
|
|
354
|
+
|
|
355
|
+
# ✅ GOOD: Correct server name
|
|
356
|
+
agent.with_mcps({
|
|
357
|
+
"filesystem": ["/workspace/src"] # Must match add_mcp() name
|
|
358
|
+
})
|
|
359
|
+
```
|
|
360
|
+
|
|
361
|
+
**Issue**: Mount points not taking effect
|
|
362
|
+
```python
|
|
363
|
+
# Ensure mounts are specified in with_mcps() call
|
|
364
|
+
agent = (
|
|
365
|
+
flock.agent("my_agent")
|
|
366
|
+
.with_mcps({"filesystem": ["/path"]}) # ← Mounts here, not separate
|
|
367
|
+
.consumes(Request)
|
|
368
|
+
.publishes(Response)
|
|
369
|
+
)
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
### Debug Logging
|
|
373
|
+
|
|
374
|
+
Enable debug logging to see root notifications:
|
|
375
|
+
|
|
376
|
+
```python
|
|
377
|
+
import logging
|
|
378
|
+
|
|
379
|
+
logging.basicConfig(level=logging.DEBUG)
|
|
380
|
+
|
|
381
|
+
# Look for these log messages:
|
|
382
|
+
# INFO: Setting 2 mount point(s) for server 'filesystem' (agent=my_agent, run=123): ['file:///path1', 'file:///path2']
|
|
383
|
+
# DEBUG: Notifying server 'filesystem' of 2 root(s): ['file:///path1', 'file:///path2']
|
|
384
|
+
```
|
|
385
|
+
|
|
386
|
+
### Migration from Deprecated API
|
|
387
|
+
|
|
388
|
+
```python
|
|
389
|
+
# OLD (deprecated)
|
|
390
|
+
agent.with_mcps(["filesystem"]).mount("/workspace/src")
|
|
391
|
+
|
|
392
|
+
# NEW (recommended)
|
|
393
|
+
agent.with_mcps({"filesystem": ["/workspace/src"]})
|
|
394
|
+
|
|
395
|
+
# Migration for multiple servers
|
|
396
|
+
# OLD
|
|
397
|
+
agent.with_mcps(["filesystem", "github"]).mount(["/workspace/src", "/data"])
|
|
398
|
+
|
|
399
|
+
# NEW (specify per server)
|
|
400
|
+
agent.with_mcps({
|
|
401
|
+
"filesystem": ["/workspace/src", "/data"],
|
|
402
|
+
"github": [] # Or omit if no mounts needed
|
|
403
|
+
})
|
|
404
|
+
```
|
|
405
|
+
|
|
406
|
+
## Examples
|
|
407
|
+
|
|
408
|
+
See working examples in:
|
|
409
|
+
- [`examples/showcase/07_mcp_roots.py`](../examples/showcase/07_mcp_roots.py) - Complete demonstration
|
|
410
|
+
- [`examples/showcase/04_mcp_tools.py`](../examples/showcase/04_mcp_tools.py) - Basic MCP usage
|
|
411
|
+
|
|
412
|
+
## Related Documentation
|
|
413
|
+
|
|
414
|
+
- [MCP Protocol Specification](https://spec.modelcontextprotocol.io/)
|
|
415
|
+
- [Flock MCP Architecture](./mcp-architecture.md)
|
|
416
|
+
- [Agent Builder API](./agent-builder.md)
|